From d384462db8d23919a43b8552b3d4781a3b34fde9 Mon Sep 17 00:00:00 2001 From: gcarvellas Date: Sun, 8 Oct 2023 10:02:08 -0400 Subject: [PATCH] good code! --- frieren-cli/venv/bin/Activate.ps1 | 247 + frieren-cli/venv/bin/activate | 69 + frieren-cli/venv/bin/activate.csh | 26 + frieren-cli/venv/bin/activate.fish | 69 + frieren-cli/venv/bin/normalizer | 8 + frieren-cli/venv/bin/pip | 8 + frieren-cli/venv/bin/pip3 | 8 + frieren-cli/venv/bin/pip3.11 | 8 + frieren-cli/venv/bin/python | 1 + frieren-cli/venv/bin/python3 | 1 + frieren-cli/venv/bin/python3.11 | 1 + .../GitPython-3.1.37.dist-info/AUTHORS | 56 + .../GitPython-3.1.37.dist-info/INSTALLER | 1 + .../GitPython-3.1.37.dist-info/LICENSE | 29 + .../GitPython-3.1.37.dist-info/METADATA | 314 + .../GitPython-3.1.37.dist-info/RECORD | 83 + .../GitPython-3.1.37.dist-info/REQUESTED | 0 .../GitPython-3.1.37.dist-info/WHEEL | 5 + .../GitPython-3.1.37.dist-info/top_level.txt | 1 + .../site-packages/_distutils_hack/__init__.py | 222 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 11181 bytes .../__pycache__/override.cpython-311.pyc | Bin 0 -> 338 bytes .../site-packages/_distutils_hack/override.py | 1 + .../certifi-2023.7.22.dist-info/INSTALLER | 1 + .../certifi-2023.7.22.dist-info/LICENSE | 21 + .../certifi-2023.7.22.dist-info/METADATA | 69 + .../certifi-2023.7.22.dist-info/RECORD | 15 + .../certifi-2023.7.22.dist-info/REQUESTED | 0 .../certifi-2023.7.22.dist-info/WHEEL | 5 + .../certifi-2023.7.22.dist-info/top_level.txt | 1 + .../site-packages/certifi/__init__.py | 4 + .../site-packages/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 350 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 739 bytes .../certifi/__pycache__/core.cpython-311.pyc | Bin 0 -> 3356 bytes .../site-packages/certifi/cacert.pem | 4635 +++++++++ .../python3.11/site-packages/certifi/core.py | 108 + .../python3.11/site-packages/certifi/py.typed | 0 .../INSTALLER | 1 + .../LICENSE | 21 + .../METADATA | 668 ++ .../charset_normalizer-3.3.0.dist-info/RECORD | 36 + .../REQUESTED | 0 .../charset_normalizer-3.3.0.dist-info/WHEEL | 6 + .../entry_points.txt | 2 + .../top_level.txt | 1 + .../charset_normalizer/__init__.py | 46 + .../charset_normalizer/__main__.py | 4 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1869 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 355 bytes .../__pycache__/api.cpython-311.pyc | Bin 0 -> 20439 bytes .../__pycache__/cd.cpython-311.pyc | Bin 0 -> 16215 bytes .../__pycache__/constant.cpython-311.pyc | Bin 0 -> 43731 bytes .../__pycache__/legacy.cpython-311.pyc | Bin 0 -> 2788 bytes .../__pycache__/md.cpython-311.pyc | Bin 0 -> 25467 bytes .../__pycache__/models.cpython-311.pyc | Bin 0 -> 17915 bytes .../__pycache__/utils.cpython-311.pyc | Bin 0 -> 15559 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 361 bytes .../site-packages/charset_normalizer/api.py | 626 ++ .../site-packages/charset_normalizer/cd.py | 395 + .../charset_normalizer/cli/__init__.py | 6 + .../charset_normalizer/cli/__main__.py | 296 + .../cli/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 327 bytes .../cli/__pycache__/__main__.cpython-311.pyc | Bin 0 -> 11724 bytes .../charset_normalizer/constant.py | 1995 ++++ .../charset_normalizer/legacy.py | 54 + .../md.cpython-311-x86_64-linux-gnu.so | Bin 0 -> 16064 bytes .../site-packages/charset_normalizer/md.py | 581 ++ .../md__mypyc.cpython-311-x86_64-linux-gnu.so | Bin 0 -> 252952 bytes .../charset_normalizer/models.py | 337 + .../site-packages/charset_normalizer/py.typed | 0 .../site-packages/charset_normalizer/utils.py | 399 + .../charset_normalizer/version.py | 6 + .../site-packages/distutils-precedence.pth | 1 + .../python3.11/site-packages/git/__init__.py | 92 + .../git/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 3283 bytes .../git/__pycache__/cmd.cpython-311.pyc | Bin 0 -> 59794 bytes .../git/__pycache__/compat.cpython-311.pyc | Bin 0 -> 3695 bytes .../git/__pycache__/config.cpython-311.pyc | Bin 0 -> 45854 bytes .../git/__pycache__/db.cpython-311.pyc | Bin 0 -> 3740 bytes .../git/__pycache__/diff.cpython-311.pyc | Bin 0 -> 26471 bytes .../git/__pycache__/exc.cpython-311.pyc | Bin 0 -> 11480 bytes .../git/__pycache__/remote.cpython-311.pyc | Bin 0 -> 51015 bytes .../git/__pycache__/types.cpython-311.pyc | Bin 0 -> 4235 bytes .../git/__pycache__/util.cpython-311.pyc | Bin 0 -> 56253 bytes .../lib/python3.11/site-packages/git/cmd.py | 1417 +++ .../python3.11/site-packages/git/compat.py | 104 + .../python3.11/site-packages/git/config.py | 895 ++ .../lib/python3.11/site-packages/git/db.py | 63 + .../lib/python3.11/site-packages/git/diff.py | 661 ++ .../lib/python3.11/site-packages/git/exc.py | 184 + .../site-packages/git/index/__init__.py | 4 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 313 bytes .../index/__pycache__/base.cpython-311.pyc | Bin 0 -> 65946 bytes .../git/index/__pycache__/fun.cpython-311.pyc | Bin 0 -> 18517 bytes .../git/index/__pycache__/typ.cpython-311.pyc | Bin 0 -> 10125 bytes .../index/__pycache__/util.cpython-311.pyc | Bin 0 -> 6266 bytes .../site-packages/git/index/base.py | 1394 +++ .../python3.11/site-packages/git/index/fun.py | 443 + .../python3.11/site-packages/git/index/typ.py | 191 + .../site-packages/git/index/util.py | 129 + .../site-packages/git/objects/__init__.py | 24 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1094 bytes .../objects/__pycache__/base.cpython-311.pyc | Bin 0 -> 11420 bytes .../objects/__pycache__/blob.cpython-311.pyc | Bin 0 -> 1541 bytes .../__pycache__/commit.cpython-311.pyc | Bin 0 -> 34058 bytes .../objects/__pycache__/fun.cpython-311.pyc | Bin 0 -> 9301 bytes .../objects/__pycache__/tag.cpython-311.pyc | Bin 0 -> 4923 bytes .../objects/__pycache__/tree.cpython-311.pyc | Bin 0 -> 19932 bytes .../objects/__pycache__/util.cpython-311.pyc | Bin 0 -> 28344 bytes .../site-packages/git/objects/base.py | 224 + .../site-packages/git/objects/blob.py | 36 + .../site-packages/git/objects/commit.py | 818 ++ .../site-packages/git/objects/fun.py | 253 + .../git/objects/submodule/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 222 bytes .../__pycache__/base.cpython-311.pyc | Bin 0 -> 61750 bytes .../__pycache__/root.cpython-311.pyc | Bin 0 -> 14647 bytes .../__pycache__/util.cpython-311.pyc | Bin 0 -> 5198 bytes .../git/objects/submodule/base.py | 1420 +++ .../git/objects/submodule/root.py | 426 + .../git/objects/submodule/util.py | 118 + .../site-packages/git/objects/tag.py | 107 + .../site-packages/git/objects/tree.py | 424 + .../site-packages/git/objects/util.py | 637 ++ .../lib/python3.11/site-packages/git/py.typed | 0 .../site-packages/git/refs/__init__.py | 9 + .../refs/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 379 bytes .../git/refs/__pycache__/head.cpython-311.pyc | Bin 0 -> 12611 bytes .../git/refs/__pycache__/log.cpython-311.pyc | Bin 0 -> 17075 bytes .../__pycache__/reference.cpython-311.pyc | Bin 0 -> 6493 bytes .../refs/__pycache__/remote.cpython-311.pyc | Bin 0 -> 3421 bytes .../refs/__pycache__/symbolic.cpython-311.pyc | Bin 0 -> 39008 bytes .../git/refs/__pycache__/tag.cpython-311.pyc | Bin 0 -> 5200 bytes .../python3.11/site-packages/git/refs/head.py | 277 + .../python3.11/site-packages/git/refs/log.py | 352 + .../site-packages/git/refs/reference.py | 154 + .../site-packages/git/refs/remote.py | 75 + .../site-packages/git/refs/symbolic.py | 813 ++ .../python3.11/site-packages/git/refs/tag.py | 138 + .../python3.11/site-packages/git/remote.py | 1149 +++ .../site-packages/git/repo/__init__.py | 3 + .../repo/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 304 bytes .../git/repo/__pycache__/base.cpython-311.pyc | Bin 0 -> 62882 bytes .../git/repo/__pycache__/fun.cpython-311.pyc | Bin 0 -> 14453 bytes .../python3.11/site-packages/git/repo/base.py | 1405 +++ .../python3.11/site-packages/git/repo/fun.py | 388 + .../lib/python3.11/site-packages/git/types.py | 117 + .../lib/python3.11/site-packages/git/util.py | 1219 +++ .../gitdb-4.0.10.dist-info/AUTHORS | 4 + .../gitdb-4.0.10.dist-info/INSTALLER | 1 + .../gitdb-4.0.10.dist-info/LICENSE | 42 + .../gitdb-4.0.10.dist-info/METADATA | 32 + .../gitdb-4.0.10.dist-info/RECORD | 58 + .../gitdb-4.0.10.dist-info/REQUESTED | 0 .../gitdb-4.0.10.dist-info/WHEEL | 5 + .../gitdb-4.0.10.dist-info/top_level.txt | 1 + .../site-packages/gitdb/__init__.py | 38 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1621 bytes .../gitdb/__pycache__/base.cpython-311.pyc | Bin 0 -> 14627 bytes .../gitdb/__pycache__/const.cpython-311.pyc | Bin 0 -> 350 bytes .../gitdb/__pycache__/exc.cpython-311.pyc | Bin 0 -> 3061 bytes .../gitdb/__pycache__/fun.cpython-311.pyc | Bin 0 -> 25596 bytes .../gitdb/__pycache__/pack.cpython-311.pyc | Bin 0 -> 47772 bytes .../gitdb/__pycache__/stream.cpython-311.pyc | Bin 0 -> 28170 bytes .../gitdb/__pycache__/typ.cpython-311.pyc | Bin 0 -> 413 bytes .../gitdb/__pycache__/util.cpython-311.pyc | Bin 0 -> 16224 bytes .../python3.11/site-packages/gitdb/base.py | 315 + .../python3.11/site-packages/gitdb/const.py | 4 + .../site-packages/gitdb/db/__init__.py | 11 + .../db/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 422 bytes .../gitdb/db/__pycache__/base.cpython-311.pyc | Bin 0 -> 13576 bytes .../gitdb/db/__pycache__/git.cpython-311.pyc | Bin 0 -> 3714 bytes .../db/__pycache__/loose.cpython-311.pyc | Bin 0 -> 10147 bytes .../gitdb/db/__pycache__/mem.cpython-311.pyc | Bin 0 -> 5089 bytes .../gitdb/db/__pycache__/pack.cpython-311.pyc | Bin 0 -> 9556 bytes .../gitdb/db/__pycache__/ref.cpython-311.pyc | Bin 0 -> 4178 bytes .../python3.11/site-packages/gitdb/db/base.py | 278 + .../python3.11/site-packages/gitdb/db/git.py | 85 + .../site-packages/gitdb/db/loose.py | 258 + .../python3.11/site-packages/gitdb/db/mem.py | 110 + .../python3.11/site-packages/gitdb/db/pack.py | 206 + .../python3.11/site-packages/gitdb/db/ref.py | 82 + .../lib/python3.11/site-packages/gitdb/exc.py | 46 + .../lib/python3.11/site-packages/gitdb/fun.py | 704 ++ .../python3.11/site-packages/gitdb/pack.py | 1031 ++ .../python3.11/site-packages/gitdb/stream.py | 730 ++ .../site-packages/gitdb/test/__init__.py | 4 + .../test/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 211 bytes .../test/__pycache__/lib.cpython-311.pyc | Bin 0 -> 8944 bytes .../__pycache__/test_base.cpython-311.pyc | Bin 0 -> 4095 bytes .../__pycache__/test_example.cpython-311.pyc | Bin 0 -> 2228 bytes .../__pycache__/test_pack.cpython-311.pyc | Bin 0 -> 12694 bytes .../__pycache__/test_stream.cpython-311.pyc | Bin 0 -> 8109 bytes .../__pycache__/test_util.cpython-311.pyc | Bin 0 -> 5553 bytes .../site-packages/gitdb/test/lib.py | 192 + .../site-packages/gitdb/test/test_base.py | 105 + .../site-packages/gitdb/test/test_example.py | 43 + .../site-packages/gitdb/test/test_pack.py | 249 + .../site-packages/gitdb/test/test_stream.py | 164 + .../site-packages/gitdb/test/test_util.py | 100 + .../lib/python3.11/site-packages/gitdb/typ.py | 10 + .../python3.11/site-packages/gitdb/util.py | 398 + .../site-packages/gitdb/utils/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 212 bytes .../__pycache__/encoding.cpython-311.pyc | Bin 0 -> 961 bytes .../site-packages/gitdb/utils/encoding.py | 18 + .../idna-3.4.dist-info/INSTALLER | 1 + .../idna-3.4.dist-info/LICENSE.md | 29 + .../site-packages/idna-3.4.dist-info/METADATA | 242 + .../site-packages/idna-3.4.dist-info/RECORD | 23 + .../idna-3.4.dist-info/REQUESTED | 0 .../site-packages/idna-3.4.dist-info/WHEEL | 4 + .../python3.11/site-packages/idna/__init__.py | 44 + .../idna/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1107 bytes .../idna/__pycache__/codec.cpython-311.pyc | Bin 0 -> 5398 bytes .../idna/__pycache__/compat.cpython-311.pyc | Bin 0 -> 1024 bytes .../idna/__pycache__/core.cpython-311.pyc | Bin 0 -> 19459 bytes .../idna/__pycache__/idnadata.cpython-311.pyc | Bin 0 -> 38983 bytes .../__pycache__/intranges.cpython-311.pyc | Bin 0 -> 2992 bytes .../__pycache__/package_data.cpython-311.pyc | Bin 0 -> 227 bytes .../__pycache__/uts46data.cpython-311.pyc | Bin 0 -> 163207 bytes .../python3.11/site-packages/idna/codec.py | 112 + .../python3.11/site-packages/idna/compat.py | 13 + .../lib/python3.11/site-packages/idna/core.py | 400 + .../python3.11/site-packages/idna/idnadata.py | 2151 +++++ .../site-packages/idna/intranges.py | 54 + .../site-packages/idna/package_data.py | 2 + .../python3.11/site-packages/idna/py.typed | 0 .../site-packages/idna/uts46data.py | 8600 +++++++++++++++++ .../pip-23.2.1.dist-info/AUTHORS.txt | 738 ++ .../pip-23.2.1.dist-info/INSTALLER | 1 + .../pip-23.2.1.dist-info/LICENSE.txt | 20 + .../pip-23.2.1.dist-info/METADATA | 90 + .../site-packages/pip-23.2.1.dist-info/RECORD | 1003 ++ .../pip-23.2.1.dist-info/REQUESTED | 0 .../site-packages/pip-23.2.1.dist-info/WHEEL | 5 + .../pip-23.2.1.dist-info/entry_points.txt | 4 + .../pip-23.2.1.dist-info/top_level.txt | 1 + .../python3.11/site-packages/pip/__init__.py | 13 + .../python3.11/site-packages/pip/__main__.py | 24 + .../site-packages/pip/__pip-runner__.py | 50 + .../pip/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 793 bytes .../pip/__pycache__/__main__.cpython-311.pyc | Bin 0 -> 910 bytes .../__pip-runner__.cpython-311.pyc | Bin 0 -> 2530 bytes .../site-packages/pip/_internal/__init__.py | 19 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 976 bytes .../__pycache__/build_env.cpython-311.pyc | Bin 0 -> 16096 bytes .../__pycache__/cache.cpython-311.pyc | Bin 0 -> 14294 bytes .../__pycache__/configuration.cpython-311.pyc | Bin 0 -> 19543 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 37645 bytes .../__pycache__/main.cpython-311.pyc | Bin 0 -> 776 bytes .../__pycache__/pyproject.cpython-311.pyc | Bin 0 -> 5638 bytes .../self_outdated_check.cpython-311.pyc | Bin 0 -> 11346 bytes .../__pycache__/wheel_builder.cpython-311.pyc | Bin 0 -> 15280 bytes .../site-packages/pip/_internal/build_env.py | 311 + .../site-packages/pip/_internal/cache.py | 292 + .../pip/_internal/cli/__init__.py | 4 + .../cli/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 311 bytes .../autocompletion.cpython-311.pyc | Bin 0 -> 10101 bytes .../__pycache__/base_command.cpython-311.pyc | Bin 0 -> 11873 bytes .../__pycache__/cmdoptions.cpython-311.pyc | Bin 0 -> 33772 bytes .../command_context.cpython-311.pyc | Bin 0 -> 2133 bytes .../cli/__pycache__/main.cpython-311.pyc | Bin 0 -> 2603 bytes .../__pycache__/main_parser.cpython-311.pyc | Bin 0 -> 5547 bytes .../cli/__pycache__/parser.cpython-311.pyc | Bin 0 -> 17048 bytes .../__pycache__/progress_bars.cpython-311.pyc | Bin 0 -> 3195 bytes .../__pycache__/req_command.cpython-311.pyc | Bin 0 -> 20341 bytes .../cli/__pycache__/spinners.cpython-311.pyc | Bin 0 -> 8860 bytes .../__pycache__/status_codes.cpython-311.pyc | Bin 0 -> 399 bytes .../pip/_internal/cli/autocompletion.py | 171 + .../pip/_internal/cli/base_command.py | 236 + .../pip/_internal/cli/cmdoptions.py | 1074 ++ .../pip/_internal/cli/command_context.py | 27 + .../site-packages/pip/_internal/cli/main.py | 79 + .../pip/_internal/cli/main_parser.py | 134 + .../site-packages/pip/_internal/cli/parser.py | 294 + .../pip/_internal/cli/progress_bars.py | 68 + .../pip/_internal/cli/req_command.py | 508 + .../pip/_internal/cli/spinners.py | 159 + .../pip/_internal/cli/status_codes.py | 6 + .../pip/_internal/commands/__init__.py | 132 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 4479 bytes .../__pycache__/cache.cpython-311.pyc | Bin 0 -> 10578 bytes .../__pycache__/check.cpython-311.pyc | Bin 0 -> 2434 bytes .../__pycache__/completion.cpython-311.pyc | Bin 0 -> 5344 bytes .../__pycache__/configuration.cpython-311.pyc | Bin 0 -> 14920 bytes .../__pycache__/debug.cpython-311.pyc | Bin 0 -> 12028 bytes .../__pycache__/download.cpython-311.pyc | Bin 0 -> 7968 bytes .../__pycache__/freeze.cpython-311.pyc | Bin 0 -> 4684 bytes .../commands/__pycache__/hash.cpython-311.pyc | Bin 0 -> 3381 bytes .../commands/__pycache__/help.cpython-311.pyc | Bin 0 -> 1993 bytes .../__pycache__/index.cpython-311.pyc | Bin 0 -> 7816 bytes .../__pycache__/inspect.cpython-311.pyc | Bin 0 -> 4469 bytes .../__pycache__/install.cpython-311.pyc | Bin 0 -> 31230 bytes .../commands/__pycache__/list.cpython-311.pyc | Bin 0 -> 17239 bytes .../__pycache__/search.cpython-311.pyc | Bin 0 -> 8975 bytes .../commands/__pycache__/show.cpython-311.pyc | Bin 0 -> 11318 bytes .../__pycache__/uninstall.cpython-311.pyc | Bin 0 -> 5169 bytes .../__pycache__/wheel.cpython-311.pyc | Bin 0 -> 9425 bytes .../pip/_internal/commands/cache.py | 222 + .../pip/_internal/commands/check.py | 54 + .../pip/_internal/commands/completion.py | 121 + .../pip/_internal/commands/configuration.py | 282 + .../pip/_internal/commands/debug.py | 199 + .../pip/_internal/commands/download.py | 147 + .../pip/_internal/commands/freeze.py | 108 + .../pip/_internal/commands/hash.py | 59 + .../pip/_internal/commands/help.py | 41 + .../pip/_internal/commands/index.py | 139 + .../pip/_internal/commands/inspect.py | 92 + .../pip/_internal/commands/install.py | 778 ++ .../pip/_internal/commands/list.py | 368 + .../pip/_internal/commands/search.py | 174 + .../pip/_internal/commands/show.py | 189 + .../pip/_internal/commands/uninstall.py | 113 + .../pip/_internal/commands/wheel.py | 183 + .../pip/_internal/configuration.py | 381 + .../pip/_internal/distributions/__init__.py | 21 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1061 bytes .../__pycache__/base.cpython-311.pyc | Bin 0 -> 2433 bytes .../__pycache__/installed.cpython-311.pyc | Bin 0 -> 1570 bytes .../__pycache__/sdist.cpython-311.pyc | Bin 0 -> 8972 bytes .../__pycache__/wheel.cpython-311.pyc | Bin 0 -> 2164 bytes .../pip/_internal/distributions/base.py | 39 + .../pip/_internal/distributions/installed.py | 23 + .../pip/_internal/distributions/sdist.py | 150 + .../pip/_internal/distributions/wheel.py | 34 + .../site-packages/pip/_internal/exceptions.py | 733 ++ .../pip/_internal/index/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 265 bytes .../__pycache__/collector.cpython-311.pyc | Bin 0 -> 24571 bytes .../package_finder.cpython-311.pyc | Bin 0 -> 44243 bytes .../index/__pycache__/sources.cpython-311.pyc | Bin 0 -> 11047 bytes .../pip/_internal/index/collector.py | 505 + .../pip/_internal/index/package_finder.py | 1029 ++ .../pip/_internal/index/sources.py | 223 + .../pip/_internal/locations/__init__.py | 467 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 18203 bytes .../__pycache__/_distutils.cpython-311.pyc | Bin 0 -> 7612 bytes .../__pycache__/_sysconfig.cpython-311.pyc | Bin 0 -> 8907 bytes .../__pycache__/base.cpython-311.pyc | Bin 0 -> 4028 bytes .../pip/_internal/locations/_distutils.py | 173 + .../pip/_internal/locations/_sysconfig.py | 213 + .../pip/_internal/locations/base.py | 81 + .../site-packages/pip/_internal/main.py | 12 + .../pip/_internal/metadata/__init__.py | 127 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 6436 bytes .../__pycache__/_json.cpython-311.pyc | Bin 0 -> 3590 bytes .../metadata/__pycache__/base.cpython-311.pyc | Bin 0 -> 38035 bytes .../__pycache__/pkg_resources.cpython-311.pyc | Bin 0 -> 16883 bytes .../pip/_internal/metadata/_json.py | 84 + .../pip/_internal/metadata/base.py | 688 ++ .../_internal/metadata/importlib/__init__.py | 4 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 382 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 0 -> 3589 bytes .../__pycache__/_dists.cpython-311.pyc | Bin 0 -> 14605 bytes .../__pycache__/_envs.cpython-311.pyc | Bin 0 -> 12515 bytes .../_internal/metadata/importlib/_compat.py | 55 + .../_internal/metadata/importlib/_dists.py | 224 + .../pip/_internal/metadata/importlib/_envs.py | 188 + .../pip/_internal/metadata/pkg_resources.py | 270 + .../pip/_internal/models/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 299 bytes .../__pycache__/candidate.cpython-311.pyc | Bin 0 -> 2118 bytes .../__pycache__/direct_url.cpython-311.pyc | Bin 0 -> 12826 bytes .../format_control.cpython-311.pyc | Bin 0 -> 4682 bytes .../models/__pycache__/index.cpython-311.pyc | Bin 0 -> 1924 bytes .../installation_report.cpython-311.pyc | Bin 0 -> 2587 bytes .../models/__pycache__/link.cpython-311.pyc | Bin 0 -> 28686 bytes .../models/__pycache__/scheme.cpython-311.pyc | Bin 0 -> 1290 bytes .../__pycache__/search_scope.cpython-311.pyc | Bin 0 -> 5853 bytes .../selection_prefs.cpython-311.pyc | Bin 0 -> 2021 bytes .../__pycache__/target_python.cpython-311.pyc | Bin 0 -> 4783 bytes .../models/__pycache__/wheel.cpython-311.pyc | Bin 0 -> 6446 bytes .../pip/_internal/models/candidate.py | 34 + .../pip/_internal/models/direct_url.py | 237 + .../pip/_internal/models/format_control.py | 80 + .../pip/_internal/models/index.py | 28 + .../_internal/models/installation_report.py | 53 + .../pip/_internal/models/link.py | 581 ++ .../pip/_internal/models/scheme.py | 31 + .../pip/_internal/models/search_scope.py | 132 + .../pip/_internal/models/selection_prefs.py | 51 + .../pip/_internal/models/target_python.py | 110 + .../pip/_internal/models/wheel.py | 92 + .../pip/_internal/network/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 287 bytes .../network/__pycache__/auth.cpython-311.pyc | Bin 0 -> 24014 bytes .../network/__pycache__/cache.cpython-311.pyc | Bin 0 -> 5210 bytes .../__pycache__/download.cpython-311.pyc | Bin 0 -> 9602 bytes .../__pycache__/lazy_wheel.cpython-311.pyc | Bin 0 -> 13048 bytes .../__pycache__/session.cpython-311.pyc | Bin 0 -> 21459 bytes .../network/__pycache__/utils.cpython-311.pyc | Bin 0 -> 2436 bytes .../__pycache__/xmlrpc.cpython-311.pyc | Bin 0 -> 3215 bytes .../pip/_internal/network/auth.py | 561 ++ .../pip/_internal/network/cache.py | 69 + .../pip/_internal/network/download.py | 186 + .../pip/_internal/network/lazy_wheel.py | 210 + .../pip/_internal/network/session.py | 519 + .../pip/_internal/network/utils.py | 96 + .../pip/_internal/network/xmlrpc.py | 60 + .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 225 bytes .../__pycache__/check.cpython-311.pyc | Bin 0 -> 8488 bytes .../__pycache__/freeze.cpython-311.pyc | Bin 0 -> 11621 bytes .../__pycache__/prepare.cpython-311.pyc | Bin 0 -> 27971 bytes .../_internal/operations/build/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 231 bytes .../__pycache__/build_tracker.cpython-311.pyc | Bin 0 -> 8154 bytes .../__pycache__/metadata.cpython-311.pyc | Bin 0 -> 2302 bytes .../metadata_editable.cpython-311.pyc | Bin 0 -> 2338 bytes .../metadata_legacy.cpython-311.pyc | Bin 0 -> 3738 bytes .../build/__pycache__/wheel.cpython-311.pyc | Bin 0 -> 1968 bytes .../wheel_editable.cpython-311.pyc | Bin 0 -> 2412 bytes .../__pycache__/wheel_legacy.cpython-311.pyc | Bin 0 -> 4519 bytes .../operations/build/build_tracker.py | 124 + .../_internal/operations/build/metadata.py | 39 + .../operations/build/metadata_editable.py | 41 + .../operations/build/metadata_legacy.py | 74 + .../pip/_internal/operations/build/wheel.py | 37 + .../operations/build/wheel_editable.py | 46 + .../operations/build/wheel_legacy.py | 102 + .../pip/_internal/operations/check.py | 187 + .../pip/_internal/operations/freeze.py | 255 + .../_internal/operations/install/__init__.py | 2 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 299 bytes .../editable_legacy.cpython-311.pyc | Bin 0 -> 2212 bytes .../install/__pycache__/wheel.cpython-311.pyc | Bin 0 -> 40265 bytes .../operations/install/editable_legacy.py | 46 + .../pip/_internal/operations/install/wheel.py | 740 ++ .../pip/_internal/operations/prepare.py | 743 ++ .../site-packages/pip/_internal/pyproject.py | 179 + .../pip/_internal/req/__init__.py | 92 + .../req/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 4413 bytes .../__pycache__/constructors.cpython-311.pyc | Bin 0 -> 20725 bytes .../req/__pycache__/req_file.cpython-311.pyc | Bin 0 -> 22770 bytes .../__pycache__/req_install.cpython-311.pyc | Bin 0 -> 38108 bytes .../req/__pycache__/req_set.cpython-311.pyc | Bin 0 -> 7981 bytes .../__pycache__/req_uninstall.cpython-311.pyc | Bin 0 -> 37507 bytes .../pip/_internal/req/constructors.py | 506 + .../pip/_internal/req/req_file.py | 552 ++ .../pip/_internal/req/req_install.py | 874 ++ .../pip/_internal/req/req_set.py | 119 + .../pip/_internal/req/req_uninstall.py | 650 ++ .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 225 bytes .../__pycache__/base.cpython-311.pyc | Bin 0 -> 1396 bytes .../pip/_internal/resolution/base.py | 20 + .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 232 bytes .../__pycache__/resolver.cpython-311.pyc | Bin 0 -> 23822 bytes .../_internal/resolution/legacy/resolver.py | 600 ++ .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 236 bytes .../__pycache__/base.cpython-311.pyc | Bin 0 -> 9649 bytes .../__pycache__/candidates.cpython-311.pyc | Bin 0 -> 28823 bytes .../__pycache__/factory.cpython-311.pyc | Bin 0 -> 31948 bytes .../found_candidates.cpython-311.pyc | Bin 0 -> 6784 bytes .../__pycache__/provider.cpython-311.pyc | Bin 0 -> 11475 bytes .../__pycache__/reporter.cpython-311.pyc | Bin 0 -> 5466 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 0 -> 11146 bytes .../__pycache__/resolver.cpython-311.pyc | Bin 0 -> 12447 bytes .../_internal/resolution/resolvelib/base.py | 141 + .../resolution/resolvelib/candidates.py | 555 ++ .../resolution/resolvelib/factory.py | 730 ++ .../resolution/resolvelib/found_candidates.py | 155 + .../resolution/resolvelib/provider.py | 255 + .../resolution/resolvelib/reporter.py | 80 + .../resolution/resolvelib/requirements.py | 165 + .../resolution/resolvelib/resolver.py | 299 + .../pip/_internal/self_outdated_check.py | 242 + .../pip/_internal/utils/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 220 bytes .../__pycache__/_jaraco_text.cpython-311.pyc | Bin 0 -> 4784 bytes .../utils/__pycache__/_log.cpython-311.pyc | Bin 0 -> 2041 bytes .../utils/__pycache__/appdirs.cpython-311.pyc | Bin 0 -> 2579 bytes .../utils/__pycache__/compat.cpython-311.pyc | Bin 0 -> 2287 bytes .../compatibility_tags.cpython-311.pyc | Bin 0 -> 6779 bytes .../__pycache__/datetime.cpython-311.pyc | Bin 0 -> 737 bytes .../__pycache__/deprecation.cpython-311.pyc | Bin 0 -> 4706 bytes .../direct_url_helpers.cpython-311.pyc | Bin 0 -> 3743 bytes .../__pycache__/egg_link.cpython-311.pyc | Bin 0 -> 3258 bytes .../__pycache__/encoding.cpython-311.pyc | Bin 0 -> 2343 bytes .../__pycache__/entrypoints.cpython-311.pyc | Bin 0 -> 4265 bytes .../__pycache__/filesystem.cpython-311.pyc | Bin 0 -> 8250 bytes .../__pycache__/filetypes.cpython-311.pyc | Bin 0 -> 1336 bytes .../utils/__pycache__/glibc.cpython-311.pyc | Bin 0 -> 2632 bytes .../utils/__pycache__/hashes.cpython-311.pyc | Bin 0 -> 8791 bytes .../inject_securetransport.cpython-311.pyc | Bin 0 -> 1354 bytes .../utils/__pycache__/logging.cpython-311.pyc | Bin 0 -> 15479 bytes .../utils/__pycache__/misc.cpython-311.pyc | Bin 0 -> 37079 bytes .../utils/__pycache__/models.cpython-311.pyc | Bin 0 -> 2960 bytes .../__pycache__/packaging.cpython-311.pyc | Bin 0 -> 2827 bytes .../setuptools_build.cpython-311.pyc | Bin 0 -> 4892 bytes .../__pycache__/subprocess.cpython-311.pyc | Bin 0 -> 9914 bytes .../__pycache__/temp_dir.cpython-311.pyc | Bin 0 -> 11441 bytes .../__pycache__/unpacking.cpython-311.pyc | Bin 0 -> 12916 bytes .../utils/__pycache__/urls.cpython-311.pyc | Bin 0 -> 2713 bytes .../__pycache__/virtualenv.cpython-311.pyc | Bin 0 -> 4960 bytes .../utils/__pycache__/wheel.cpython-311.pyc | Bin 0 -> 7130 bytes .../pip/_internal/utils/_jaraco_text.py | 109 + .../site-packages/pip/_internal/utils/_log.py | 38 + .../pip/_internal/utils/appdirs.py | 52 + .../pip/_internal/utils/compat.py | 63 + .../pip/_internal/utils/compatibility_tags.py | 165 + .../pip/_internal/utils/datetime.py | 11 + .../pip/_internal/utils/deprecation.py | 120 + .../pip/_internal/utils/direct_url_helpers.py | 87 + .../pip/_internal/utils/egg_link.py | 72 + .../pip/_internal/utils/encoding.py | 36 + .../pip/_internal/utils/entrypoints.py | 84 + .../pip/_internal/utils/filesystem.py | 153 + .../pip/_internal/utils/filetypes.py | 27 + .../pip/_internal/utils/glibc.py | 88 + .../pip/_internal/utils/hashes.py | 151 + .../_internal/utils/inject_securetransport.py | 35 + .../pip/_internal/utils/logging.py | 348 + .../site-packages/pip/_internal/utils/misc.py | 735 ++ .../pip/_internal/utils/models.py | 39 + .../pip/_internal/utils/packaging.py | 57 + .../pip/_internal/utils/setuptools_build.py | 146 + .../pip/_internal/utils/subprocess.py | 260 + .../pip/_internal/utils/temp_dir.py | 246 + .../pip/_internal/utils/unpacking.py | 257 + .../site-packages/pip/_internal/utils/urls.py | 62 + .../pip/_internal/utils/virtualenv.py | 104 + .../pip/_internal/utils/wheel.py | 136 + .../pip/_internal/vcs/__init__.py | 15 + .../vcs/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 655 bytes .../vcs/__pycache__/bazaar.cpython-311.pyc | Bin 0 -> 5880 bytes .../vcs/__pycache__/git.cpython-311.pyc | Bin 0 -> 21544 bytes .../vcs/__pycache__/mercurial.cpython-311.pyc | Bin 0 -> 8735 bytes .../__pycache__/subversion.cpython-311.pyc | Bin 0 -> 14623 bytes .../versioncontrol.cpython-311.pyc | Bin 0 -> 31892 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 112 + .../site-packages/pip/_internal/vcs/git.py | 526 + .../pip/_internal/vcs/mercurial.py | 163 + .../pip/_internal/vcs/subversion.py | 324 + .../pip/_internal/vcs/versioncontrol.py | 705 ++ .../pip/_internal/wheel_builder.py | 355 + .../site-packages/pip/_vendor/__init__.py | 120 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 5633 bytes .../_vendor/__pycache__/six.cpython-311.pyc | Bin 0 -> 46435 bytes .../typing_extensions.cpython-311.pyc | Bin 0 -> 131605 bytes .../pip/_vendor/cachecontrol/__init__.py | 18 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 862 bytes .../__pycache__/_cmd.cpython-311.pyc | Bin 0 -> 2717 bytes .../__pycache__/adapter.cpython-311.pyc | Bin 0 -> 5524 bytes .../__pycache__/cache.cpython-311.pyc | Bin 0 -> 3798 bytes .../__pycache__/compat.cpython-311.pyc | Bin 0 -> 1155 bytes .../__pycache__/controller.cpython-311.pyc | Bin 0 -> 16470 bytes .../__pycache__/filewrapper.cpython-311.pyc | Bin 0 -> 4257 bytes .../__pycache__/heuristics.cpython-311.pyc | Bin 0 -> 6702 bytes .../__pycache__/serialize.cpython-311.pyc | Bin 0 -> 8417 bytes .../__pycache__/wrapper.cpython-311.pyc | Bin 0 -> 983 bytes .../pip/_vendor/cachecontrol/_cmd.py | 61 + .../pip/_vendor/cachecontrol/adapter.py | 137 + .../pip/_vendor/cachecontrol/cache.py | 65 + .../_vendor/cachecontrol/caches/__init__.py | 9 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 437 bytes .../__pycache__/file_cache.cpython-311.pyc | Bin 0 -> 8420 bytes .../__pycache__/redis_cache.cpython-311.pyc | Bin 0 -> 2517 bytes .../_vendor/cachecontrol/caches/file_cache.py | 188 + .../cachecontrol/caches/redis_cache.py | 39 + .../pip/_vendor/cachecontrol/compat.py | 32 + .../pip/_vendor/cachecontrol/controller.py | 439 + .../pip/_vendor/cachecontrol/filewrapper.py | 111 + .../pip/_vendor/cachecontrol/heuristics.py | 139 + .../pip/_vendor/cachecontrol/serialize.py | 190 + .../pip/_vendor/cachecontrol/wrapper.py | 33 + .../pip/_vendor/certifi/__init__.py | 4 + .../pip/_vendor/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 362 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 763 bytes .../certifi/__pycache__/core.cpython-311.pyc | Bin 0 -> 3385 bytes .../pip/_vendor/certifi/cacert.pem | 4589 +++++++++ .../site-packages/pip/_vendor/certifi/core.py | 108 + .../pip/_vendor/chardet/__init__.py | 115 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 5094 bytes .../__pycache__/big5freq.cpython-311.pyc | Bin 0 -> 27224 bytes .../__pycache__/big5prober.cpython-311.pyc | Bin 0 -> 1699 bytes .../chardistribution.cpython-311.pyc | Bin 0 -> 11291 bytes .../charsetgroupprober.cpython-311.pyc | Bin 0 -> 4321 bytes .../__pycache__/charsetprober.cpython-311.pyc | Bin 0 -> 5567 bytes .../codingstatemachine.cpython-311.pyc | Bin 0 -> 4018 bytes .../codingstatemachinedict.cpython-311.pyc | Bin 0 -> 974 bytes .../__pycache__/cp949prober.cpython-311.pyc | Bin 0 -> 1708 bytes .../chardet/__pycache__/enums.cpython-311.pyc | Bin 0 -> 3409 bytes .../__pycache__/escprober.cpython-311.pyc | Bin 0 -> 4925 bytes .../chardet/__pycache__/escsm.cpython-311.pyc | Bin 0 -> 12664 bytes .../__pycache__/eucjpprober.cpython-311.pyc | Bin 0 -> 4751 bytes .../__pycache__/euckrfreq.cpython-311.pyc | Bin 0 -> 12107 bytes .../__pycache__/euckrprober.cpython-311.pyc | Bin 0 -> 1700 bytes .../__pycache__/euctwfreq.cpython-311.pyc | Bin 0 -> 27229 bytes .../__pycache__/euctwprober.cpython-311.pyc | Bin 0 -> 1700 bytes .../__pycache__/gb2312freq.cpython-311.pyc | Bin 0 -> 19151 bytes .../__pycache__/gb2312prober.cpython-311.pyc | Bin 0 -> 1715 bytes .../__pycache__/hebrewprober.cpython-311.pyc | Bin 0 -> 5704 bytes .../__pycache__/jisfreq.cpython-311.pyc | Bin 0 -> 22180 bytes .../__pycache__/johabfreq.cpython-311.pyc | Bin 0 -> 84684 bytes .../__pycache__/johabprober.cpython-311.pyc | Bin 0 -> 1706 bytes .../__pycache__/jpcntx.cpython-311.pyc | Bin 0 -> 40188 bytes .../langbulgarianmodel.cpython-311.pyc | Bin 0 -> 85858 bytes .../langgreekmodel.cpython-311.pyc | Bin 0 -> 79280 bytes .../langhebrewmodel.cpython-311.pyc | Bin 0 -> 80042 bytes .../langhungarianmodel.cpython-311.pyc | Bin 0 -> 85812 bytes .../langrussianmodel.cpython-311.pyc | Bin 0 -> 108759 bytes .../__pycache__/langthaimodel.cpython-311.pyc | Bin 0 -> 80220 bytes .../langturkishmodel.cpython-311.pyc | Bin 0 -> 80059 bytes .../__pycache__/latin1prober.cpython-311.pyc | Bin 0 -> 7355 bytes .../macromanprober.cpython-311.pyc | Bin 0 -> 7522 bytes .../mbcharsetprober.cpython-311.pyc | Bin 0 -> 4143 bytes .../mbcsgroupprober.cpython-311.pyc | Bin 0 -> 2013 bytes .../__pycache__/mbcssm.cpython-311.pyc | Bin 0 -> 31753 bytes .../__pycache__/resultdict.cpython-311.pyc | Bin 0 -> 792 bytes .../sbcharsetprober.cpython-311.pyc | Bin 0 -> 6418 bytes .../sbcsgroupprober.cpython-311.pyc | Bin 0 -> 2963 bytes .../__pycache__/sjisprober.cpython-311.pyc | Bin 0 -> 4856 bytes .../universaldetector.cpython-311.pyc | Bin 0 -> 12484 bytes .../__pycache__/utf1632prober.cpython-311.pyc | Bin 0 -> 10604 bytes .../__pycache__/utf8prober.cpython-311.pyc | Bin 0 -> 3491 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 527 bytes .../pip/_vendor/chardet/big5freq.py | 386 + .../pip/_vendor/chardet/big5prober.py | 47 + .../pip/_vendor/chardet/chardistribution.py | 261 + .../pip/_vendor/chardet/charsetgroupprober.py | 106 + .../pip/_vendor/chardet/charsetprober.py | 147 + .../pip/_vendor/chardet/cli/__init__.py | 0 .../cli/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 224 bytes .../__pycache__/chardetect.cpython-311.pyc | Bin 0 -> 4363 bytes .../pip/_vendor/chardet/cli/chardetect.py | 112 + .../pip/_vendor/chardet/codingstatemachine.py | 90 + .../_vendor/chardet/codingstatemachinedict.py | 19 + .../pip/_vendor/chardet/cp949prober.py | 49 + .../pip/_vendor/chardet/enums.py | 85 + .../pip/_vendor/chardet/escprober.py | 102 + .../pip/_vendor/chardet/escsm.py | 261 + .../pip/_vendor/chardet/eucjpprober.py | 102 + .../pip/_vendor/chardet/euckrfreq.py | 196 + .../pip/_vendor/chardet/euckrprober.py | 47 + .../pip/_vendor/chardet/euctwfreq.py | 388 + .../pip/_vendor/chardet/euctwprober.py | 47 + .../pip/_vendor/chardet/gb2312freq.py | 284 + .../pip/_vendor/chardet/gb2312prober.py | 47 + .../pip/_vendor/chardet/hebrewprober.py | 316 + .../pip/_vendor/chardet/jisfreq.py | 325 + .../pip/_vendor/chardet/johabfreq.py | 2382 +++++ .../pip/_vendor/chardet/johabprober.py | 47 + .../pip/_vendor/chardet/jpcntx.py | 238 + .../pip/_vendor/chardet/langbulgarianmodel.py | 4649 +++++++++ .../pip/_vendor/chardet/langgreekmodel.py | 4397 +++++++++ .../pip/_vendor/chardet/langhebrewmodel.py | 4380 +++++++++ .../pip/_vendor/chardet/langhungarianmodel.py | 4649 +++++++++ .../pip/_vendor/chardet/langrussianmodel.py | 5725 +++++++++++ .../pip/_vendor/chardet/langthaimodel.py | 4380 +++++++++ .../pip/_vendor/chardet/langturkishmodel.py | 4380 +++++++++ .../pip/_vendor/chardet/latin1prober.py | 147 + .../pip/_vendor/chardet/macromanprober.py | 162 + .../pip/_vendor/chardet/mbcharsetprober.py | 95 + .../pip/_vendor/chardet/mbcsgroupprober.py | 57 + .../pip/_vendor/chardet/mbcssm.py | 661 ++ .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 229 bytes .../__pycache__/languages.cpython-311.pyc | Bin 0 -> 10829 bytes .../pip/_vendor/chardet/metadata/languages.py | 352 + .../pip/_vendor/chardet/resultdict.py | 16 + .../pip/_vendor/chardet/sbcharsetprober.py | 162 + .../pip/_vendor/chardet/sbcsgroupprober.py | 88 + .../pip/_vendor/chardet/sjisprober.py | 105 + .../pip/_vendor/chardet/universaldetector.py | 362 + .../pip/_vendor/chardet/utf1632prober.py | 225 + .../pip/_vendor/chardet/utf8prober.py | 82 + .../pip/_vendor/chardet/version.py | 9 + .../pip/_vendor/colorama/__init__.py | 7 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 596 bytes .../colorama/__pycache__/ansi.cpython-311.pyc | Bin 0 -> 4594 bytes .../__pycache__/ansitowin32.cpython-311.pyc | Bin 0 -> 16240 bytes .../__pycache__/initialise.cpython-311.pyc | Bin 0 -> 3957 bytes .../__pycache__/win32.cpython-311.pyc | Bin 0 -> 7945 bytes .../__pycache__/winterm.cpython-311.pyc | Bin 0 -> 9171 bytes .../pip/_vendor/colorama/ansi.py | 102 + .../pip/_vendor/colorama/ansitowin32.py | 277 + .../pip/_vendor/colorama/initialise.py | 121 + .../pip/_vendor/colorama/tests/__init__.py | 1 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 227 bytes .../__pycache__/ansi_test.cpython-311.pyc | Bin 0 -> 5872 bytes .../ansitowin32_test.cpython-311.pyc | Bin 0 -> 21539 bytes .../initialise_test.cpython-311.pyc | Bin 0 -> 14166 bytes .../__pycache__/isatty_test.cpython-311.pyc | Bin 0 -> 6731 bytes .../tests/__pycache__/utils.cpython-311.pyc | Bin 0 -> 2906 bytes .../__pycache__/winterm_test.cpython-311.pyc | Bin 0 -> 7259 bytes .../pip/_vendor/colorama/tests/ansi_test.py | 76 + .../colorama/tests/ansitowin32_test.py | 294 + .../_vendor/colorama/tests/initialise_test.py | 189 + .../pip/_vendor/colorama/tests/isatty_test.py | 57 + .../pip/_vendor/colorama/tests/utils.py | 49 + .../_vendor/colorama/tests/winterm_test.py | 131 + .../pip/_vendor/colorama/win32.py | 180 + .../pip/_vendor/colorama/winterm.py | 195 + .../pip/_vendor/distlib/__init__.py | 23 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1465 bytes .../__pycache__/compat.cpython-311.pyc | Bin 0 -> 52331 bytes .../__pycache__/database.cpython-311.pyc | Bin 0 -> 72119 bytes .../distlib/__pycache__/index.cpython-311.pyc | Bin 0 -> 26708 bytes .../__pycache__/locators.cpython-311.pyc | Bin 0 -> 65884 bytes .../__pycache__/manifest.cpython-311.pyc | Bin 0 -> 17051 bytes .../__pycache__/markers.cpython-311.pyc | Bin 0 -> 8187 bytes .../__pycache__/metadata.cpython-311.pyc | Bin 0 -> 47135 bytes .../__pycache__/resources.cpython-311.pyc | Bin 0 -> 19014 bytes .../__pycache__/scripts.cpython-311.pyc | Bin 0 -> 21290 bytes .../distlib/__pycache__/util.cpython-311.pyc | Bin 0 -> 97469 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 34596 bytes .../distlib/__pycache__/wheel.cpython-311.pyc | Bin 0 -> 60400 bytes .../pip/_vendor/distlib/compat.py | 1116 +++ .../pip/_vendor/distlib/database.py | 1350 +++ .../pip/_vendor/distlib/index.py | 508 + .../pip/_vendor/distlib/locators.py | 1300 +++ .../pip/_vendor/distlib/manifest.py | 393 + .../pip/_vendor/distlib/markers.py | 152 + .../pip/_vendor/distlib/metadata.py | 1076 +++ .../pip/_vendor/distlib/resources.py | 358 + .../pip/_vendor/distlib/scripts.py | 437 + .../site-packages/pip/_vendor/distlib/t32.exe | Bin 0 -> 97792 bytes .../pip/_vendor/distlib/t64-arm.exe | Bin 0 -> 182784 bytes .../site-packages/pip/_vendor/distlib/t64.exe | Bin 0 -> 108032 bytes .../site-packages/pip/_vendor/distlib/util.py | 1932 ++++ .../pip/_vendor/distlib/version.py | 739 ++ .../site-packages/pip/_vendor/distlib/w32.exe | Bin 0 -> 91648 bytes .../pip/_vendor/distlib/w64-arm.exe | Bin 0 -> 168448 bytes .../site-packages/pip/_vendor/distlib/w64.exe | Bin 0 -> 101888 bytes .../pip/_vendor/distlib/wheel.py | 1082 +++ .../pip/_vendor/distro/__init__.py | 54 + .../pip/_vendor/distro/__main__.py | 4 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1218 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 352 bytes .../distro/__pycache__/distro.cpython-311.pyc | Bin 0 -> 57751 bytes .../pip/_vendor/distro/distro.py | 1399 +++ .../pip/_vendor/idna/__init__.py | 44 + .../idna/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1119 bytes .../idna/__pycache__/codec.cpython-311.pyc | Bin 0 -> 5410 bytes .../idna/__pycache__/compat.cpython-311.pyc | Bin 0 -> 1036 bytes .../idna/__pycache__/core.cpython-311.pyc | Bin 0 -> 19471 bytes .../idna/__pycache__/idnadata.cpython-311.pyc | Bin 0 -> 38995 bytes .../__pycache__/intranges.cpython-311.pyc | Bin 0 -> 3004 bytes .../__pycache__/package_data.cpython-311.pyc | Bin 0 -> 239 bytes .../__pycache__/uts46data.cpython-311.pyc | Bin 0 -> 163219 bytes .../site-packages/pip/_vendor/idna/codec.py | 112 + .../site-packages/pip/_vendor/idna/compat.py | 13 + .../site-packages/pip/_vendor/idna/core.py | 400 + .../pip/_vendor/idna/idnadata.py | 2151 +++++ .../pip/_vendor/idna/intranges.py | 54 + .../pip/_vendor/idna/package_data.py | 2 + .../pip/_vendor/idna/uts46data.py | 8600 +++++++++++++++++ .../pip/_vendor/msgpack/__init__.py | 57 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 2098 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 2399 bytes .../msgpack/__pycache__/ext.cpython-311.pyc | Bin 0 -> 9184 bytes .../__pycache__/fallback.cpython-311.pyc | Bin 0 -> 47172 bytes .../pip/_vendor/msgpack/exceptions.py | 48 + .../site-packages/pip/_vendor/msgpack/ext.py | 193 + .../pip/_vendor/msgpack/fallback.py | 1010 ++ .../pip/_vendor/packaging/__about__.py | 26 + .../pip/_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-311.pyc | Bin 0 -> 663 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 584 bytes .../__pycache__/_manylinux.cpython-311.pyc | Bin 0 -> 13250 bytes .../__pycache__/_musllinux.cpython-311.pyc | Bin 0 -> 8018 bytes .../__pycache__/_structures.cpython-311.pyc | Bin 0 -> 3706 bytes .../__pycache__/markers.cpython-311.pyc | Bin 0 -> 16546 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 0 -> 7661 bytes .../__pycache__/specifiers.cpython-311.pyc | Bin 0 -> 34384 bytes .../__pycache__/tags.cpython-311.pyc | Bin 0 -> 21369 bytes .../__pycache__/utils.cpython-311.pyc | Bin 0 -> 6704 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 21896 bytes .../pip/_vendor/packaging/_manylinux.py | 301 + .../pip/_vendor/packaging/_musllinux.py | 136 + .../pip/_vendor/packaging/_structures.py | 61 + .../pip/_vendor/packaging/markers.py | 304 + .../pip/_vendor/packaging/requirements.py | 146 + .../pip/_vendor/packaging/specifiers.py | 802 ++ .../pip/_vendor/packaging/tags.py | 487 + .../pip/_vendor/packaging/utils.py | 136 + .../pip/_vendor/packaging/version.py | 504 + .../pip/_vendor/pkg_resources/__init__.py | 3361 +++++++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 160164 bytes .../pip/_vendor/platformdirs/__init__.py | 566 ++ .../pip/_vendor/platformdirs/__main__.py | 53 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 17517 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 2297 bytes .../__pycache__/android.cpython-311.pyc | Bin 0 -> 10483 bytes .../__pycache__/api.cpython-311.pyc | Bin 0 -> 10576 bytes .../__pycache__/macos.cpython-311.pyc | Bin 0 -> 6088 bytes .../__pycache__/unix.cpython-311.pyc | Bin 0 -> 13794 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 334 bytes .../__pycache__/windows.cpython-311.pyc | Bin 0 -> 13962 bytes .../pip/_vendor/platformdirs/android.py | 210 + .../pip/_vendor/platformdirs/api.py | 223 + .../pip/_vendor/platformdirs/macos.py | 91 + .../pip/_vendor/platformdirs/unix.py | 223 + .../pip/_vendor/platformdirs/version.py | 4 + .../pip/_vendor/platformdirs/windows.py | 255 + .../pip/_vendor/pygments/__init__.py | 82 + .../pip/_vendor/pygments/__main__.py | 17 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 3853 bytes .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 802 bytes .../__pycache__/cmdline.cpython-311.pyc | Bin 0 -> 30313 bytes .../__pycache__/console.cpython-311.pyc | Bin 0 -> 3065 bytes .../__pycache__/filter.cpython-311.pyc | Bin 0 -> 3526 bytes .../__pycache__/formatter.cpython-311.pyc | Bin 0 -> 4841 bytes .../__pycache__/lexer.cpython-311.pyc | Bin 0 -> 42329 bytes .../__pycache__/modeline.cpython-311.pyc | Bin 0 -> 1745 bytes .../__pycache__/plugin.cpython-311.pyc | Bin 0 -> 3758 bytes .../__pycache__/regexopt.cpython-311.pyc | Bin 0 -> 5052 bytes .../__pycache__/scanner.cpython-311.pyc | Bin 0 -> 4907 bytes .../__pycache__/sphinxext.cpython-311.pyc | Bin 0 -> 12852 bytes .../__pycache__/style.cpython-311.pyc | Bin 0 -> 7446 bytes .../__pycache__/token.cpython-311.pyc | Bin 0 -> 7486 bytes .../__pycache__/unistring.cpython-311.pyc | Bin 0 -> 33859 bytes .../pygments/__pycache__/util.cpython-311.pyc | Bin 0 -> 15711 bytes .../pip/_vendor/pygments/cmdline.py | 668 ++ .../pip/_vendor/pygments/console.py | 70 + .../pip/_vendor/pygments/filter.py | 71 + .../pip/_vendor/pygments/filters/__init__.py | 940 ++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 40126 bytes .../pip/_vendor/pygments/formatter.py | 124 + .../_vendor/pygments/formatters/__init__.py | 158 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 7784 bytes .../__pycache__/_mapping.cpython-311.pyc | Bin 0 -> 4244 bytes .../__pycache__/bbcode.cpython-311.pyc | Bin 0 -> 4500 bytes .../__pycache__/groff.cpython-311.pyc | Bin 0 -> 7873 bytes .../__pycache__/html.cpython-311.pyc | Bin 0 -> 42662 bytes .../__pycache__/img.cpython-311.pyc | Bin 0 -> 28590 bytes .../__pycache__/irc.cpython-311.pyc | Bin 0 -> 6426 bytes .../__pycache__/latex.cpython-311.pyc | Bin 0 -> 21826 bytes .../__pycache__/other.cpython-311.pyc | Bin 0 -> 7654 bytes .../__pycache__/pangomarkup.cpython-311.pyc | Bin 0 -> 3198 bytes .../__pycache__/rtf.cpython-311.pyc | Bin 0 -> 6865 bytes .../__pycache__/svg.cpython-311.pyc | Bin 0 -> 9685 bytes .../__pycache__/terminal.cpython-311.pyc | Bin 0 -> 6064 bytes .../__pycache__/terminal256.cpython-311.pyc | Bin 0 -> 16430 bytes .../_vendor/pygments/formatters/_mapping.py | 23 + .../pip/_vendor/pygments/formatters/bbcode.py | 108 + .../pip/_vendor/pygments/formatters/groff.py | 170 + .../pip/_vendor/pygments/formatters/html.py | 989 ++ .../pip/_vendor/pygments/formatters/img.py | 645 ++ .../pip/_vendor/pygments/formatters/irc.py | 154 + .../pip/_vendor/pygments/formatters/latex.py | 521 + .../pip/_vendor/pygments/formatters/other.py | 161 + .../pygments/formatters/pangomarkup.py | 83 + .../pip/_vendor/pygments/formatters/rtf.py | 146 + .../pip/_vendor/pygments/formatters/svg.py | 188 + .../_vendor/pygments/formatters/terminal.py | 127 + .../pygments/formatters/terminal256.py | 338 + .../pip/_vendor/pygments/lexer.py | 943 ++ .../pip/_vendor/pygments/lexers/__init__.py | 362 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 16370 bytes .../__pycache__/_mapping.cpython-311.pyc | Bin 0 -> 64812 bytes .../lexers/__pycache__/python.cpython-311.pyc | Bin 0 -> 43326 bytes .../pip/_vendor/pygments/lexers/_mapping.py | 559 ++ .../pip/_vendor/pygments/lexers/python.py | 1198 +++ .../pip/_vendor/pygments/modeline.py | 43 + .../pip/_vendor/pygments/plugin.py | 88 + .../pip/_vendor/pygments/regexopt.py | 91 + .../pip/_vendor/pygments/scanner.py | 104 + .../pip/_vendor/pygments/sphinxext.py | 217 + .../pip/_vendor/pygments/style.py | 197 + .../pip/_vendor/pygments/styles/__init__.py | 103 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 4701 bytes .../pip/_vendor/pygments/token.py | 213 + .../pip/_vendor/pygments/unistring.py | 153 + .../pip/_vendor/pygments/util.py | 330 + .../pip/_vendor/pyparsing/__init__.py | 322 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 8250 bytes .../__pycache__/actions.cpython-311.pyc | Bin 0 -> 9141 bytes .../__pycache__/common.cpython-311.pyc | Bin 0 -> 14888 bytes .../__pycache__/core.cpython-311.pyc | Bin 0 -> 295461 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 13728 bytes .../__pycache__/helpers.cpython-311.pyc | Bin 0 -> 54147 bytes .../__pycache__/results.cpython-311.pyc | Bin 0 -> 37868 bytes .../__pycache__/testing.cpython-311.pyc | Bin 0 -> 19531 bytes .../__pycache__/unicode.cpython-311.pyc | Bin 0 -> 15219 bytes .../__pycache__/util.cpython-311.pyc | Bin 0 -> 16802 bytes .../pip/_vendor/pyparsing/actions.py | 217 + .../pip/_vendor/pyparsing/common.py | 432 + .../pip/_vendor/pyparsing/core.py | 6115 ++++++++++++ .../pip/_vendor/pyparsing/diagram/__init__.py | 656 ++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 28810 bytes .../pip/_vendor/pyparsing/exceptions.py | 299 + .../pip/_vendor/pyparsing/helpers.py | 1100 +++ .../pip/_vendor/pyparsing/results.py | 796 ++ .../pip/_vendor/pyparsing/testing.py | 331 + .../pip/_vendor/pyparsing/unicode.py | 361 + .../pip/_vendor/pyparsing/util.py | 284 + .../pip/_vendor/pyproject_hooks/__init__.py | 23 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 727 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 0 -> 425 bytes .../__pycache__/_impl.cpython-311.pyc | Bin 0 -> 16691 bytes .../pip/_vendor/pyproject_hooks/_compat.py | 8 + .../pip/_vendor/pyproject_hooks/_impl.py | 330 + .../pyproject_hooks/_in_process/__init__.py | 18 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1187 bytes .../__pycache__/_in_process.cpython-311.pyc | Bin 0 -> 16509 bytes .../_in_process/_in_process.py | 353 + .../pip/_vendor/requests/__init__.py | 182 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 6458 bytes .../__pycache__/__version__.cpython-311.pyc | Bin 0 -> 608 bytes .../_internal_utils.cpython-311.pyc | Bin 0 -> 2172 bytes .../__pycache__/adapters.cpython-311.pyc | Bin 0 -> 23225 bytes .../requests/__pycache__/api.cpython-311.pyc | Bin 0 -> 7525 bytes .../requests/__pycache__/auth.cpython-311.pyc | Bin 0 -> 14652 bytes .../__pycache__/certs.cpython-311.pyc | Bin 0 -> 1004 bytes .../__pycache__/compat.cpython-311.pyc | Bin 0 -> 1830 bytes .../__pycache__/cookies.cpython-311.pyc | Bin 0 -> 27132 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 8547 bytes .../requests/__pycache__/help.cpython-311.pyc | Bin 0 -> 4542 bytes .../__pycache__/hooks.cpython-311.pyc | Bin 0 -> 1272 bytes .../__pycache__/models.cpython-311.pyc | Bin 0 -> 38803 bytes .../__pycache__/packages.cpython-311.pyc | Bin 0 -> 852 bytes .../__pycache__/sessions.cpython-311.pyc | Bin 0 -> 29715 bytes .../__pycache__/status_codes.cpython-311.pyc | Bin 0 -> 6259 bytes .../__pycache__/structures.cpython-311.pyc | Bin 0 -> 6244 bytes .../__pycache__/utils.cpython-311.pyc | Bin 0 -> 40278 bytes .../pip/_vendor/requests/__version__.py | 14 + .../pip/_vendor/requests/_internal_utils.py | 50 + .../pip/_vendor/requests/adapters.py | 538 ++ .../site-packages/pip/_vendor/requests/api.py | 157 + .../pip/_vendor/requests/auth.py | 315 + .../pip/_vendor/requests/certs.py | 24 + .../pip/_vendor/requests/compat.py | 67 + .../pip/_vendor/requests/cookies.py | 561 ++ .../pip/_vendor/requests/exceptions.py | 141 + .../pip/_vendor/requests/help.py | 131 + .../pip/_vendor/requests/hooks.py | 33 + .../pip/_vendor/requests/models.py | 1034 ++ .../pip/_vendor/requests/packages.py | 16 + .../pip/_vendor/requests/sessions.py | 833 ++ .../pip/_vendor/requests/status_codes.py | 128 + .../pip/_vendor/requests/structures.py | 99 + .../pip/_vendor/requests/utils.py | 1094 +++ .../pip/_vendor/resolvelib/__init__.py | 26 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 775 bytes .../__pycache__/providers.cpython-311.pyc | Bin 0 -> 7093 bytes .../__pycache__/reporters.cpython-311.pyc | Bin 0 -> 2857 bytes .../__pycache__/resolvers.cpython-311.pyc | Bin 0 -> 29257 bytes .../__pycache__/structs.cpython-311.pyc | Bin 0 -> 11494 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 230 bytes .../collections_abc.cpython-311.pyc | Bin 0 -> 505 bytes .../resolvelib/compat/collections_abc.py | 6 + .../pip/_vendor/resolvelib/providers.py | 133 + .../pip/_vendor/resolvelib/reporters.py | 43 + .../pip/_vendor/resolvelib/resolvers.py | 547 ++ .../pip/_vendor/resolvelib/structs.py | 170 + .../pip/_vendor/rich/__init__.py | 177 + .../pip/_vendor/rich/__main__.py | 274 + .../rich/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 7518 bytes .../rich/__pycache__/__main__.cpython-311.pyc | Bin 0 -> 11596 bytes .../__pycache__/_cell_widths.cpython-311.pyc | Bin 0 -> 7857 bytes .../__pycache__/_emoji_codes.cpython-311.pyc | Bin 0 -> 208544 bytes .../_emoji_replace.cpython-311.pyc | Bin 0 -> 1956 bytes .../_export_format.cpython-311.pyc | Bin 0 -> 2347 bytes .../__pycache__/_extension.cpython-311.pyc | Bin 0 -> 657 bytes .../rich/__pycache__/_fileno.cpython-311.pyc | Bin 0 -> 999 bytes .../rich/__pycache__/_inspect.cpython-311.pyc | Bin 0 -> 14209 bytes .../__pycache__/_log_render.cpython-311.pyc | Bin 0 -> 4791 bytes .../rich/__pycache__/_loop.cpython-311.pyc | Bin 0 -> 2137 bytes .../__pycache__/_null_file.cpython-311.pyc | Bin 0 -> 4196 bytes .../__pycache__/_palettes.cpython-311.pyc | Bin 0 -> 5273 bytes .../rich/__pycache__/_pick.cpython-311.pyc | Bin 0 -> 818 bytes .../rich/__pycache__/_ratio.cpython-311.pyc | Bin 0 -> 7956 bytes .../__pycache__/_spinners.cpython-311.pyc | Bin 0 -> 13706 bytes .../rich/__pycache__/_stack.cpython-311.pyc | Bin 0 -> 1152 bytes .../rich/__pycache__/_timer.cpython-311.pyc | Bin 0 -> 1005 bytes .../_win32_console.cpython-311.pyc | Bin 0 -> 30193 bytes .../rich/__pycache__/_windows.cpython-311.pyc | Bin 0 -> 2852 bytes .../_windows_renderer.cpython-311.pyc | Bin 0 -> 4043 bytes .../rich/__pycache__/_wrap.cpython-311.pyc | Bin 0 -> 2808 bytes .../rich/__pycache__/abc.cpython-311.pyc | Bin 0 -> 1949 bytes .../rich/__pycache__/align.cpython-311.pyc | Bin 0 -> 13491 bytes .../rich/__pycache__/ansi.cpython-311.pyc | Bin 0 -> 10522 bytes .../rich/__pycache__/bar.cpython-311.pyc | Bin 0 -> 4571 bytes .../rich/__pycache__/box.cpython-311.pyc | Bin 0 -> 13013 bytes .../rich/__pycache__/cells.cpython-311.pyc | Bin 0 -> 6643 bytes .../rich/__pycache__/color.cpython-311.pyc | Bin 0 -> 27827 bytes .../__pycache__/color_triplet.cpython-311.pyc | Bin 0 -> 1897 bytes .../rich/__pycache__/columns.cpython-311.pyc | Bin 0 -> 10668 bytes .../rich/__pycache__/console.cpython-311.pyc | Bin 0 -> 123771 bytes .../__pycache__/constrain.cpython-311.pyc | Bin 0 -> 2489 bytes .../__pycache__/containers.cpython-311.pyc | Bin 0 -> 10830 bytes .../rich/__pycache__/control.cpython-311.pyc | Bin 0 -> 11921 bytes .../default_styles.cpython-311.pyc | Bin 0 -> 12624 bytes .../rich/__pycache__/diagnose.cpython-311.pyc | Bin 0 -> 1844 bytes .../rich/__pycache__/emoji.cpython-311.pyc | Bin 0 -> 4822 bytes .../rich/__pycache__/errors.cpython-311.pyc | Bin 0 -> 2353 bytes .../__pycache__/file_proxy.cpython-311.pyc | Bin 0 -> 4057 bytes .../rich/__pycache__/filesize.cpython-311.pyc | Bin 0 -> 3325 bytes .../__pycache__/highlighter.cpython-311.pyc | Bin 0 -> 11011 bytes .../rich/__pycache__/json.cpython-311.pyc | Bin 0 -> 6568 bytes .../rich/__pycache__/jupyter.cpython-311.pyc | Bin 0 -> 6428 bytes .../rich/__pycache__/layout.cpython-311.pyc | Bin 0 -> 23335 bytes .../rich/__pycache__/live.cpython-311.pyc | Bin 0 -> 21321 bytes .../__pycache__/live_render.cpython-311.pyc | Bin 0 -> 5169 bytes .../rich/__pycache__/logging.cpython-311.pyc | Bin 0 -> 14540 bytes .../rich/__pycache__/markup.cpython-311.pyc | Bin 0 -> 10462 bytes .../rich/__pycache__/measure.cpython-311.pyc | Bin 0 -> 7295 bytes .../rich/__pycache__/padding.cpython-311.pyc | Bin 0 -> 7511 bytes .../rich/__pycache__/pager.cpython-311.pyc | Bin 0 -> 2269 bytes .../rich/__pycache__/palette.cpython-311.pyc | Bin 0 -> 6002 bytes .../rich/__pycache__/panel.cpython-311.pyc | Bin 0 -> 12758 bytes .../rich/__pycache__/pretty.cpython-311.pyc | Bin 0 -> 44372 bytes .../rich/__pycache__/progress.cpython-311.pyc | Bin 0 -> 82638 bytes .../__pycache__/progress_bar.cpython-311.pyc | Bin 0 -> 11036 bytes .../rich/__pycache__/prompt.cpython-311.pyc | Bin 0 -> 16402 bytes .../rich/__pycache__/protocol.cpython-311.pyc | Bin 0 -> 2120 bytes .../rich/__pycache__/region.cpython-311.pyc | Bin 0 -> 683 bytes .../rich/__pycache__/repr.cpython-311.pyc | Bin 0 -> 7650 bytes .../rich/__pycache__/rule.cpython-311.pyc | Bin 0 -> 7189 bytes .../rich/__pycache__/scope.cpython-311.pyc | Bin 0 -> 4375 bytes .../rich/__pycache__/screen.cpython-311.pyc | Bin 0 -> 2798 bytes .../rich/__pycache__/segment.cpython-311.pyc | Bin 0 -> 31628 bytes .../rich/__pycache__/spinner.cpython-311.pyc | Bin 0 -> 6904 bytes .../rich/__pycache__/status.cpython-311.pyc | Bin 0 -> 6782 bytes .../rich/__pycache__/style.cpython-311.pyc | Bin 0 -> 35222 bytes .../rich/__pycache__/styled.cpython-311.pyc | Bin 0 -> 2463 bytes .../rich/__pycache__/syntax.cpython-311.pyc | Bin 0 -> 42673 bytes .../rich/__pycache__/table.cpython-311.pyc | Bin 0 -> 48824 bytes .../terminal_theme.cpython-311.pyc | Bin 0 -> 3729 bytes .../rich/__pycache__/text.cpython-311.pyc | Bin 0 -> 64982 bytes .../rich/__pycache__/theme.cpython-311.pyc | Bin 0 -> 7328 bytes .../rich/__pycache__/themes.cpython-311.pyc | Bin 0 -> 379 bytes .../__pycache__/traceback.cpython-311.pyc | Bin 0 -> 34591 bytes .../rich/__pycache__/tree.cpython-311.pyc | Bin 0 -> 12550 bytes .../pip/_vendor/rich/_cell_widths.py | 451 + .../pip/_vendor/rich/_emoji_codes.py | 3610 +++++++ .../pip/_vendor/rich/_emoji_replace.py | 32 + .../pip/_vendor/rich/_export_format.py | 76 + .../pip/_vendor/rich/_extension.py | 10 + .../site-packages/pip/_vendor/rich/_fileno.py | 24 + .../pip/_vendor/rich/_inspect.py | 270 + .../pip/_vendor/rich/_log_render.py | 94 + .../site-packages/pip/_vendor/rich/_loop.py | 43 + .../pip/_vendor/rich/_null_file.py | 69 + .../pip/_vendor/rich/_palettes.py | 309 + .../site-packages/pip/_vendor/rich/_pick.py | 17 + .../site-packages/pip/_vendor/rich/_ratio.py | 160 + .../pip/_vendor/rich/_spinners.py | 482 + .../site-packages/pip/_vendor/rich/_stack.py | 16 + .../site-packages/pip/_vendor/rich/_timer.py | 19 + .../pip/_vendor/rich/_win32_console.py | 662 ++ .../pip/_vendor/rich/_windows.py | 72 + .../pip/_vendor/rich/_windows_renderer.py | 56 + .../site-packages/pip/_vendor/rich/_wrap.py | 56 + .../site-packages/pip/_vendor/rich/abc.py | 33 + .../site-packages/pip/_vendor/rich/align.py | 311 + .../site-packages/pip/_vendor/rich/ansi.py | 240 + .../site-packages/pip/_vendor/rich/bar.py | 94 + .../site-packages/pip/_vendor/rich/box.py | 517 + .../site-packages/pip/_vendor/rich/cells.py | 154 + .../site-packages/pip/_vendor/rich/color.py | 622 ++ .../pip/_vendor/rich/color_triplet.py | 38 + .../site-packages/pip/_vendor/rich/columns.py | 187 + .../site-packages/pip/_vendor/rich/console.py | 2633 +++++ .../pip/_vendor/rich/constrain.py | 37 + .../pip/_vendor/rich/containers.py | 167 + .../site-packages/pip/_vendor/rich/control.py | 225 + .../pip/_vendor/rich/default_styles.py | 190 + .../pip/_vendor/rich/diagnose.py | 37 + .../site-packages/pip/_vendor/rich/emoji.py | 96 + .../site-packages/pip/_vendor/rich/errors.py | 34 + .../pip/_vendor/rich/file_proxy.py | 57 + .../pip/_vendor/rich/filesize.py | 89 + .../pip/_vendor/rich/highlighter.py | 232 + .../site-packages/pip/_vendor/rich/json.py | 140 + .../site-packages/pip/_vendor/rich/jupyter.py | 101 + .../site-packages/pip/_vendor/rich/layout.py | 443 + .../site-packages/pip/_vendor/rich/live.py | 375 + .../pip/_vendor/rich/live_render.py | 113 + .../site-packages/pip/_vendor/rich/logging.py | 289 + .../site-packages/pip/_vendor/rich/markup.py | 246 + .../site-packages/pip/_vendor/rich/measure.py | 151 + .../site-packages/pip/_vendor/rich/padding.py | 141 + .../site-packages/pip/_vendor/rich/pager.py | 34 + .../site-packages/pip/_vendor/rich/palette.py | 100 + .../site-packages/pip/_vendor/rich/panel.py | 308 + .../site-packages/pip/_vendor/rich/pretty.py | 994 ++ .../pip/_vendor/rich/progress.py | 1702 ++++ .../pip/_vendor/rich/progress_bar.py | 224 + .../site-packages/pip/_vendor/rich/prompt.py | 376 + .../pip/_vendor/rich/protocol.py | 42 + .../site-packages/pip/_vendor/rich/region.py | 10 + .../site-packages/pip/_vendor/rich/repr.py | 149 + .../site-packages/pip/_vendor/rich/rule.py | 130 + .../site-packages/pip/_vendor/rich/scope.py | 86 + .../site-packages/pip/_vendor/rich/screen.py | 54 + .../site-packages/pip/_vendor/rich/segment.py | 739 ++ .../site-packages/pip/_vendor/rich/spinner.py | 137 + .../site-packages/pip/_vendor/rich/status.py | 132 + .../site-packages/pip/_vendor/rich/style.py | 796 ++ .../site-packages/pip/_vendor/rich/styled.py | 42 + .../site-packages/pip/_vendor/rich/syntax.py | 948 ++ .../site-packages/pip/_vendor/rich/table.py | 1002 ++ .../pip/_vendor/rich/terminal_theme.py | 153 + .../site-packages/pip/_vendor/rich/text.py | 1307 +++ .../site-packages/pip/_vendor/rich/theme.py | 115 + .../site-packages/pip/_vendor/rich/themes.py | 5 + .../pip/_vendor/rich/traceback.py | 756 ++ .../site-packages/pip/_vendor/rich/tree.py | 251 + .../site-packages/pip/_vendor/six.py | 998 ++ .../pip/_vendor/tenacity/__init__.py | 608 ++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 29070 bytes .../__pycache__/_asyncio.cpython-311.pyc | Bin 0 -> 5246 bytes .../__pycache__/_utils.cpython-311.pyc | Bin 0 -> 2586 bytes .../__pycache__/after.cpython-311.pyc | Bin 0 -> 1781 bytes .../__pycache__/before.cpython-311.pyc | Bin 0 -> 1615 bytes .../__pycache__/before_sleep.cpython-311.pyc | Bin 0 -> 2398 bytes .../tenacity/__pycache__/nap.cpython-311.pyc | Bin 0 -> 1589 bytes .../__pycache__/retry.cpython-311.pyc | Bin 0 -> 15965 bytes .../tenacity/__pycache__/stop.cpython-311.pyc | Bin 0 -> 6318 bytes .../__pycache__/tornadoweb.cpython-311.pyc | Bin 0 -> 2935 bytes .../tenacity/__pycache__/wait.cpython-311.pyc | Bin 0 -> 13324 bytes .../pip/_vendor/tenacity/_asyncio.py | 94 + .../pip/_vendor/tenacity/_utils.py | 76 + .../pip/_vendor/tenacity/after.py | 51 + .../pip/_vendor/tenacity/before.py | 46 + .../pip/_vendor/tenacity/before_sleep.py | 71 + .../site-packages/pip/_vendor/tenacity/nap.py | 43 + .../pip/_vendor/tenacity/retry.py | 272 + .../pip/_vendor/tenacity/stop.py | 103 + .../pip/_vendor/tenacity/tornadoweb.py | 59 + .../pip/_vendor/tenacity/wait.py | 228 + .../pip/_vendor/tomli/__init__.py | 11 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 434 bytes .../tomli/__pycache__/_parser.cpython-311.pyc | Bin 0 -> 30873 bytes .../tomli/__pycache__/_re.cpython-311.pyc | Bin 0 -> 4513 bytes .../tomli/__pycache__/_types.cpython-311.pyc | Bin 0 -> 426 bytes .../pip/_vendor/tomli/_parser.py | 691 ++ .../site-packages/pip/_vendor/tomli/_re.py | 107 + .../site-packages/pip/_vendor/tomli/_types.py | 10 + .../pip/_vendor/typing_extensions.py | 3072 ++++++ .../pip/_vendor/urllib3/__init__.py | 102 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 3732 bytes .../__pycache__/_collections.cpython-311.pyc | Bin 0 -> 18320 bytes .../__pycache__/_version.cpython-311.pyc | Bin 0 -> 242 bytes .../__pycache__/connection.cpython-311.pyc | Bin 0 -> 22088 bytes .../connectionpool.cpython-311.pyc | Bin 0 -> 38300 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 16146 bytes .../__pycache__/fields.cpython-311.pyc | Bin 0 -> 11439 bytes .../__pycache__/filepost.cpython-311.pyc | Bin 0 -> 4520 bytes .../__pycache__/poolmanager.cpython-311.pyc | Bin 0 -> 21638 bytes .../__pycache__/request.cpython-311.pyc | Bin 0 -> 6683 bytes .../__pycache__/response.cpython-311.pyc | Bin 0 -> 36566 bytes .../pip/_vendor/urllib3/_collections.py | 337 + .../pip/_vendor/urllib3/_version.py | 2 + .../pip/_vendor/urllib3/connection.py | 572 ++ .../pip/_vendor/urllib3/connectionpool.py | 1132 +++ .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 228 bytes .../_appengine_environ.cpython-311.pyc | Bin 0 -> 1967 bytes .../__pycache__/appengine.cpython-311.pyc | Bin 0 -> 12174 bytes .../__pycache__/ntlmpool.cpython-311.pyc | Bin 0 -> 6251 bytes .../__pycache__/pyopenssl.cpython-311.pyc | Bin 0 -> 25760 bytes .../securetransport.cpython-311.pyc | Bin 0 -> 36867 bytes .../contrib/__pycache__/socks.cpython-311.pyc | Bin 0 -> 8112 bytes .../urllib3/contrib/_appengine_environ.py | 36 + .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 245 bytes .../__pycache__/bindings.cpython-311.pyc | Bin 0 -> 16992 bytes .../__pycache__/low_level.cpython-311.pyc | Bin 0 -> 15629 bytes .../contrib/_securetransport/bindings.py | 519 + .../contrib/_securetransport/low_level.py | 397 + .../pip/_vendor/urllib3/contrib/appengine.py | 314 + .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 + .../pip/_vendor/urllib3/contrib/pyopenssl.py | 518 + .../urllib3/contrib/securetransport.py | 921 ++ .../pip/_vendor/urllib3/contrib/socks.py | 216 + .../pip/_vendor/urllib3/exceptions.py | 323 + .../pip/_vendor/urllib3/fields.py | 274 + .../pip/_vendor/urllib3/filepost.py | 98 + .../pip/_vendor/urllib3/packages/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 229 bytes .../packages/__pycache__/six.cpython-311.pyc | Bin 0 -> 46471 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 239 bytes .../__pycache__/makefile.cpython-311.pyc | Bin 0 -> 1986 bytes .../weakref_finalize.cpython-311.pyc | Bin 0 -> 8014 bytes .../urllib3/packages/backports/makefile.py | 51 + .../packages/backports/weakref_finalize.py | 155 + .../pip/_vendor/urllib3/packages/six.py | 1076 +++ .../pip/_vendor/urllib3/poolmanager.py | 537 + .../pip/_vendor/urllib3/request.py | 170 + .../pip/_vendor/urllib3/response.py | 879 ++ .../pip/_vendor/urllib3/util/__init__.py | 49 + .../util/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1431 bytes .../__pycache__/connection.cpython-311.pyc | Bin 0 -> 5158 bytes .../util/__pycache__/proxy.cpython-311.pyc | Bin 0 -> 1740 bytes .../util/__pycache__/queue.cpython-311.pyc | Bin 0 -> 1523 bytes .../util/__pycache__/request.cpython-311.pyc | Bin 0 -> 4643 bytes .../util/__pycache__/response.cpython-311.pyc | Bin 0 -> 3512 bytes .../util/__pycache__/retry.cpython-311.pyc | Bin 0 -> 22780 bytes .../util/__pycache__/ssl_.cpython-311.pyc | Bin 0 -> 16843 bytes .../ssl_match_hostname.cpython-311.pyc | Bin 0 -> 5822 bytes .../__pycache__/ssltransport.cpython-311.pyc | Bin 0 -> 11651 bytes .../util/__pycache__/timeout.cpython-311.pyc | Bin 0 -> 11365 bytes .../util/__pycache__/url.cpython-311.pyc | Bin 0 -> 17606 bytes .../util/__pycache__/wait.cpython-311.pyc | Bin 0 -> 5025 bytes .../pip/_vendor/urllib3/util/connection.py | 149 + .../pip/_vendor/urllib3/util/proxy.py | 57 + .../pip/_vendor/urllib3/util/queue.py | 22 + .../pip/_vendor/urllib3/util/request.py | 137 + .../pip/_vendor/urllib3/util/response.py | 107 + .../pip/_vendor/urllib3/util/retry.py | 620 ++ .../pip/_vendor/urllib3/util/ssl_.py | 495 + .../urllib3/util/ssl_match_hostname.py | 159 + .../pip/_vendor/urllib3/util/ssltransport.py | 221 + .../pip/_vendor/urllib3/util/timeout.py | 271 + .../pip/_vendor/urllib3/util/url.py | 435 + .../pip/_vendor/urllib3/util/wait.py | 152 + .../site-packages/pip/_vendor/vendor.txt | 23 + .../pip/_vendor/webencodings/__init__.py | 342 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 12905 bytes .../__pycache__/labels.cpython-311.pyc | Bin 0 -> 7305 bytes .../__pycache__/mklabels.cpython-311.pyc | Bin 0 -> 3233 bytes .../__pycache__/tests.cpython-311.pyc | Bin 0 -> 11211 bytes .../x_user_defined.cpython-311.pyc | Bin 0 -> 3585 bytes .../pip/_vendor/webencodings/labels.py | 231 + .../pip/_vendor/webencodings/mklabels.py | 59 + .../pip/_vendor/webencodings/tests.py | 153 + .../_vendor/webencodings/x_user_defined.py | 325 + .../lib/python3.11/site-packages/pip/py.typed | 4 + .../site-packages/pkg_resources/__init__.py | 3296 +++++++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 159594 bytes .../pkg_resources/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 222 bytes .../__pycache__/appdirs.cpython-311.pyc | Bin 0 -> 29470 bytes .../_vendor/__pycache__/zipp.cpython-311.pyc | Bin 0 -> 16015 bytes .../pkg_resources/_vendor/appdirs.py | 608 ++ .../_vendor/importlib_resources/__init__.py | 36 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 856 bytes .../__pycache__/_adapters.cpython-311.pyc | Bin 0 -> 10773 bytes .../__pycache__/_common.cpython-311.pyc | Bin 0 -> 4300 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 0 -> 5585 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 0 -> 1418 bytes .../__pycache__/_legacy.cpython-311.pyc | Bin 0 -> 6516 bytes .../__pycache__/abc.cpython-311.pyc | Bin 0 -> 7517 bytes .../__pycache__/readers.cpython-311.pyc | Bin 0 -> 8391 bytes .../__pycache__/simple.cpython-311.pyc | Bin 0 -> 6413 bytes .../_vendor/importlib_resources/_adapters.py | 170 + .../_vendor/importlib_resources/_common.py | 104 + .../_vendor/importlib_resources/_compat.py | 98 + .../_vendor/importlib_resources/_itertools.py | 35 + .../_vendor/importlib_resources/_legacy.py | 121 + .../_vendor/importlib_resources/abc.py | 137 + .../_vendor/importlib_resources/readers.py | 122 + .../_vendor/importlib_resources/simple.py | 116 + .../pkg_resources/_vendor/jaraco/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 229 bytes .../__pycache__/context.cpython-311.pyc | Bin 0 -> 9452 bytes .../__pycache__/functools.cpython-311.pyc | Bin 0 -> 20315 bytes .../pkg_resources/_vendor/jaraco/context.py | 213 + .../pkg_resources/_vendor/jaraco/functools.py | 525 + .../_vendor/jaraco/text/__init__.py | 599 ++ .../text/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 26632 bytes .../_vendor/more_itertools/__init__.py | 4 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 323 bytes .../__pycache__/more.cpython-311.pyc | Bin 0 -> 167984 bytes .../__pycache__/recipes.cpython-311.pyc | Bin 0 -> 26975 bytes .../_vendor/more_itertools/more.py | 4316 +++++++++ .../_vendor/more_itertools/recipes.py | 698 ++ .../_vendor/packaging/__about__.py | 26 + .../_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-311.pyc | Bin 0 -> 673 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 594 bytes .../__pycache__/_manylinux.cpython-311.pyc | Bin 0 -> 13260 bytes .../__pycache__/_musllinux.cpython-311.pyc | Bin 0 -> 8028 bytes .../__pycache__/_structures.cpython-311.pyc | Bin 0 -> 3716 bytes .../__pycache__/markers.cpython-311.pyc | Bin 0 -> 16565 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 0 -> 7680 bytes .../__pycache__/specifiers.cpython-311.pyc | Bin 0 -> 34394 bytes .../__pycache__/tags.cpython-311.pyc | Bin 0 -> 21379 bytes .../__pycache__/utils.cpython-311.pyc | Bin 0 -> 6714 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 21906 bytes .../_vendor/packaging/_manylinux.py | 301 + .../_vendor/packaging/_musllinux.py | 136 + .../_vendor/packaging/_structures.py | 61 + .../_vendor/packaging/markers.py | 304 + .../_vendor/packaging/requirements.py | 146 + .../_vendor/packaging/specifiers.py | 802 ++ .../pkg_resources/_vendor/packaging/tags.py | 487 + .../pkg_resources/_vendor/packaging/utils.py | 136 + .../_vendor/packaging/version.py | 504 + .../_vendor/pyparsing/__init__.py | 331 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 8367 bytes .../__pycache__/actions.cpython-311.pyc | Bin 0 -> 8493 bytes .../__pycache__/common.cpython-311.pyc | Bin 0 -> 14815 bytes .../__pycache__/core.cpython-311.pyc | Bin 0 -> 277667 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 12957 bytes .../__pycache__/helpers.cpython-311.pyc | Bin 0 -> 53658 bytes .../__pycache__/results.cpython-311.pyc | Bin 0 -> 36341 bytes .../__pycache__/testing.cpython-311.pyc | Bin 0 -> 19537 bytes .../__pycache__/unicode.cpython-311.pyc | Bin 0 -> 15395 bytes .../__pycache__/util.cpython-311.pyc | Bin 0 -> 14294 bytes .../_vendor/pyparsing/actions.py | 207 + .../pkg_resources/_vendor/pyparsing/common.py | 424 + .../pkg_resources/_vendor/pyparsing/core.py | 5814 +++++++++++ .../_vendor/pyparsing/diagram/__init__.py | 642 ++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 28030 bytes .../_vendor/pyparsing/exceptions.py | 267 + .../_vendor/pyparsing/helpers.py | 1088 +++ .../_vendor/pyparsing/results.py | 760 ++ .../_vendor/pyparsing/testing.py | 331 + .../_vendor/pyparsing/unicode.py | 352 + .../pkg_resources/_vendor/pyparsing/util.py | 235 + .../pkg_resources/_vendor/zipp.py | 329 + .../pkg_resources/extern/__init__.py | 76 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 4341 bytes .../requests-2.31.0.dist-info/INSTALLER | 1 + .../requests-2.31.0.dist-info/LICENSE | 175 + .../requests-2.31.0.dist-info/METADATA | 122 + .../requests-2.31.0.dist-info/RECORD | 43 + .../requests-2.31.0.dist-info/REQUESTED | 0 .../requests-2.31.0.dist-info/WHEEL | 5 + .../requests-2.31.0.dist-info/top_level.txt | 1 + .../site-packages/requests/__init__.py | 180 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 6310 bytes .../__pycache__/__version__.cpython-311.pyc | Bin 0 -> 596 bytes .../_internal_utils.cpython-311.pyc | Bin 0 -> 2160 bytes .../__pycache__/adapters.cpython-311.pyc | Bin 0 -> 23152 bytes .../requests/__pycache__/api.cpython-311.pyc | Bin 0 -> 7513 bytes .../requests/__pycache__/auth.cpython-311.pyc | Bin 0 -> 14640 bytes .../__pycache__/certs.cpython-311.pyc | Bin 0 -> 730 bytes .../__pycache__/compat.cpython-311.pyc | Bin 0 -> 2114 bytes .../__pycache__/cookies.cpython-311.pyc | Bin 0 -> 27120 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 8522 bytes .../requests/__pycache__/help.cpython-311.pyc | Bin 0 -> 4547 bytes .../__pycache__/hooks.cpython-311.pyc | Bin 0 -> 1260 bytes .../__pycache__/models.cpython-311.pyc | Bin 0 -> 38710 bytes .../__pycache__/packages.cpython-311.pyc | Bin 0 -> 1344 bytes .../__pycache__/sessions.cpython-311.pyc | Bin 0 -> 29703 bytes .../__pycache__/status_codes.cpython-311.pyc | Bin 0 -> 6247 bytes .../__pycache__/structures.cpython-311.pyc | Bin 0 -> 6232 bytes .../__pycache__/utils.cpython-311.pyc | Bin 0 -> 40254 bytes .../site-packages/requests/__version__.py | 14 + .../site-packages/requests/_internal_utils.py | 50 + .../site-packages/requests/adapters.py | 538 ++ .../python3.11/site-packages/requests/api.py | 157 + .../python3.11/site-packages/requests/auth.py | 315 + .../site-packages/requests/certs.py | 17 + .../site-packages/requests/compat.py | 79 + .../site-packages/requests/cookies.py | 561 ++ .../site-packages/requests/exceptions.py | 141 + .../python3.11/site-packages/requests/help.py | 134 + .../site-packages/requests/hooks.py | 33 + .../site-packages/requests/models.py | 1034 ++ .../site-packages/requests/packages.py | 28 + .../site-packages/requests/sessions.py | 833 ++ .../site-packages/requests/status_codes.py | 128 + .../site-packages/requests/structures.py | 99 + .../site-packages/requests/utils.py | 1094 +++ .../setuptools-65.5.0.dist-info/INSTALLER | 1 + .../setuptools-65.5.0.dist-info/LICENSE | 19 + .../setuptools-65.5.0.dist-info/METADATA | 144 + .../setuptools-65.5.0.dist-info/RECORD | 466 + .../setuptools-65.5.0.dist-info/REQUESTED | 0 .../setuptools-65.5.0.dist-info/WHEEL | 5 + .../entry_points.txt | 57 + .../setuptools-65.5.0.dist-info/top_level.txt | 3 + .../site-packages/setuptools/__init__.py | 247 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 12931 bytes .../_deprecation_warning.cpython-311.pyc | Bin 0 -> 666 bytes .../__pycache__/_entry_points.cpython-311.pyc | Bin 0 -> 4815 bytes .../__pycache__/_imp.cpython-311.pyc | Bin 0 -> 3679 bytes .../__pycache__/_importlib.cpython-311.pyc | Bin 0 -> 1979 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 0 -> 1178 bytes .../__pycache__/_path.cpython-311.pyc | Bin 0 -> 1499 bytes .../__pycache__/_reqs.cpython-311.pyc | Bin 0 -> 1160 bytes .../__pycache__/archive_util.cpython-311.pyc | Bin 0 -> 10188 bytes .../__pycache__/build_meta.cpython-311.pyc | Bin 0 -> 28121 bytes .../__pycache__/dep_util.cpython-311.pyc | Bin 0 -> 1314 bytes .../__pycache__/depends.cpython-311.pyc | Bin 0 -> 7999 bytes .../__pycache__/discovery.cpython-311.pyc | Bin 0 -> 31143 bytes .../__pycache__/dist.cpython-311.pyc | Bin 0 -> 64081 bytes .../__pycache__/errors.cpython-311.pyc | Bin 0 -> 2975 bytes .../__pycache__/extension.cpython-311.pyc | Bin 0 -> 6831 bytes .../__pycache__/glob.cpython-311.pyc | Bin 0 -> 6588 bytes .../__pycache__/installer.cpython-311.pyc | Bin 0 -> 5638 bytes .../__pycache__/launch.cpython-311.pyc | Bin 0 -> 1554 bytes .../__pycache__/logging.cpython-311.pyc | Bin 0 -> 2072 bytes .../__pycache__/monkey.cpython-311.pyc | Bin 0 -> 7031 bytes .../__pycache__/msvc.cpython-311.pyc | Bin 0 -> 64204 bytes .../__pycache__/namespaces.cpython-311.pyc | Bin 0 -> 5686 bytes .../__pycache__/package_index.cpython-311.pyc | Bin 0 -> 60781 bytes .../__pycache__/py34compat.cpython-311.pyc | Bin 0 -> 741 bytes .../__pycache__/sandbox.cpython-311.pyc | Bin 0 -> 27357 bytes .../__pycache__/unicode_utils.cpython-311.pyc | Bin 0 -> 1843 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 461 bytes .../__pycache__/wheel.cpython-311.pyc | Bin 0 -> 15517 bytes .../windows_support.cpython-311.pyc | Bin 0 -> 1458 bytes .../setuptools/_deprecation_warning.py | 7 + .../setuptools/_distutils/__init__.py | 24 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 796 bytes .../__pycache__/_collections.cpython-311.pyc | Bin 0 -> 2946 bytes .../__pycache__/_functools.cpython-311.pyc | Bin 0 -> 887 bytes .../__pycache__/_macos_compat.cpython-311.pyc | Bin 0 -> 596 bytes .../__pycache__/_msvccompiler.cpython-311.pyc | Bin 0 -> 25131 bytes .../__pycache__/archive_util.cpython-311.pyc | Bin 0 -> 10683 bytes .../__pycache__/bcppcompiler.cpython-311.pyc | Bin 0 -> 13509 bytes .../__pycache__/ccompiler.cpython-311.pyc | Bin 0 -> 46408 bytes .../__pycache__/cmd.cpython-311.pyc | Bin 0 -> 18922 bytes .../__pycache__/config.cpython-311.pyc | Bin 0 -> 6071 bytes .../__pycache__/core.cpython-311.pyc | Bin 0 -> 10015 bytes .../cygwinccompiler.cpython-311.pyc | Bin 0 -> 13639 bytes .../__pycache__/debug.cpython-311.pyc | Bin 0 -> 348 bytes .../__pycache__/dep_util.cpython-311.pyc | Bin 0 -> 4015 bytes .../__pycache__/dir_util.cpython-311.pyc | Bin 0 -> 10390 bytes .../__pycache__/dist.cpython-311.pyc | Bin 0 -> 55437 bytes .../__pycache__/errors.cpython-311.pyc | Bin 0 -> 6821 bytes .../__pycache__/extension.cpython-311.pyc | Bin 0 -> 10202 bytes .../__pycache__/fancy_getopt.cpython-311.pyc | Bin 0 -> 17266 bytes .../__pycache__/file_util.cpython-311.pyc | Bin 0 -> 10710 bytes .../__pycache__/filelist.cpython-311.pyc | Bin 0 -> 17656 bytes .../__pycache__/log.cpython-311.pyc | Bin 0 -> 3956 bytes .../__pycache__/msvc9compiler.cpython-311.pyc | Bin 0 -> 33614 bytes .../__pycache__/msvccompiler.cpython-311.pyc | Bin 0 -> 27016 bytes .../__pycache__/py38compat.cpython-311.pyc | Bin 0 -> 648 bytes .../__pycache__/py39compat.cpython-311.pyc | Bin 0 -> 1016 bytes .../__pycache__/spawn.cpython-311.pyc | Bin 0 -> 4485 bytes .../__pycache__/sysconfig.cpython-311.pyc | Bin 0 -> 22012 bytes .../__pycache__/text_file.cpython-311.pyc | Bin 0 -> 11297 bytes .../__pycache__/unixccompiler.cpython-311.pyc | Bin 0 -> 16553 bytes .../__pycache__/util.cpython-311.pyc | Bin 0 -> 20907 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 11373 bytes .../versionpredicate.cpython-311.pyc | Bin 0 -> 7773 bytes .../setuptools/_distutils/_collections.py | 56 + .../setuptools/_distutils/_functools.py | 20 + .../setuptools/_distutils/_macos_compat.py | 12 + .../setuptools/_distutils/_msvccompiler.py | 572 ++ .../setuptools/_distutils/archive_util.py | 280 + .../setuptools/_distutils/bcppcompiler.py | 408 + .../setuptools/_distutils/ccompiler.py | 1220 +++ .../setuptools/_distutils/cmd.py | 436 + .../setuptools/_distutils/command/__init__.py | 25 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 568 bytes .../_framework_compat.cpython-311.pyc | Bin 0 -> 2809 bytes .../command/__pycache__/bdist.cpython-311.pyc | Bin 0 -> 6062 bytes .../__pycache__/bdist_dumb.cpython-311.pyc | Bin 0 -> 5787 bytes .../__pycache__/bdist_rpm.cpython-311.pyc | Bin 0 -> 23321 bytes .../command/__pycache__/build.cpython-311.pyc | Bin 0 -> 6117 bytes .../__pycache__/build_clib.cpython-311.pyc | Bin 0 -> 7820 bytes .../__pycache__/build_ext.cpython-311.pyc | Bin 0 -> 30362 bytes .../__pycache__/build_py.cpython-311.pyc | Bin 0 -> 17638 bytes .../__pycache__/build_scripts.cpython-311.pyc | Bin 0 -> 7889 bytes .../command/__pycache__/check.cpython-311.pyc | Bin 0 -> 7551 bytes .../command/__pycache__/clean.cpython-311.pyc | Bin 0 -> 3219 bytes .../__pycache__/config.cpython-311.pyc | Bin 0 -> 16282 bytes .../__pycache__/install.cpython-311.pyc | Bin 0 -> 29470 bytes .../__pycache__/install_data.cpython-311.pyc | Bin 0 -> 3804 bytes .../install_egg_info.cpython-311.pyc | Bin 0 -> 5230 bytes .../install_headers.cpython-311.pyc | Bin 0 -> 2387 bytes .../__pycache__/install_lib.cpython-311.pyc | Bin 0 -> 8719 bytes .../install_scripts.cpython-311.pyc | Bin 0 -> 3184 bytes .../__pycache__/py37compat.cpython-311.pyc | Bin 0 -> 1565 bytes .../__pycache__/register.cpython-311.pyc | Bin 0 -> 15551 bytes .../command/__pycache__/sdist.cpython-311.pyc | Bin 0 -> 23859 bytes .../__pycache__/upload.cpython-311.pyc | Bin 0 -> 10500 bytes .../_distutils/command/_framework_compat.py | 55 + .../setuptools/_distutils/command/bdist.py | 157 + .../_distutils/command/bdist_dumb.py | 144 + .../_distutils/command/bdist_rpm.py | 615 ++ .../setuptools/_distutils/command/build.py | 153 + .../_distutils/command/build_clib.py | 208 + .../_distutils/command/build_ext.py | 787 ++ .../setuptools/_distutils/command/build_py.py | 407 + .../_distutils/command/build_scripts.py | 173 + .../setuptools/_distutils/command/check.py | 151 + .../setuptools/_distutils/command/clean.py | 76 + .../setuptools/_distutils/command/config.py | 377 + .../setuptools/_distutils/command/install.py | 814 ++ .../_distutils/command/install_data.py | 84 + .../_distutils/command/install_egg_info.py | 91 + .../_distutils/command/install_headers.py | 45 + .../_distutils/command/install_lib.py | 238 + .../_distutils/command/install_scripts.py | 61 + .../_distutils/command/py37compat.py | 31 + .../setuptools/_distutils/command/register.py | 319 + .../setuptools/_distutils/command/sdist.py | 531 + .../setuptools/_distutils/command/upload.py | 205 + .../setuptools/_distutils/config.py | 139 + .../setuptools/_distutils/core.py | 291 + .../setuptools/_distutils/cygwinccompiler.py | 364 + .../setuptools/_distutils/debug.py | 5 + .../setuptools/_distutils/dep_util.py | 96 + .../setuptools/_distutils/dir_util.py | 243 + .../setuptools/_distutils/dist.py | 1286 +++ .../setuptools/_distutils/errors.py | 127 + .../setuptools/_distutils/extension.py | 248 + .../setuptools/_distutils/fancy_getopt.py | 470 + .../setuptools/_distutils/file_util.py | 249 + .../setuptools/_distutils/filelist.py | 371 + .../setuptools/_distutils/log.py | 80 + .../setuptools/_distutils/msvc9compiler.py | 832 ++ .../setuptools/_distutils/msvccompiler.py | 695 ++ .../setuptools/_distutils/py38compat.py | 8 + .../setuptools/_distutils/py39compat.py | 22 + .../setuptools/_distutils/spawn.py | 109 + .../setuptools/_distutils/sysconfig.py | 558 ++ .../setuptools/_distutils/text_file.py | 287 + .../setuptools/_distutils/unixccompiler.py | 401 + .../setuptools/_distutils/util.py | 513 + .../setuptools/_distutils/version.py | 358 + .../setuptools/_distutils/versionpredicate.py | 175 + .../site-packages/setuptools/_entry_points.py | 86 + .../site-packages/setuptools/_imp.py | 82 + .../site-packages/setuptools/_importlib.py | 47 + .../site-packages/setuptools/_itertools.py | 23 + .../site-packages/setuptools/_path.py | 29 + .../site-packages/setuptools/_reqs.py | 19 + .../setuptools/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 219 bytes .../__pycache__/ordered_set.cpython-311.pyc | Bin 0 -> 21805 bytes .../typing_extensions.cpython-311.pyc | Bin 0 -> 107636 bytes .../_vendor/__pycache__/zipp.cpython-311.pyc | Bin 0 -> 16012 bytes .../_vendor/importlib_metadata/__init__.py | 1047 ++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 58258 bytes .../__pycache__/_adapters.cpython-311.pyc | Bin 0 -> 3871 bytes .../__pycache__/_collections.cpython-311.pyc | Bin 0 -> 2218 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 0 -> 2740 bytes .../__pycache__/_functools.cpython-311.pyc | Bin 0 -> 3658 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 0 -> 2621 bytes .../__pycache__/_meta.cpython-311.pyc | Bin 0 -> 3025 bytes .../__pycache__/_text.cpython-311.pyc | Bin 0 -> 4416 bytes .../_vendor/importlib_metadata/_adapters.py | 68 + .../importlib_metadata/_collections.py | 30 + .../_vendor/importlib_metadata/_compat.py | 71 + .../_vendor/importlib_metadata/_functools.py | 104 + .../_vendor/importlib_metadata/_itertools.py | 73 + .../_vendor/importlib_metadata/_meta.py | 48 + .../_vendor/importlib_metadata/_text.py | 99 + .../_vendor/importlib_resources/__init__.py | 36 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 853 bytes .../__pycache__/_adapters.cpython-311.pyc | Bin 0 -> 10770 bytes .../__pycache__/_common.cpython-311.pyc | Bin 0 -> 4297 bytes .../__pycache__/_compat.cpython-311.pyc | Bin 0 -> 5582 bytes .../__pycache__/_itertools.cpython-311.pyc | Bin 0 -> 1415 bytes .../__pycache__/_legacy.cpython-311.pyc | Bin 0 -> 6513 bytes .../__pycache__/abc.cpython-311.pyc | Bin 0 -> 7514 bytes .../__pycache__/readers.cpython-311.pyc | Bin 0 -> 8388 bytes .../__pycache__/simple.cpython-311.pyc | Bin 0 -> 6410 bytes .../_vendor/importlib_resources/_adapters.py | 170 + .../_vendor/importlib_resources/_common.py | 104 + .../_vendor/importlib_resources/_compat.py | 98 + .../_vendor/importlib_resources/_itertools.py | 35 + .../_vendor/importlib_resources/_legacy.py | 121 + .../_vendor/importlib_resources/abc.py | 137 + .../_vendor/importlib_resources/readers.py | 122 + .../_vendor/importlib_resources/simple.py | 116 + .../setuptools/_vendor/jaraco/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 226 bytes .../__pycache__/context.cpython-311.pyc | Bin 0 -> 9449 bytes .../__pycache__/functools.cpython-311.pyc | Bin 0 -> 20306 bytes .../setuptools/_vendor/jaraco/context.py | 213 + .../setuptools/_vendor/jaraco/functools.py | 525 + .../_vendor/jaraco/text/__init__.py | 599 ++ .../text/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 26620 bytes .../_vendor/more_itertools/__init__.py | 4 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 319 bytes .../__pycache__/more.cpython-311.pyc | Bin 0 -> 149206 bytes .../__pycache__/recipes.cpython-311.pyc | Bin 0 -> 23788 bytes .../setuptools/_vendor/more_itertools/more.py | 3824 ++++++++ .../_vendor/more_itertools/recipes.py | 620 ++ .../setuptools/_vendor/ordered_set.py | 488 + .../setuptools/_vendor/packaging/__about__.py | 26 + .../setuptools/_vendor/packaging/__init__.py | 25 + .../__pycache__/__about__.cpython-311.pyc | Bin 0 -> 670 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 591 bytes .../__pycache__/_manylinux.cpython-311.pyc | Bin 0 -> 13257 bytes .../__pycache__/_musllinux.cpython-311.pyc | Bin 0 -> 8025 bytes .../__pycache__/_structures.cpython-311.pyc | Bin 0 -> 3713 bytes .../__pycache__/markers.cpython-311.pyc | Bin 0 -> 16559 bytes .../__pycache__/requirements.cpython-311.pyc | Bin 0 -> 7674 bytes .../__pycache__/specifiers.cpython-311.pyc | Bin 0 -> 34391 bytes .../__pycache__/tags.cpython-311.pyc | Bin 0 -> 21376 bytes .../__pycache__/utils.cpython-311.pyc | Bin 0 -> 6711 bytes .../__pycache__/version.cpython-311.pyc | Bin 0 -> 21903 bytes .../_vendor/packaging/_manylinux.py | 301 + .../_vendor/packaging/_musllinux.py | 136 + .../_vendor/packaging/_structures.py | 61 + .../setuptools/_vendor/packaging/markers.py | 304 + .../_vendor/packaging/requirements.py | 146 + .../_vendor/packaging/specifiers.py | 802 ++ .../setuptools/_vendor/packaging/tags.py | 487 + .../setuptools/_vendor/packaging/utils.py | 136 + .../setuptools/_vendor/packaging/version.py | 504 + .../setuptools/_vendor/pyparsing/__init__.py | 331 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 8364 bytes .../__pycache__/actions.cpython-311.pyc | Bin 0 -> 8490 bytes .../__pycache__/common.cpython-311.pyc | Bin 0 -> 14812 bytes .../__pycache__/core.cpython-311.pyc | Bin 0 -> 277664 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 12954 bytes .../__pycache__/helpers.cpython-311.pyc | Bin 0 -> 53655 bytes .../__pycache__/results.cpython-311.pyc | Bin 0 -> 36338 bytes .../__pycache__/testing.cpython-311.pyc | Bin 0 -> 19534 bytes .../__pycache__/unicode.cpython-311.pyc | Bin 0 -> 15392 bytes .../__pycache__/util.cpython-311.pyc | Bin 0 -> 14291 bytes .../setuptools/_vendor/pyparsing/actions.py | 207 + .../setuptools/_vendor/pyparsing/common.py | 424 + .../setuptools/_vendor/pyparsing/core.py | 5814 +++++++++++ .../_vendor/pyparsing/diagram/__init__.py | 642 ++ .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 28027 bytes .../_vendor/pyparsing/exceptions.py | 267 + .../setuptools/_vendor/pyparsing/helpers.py | 1088 +++ .../setuptools/_vendor/pyparsing/results.py | 760 ++ .../setuptools/_vendor/pyparsing/testing.py | 331 + .../setuptools/_vendor/pyparsing/unicode.py | 352 + .../setuptools/_vendor/pyparsing/util.py | 235 + .../setuptools/_vendor/tomli/__init__.py | 11 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 441 bytes .../tomli/__pycache__/_parser.cpython-311.pyc | Bin 0 -> 30880 bytes .../tomli/__pycache__/_re.cpython-311.pyc | Bin 0 -> 4520 bytes .../tomli/__pycache__/_types.cpython-311.pyc | Bin 0 -> 433 bytes .../setuptools/_vendor/tomli/_parser.py | 691 ++ .../setuptools/_vendor/tomli/_re.py | 107 + .../setuptools/_vendor/tomli/_types.py | 10 + .../setuptools/_vendor/typing_extensions.py | 2296 +++++ .../site-packages/setuptools/_vendor/zipp.py | 329 + .../site-packages/setuptools/archive_util.py | 213 + .../site-packages/setuptools/build_meta.py | 511 + .../site-packages/setuptools/cli-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/cli-64.exe | Bin 0 -> 74752 bytes .../site-packages/setuptools/cli-arm64.exe | Bin 0 -> 137216 bytes .../site-packages/setuptools/cli.exe | Bin 0 -> 65536 bytes .../setuptools/command/__init__.py | 12 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 660 bytes .../command/__pycache__/alias.cpython-311.pyc | Bin 0 -> 3927 bytes .../__pycache__/bdist_egg.cpython-311.pyc | Bin 0 -> 25609 bytes .../__pycache__/bdist_rpm.cpython-311.pyc | Bin 0 -> 2215 bytes .../command/__pycache__/build.cpython-311.pyc | Bin 0 -> 7021 bytes .../__pycache__/build_clib.cpython-311.pyc | Bin 0 -> 4148 bytes .../__pycache__/build_ext.cpython-311.pyc | Bin 0 -> 22035 bytes .../__pycache__/build_py.cpython-311.pyc | Bin 0 -> 23201 bytes .../__pycache__/develop.cpython-311.pyc | Bin 0 -> 10943 bytes .../__pycache__/dist_info.cpython-311.pyc | Bin 0 -> 8005 bytes .../__pycache__/easy_install.cpython-311.pyc | Bin 0 -> 119360 bytes .../editable_wheel.cpython-311.pyc | Bin 0 -> 51438 bytes .../__pycache__/egg_info.cpython-311.pyc | Bin 0 -> 39858 bytes .../__pycache__/install.cpython-311.pyc | Bin 0 -> 6840 bytes .../install_egg_info.cpython-311.pyc | Bin 0 -> 4153 bytes .../__pycache__/install_lib.cpython-311.pyc | Bin 0 -> 6435 bytes .../install_scripts.cpython-311.pyc | Bin 0 -> 4304 bytes .../__pycache__/py36compat.cpython-311.pyc | Bin 0 -> 8061 bytes .../__pycache__/register.cpython-311.pyc | Bin 0 -> 1151 bytes .../__pycache__/rotate.cpython-311.pyc | Bin 0 -> 4211 bytes .../__pycache__/saveopts.cpython-311.pyc | Bin 0 -> 1391 bytes .../command/__pycache__/sdist.cpython-311.pyc | Bin 0 -> 13463 bytes .../__pycache__/setopt.cpython-311.pyc | Bin 0 -> 7703 bytes .../command/__pycache__/test.cpython-311.pyc | Bin 0 -> 14644 bytes .../__pycache__/upload.cpython-311.pyc | Bin 0 -> 1115 bytes .../__pycache__/upload_docs.cpython-311.pyc | Bin 0 -> 11966 bytes .../site-packages/setuptools/command/alias.py | 78 + .../setuptools/command/bdist_egg.py | 457 + .../setuptools/command/bdist_rpm.py | 40 + .../site-packages/setuptools/command/build.py | 146 + .../setuptools/command/build_clib.py | 101 + .../setuptools/command/build_ext.py | 383 + .../setuptools/command/build_py.py | 368 + .../setuptools/command/develop.py | 193 + .../setuptools/command/dist_info.py | 142 + .../setuptools/command/easy_install.py | 2312 +++++ .../setuptools/command/editable_wheel.py | 844 ++ .../setuptools/command/egg_info.py | 763 ++ .../setuptools/command/install.py | 139 + .../setuptools/command/install_egg_info.py | 63 + .../setuptools/command/install_lib.py | 122 + .../setuptools/command/install_scripts.py | 70 + .../setuptools/command/launcher manifest.xml | 15 + .../setuptools/command/py36compat.py | 134 + .../setuptools/command/register.py | 18 + .../setuptools/command/rotate.py | 64 + .../setuptools/command/saveopts.py | 22 + .../site-packages/setuptools/command/sdist.py | 210 + .../setuptools/command/setopt.py | 149 + .../site-packages/setuptools/command/test.py | 251 + .../setuptools/command/upload.py | 17 + .../setuptools/command/upload_docs.py | 213 + .../setuptools/config/__init__.py | 35 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 2055 bytes .../_apply_pyprojecttoml.cpython-311.pyc | Bin 0 -> 22558 bytes .../config/__pycache__/expand.cpython-311.pyc | Bin 0 -> 28269 bytes .../__pycache__/pyprojecttoml.cpython-311.pyc | Bin 0 -> 27467 bytes .../__pycache__/setupcfg.cpython-311.pyc | Bin 0 -> 33051 bytes .../setuptools/config/_apply_pyprojecttoml.py | 377 + .../config/_validate_pyproject/__init__.py | 34 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 2343 bytes .../error_reporting.cpython-311.pyc | Bin 0 -> 20234 bytes .../extra_validations.cpython-311.pyc | Bin 0 -> 1892 bytes .../fastjsonschema_exceptions.cpython-311.pyc | Bin 0 -> 3267 bytes ...fastjsonschema_validations.cpython-311.pyc | Bin 0 -> 192665 bytes .../__pycache__/formats.cpython-311.pyc | Bin 0 -> 14382 bytes .../_validate_pyproject/error_reporting.py | 318 + .../_validate_pyproject/extra_validations.py | 36 + .../fastjsonschema_exceptions.py | 51 + .../fastjsonschema_validations.py | 1035 ++ .../config/_validate_pyproject/formats.py | 259 + .../site-packages/setuptools/config/expand.py | 462 + .../setuptools/config/pyprojecttoml.py | 493 + .../setuptools/config/setupcfg.py | 762 ++ .../site-packages/setuptools/dep_util.py | 25 + .../site-packages/setuptools/depends.py | 176 + .../site-packages/setuptools/discovery.py | 600 ++ .../site-packages/setuptools/dist.py | 1222 +++ .../site-packages/setuptools/errors.py | 58 + .../site-packages/setuptools/extension.py | 148 + .../setuptools/extern/__init__.py | 76 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 4419 bytes .../site-packages/setuptools/glob.py | 167 + .../site-packages/setuptools/gui-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/gui-64.exe | Bin 0 -> 75264 bytes .../site-packages/setuptools/gui-arm64.exe | Bin 0 -> 137728 bytes .../site-packages/setuptools/gui.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/installer.py | 104 + .../site-packages/setuptools/launch.py | 36 + .../site-packages/setuptools/logging.py | 36 + .../site-packages/setuptools/monkey.py | 165 + .../site-packages/setuptools/msvc.py | 1703 ++++ .../site-packages/setuptools/namespaces.py | 107 + .../site-packages/setuptools/package_index.py | 1126 +++ .../site-packages/setuptools/py34compat.py | 13 + .../site-packages/setuptools/sandbox.py | 530 + .../setuptools/script (dev).tmpl | 6 + .../site-packages/setuptools/script.tmpl | 3 + .../site-packages/setuptools/unicode_utils.py | 42 + .../site-packages/setuptools/version.py | 6 + .../site-packages/setuptools/wheel.py | 222 + .../setuptools/windows_support.py | 29 + .../smmap-5.0.1.dist-info/INSTALLER | 1 + .../smmap-5.0.1.dist-info/LICENSE | 30 + .../smmap-5.0.1.dist-info/METADATA | 113 + .../smmap-5.0.1.dist-info/RECORD | 28 + .../smmap-5.0.1.dist-info/REQUESTED | 0 .../site-packages/smmap-5.0.1.dist-info/WHEEL | 5 + .../smmap-5.0.1.dist-info/top_level.txt | 1 + .../smmap-5.0.1.dist-info/zip-safe | 1 + .../site-packages/smmap/__init__.py | 11 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 796 bytes .../smmap/__pycache__/buf.cpython-311.pyc | Bin 0 -> 7461 bytes .../smmap/__pycache__/mman.cpython-311.pyc | Bin 0 -> 26835 bytes .../smmap/__pycache__/util.cpython-311.pyc | Bin 0 -> 10866 bytes .../lib/python3.11/site-packages/smmap/buf.py | 143 + .../python3.11/site-packages/smmap/mman.py | 588 ++ .../site-packages/smmap/test/__init__.py | 0 .../test/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 211 bytes .../test/__pycache__/lib.cpython-311.pyc | Bin 0 -> 3245 bytes .../test/__pycache__/test_buf.cpython-311.pyc | Bin 0 -> 6706 bytes .../__pycache__/test_mman.cpython-311.pyc | Bin 0 -> 13308 bytes .../__pycache__/test_tutorial.cpython-311.pyc | Bin 0 -> 3349 bytes .../__pycache__/test_util.cpython-311.pyc | Bin 0 -> 7007 bytes .../site-packages/smmap/test/lib.py | 72 + .../site-packages/smmap/test/test_buf.py | 126 + .../site-packages/smmap/test/test_mman.py | 224 + .../site-packages/smmap/test/test_tutorial.py | 75 + .../site-packages/smmap/test/test_util.py | 105 + .../python3.11/site-packages/smmap/util.py | 222 + .../urllib3-2.0.6.dist-info/INSTALLER | 1 + .../urllib3-2.0.6.dist-info/METADATA | 158 + .../urllib3-2.0.6.dist-info/RECORD | 71 + .../urllib3-2.0.6.dist-info/REQUESTED | 0 .../urllib3-2.0.6.dist-info/WHEEL | 4 + .../licenses/LICENSE.txt | 21 + .../site-packages/urllib3/__init__.py | 166 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 5813 bytes .../_base_connection.cpython-311.pyc | Bin 0 -> 7190 bytes .../__pycache__/_collections.cpython-311.pyc | Bin 0 -> 25418 bytes .../_request_methods.cpython-311.pyc | Bin 0 -> 8576 bytes .../__pycache__/_version.cpython-311.pyc | Bin 0 -> 295 bytes .../__pycache__/connection.cpython-311.pyc | Bin 0 -> 33142 bytes .../connectionpool.cpython-311.pyc | Bin 0 -> 41058 bytes .../__pycache__/exceptions.cpython-311.pyc | Bin 0 -> 19261 bytes .../__pycache__/fields.cpython-311.pyc | Bin 0 -> 13053 bytes .../__pycache__/filepost.cpython-311.pyc | Bin 0 -> 3906 bytes .../__pycache__/poolmanager.cpython-311.pyc | Bin 0 -> 25343 bytes .../__pycache__/response.cpython-311.pyc | Bin 0 -> 49693 bytes .../site-packages/urllib3/_base_connection.py | 173 + .../site-packages/urllib3/_collections.py | 463 + .../site-packages/urllib3/_request_methods.py | 217 + .../site-packages/urllib3/_version.py | 4 + .../site-packages/urllib3/connection.py | 906 ++ .../site-packages/urllib3/connectionpool.py | 1178 +++ .../site-packages/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 216 bytes .../__pycache__/pyopenssl.cpython-311.pyc | Bin 0 -> 28196 bytes .../securetransport.cpython-311.pyc | Bin 0 -> 37148 bytes .../contrib/__pycache__/socks.cpython-311.pyc | Bin 0 -> 8934 bytes .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 233 bytes .../__pycache__/bindings.cpython-311.pyc | Bin 0 -> 13630 bytes .../__pycache__/low_level.cpython-311.pyc | Bin 0 -> 18406 bytes .../contrib/_securetransport/bindings.py | 430 + .../contrib/_securetransport/low_level.py | 474 + .../urllib3/contrib/pyopenssl.py | 548 ++ .../urllib3/contrib/securetransport.py | 913 ++ .../site-packages/urllib3/contrib/socks.py | 233 + .../site-packages/urllib3/exceptions.py | 318 + .../site-packages/urllib3/fields.py | 345 + .../site-packages/urllib3/filepost.py | 89 + .../site-packages/urllib3/poolmanager.py | 634 ++ .../python3.11/site-packages/urllib3/py.typed | 2 + .../site-packages/urllib3/response.py | 1132 +++ .../site-packages/urllib3/util/__init__.py | 44 + .../util/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 1293 bytes .../__pycache__/connection.cpython-311.pyc | Bin 0 -> 5101 bytes .../util/__pycache__/proxy.cpython-311.pyc | Bin 0 -> 1307 bytes .../util/__pycache__/request.cpython-311.pyc | Bin 0 -> 8942 bytes .../util/__pycache__/response.cpython-311.pyc | Bin 0 -> 3381 bytes .../util/__pycache__/retry.cpython-311.pyc | Bin 0 -> 21091 bytes .../util/__pycache__/ssl_.cpython-311.pyc | Bin 0 -> 17455 bytes .../ssl_match_hostname.cpython-311.pyc | Bin 0 -> 6276 bytes .../__pycache__/ssltransport.cpython-311.pyc | Bin 0 -> 14672 bytes .../util/__pycache__/timeout.cpython-311.pyc | Bin 0 -> 12285 bytes .../util/__pycache__/url.cpython-311.pyc | Bin 0 -> 17802 bytes .../util/__pycache__/util.cpython-311.pyc | Bin 0 -> 2197 bytes .../util/__pycache__/wait.cpython-311.pyc | Bin 0 -> 3768 bytes .../site-packages/urllib3/util/connection.py | 137 + .../site-packages/urllib3/util/proxy.py | 43 + .../site-packages/urllib3/util/request.py | 256 + .../site-packages/urllib3/util/response.py | 101 + .../site-packages/urllib3/util/retry.py | 529 + .../site-packages/urllib3/util/ssl_.py | 513 + .../urllib3/util/ssl_match_hostname.py | 159 + .../urllib3/util/ssltransport.py | 280 + .../site-packages/urllib3/util/timeout.py | 279 + .../site-packages/urllib3/util/url.py | 471 + .../site-packages/urllib3/util/util.py | 42 + .../site-packages/urllib3/util/wait.py | 124 + frieren-cli/venv/lib64 | 1 + frieren-cli/venv/pyvenv.cfg | 5 + open-source.fern | 2 +- server-update-tool/src/github.rs | 42 +- server-update-tool/src/main.rs | 14 +- 1838 files changed, 337841 insertions(+), 31 deletions(-) create mode 100644 frieren-cli/venv/bin/Activate.ps1 create mode 100644 frieren-cli/venv/bin/activate create mode 100644 frieren-cli/venv/bin/activate.csh create mode 100644 frieren-cli/venv/bin/activate.fish create mode 100755 frieren-cli/venv/bin/normalizer create mode 100755 frieren-cli/venv/bin/pip create mode 100755 frieren-cli/venv/bin/pip3 create mode 100755 frieren-cli/venv/bin/pip3.11 create mode 120000 frieren-cli/venv/bin/python create mode 120000 frieren-cli/venv/bin/python3 create mode 120000 frieren-cli/venv/bin/python3.11 create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/AUTHORS create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/LICENSE create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/override.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/LICENSE create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/cacert.pem create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/certifi/py.typed create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/LICENSE create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/entry_points.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/api.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/cd.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/constant.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/legacy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/md.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/models.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/api.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cd.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/constant.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/legacy.py create mode 100755 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md.cpython-311-x86_64-linux-gnu.so create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md.py create mode 100755 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/models.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/py.typed create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/distutils-precedence.pth create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/cmd.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/config.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/db.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/diff.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/exc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/remote.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/types.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/cmd.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/config.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/db.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/diff.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/exc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/__pycache__/fun.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/__pycache__/typ.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/fun.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/typ.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/index/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/blob.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/commit.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/fun.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/tag.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/tree.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/blob.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/commit.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/fun.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/__pycache__/root.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/root.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/submodule/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/tag.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/tree.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/objects/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/py.typed create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__pycache__/head.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__pycache__/log.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__pycache__/reference.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__pycache__/remote.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__pycache__/symbolic.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/__pycache__/tag.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/head.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/log.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/reference.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/remote.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/symbolic.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/refs/tag.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/remote.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/repo/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/repo/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/repo/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/repo/__pycache__/fun.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/repo/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/repo/fun.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/types.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/git/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/AUTHORS create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/LICENSE create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb-4.0.10.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/const.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/exc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/fun.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/pack.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/stream.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/typ.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/const.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__pycache__/git.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__pycache__/loose.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__pycache__/mem.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__pycache__/pack.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/__pycache__/ref.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/git.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/loose.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/mem.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/pack.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/db/ref.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/exc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/fun.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/pack.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/stream.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__pycache__/lib.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__pycache__/test_base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__pycache__/test_example.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__pycache__/test_pack.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__pycache__/test_stream.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/__pycache__/test_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/lib.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/test_base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/test_example.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/test_pack.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/test_stream.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/test/test_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/typ.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/utils/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/utils/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/utils/__pycache__/encoding.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/gitdb/utils/encoding.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna-3.4.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna-3.4.dist-info/LICENSE.md create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna-3.4.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna-3.4.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna-3.4.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna-3.4.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/codec.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/idnadata.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/intranges.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/package_data.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/__pycache__/uts46data.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/codec.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/idnadata.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/intranges.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/package_data.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/py.typed create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/idna/uts46data.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/AUTHORS.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/LICENSE.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/entry_points.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip-23.2.1.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/__pip-runner__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/__pycache__/__pip-runner__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/build_env.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/cache.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/configuration.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/main.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/pyproject.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/build_env.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cache.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/main.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/parser.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/autocompletion.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/base_command.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/cmdoptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/command_context.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/main.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/main_parser.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/parser.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/progress_bars.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/req_command.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/spinners.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/cli/status_codes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/cache.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/check.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/completion.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/debug.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/download.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/hash.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/help.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/index.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/install.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/list.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/search.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/show.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/cache.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/check.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/completion.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/configuration.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/debug.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/download.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/freeze.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/hash.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/help.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/index.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/inspect.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/install.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/list.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/search.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/show.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/uninstall.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/commands/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/configuration.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/installed.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/sdist.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/distributions/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/collector.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/__pycache__/sources.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/collector.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/package_finder.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/index/sources.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/_distutils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/_sysconfig.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/locations/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/main.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/_json.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_dists.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_envs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/metadata/pkg_resources.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/candidate.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/format_control.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/index.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/link.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/scheme.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/target_python.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/candidate.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/direct_url.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/format_control.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/index.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/installation_report.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/link.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/scheme.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/search_scope.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/selection_prefs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/target_python.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/models/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/auth.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/cache.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/download.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/session.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/auth.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/cache.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/download.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/lazy_wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/session.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/network/xmlrpc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/check.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/build_tracker.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/metadata.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/metadata_editable.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/metadata_legacy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/wheel_editable.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/build/wheel_legacy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/check.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/freeze.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/install/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/install/editable_legacy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/operations/prepare.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/pyproject.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/constructors.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_file.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_install.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_set.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/constructors.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/req_file.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/req_install.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/req_set.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/req/req_uninstall.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/legacy/resolver.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/base.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/provider.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/reporter.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/requirements.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/self_outdated_check.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/_log.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/logging.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/misc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/models.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/urls.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/_jaraco_text.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/_log.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/appdirs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/compatibility_tags.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/datetime.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/deprecation.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/direct_url_helpers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/egg_link.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/encoding.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/entrypoints.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/filesystem.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/filetypes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/glibc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/hashes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/inject_securetransport.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/logging.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/misc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/models.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/packaging.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/setuptools_build.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/subprocess.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/temp_dir.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/unpacking.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/urls.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/virtualenv.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/utils/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/git.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/bazaar.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/git.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/mercurial.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/subversion.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/vcs/versioncontrol.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_internal/wheel_builder.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/__pycache__/six.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/_cmd.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/adapter.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/cache.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/controller.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/filewrapper.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/heuristics.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/serialize.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/wrapper.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/certifi/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/certifi/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/certifi/cacert.pem create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/certifi/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachinedict.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/johabfreq.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/johabprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/macromanprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/resultdict.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/utf1632prober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/big5freq.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/big5prober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/chardistribution.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/charsetgroupprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/charsetprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/cli/chardetect.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/codingstatemachine.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/codingstatemachinedict.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/cp949prober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/enums.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/escprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/escsm.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/eucjpprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/euckrfreq.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/euckrprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/euctwfreq.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/euctwprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/gb2312freq.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/gb2312prober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/hebrewprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/jisfreq.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/johabfreq.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/johabprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/jpcntx.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/langbulgarianmodel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/langgreekmodel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/langhebrewmodel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/langhungarianmodel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/langrussianmodel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/langthaimodel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/langturkishmodel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/latin1prober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/macromanprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/mbcharsetprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/mbcsgroupprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/mbcssm.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/metadata/languages.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/resultdict.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/sbcharsetprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/sbcsgroupprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/sjisprober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/universaldetector.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/utf1632prober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/utf8prober.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/chardet/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/ansi.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/ansitowin32.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/initialise.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/ansi_test.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/ansitowin32_test.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/initialise_test.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/isatty_test.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/__pycache__/winterm_test.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/ansi_test.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/initialise_test.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/isatty_test.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/tests/winterm_test.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/win32.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/colorama/winterm.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/database.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/index.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/locators.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/manifest.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/markers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/metadata.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/resources.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/scripts.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/t32.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/t64-arm.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/t64.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/w32.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/w64-arm.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/w64.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distlib/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distro/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distro/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/distro/distro.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/codec.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/idnadata.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/intranges.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/package_data.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/idna/uts46data.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/ext.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/msgpack/fallback.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__about__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/_manylinux.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/_musllinux.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/_structures.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/markers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/requirements.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/specifiers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/tags.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/packaging/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/android.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/api.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/macos.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/unix.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/windows.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/cmdline.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/console.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/filter.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/filters/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatter.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/_mapping.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/bbcode.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/groff.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/html.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/img.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/irc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/latex.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/other.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/rtf.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/svg.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/terminal.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/terminal256.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexer.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/_mapping.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/python.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/modeline.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/plugin.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/regexopt.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/scanner.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/sphinxext.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/style.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/styles/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/token.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/unistring.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pygments/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/actions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/common.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/results.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/unicode.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/actions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/common.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/diagram/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/helpers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/results.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/testing.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/unicode.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyparsing/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/api.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/help.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/models.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/__version__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/_internal_utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/adapters.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/api.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/auth.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/certs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/cookies.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/help.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/hooks.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/models.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/packages.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/sessions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/status_codes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/structures.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/requests/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/providers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/reporters.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/structs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__main__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/align.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/box.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/color.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/console.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/control.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/json.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/live.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/region.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/status.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/style.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/table.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/text.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_cell_widths.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_emoji_codes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_emoji_replace.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_export_format.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_extension.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_fileno.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_inspect.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_log_render.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_loop.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_null_file.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_palettes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_pick.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_ratio.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_spinners.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_stack.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_timer.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_win32_console.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_windows.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_windows_renderer.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/_wrap.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/abc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/align.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/ansi.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/bar.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/box.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/cells.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/color.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/color_triplet.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/columns.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/console.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/constrain.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/containers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/control.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/default_styles.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/diagnose.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/emoji.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/errors.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/file_proxy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/filesize.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/highlighter.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/json.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/jupyter.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/layout.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/live.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/live_render.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/logging.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/markup.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/measure.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/padding.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/pager.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/palette.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/panel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/pretty.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/progress.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/progress_bar.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/prompt.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/protocol.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/region.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/repr.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/rule.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/scope.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/screen.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/segment.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/spinner.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/status.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/style.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/styled.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/syntax.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/table.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/terminal_theme.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/text.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/theme.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/themes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/traceback.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/rich/tree.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/six.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/_asyncio.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/_utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/after.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/before.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/before_sleep.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/nap.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/retry.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/stop.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/tornadoweb.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tenacity/wait.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/_parser.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/_re.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/tomli/_types.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/typing_extensions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/_collections.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/_version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/connection.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/connectionpool.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/appengine.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/securetransport.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/socks.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/fields.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/filepost.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/six.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/poolmanager.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/request.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/connection.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/proxy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/queue.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/request.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/response.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/retry.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssl_.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssltransport.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/timeout.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/url.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/wait.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/vendor.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/labels.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/mklabels.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/tests.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/_vendor/webencodings/x_user_defined.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pip/py.typed create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/__pycache__/zipp.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/appdirs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_adapters.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_common.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_itertools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/_legacy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/abc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/readers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/__pycache__/simple.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_adapters.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_common.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_itertools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/_legacy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/abc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/readers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/importlib_resources/simple.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__pycache__/context.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/__pycache__/functools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/context.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/functools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/text/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/jaraco/text/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__pycache__/more.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/__pycache__/recipes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/more.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/more_itertools/recipes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__about__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_manylinux.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_musllinux.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_structures.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/markers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/requirements.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/specifiers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/tags.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/actions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/common.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/results.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/unicode.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/actions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/common.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/diagram/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/helpers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/results.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/testing.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/unicode.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/pyparsing/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/_vendor/zipp.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/extern/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests-2.31.0.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests-2.31.0.dist-info/LICENSE create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests-2.31.0.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests-2.31.0.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests-2.31.0.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests-2.31.0.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests-2.31.0.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/__version__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/_internal_utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/adapters.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/api.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/auth.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/certs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/cookies.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/help.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/hooks.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/models.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/packages.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/sessions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/status_codes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/structures.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/__version__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/_internal_utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/adapters.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/api.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/auth.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/certs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/cookies.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/help.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/hooks.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/models.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/packages.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/sessions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/status_codes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/structures.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/requests/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/LICENSE create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/entry_points.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools-65.5.0.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/_entry_points.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/_imp.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/_importlib.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/_itertools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/_path.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/_reqs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/archive_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/build_meta.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/dep_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/depends.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/discovery.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/dist.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/errors.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/extension.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/glob.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/installer.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/launch.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/logging.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/monkey.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/msvc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/namespaces.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/package_index.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/py34compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/sandbox.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/unicode_utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/__pycache__/windows_support.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_deprecation_warning.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_collections.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_functools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_macos_compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/config.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/debug.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/dist.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/errors.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/extension.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/log.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/py39compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/_collections.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/_functools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/_macos_compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/_msvccompiler.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/archive_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/bcppcompiler.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/ccompiler.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/cmd.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/_framework_compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/_framework_compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/bdist.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/bdist_dumb.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/bdist_rpm.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_clib.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_py.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_scripts.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/check.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/clean.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/config.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/install.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_data.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_egg_info.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_headers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_lib.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/install_scripts.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/py37compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/register.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/sdist.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/command/upload.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/config.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/cygwinccompiler.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/debug.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/dep_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/dir_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/dist.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/errors.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/extension.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/fancy_getopt.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/file_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/filelist.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/log.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/msvc9compiler.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/msvccompiler.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/py38compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/py39compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/spawn.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/sysconfig.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/text_file.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/unixccompiler.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_distutils/versionpredicate.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_entry_points.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_imp.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_importlib.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_itertools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_path.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_reqs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/typing_extensions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/__pycache__/zipp.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_adapters.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_collections.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_functools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_itertools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_meta.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__pycache__/_text.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_collections.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_functools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_meta.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_text.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_adapters.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_common.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_itertools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/_legacy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/abc.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/readers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/__pycache__/simple.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_adapters.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_common.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_itertools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/_legacy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/abc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/readers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/simple.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__pycache__/context.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/__pycache__/functools.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/context.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/functools.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__pycache__/more.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__pycache__/recipes.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/more.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/recipes.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/ordered_set.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__about__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/_manylinux.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/_musllinux.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/_structures.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/markers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/requirements.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/specifiers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/tags.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/actions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/common.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/core.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/results.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/unicode.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/actions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/common.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/core.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/diagram/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/helpers.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/results.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/testing.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/unicode.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/pyparsing/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/_parser.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/_re.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/__pycache__/_types.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/_parser.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/_re.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/tomli/_types.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/_vendor/zipp.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/archive_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/build_meta.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/cli-32.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/cli-64.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/cli-arm64.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/cli.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/alias.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build_clib.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build_ext.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/build_py.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/develop.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/dist_info.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/easy_install.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/editable_wheel.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/egg_info.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install_lib.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/install_scripts.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/py36compat.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/register.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/rotate.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/saveopts.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/sdist.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/setopt.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/test.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/upload.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/__pycache__/upload_docs.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/alias.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/bdist_egg.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/bdist_rpm.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/build.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/build_clib.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/build_ext.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/build_py.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/develop.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/dist_info.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/easy_install.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/editable_wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/egg_info.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/install.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/install_egg_info.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/install_lib.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/install_scripts.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/launcher manifest.xml create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/py36compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/register.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/rotate.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/saveopts.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/sdist.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/setopt.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/test.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/upload.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/command/upload_docs.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/__pycache__/_apply_pyprojecttoml.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/__pycache__/expand.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/__pycache__/pyprojecttoml.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/__pycache__/setupcfg.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/error_reporting.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/extra_validations.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/fastjsonschema_exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/fastjsonschema_validations.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__pycache__/formats.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/error_reporting.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/extra_validations.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/formats.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/expand.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/config/setupcfg.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/dep_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/depends.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/discovery.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/dist.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/errors.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/extension.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/extern/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/extern/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/glob.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/gui-32.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/gui-64.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/gui-arm64.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/gui.exe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/installer.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/launch.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/logging.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/monkey.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/msvc.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/namespaces.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/package_index.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/py34compat.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/sandbox.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/script (dev).tmpl create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/script.tmpl create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/unicode_utils.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/wheel.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/setuptools/windows_support.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/LICENSE create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/top_level.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap-5.0.1.dist-info/zip-safe create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/__pycache__/buf.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/__pycache__/mman.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/buf.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/mman.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/__pycache__/lib.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/__pycache__/test_buf.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/__pycache__/test_mman.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/__pycache__/test_tutorial.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/__pycache__/test_util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/lib.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/test_buf.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/test_mman.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/test_tutorial.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/test/test_util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/smmap/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3-2.0.6.dist-info/INSTALLER create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3-2.0.6.dist-info/METADATA create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3-2.0.6.dist-info/RECORD create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3-2.0.6.dist-info/REQUESTED create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3-2.0.6.dist-info/WHEEL create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3-2.0.6.dist-info/licenses/LICENSE.txt create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/_base_connection.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/_collections.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/_request_methods.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/_version.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/connection.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/connectionpool.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/exceptions.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/fields.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/filepost.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/poolmanager.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/__pycache__/response.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/_base_connection.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/_collections.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/_request_methods.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/_version.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/connection.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/connectionpool.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/__pycache__/socks.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/_securetransport/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/_securetransport/bindings.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/_securetransport/low_level.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/pyopenssl.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/securetransport.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/contrib/socks.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/exceptions.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/fields.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/filepost.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/poolmanager.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/py.typed create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/response.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__init__.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/__init__.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/connection.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/proxy.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/request.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/response.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/retry.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/ssl_.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/ssltransport.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/timeout.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/url.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/util.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/__pycache__/wait.cpython-311.pyc create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/connection.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/proxy.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/request.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/response.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/retry.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/ssl_.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/ssl_match_hostname.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/ssltransport.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/timeout.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/url.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/util.py create mode 100644 frieren-cli/venv/lib/python3.11/site-packages/urllib3/util/wait.py create mode 120000 frieren-cli/venv/lib64 create mode 100644 frieren-cli/venv/pyvenv.cfg diff --git a/frieren-cli/venv/bin/Activate.ps1 b/frieren-cli/venv/bin/Activate.ps1 new file mode 100644 index 0000000..eeea358 --- /dev/null +++ b/frieren-cli/venv/bin/Activate.ps1 @@ -0,0 +1,247 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/frieren-cli/venv/bin/activate b/frieren-cli/venv/bin/activate new file mode 100644 index 0000000..b3555d8 --- /dev/null +++ b/frieren-cli/venv/bin/activate @@ -0,0 +1,69 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # This should detect bash and zsh, which have a hash command that must + # be called to get it to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r 2> /dev/null + fi + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV="/home/gcarvellas/projects/frieren/frieren-cli/venv" +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/bin:$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1="(venv) ${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT="(venv) " + export VIRTUAL_ENV_PROMPT +fi + +# This should detect bash and zsh, which have a hash command that must +# be called to get it to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then + hash -r 2> /dev/null +fi diff --git a/frieren-cli/venv/bin/activate.csh b/frieren-cli/venv/bin/activate.csh new file mode 100644 index 0000000..755860a --- /dev/null +++ b/frieren-cli/venv/bin/activate.csh @@ -0,0 +1,26 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/home/gcarvellas/projects/frieren/frieren-cli/venv" + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/bin:$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = "(venv) $prompt" + setenv VIRTUAL_ENV_PROMPT "(venv) " +endif + +alias pydoc python -m pydoc + +rehash diff --git a/frieren-cli/venv/bin/activate.fish b/frieren-cli/venv/bin/activate.fish new file mode 100644 index 0000000..a0b55f4 --- /dev/null +++ b/frieren-cli/venv/bin/activate.fish @@ -0,0 +1,69 @@ +# This file must be used with "source /bin/activate.fish" *from fish* +# (https://fishshell.com/); you cannot run it directly. + +function deactivate -d "Exit virtual environment and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + set -e _OLD_FISH_PROMPT_OVERRIDE + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + end + + set -e VIRTUAL_ENV + set -e VIRTUAL_ENV_PROMPT + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV "/home/gcarvellas/projects/frieren/frieren-cli/venv" + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/bin" $PATH + +# Unset PYTHONHOME if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # Save the current fish_prompt function as the function _old_fish_prompt. + functions -c fish_prompt _old_fish_prompt + + # With the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command. + set -l old_status $status + + # Output the venv prompt; color taken from the blue of the Python logo. + printf "%s%s%s" (set_color 4B8BBE) "(venv) " (set_color normal) + + # Restore the return status of the previous command. + echo "exit $old_status" | . + # Output the original/"old" prompt. + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + set -gx VIRTUAL_ENV_PROMPT "(venv) " +end diff --git a/frieren-cli/venv/bin/normalizer b/frieren-cli/venv/bin/normalizer new file mode 100755 index 0000000..03f3d98 --- /dev/null +++ b/frieren-cli/venv/bin/normalizer @@ -0,0 +1,8 @@ +#!/home/gcarvellas/projects/frieren/frieren-cli/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from charset_normalizer.cli import cli_detect +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cli_detect()) diff --git a/frieren-cli/venv/bin/pip b/frieren-cli/venv/bin/pip new file mode 100755 index 0000000..0c6016e --- /dev/null +++ b/frieren-cli/venv/bin/pip @@ -0,0 +1,8 @@ +#!/home/gcarvellas/projects/frieren/frieren-cli/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/frieren-cli/venv/bin/pip3 b/frieren-cli/venv/bin/pip3 new file mode 100755 index 0000000..0c6016e --- /dev/null +++ b/frieren-cli/venv/bin/pip3 @@ -0,0 +1,8 @@ +#!/home/gcarvellas/projects/frieren/frieren-cli/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/frieren-cli/venv/bin/pip3.11 b/frieren-cli/venv/bin/pip3.11 new file mode 100755 index 0000000..0c6016e --- /dev/null +++ b/frieren-cli/venv/bin/pip3.11 @@ -0,0 +1,8 @@ +#!/home/gcarvellas/projects/frieren/frieren-cli/venv/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/frieren-cli/venv/bin/python b/frieren-cli/venv/bin/python new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/frieren-cli/venv/bin/python @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/frieren-cli/venv/bin/python3 b/frieren-cli/venv/bin/python3 new file mode 120000 index 0000000..ae65fda --- /dev/null +++ b/frieren-cli/venv/bin/python3 @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/frieren-cli/venv/bin/python3.11 b/frieren-cli/venv/bin/python3.11 new file mode 120000 index 0000000..b8a0adb --- /dev/null +++ b/frieren-cli/venv/bin/python3.11 @@ -0,0 +1 @@ +python3 \ No newline at end of file diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/AUTHORS b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/AUTHORS new file mode 100644 index 0000000..3e99ff7 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/AUTHORS @@ -0,0 +1,56 @@ +GitPython was originally written by Michael Trier. +GitPython 0.2 was partially (re)written by Sebastian Thiel, based on 0.1.6 and git-dulwich. + +Contributors are: + +-Michael Trier +-Alan Briolat +-Florian Apolloner +-David Aguilar +-Jelmer Vernooij +-Steve Frécinaux +-Kai Lautaportti +-Paul Sowden +-Sebastian Thiel +-Jonathan Chu +-Vincent Driessen +-Phil Elson +-Bernard `Guyzmo` Pratz +-Timothy B. Hartman +-Konstantin Popov +-Peter Jones +-Anson Mansfield +-Ken Odegard +-Alexis Horgix Chotard +-Piotr Babij +-Mikuláš Poul +-Charles Bouchard-Légaré +-Yaroslav Halchenko +-Tim Swast +-William Luc Ritchie +-David Host +-A. Jesse Jiryu Davis +-Steven Whitman +-Stefan Stancu +-César Izurieta +-Arthur Milchior +-Anil Khatri +-JJ Graham +-Ben Thayer +-Dries Kennes +-Pratik Anurag +-Harmon +-Liam Beguin +-Ram Rachum +-Alba Mendez +-Robert Westman +-Hugo van Kemenade +-Hiroki Tokunaga +-Julien Mauroy +-Patrick Gerard +-Luke Twist +-Joseph Hale +-Santos Gallegos +-Wenhan Zhu + +Portions derived from other open source works and are clearly marked. diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/INSTALLER b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/LICENSE b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/LICENSE new file mode 100644 index 0000000..ba8a219 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/LICENSE @@ -0,0 +1,29 @@ +Copyright (C) 2008, 2009 Michael Trier and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +* Neither the name of the GitPython project nor the names of +its contributors may be used to endorse or promote products derived +from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/METADATA b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/METADATA new file mode 100644 index 0000000..62b7b0b --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/METADATA @@ -0,0 +1,314 @@ +Metadata-Version: 2.1 +Name: GitPython +Version: 3.1.37 +Summary: GitPython is a Python library used to interact with Git repositories +Home-page: https://github.com/gitpython-developers/GitPython +Author: Sebastian Thiel, Michael Trier +Author-email: byronimo@gmail.com, mtrier@gmail.com +License: BSD +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Operating System :: POSIX +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Typing :: Typed +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +License-File: LICENSE +License-File: AUTHORS +Requires-Dist: gitdb <5,>=4.0.1 +Requires-Dist: typing-extensions >=3.7.4.3 ; python_version < "3.8" +Provides-Extra: test +Requires-Dist: black ; extra == 'test' +Requires-Dist: coverage[toml] ; extra == 'test' +Requires-Dist: ddt !=1.4.3,>=1.1.1 ; extra == 'test' +Requires-Dist: mypy ; extra == 'test' +Requires-Dist: pre-commit ; extra == 'test' +Requires-Dist: pytest ; extra == 'test' +Requires-Dist: pytest-cov ; extra == 'test' +Requires-Dist: pytest-sugar ; extra == 'test' + +![Python package](https://github.com/gitpython-developers/GitPython/workflows/Python%20package/badge.svg) +[![Documentation Status](https://readthedocs.org/projects/gitpython/badge/?version=stable)](https://readthedocs.org/projects/gitpython/?badge=stable) +[![Packaging status](https://repology.org/badge/tiny-repos/python:gitpython.svg)](https://repology.org/metapackage/python:gitpython/versions) + +## [Gitoxide](https://github.com/Byron/gitoxide): A peek into the future… + +I started working on GitPython in 2009, back in the days when Python was 'my thing' and I had great plans with it. +Of course, back in the days, I didn't really know what I was doing and this shows in many places. Somewhat similar to +Python this happens to be 'good enough', but at the same time is deeply flawed and broken beyond repair. + +By now, GitPython is widely used and I am sure there is a good reason for that, it's something to be proud of and happy about. +The community is maintaining the software and is keeping it relevant for which I am absolutely grateful. For the time to come I am happy to continue maintaining GitPython, remaining hopeful that one day it won't be needed anymore. + +More than 15 years after my first meeting with 'git' I am still in excited about it, and am happy to finally have the tools and +probably the skills to scratch that itch of mine: implement `git` in a way that makes tool creation a piece of cake for most. + +If you like the idea and want to learn more, please head over to [gitoxide](https://github.com/Byron/gitoxide), an +implementation of 'git' in [Rust](https://www.rust-lang.org). + +## GitPython + +GitPython is a python library used to interact with git repositories, high-level like git-porcelain, +or low-level like git-plumbing. + +It provides abstractions of git objects for easy access of repository data often backed by calling the `git` +command-line program. + +### DEVELOPMENT STATUS + +This project is in **maintenance mode**, which means that + +- …there will be no feature development, unless these are contributed +- …there will be no bug fixes, unless they are relevant to the safety of users, or contributed +- …issues will be responded to with waiting times of up to a month + +The project is open to contributions of all kinds, as well as new maintainers. + +### REQUIREMENTS + +GitPython needs the `git` executable to be installed on the system and available in your `PATH` for most operations. +If it is not in your `PATH`, you can help GitPython find it by setting +the `GIT_PYTHON_GIT_EXECUTABLE=` environment variable. + +- Git (1.7.x or newer) +- Python >= 3.7 + +The list of dependencies are listed in `./requirements.txt` and `./test-requirements.txt`. +The installer takes care of installing them for you. + +### INSTALL + +GitPython and its required package dependencies can be installed in any of the following ways, all of which should typically be done in a [virtual environment](https://docs.python.org/3/tutorial/venv.html). + +#### From PyPI + +To obtain and install a copy [from PyPI](https://pypi.org/project/GitPython/), run: + +```bash +pip install GitPython +``` + +(A distribution package can also be downloaded for manual installation at [the PyPI page](https://pypi.org/project/GitPython/).) + +#### From downloaded source code + +If you have downloaded the source code, run this from inside the unpacked `GitPython` directory: + +```bash +pip install . +``` + +#### By cloning the source code repository + +To clone the [the GitHub repository](https://github.com/gitpython-developers/GitPython) from source to work on the code, you can do it like so: + +```bash +git clone https://github.com/gitpython-developers/GitPython +cd GitPython +git fetch --tags +./init-tests-after-clone.sh +``` + +If you are cloning [your own fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks), then replace the above `git clone` command with one that gives the URL of your fork. Or use this [`gh`](https://cli.github.com/) command (assuming you have `gh` and your fork is called `GitPython`): + +```bash +gh repo clone GitPython +``` + +Having cloned the repo, create and activate your [virtual environment](https://docs.python.org/3/tutorial/venv.html). Then make an [editable install](https://pip.pypa.io/en/stable/topics/local-project-installs/#editable-installs): + +```bash +pip install -e ".[test]" +``` + +In the less common case that you do not want to install test dependencies, `pip install -e .` can be used instead. + +### Limitations + +#### Leakage of System Resources + +GitPython is not suited for long-running processes (like daemons) as it tends to +leak system resources. It was written in a time where destructors (as implemented +in the `__del__` method) still ran deterministically. + +In case you still want to use it in such a context, you will want to search the +codebase for `__del__` implementations and call these yourself when you see fit. + +Another way assure proper cleanup of resources is to factor out GitPython into a +separate process which can be dropped periodically. + +#### Windows support + +See [Issue #525](https://github.com/gitpython-developers/GitPython/issues/525). + +### RUNNING TESTS + +_Important_: Right after cloning this repository, please be sure to have +executed `git fetch --tags` followed by the `./init-tests-after-clone.sh` +script in the repository root. Otherwise you will encounter test failures. + +On _Windows_, make sure you have `git-daemon` in your PATH. For MINGW-git, the `git-daemon.exe` +exists in `Git\mingw64\libexec\git-core\`; CYGWIN has no daemon, but should get along fine +with MINGW's. + +#### Install test dependencies + +Ensure testing libraries are installed. This is taken care of already if you installed with: + +```bash +pip install -e ".[test]" +``` + +Otherwise, you can run: + +```bash +pip install -r test-requirements.txt +``` + +#### Test commands + +To test, run: + +```bash +pytest +``` + +To lint, run: + +```bash +pre-commit run --all-files +``` + +To typecheck, run: + +```bash +mypy -p git +``` + +For automatic code formatting, run: + +```bash +black . +``` + +Configuration for flake8 is in the `./.flake8` file. + +Configurations for `mypy`, `pytest`, `coverage.py`, and `black` are in `./pyproject.toml`. + +The same linting and testing will also be performed against different supported python versions +upon submitting a pull request (or on each push if you have a fork with a "main" branch and actions enabled). + +### Contributions + +Please have a look at the [contributions file][contributing]. + +### INFRASTRUCTURE + +- [User Documentation](http://gitpython.readthedocs.org) +- [Questions and Answers](http://stackexchange.com/filters/167317/gitpython) +- Please post on Stack Overflow and use the `gitpython` tag +- [Issue Tracker](https://github.com/gitpython-developers/GitPython/issues) + - Post reproducible bugs and feature requests as a new issue. + Please be sure to provide the following information if posting bugs: + - GitPython version (e.g. `import git; git.__version__`) + - Python version (e.g. `python --version`) + - The encountered stack-trace, if applicable + - Enough information to allow reproducing the issue + +### How to make a new release + +- Update/verify the **version** in the `VERSION` file. +- Update/verify that the `doc/source/changes.rst` changelog file was updated. +- Commit everything. +- Run `git tag -s ` to tag the version in Git. +- _Optionally_ create and activate a [virtual environment](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment) using `venv` or `virtualenv`.\ +(When run in a virtual environment, the next step will automatically take care of installing `build` and `twine` in it.) +- Run `make release`. +- Close the milestone mentioned in the _changelog_ and create a new one. _Do not reuse milestones by renaming them_. +- Go to [GitHub Releases](https://github.com/gitpython-developers/GitPython/releases) and publish a new one with the recently pushed tag. Generate the changelog. + +### How to verify a release (DEPRECATED) + +Note that what follows is deprecated and future releases won't be signed anymore. +More details about how it came to that can be found [in this issue](https://github.com/gitpython-developers/gitdb/issues/77). + +---- + +Please only use releases from `pypi` as you can verify the respective source +tarballs. + +This script shows how to verify the tarball was indeed created by the authors of +this project: + +```bash +curl https://files.pythonhosted.org/packages/09/bc/ae32e07e89cc25b9e5c793d19a1e5454d30a8e37d95040991160f942519e/GitPython-3.1.8-py3-none-any.whl > gitpython.whl +curl https://files.pythonhosted.org/packages/09/bc/ae32e07e89cc25b9e5c793d19a1e5454d30a8e37d95040991160f942519e/GitPython-3.1.8-py3-none-any.whl.asc > gitpython-signature.asc +gpg --verify gitpython-signature.asc gitpython.whl +``` + +which outputs + +```bash +gpg: Signature made Fr 4 Sep 10:04:50 2020 CST +gpg: using RSA key 27C50E7F590947D7273A741E85194C08421980C9 +gpg: Good signature from "Sebastian Thiel (YubiKey USB-C) " [ultimate] +gpg: aka "Sebastian Thiel (In Rust I trust) " [ultimate] +``` + +You can verify that the keyid indeed matches the release-signature key provided in this +repository by looking at the keys details: + +```bash +gpg --list-packets ./release-verification-key.asc +``` + +You can verify that the commit adding it was also signed by it using: + +```bash +git show --show-signature ./release-verification-key.asc +``` + +If you would like to trust it permanently, you can import and sign it: + +```bash +gpg --import ./release-verification-key.asc +gpg --edit-key 4C08421980C9 + +> sign +> save +``` + +### Projects using GitPython + +- [PyDriller](https://github.com/ishepard/pydriller) +- [Kivy Designer](https://github.com/kivy/kivy-designer) +- [Prowl](https://github.com/nettitude/Prowl) +- [Python Taint](https://github.com/python-security/pyt) +- [Buster](https://github.com/axitkhurana/buster) +- [git-ftp](https://github.com/ezyang/git-ftp) +- [Git-Pandas](https://github.com/wdm0006/git-pandas) +- [PyGitUp](https://github.com/msiemens/PyGitUp) +- [PyJFuzz](https://github.com/mseclab/PyJFuzz) +- [Loki](https://github.com/Neo23x0/Loki) +- [Omniwallet](https://github.com/OmniLayer/omniwallet) +- [GitViper](https://github.com/BeayemX/GitViper) +- [Git Gud](https://github.com/bthayer2365/git-gud) + +### LICENSE + +[New BSD License](https://opensource.org/license/bsd-3-clause/). See the [LICENSE file](https://github.com/gitpython-developers/GitPython/blob/main/license). + +[contributing]: https://github.com/gitpython-developers/GitPython/blob/main/CONTRIBUTING.md +[license]: https://github.com/gitpython-developers/GitPython/blob/main/license diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/RECORD b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/RECORD new file mode 100644 index 0000000..775d6c9 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/RECORD @@ -0,0 +1,83 @@ +GitPython-3.1.37.dist-info/AUTHORS,sha256=2K0cyxSCOTYcWPgtJ8dxx9NMLiHKy96euJRxJNAmtJo,2200 +GitPython-3.1.37.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +GitPython-3.1.37.dist-info/LICENSE,sha256=hvyUwyGpr7wRUUcTURuv3tIl8lEA3MD3NQ6CvCMbi-s,1503 +GitPython-3.1.37.dist-info/METADATA,sha256=PjY_u3dfKBZefYT6fB9ELnH3z1p8rslID2nOrcqD2oQ,12400 +GitPython-3.1.37.dist-info/RECORD,, +GitPython-3.1.37.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +GitPython-3.1.37.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92 +GitPython-3.1.37.dist-info/top_level.txt,sha256=0hzDuIp8obv624V3GmbqsagBWkk8ohtGU-Bc1PmTT0o,4 +git/__init__.py,sha256=tSIixEEljads6CxGdhXKI5hT8iUO-WtDx5G-C-UWd7s,2373 +git/__pycache__/__init__.cpython-311.pyc,, +git/__pycache__/cmd.cpython-311.pyc,, +git/__pycache__/compat.cpython-311.pyc,, +git/__pycache__/config.cpython-311.pyc,, +git/__pycache__/db.cpython-311.pyc,, +git/__pycache__/diff.cpython-311.pyc,, +git/__pycache__/exc.cpython-311.pyc,, +git/__pycache__/remote.cpython-311.pyc,, +git/__pycache__/types.cpython-311.pyc,, +git/__pycache__/util.cpython-311.pyc,, +git/cmd.py,sha256=LjufCk5nxJUcmhphEgFPJQ-JmRFNLk1E6e2Z-SeUadY,54063 +git/compat.py,sha256=iqBFkNL1TQhfoLs5rglsKFLvBtPMV-KsDtCxsVMJOa4,2250 +git/config.py,sha256=HurHHJTNAtA8swsIdFfygah0M57662iCS2WD_aJhhN4,34523 +git/db.py,sha256=dEs2Bn-iDuHyero9afw8mrXHrLE7_CDExv943iWU9WI,2244 +git/diff.py,sha256=hmdB6cO7PBh4yQvEI45AMXkYchAcXQRCNOPKKcwW7EI,23427 +git/exc.py,sha256=p0w_sArVqHUCBsHC-K8yjezTNcE5k2Zx3xJEoZI-zd0,6438 +git/index/__init__.py,sha256=43ovvVNocVRNiQd4fLqvUMuGGmwhBQ9SsiQ46vkvk1E,89 +git/index/__pycache__/__init__.cpython-311.pyc,, +git/index/__pycache__/base.cpython-311.pyc,, +git/index/__pycache__/fun.cpython-311.pyc,, +git/index/__pycache__/typ.cpython-311.pyc,, +git/index/__pycache__/util.cpython-311.pyc,, +git/index/base.py,sha256=mB-w2czQcAznvMrCd3p2gHrfdBLwCZua11POg70rUCA,57449 +git/index/fun.py,sha256=LovPTfZMkusNQXYIbzrWDqTbTSsF-XT5HBxxD2uAq44,16433 +git/index/typ.py,sha256=QnyWeqzU7_xnyiwOki5W633Jp9g5COqEf6B4PeW3hK8,6252 +git/index/util.py,sha256=FTLcCyVK7yxk13Un7fsBDB8BCEuH6lojCVJkHVpnucw,3731 +git/objects/__init__.py,sha256=NW8HBfdZvBYe9W6IjMWafSj_DVlV2REmmrpWKrHkGVw,692 +git/objects/__pycache__/__init__.cpython-311.pyc,, +git/objects/__pycache__/base.cpython-311.pyc,, +git/objects/__pycache__/blob.cpython-311.pyc,, +git/objects/__pycache__/commit.cpython-311.pyc,, +git/objects/__pycache__/fun.cpython-311.pyc,, +git/objects/__pycache__/tag.cpython-311.pyc,, +git/objects/__pycache__/tree.cpython-311.pyc,, +git/objects/__pycache__/util.cpython-311.pyc,, +git/objects/base.py,sha256=f1vrYjw_EJ7Qr4VDfSsAX10u32ym9f465lPJvVGnwDA,7851 +git/objects/blob.py,sha256=PyG0Dxgu1HdScCJ9BgFRU_GRTQUlLlb-wjs86tY-ujA,980 +git/objects/commit.py,sha256=rjAYVogv0W1AveWBEjCTLXB4m1ZCPDi8pkcU-nsjgFY,29105 +git/objects/fun.py,sha256=bOPVPGlZQuDQ-ngiyPNz9OuwxzMsxOatuymiAZb-yKo,8611 +git/objects/submodule/__init__.py,sha256=OsMeiex7cG6ev2f35IaJ5csH-eXchSoNKCt4HXUG5Ws,93 +git/objects/submodule/__pycache__/__init__.cpython-311.pyc,, +git/objects/submodule/__pycache__/base.cpython-311.pyc,, +git/objects/submodule/__pycache__/root.cpython-311.pyc,, +git/objects/submodule/__pycache__/util.cpython-311.pyc,, +git/objects/submodule/base.py,sha256=lsThTfQRHsCKAUVs_wwA9Xd0W85I1HwgVs_-3WoX2Mg,61695 +git/objects/submodule/root.py,sha256=Ev_RnGzv4hi3UqEFMHuSR-uGR7kYpwOgwZFUG31X-Hc,19568 +git/objects/submodule/util.py,sha256=u2zQGFWBmryqET0XWf9BuiY1OOgWB8YCU3Wz0xdp4E4,3380 +git/objects/tag.py,sha256=sbHBQiYUCd_tfp73A77wZKtuxfixaRVFPYt6Nu5PVvY,3834 +git/objects/tree.py,sha256=jKTat5B-hPsltadN_LRyoT3CIdSCl8Zte9dfSweK1EE,14224 +git/objects/util.py,sha256=mjbXdlJqRoVj5BPeOOQWXcGpOGhk7eCH89av5QeG5Fs,22269 +git/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +git/refs/__init__.py,sha256=PMF97jMUcivbCCEJnl2zTs-YtECNFp8rL8GHK8AitXU,203 +git/refs/__pycache__/__init__.cpython-311.pyc,, +git/refs/__pycache__/head.cpython-311.pyc,, +git/refs/__pycache__/log.cpython-311.pyc,, +git/refs/__pycache__/reference.cpython-311.pyc,, +git/refs/__pycache__/remote.cpython-311.pyc,, +git/refs/__pycache__/symbolic.cpython-311.pyc,, +git/refs/__pycache__/tag.cpython-311.pyc,, +git/refs/head.py,sha256=rZ4LbFd05Gs9sAuSU5VQRDmJZfrwMwWtBpLlmiUQ-Zg,9756 +git/refs/log.py,sha256=TQOTtcGX2cJzdcvZFA8FgVubm1Ik0ktlCMpmSrf5fGw,11823 +git/refs/reference.py,sha256=DUx7QvYqTBeVxG53ntPfKCp3wuJyDBRIZcPCy1OD22s,5414 +git/refs/remote.py,sha256=E63Bh5ig1GYrk6FE46iNtS5P6ZgODyPXot8eJw-mxts,2556 +git/refs/symbolic.py,sha256=0ZBaV-bw49pUdPY9ZWGp1Ji4zPCh4F51aDat0HBwbMY,32479 +git/refs/tag.py,sha256=FNoCZ3BdDl2i5kD3si2P9hoXU9rDAZ_YK0Rn84TmKT8,4419 +git/remote.py,sha256=woruOPMlmU8FSIxM41bWUZUQLD_sTufILATlBOQfvqM,45062 +git/repo/__init__.py,sha256=XMpdeowJRtTEd80jAcrKSQfMu2JZGMfPlpuIYHG2ZCk,80 +git/repo/__pycache__/__init__.cpython-311.pyc,, +git/repo/__pycache__/base.cpython-311.pyc,, +git/repo/__pycache__/fun.cpython-311.pyc,, +git/repo/base.py,sha256=hYoR6plH4QQK30CkLiHuaukoNzp_adsFy9YrEeLtw3s,55159 +git/repo/fun.py,sha256=VTRODXAb_x8bazkSd8g-Pkk8M2iLVK4kPoKQY9HXjZc,12962 +git/types.py,sha256=x1QovbbYwaXWMii3G3o4DnaWz-jWjDCpcWpKJMkJwYc,3090 +git/util.py,sha256=oCNleY9mbjsN8TAcfaE6cGPEmaOk7MoTQi18-8pTdpE,40348 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/REQUESTED b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/WHEEL b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/WHEEL new file mode 100644 index 0000000..7e68873 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.41.2) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/top_level.txt b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/top_level.txt new file mode 100644 index 0000000..5664e30 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/GitPython-3.1.37.dist-info/top_level.txt @@ -0,0 +1 @@ +git diff --git a/frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py b/frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py new file mode 100644 index 0000000..f987a53 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__init__.py @@ -0,0 +1,222 @@ +# don't import any costly modules +import sys +import os + + +is_pypy = '__pypy__' in sys.builtin_module_names + + +def warn_distutils_present(): + if 'distutils' not in sys.modules: + return + if is_pypy and sys.version_info < (3, 7): + # PyPy for 3.6 unconditionally imports distutils, so bypass the warning + # https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250 + return + import warnings + + warnings.warn( + "Distutils was imported before Setuptools, but importing Setuptools " + "also replaces the `distutils` module in `sys.modules`. This may lead " + "to undesirable behaviors or errors. To avoid these issues, avoid " + "using distutils directly, ensure that setuptools is installed in the " + "traditional way (e.g. not an editable install), and/or make sure " + "that setuptools is always imported before distutils." + ) + + +def clear_distutils(): + if 'distutils' not in sys.modules: + return + import warnings + + warnings.warn("Setuptools is replacing distutils.") + mods = [ + name + for name in sys.modules + if name == "distutils" or name.startswith("distutils.") + ] + for name in mods: + del sys.modules[name] + + +def enabled(): + """ + Allow selection of distutils by environment variable. + """ + which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'local') + return which == 'local' + + +def ensure_local_distutils(): + import importlib + + clear_distutils() + + # With the DistutilsMetaFinder in place, + # perform an import to cause distutils to be + # loaded from setuptools._distutils. Ref #2906. + with shim(): + importlib.import_module('distutils') + + # check that submodules load as expected + core = importlib.import_module('distutils.core') + assert '_distutils' in core.__file__, core.__file__ + assert 'setuptools._distutils.log' not in sys.modules + + +def do_override(): + """ + Ensure that the local copy of distutils is preferred over stdlib. + + See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401 + for more motivation. + """ + if enabled(): + warn_distutils_present() + ensure_local_distutils() + + +class _TrivialRe: + def __init__(self, *patterns): + self._patterns = patterns + + def match(self, string): + return all(pat in string for pat in self._patterns) + + +class DistutilsMetaFinder: + def find_spec(self, fullname, path, target=None): + # optimization: only consider top level modules and those + # found in the CPython test suite. + if path is not None and not fullname.startswith('test.'): + return + + method_name = 'spec_for_{fullname}'.format(**locals()) + method = getattr(self, method_name, lambda: None) + return method() + + def spec_for_distutils(self): + if self.is_cpython(): + return + + import importlib + import importlib.abc + import importlib.util + + try: + mod = importlib.import_module('setuptools._distutils') + except Exception: + # There are a couple of cases where setuptools._distutils + # may not be present: + # - An older Setuptools without a local distutils is + # taking precedence. Ref #2957. + # - Path manipulation during sitecustomize removes + # setuptools from the path but only after the hook + # has been loaded. Ref #2980. + # In either case, fall back to stdlib behavior. + return + + class DistutilsLoader(importlib.abc.Loader): + def create_module(self, spec): + mod.__name__ = 'distutils' + return mod + + def exec_module(self, module): + pass + + return importlib.util.spec_from_loader( + 'distutils', DistutilsLoader(), origin=mod.__file__ + ) + + @staticmethod + def is_cpython(): + """ + Suppress supplying distutils for CPython (build and tests). + Ref #2965 and #3007. + """ + return os.path.isfile('pybuilddir.txt') + + def spec_for_pip(self): + """ + Ensure stdlib distutils when running under pip. + See pypa/pip#8761 for rationale. + """ + if self.pip_imported_during_build(): + return + clear_distutils() + self.spec_for_distutils = lambda: None + + @classmethod + def pip_imported_during_build(cls): + """ + Detect if pip is being imported in a build script. Ref #2355. + """ + import traceback + + return any( + cls.frame_file_is_setup(frame) for frame, line in traceback.walk_stack(None) + ) + + @staticmethod + def frame_file_is_setup(frame): + """ + Return True if the indicated frame suggests a setup.py file. + """ + # some frames may not have __file__ (#2940) + return frame.f_globals.get('__file__', '').endswith('setup.py') + + def spec_for_sensitive_tests(self): + """ + Ensure stdlib distutils when running select tests under CPython. + + python/cpython#91169 + """ + clear_distutils() + self.spec_for_distutils = lambda: None + + sensitive_tests = ( + [ + 'test.test_distutils', + 'test.test_peg_generator', + 'test.test_importlib', + ] + if sys.version_info < (3, 10) + else [ + 'test.test_distutils', + ] + ) + + +for name in DistutilsMetaFinder.sensitive_tests: + setattr( + DistutilsMetaFinder, + f'spec_for_{name}', + DistutilsMetaFinder.spec_for_sensitive_tests, + ) + + +DISTUTILS_FINDER = DistutilsMetaFinder() + + +def add_shim(): + DISTUTILS_FINDER in sys.meta_path or insert_shim() + + +class shim: + def __enter__(self): + insert_shim() + + def __exit__(self, exc, value, tb): + remove_shim() + + +def insert_shim(): + sys.meta_path.insert(0, DISTUTILS_FINDER) + + +def remove_shim(): + try: + sys.meta_path.remove(DISTUTILS_FINDER) + except ValueError: + pass diff --git a/frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..27571dd23a839076dea6e957ef0eb83259f26fbc GIT binary patch literal 11181 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 V)V51fjJj2TB1<5dW*`{qe*xo43n2gi literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..212fe7c3f6dcc0dff5cb6d6d84ff65e5c64b269c GIT binary patch literal 338 zcmZ3^%ge<81ba6qrRo6b#~=<2Fhd!i9e|AK3``8E3@HrD7#SE=12F_FfU{sCAbJ@P zuZ9aSGNdpDGiWm1;*U?sEG{W6$;>H^&qz$p_5+G>#m8sn7UUO|#K+&_PRWnYFH0>d z%1lXJ$?zFuz^`omjQreG{q*F-qO#PSoWx@Nf};Ga)Z~(4{j{RY)S}cp7_FO}lc`^p znpdWulbNJnP+5|ZpJ%LRXsBPDS(2(-0JJYLJ+)XL%?=g#t>kOKg7&I?3XkTH_z5qi-Y(T{T=3.6 +License-File: LICENSE + +Certifi: Python SSL Certificates +================================ + +Certifi provides Mozilla's carefully curated collection of Root Certificates for +validating the trustworthiness of SSL certificates while verifying the identity +of TLS hosts. It has been extracted from the `Requests`_ project. + +Installation +------------ + +``certifi`` is available on PyPI. Simply install it with ``pip``:: + + $ pip install certifi + +Usage +----- + +To reference the installed certificate authority (CA) bundle, you can use the +built-in function:: + + >>> import certifi + + >>> certifi.where() + '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' + +Or from the command line:: + + $ python -m certifi + /usr/local/lib/python3.7/site-packages/certifi/cacert.pem + +Enjoy! + +.. _`Requests`: https://requests.readthedocs.io/en/master/ + +Addition/Removal of Certificates +-------------------------------- + +Certifi does not support any addition/removal or other modification of the +CA trust store content. This project is intended to provide a reliable and +highly portable root of trust to python deployments. Look to upstream projects +for methods to use alternate trust. + + diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/RECORD b/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/RECORD new file mode 100644 index 0000000..47fe3d9 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/RECORD @@ -0,0 +1,15 @@ +certifi-2023.7.22.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2023.7.22.dist-info/LICENSE,sha256=oC9sY4-fuE0G93ZMOrCF2K9-2luTwWbaVDEkeQd8b7A,1052 +certifi-2023.7.22.dist-info/METADATA,sha256=oyc8gd32SOVo0IGolt8-bR7FnZ9Z99GoHoGE6ACcvFA,2191 +certifi-2023.7.22.dist-info/RECORD,, +certifi-2023.7.22.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +certifi-2023.7.22.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +certifi-2023.7.22.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=L_j-d0kYuA_MzA2_2hraF1ovf6KT6DTquRdV3paQwOk,94 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/__pycache__/__init__.cpython-311.pyc,, +certifi/__pycache__/__main__.cpython-311.pyc,, +certifi/__pycache__/core.cpython-311.pyc,, +certifi/cacert.pem,sha256=eU0Dn_3yd8BH4m8sfVj4Glhl2KDrcCSg-sEWT-pNJ88,281617 +certifi/core.py,sha256=lhewz0zFb2b4ULsQurElmloYwQoecjWzPqY67P8T7iM,4219 +certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/REQUESTED b/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/WHEEL b/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/WHEEL new file mode 100644 index 0000000..5bad85f --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/top_level.txt b/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/top_level.txt new file mode 100644 index 0000000..963eac5 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/certifi-2023.7.22.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/__init__.py b/frieren-cli/venv/lib/python3.11/site-packages/certifi/__init__.py new file mode 100644 index 0000000..8ce89ce --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/certifi/__init__.py @@ -0,0 +1,4 @@ +from .core import contents, where + +__all__ = ["contents", "where"] +__version__ = "2023.07.22" diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/__main__.py b/frieren-cli/venv/lib/python3.11/site-packages/certifi/__main__.py new file mode 100644 index 0000000..8945b5d --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/certifi/__main__.py @@ -0,0 +1,12 @@ +import argparse + +from certifi import contents, where + +parser = argparse.ArgumentParser() +parser.add_argument("-c", "--contents", action="store_true") +args = parser.parse_args() + +if args.contents: + print(contents()) +else: + print(where()) diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/__init__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..89922ae00f25b1d232629469c5f1cfa3ff37a535 GIT binary patch literal 350 zcmZusy-ve05Vn()mPTb`VL^23(6~(p7Q`d4uw}ps_O&%Qc4V7WW$Gia@d${Gw_xp9 zWkOGitE+xuG|ZajWA&EA6FV%zt{GvbJ2i3*(IBFF-a zc)-J1kcB+TBHp@2gM%;Z4+lZrVOlv*&epBP91NJy&rRghV>cb8lVo(Br0Lb5RYy$! zUDs_&b15mUV@fM9R%k`(E82Q0+A%WM1&|rbO$AcsmXt={0dtm2jqo~Zk3%K}sX$dk zid#}H-CV0lG9D8v91P2x-RCo~gn@BlDhQ=Q2}fyCE_a=aLh}a+mnQa_%|mwN(|3q5 c-k`JffAJ9?KP}eX(^Y$Obh3&YH;10|1J?;)(*OVf literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/__main__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/__main__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7c0aa2434c1afe98711fd5489367874afd5da295 GIT binary patch literal 739 zcmah`&1(}u6o0edyBL**K=rsu5a#_~hX|i#@nB7ELJZzzd6ngNc zH$6o~5B?Wkld{k-r+_DK#ol^yX4@@Q1mDb?_ujnUd-I!_kF}ZsOum0>;d5qx@Sqa; z$~phVoVVbChXUwvD+DMMdO|4nL<9n07)n*qlsR9j0D3Z(KPcDX4aXBb$&rZv(VS(daKY|xv~J| z6zV5XfAi$s{ZFrFP@hAmfX)m$3$=EtHc!;%TwN{H)m&PN>fysP5K(<0>G{*i=4A6| h>v(G}H43RQtLC!ItxwjEHjXzAx`*Ao9ON$J_#4ZUy2=0m literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/core.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/certifi/__pycache__/core.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c85c2286c8c1efd11e23ea895d8e9c7ae291629e GIT binary patch literal 3356 zcmbVOO>7&-6`uVgmlUa$M4FZ**JSCaGFwZm?NqL-wy~iEu@hA>Bn7D11HtYNt(8eG zF}t?nL@9U(P{RlirAT32Qs`3GhI7aC3?W@9iaSEQ<3kgG~T5r`p{LhyzSg{o!I2z?+IB3(HQa?}u)NI;X?qbUNK1`4ri zybymuQ?y6ZfUn8h+hAePtF?j#b*wT}9WD$Dgbq_}b;RE>?&gHwAcX{sszyA}myD1I zF^(HUG+_+Wq%i_B67b?lqDJxqr4a9)L&6qXYDOD;Z$Fyphilui1tDMnGsA;-Rs~L-BOvldXR?VR` z$DWSv;V~9+;+_Qc9x|2_dAMX3%Vvdg1<~fA&S!L->ldU9*X(}{@PIgeKh%x49USQv z$0N7XFocKT3Qyqel&zk5ejfqagR_FIlI-}71xp;^4$=LjW!3; z-=)ZS_OBC zH$BrDzvzx%yf^=?Hr`an8HPc?6_7-H_iF&)3J3H8mHmYGjKSn?=_h>aAUF6kur{R6 zWLWE36xj>FJ4-a%LbM^rx` z*f=zE@Y;ER2Kh!yZro^TX;(`>)y`~dXC9qwX)~@i^HjUMtzG_lvZ-BeX^XD5*i;ui zg*lO-E%w5wNaQlQ1{;G$z+^IXcqY3KLSOXE^hOURqlaLQCkG}ei4N-S76&zT%T|x< z_Yv~{_&4%d2j&+?Oy=&INT^1KfQJ7QKdCD z>yFKS59d0_Gd}{w{mx~Go>PD&pP)6pvP4)4gvWws_5RHwzaGi+AnYFpK$1r{Pi)P9 zaj~h*wX```n`^3b9Wn*3yj_EQ`tE>bPhSTr=gnL6xpLbnPyL*SAjVDI;o)vHa+Oir zy3HUa@pj-L%9zD$y_Xiu86NSQAOw%oOM8&Cb@4MH=mb9_@5}4*(Qy)7tBVHQyaoxb z7swJhP0kTpUK8JuZjd!WAUB8rj{ze&ae~a~y2b=?mV3P=VN_GZ- z%SOp5*~nD}ix*WL`=jgs4qp3@0N@xgGC1<*iH|2gncTYCj8C=VQ*L~!O@v7L^W;wA z_=8J-y7ckvC$nt{dc5vK_$SW#7s6rRQPQ(#&yMOo?6c9A|B`$~`n!BZ3V#_A0Cng( zD9D({(u?7_dXT}6w!VW5cS|r^y&t%2di3=Ahrg7pW9|$Deuo$DidML2+3W`}nTHLN z)k;;$)uMN27mHlRD=8;%p={%3yKLZ<;1O8{!Tt#Vcz$f~!`DB0>;7AxUTwuD+}OlD z;ahF^!?lmr@2_uO*<5dFXI<@VQ$71)(*M43$$p6Y20xI7-qFj8uM)7r2@1e zOCzA8vS|RWICty#uLml)LfC2Si~h#@!?g?}Jbb-#`*L;BkN4nto~ys?{6G6O`xPuk z66`%daB4wli;5t(2||nr1C1y??GTZ}u9VnV+m=o>rBl1|`Q}l--H}w|O$d|5d|OT_ zCpRv%2~_>?Q$bl0Hgs@!sQ(LwNGRee$2L>jO1i0}cjZ@_NBw#~e7y5vsM;h5=LO}} z?uTFXKKvh0CCXsq8a_MnP-7mS9r)%FNEk=aR|YDdBfqy>PT;nB7P_3p@6Tfxo{Nu=6glvFaD>`aW3XuLgueYm6t TQj#)-R)wk`qW}BhJn#KCEU~n} literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/cacert.pem b/frieren-cli/venv/lib/python3.11/site-packages/certifi/cacert.pem new file mode 100644 index 0000000..0212369 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/certifi/cacert.pem @@ -0,0 +1,4635 @@ + +# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Label: "GlobalSign Root CA" +# Serial: 4835703278459707669005204 +# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a +# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c +# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99 +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG +A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv +b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw +MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT +aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ +jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp +xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp +1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG +snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ +U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 +9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B +AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz +yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE +38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP +AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad +DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME +HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Label: "Entrust.net Premium 2048 Secure Server CA" +# Serial: 946069240 +# MD5 Fingerprint: ee:29:31:bc:32:7e:9a:e6:e8:b5:f7:51:b4:34:71:90 +# SHA1 Fingerprint: 50:30:06:09:1d:97:d4:f5:ae:39:f7:cb:e7:92:7d:7d:65:2d:34:31 +# SHA256 Fingerprint: 6d:c4:71:72:e0:1c:bc:b0:bf:62:58:0d:89:5f:e2:b8:ac:9a:d4:f8:73:80:1e:0c:10:b9:c8:37:d2:1e:b1:77 +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML +RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp +bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 +IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3 +MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 +LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp +YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG +A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq +K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe +sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX +MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT +XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ +HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH +4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub +j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo +U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b +u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+ +bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er +fF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Label: "Baltimore CyberTrust Root" +# Serial: 33554617 +# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4 +# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74 +# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ +RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD +VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX +DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y +ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy +VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr +mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr +IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK +mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu +XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy +dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye +jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 +BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 +DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 +9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx +jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 +Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz +ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS +R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Label: "Entrust Root Certification Authority" +# Serial: 1164660820 +# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4 +# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9 +# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 +Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW +KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw +NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw +NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy +ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV +BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo +Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 +4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 +KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI +rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi +94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB +sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi +gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo +kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE +vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t +O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua +AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP +9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ +eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m +0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +# Issuer: CN=AAA Certificate Services O=Comodo CA Limited +# Subject: CN=AAA Certificate Services O=Comodo CA Limited +# Label: "Comodo AAA Services root" +# Serial: 1 +# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0 +# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49 +# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4 +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj +YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM +GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua +BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe +3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 +YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR +rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm +ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU +oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v +QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t +b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF +AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q +GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 +G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi +l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 +smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2" +# Serial: 1289 +# MD5 Fingerprint: 5e:39:7b:dd:f8:ba:ec:82:e9:ac:62:ba:0c:54:00:2b +# SHA1 Fingerprint: ca:3a:fb:cf:12:40:36:4b:44:b2:16:20:88:80:48:39:19:93:7c:f7 +# SHA256 Fingerprint: 85:a0:dd:7d:d7:20:ad:b7:ff:05:f8:3d:54:2b:20:9d:c7:ff:45:28:f7:d6:77:b1:83:89:fe:a5:e5:c4:9e:86 +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa +GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg +Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J +WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB +rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp ++ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1 +ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i +Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz +PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og +/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH +oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI +yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud +EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2 +A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL +MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f +BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn +g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl +fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K +WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha +B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc +hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR +TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD +mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z +ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y +4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza +8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3" +# Serial: 1478 +# MD5 Fingerprint: 31:85:3c:62:94:97:63:b9:aa:fd:89:4e:af:6f:e0:cf +# SHA1 Fingerprint: 1f:49:14:f7:d8:74:95:1d:dd:ae:02:c0:be:fd:3a:2d:82:75:51:85 +# SHA256 Fingerprint: 18:f1:fc:7f:20:5d:f8:ad:dd:eb:7f:e0:07:dd:57:e3:af:37:5a:9c:4d:8d:73:54:6b:f4:f1:fe:d1:e1:8d:35 +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM +V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB +4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr +H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd +8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv +vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT +mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe +btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc +T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt +WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ +c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A +4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD +VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG +CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 +aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu +dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw +czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G +A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC +TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg +Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0 +7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem +d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd ++LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B +4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN +t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x +DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57 +k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s +zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j +Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT +mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK +4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +# Issuer: O=SECOM Trust.net OU=Security Communication RootCA1 +# Subject: O=SECOM Trust.net OU=Security Communication RootCA1 +# Label: "Security Communication Root CA" +# Serial: 0 +# MD5 Fingerprint: f1:bc:63:6a:54:e0:b5:27:f5:cd:e7:1a:e3:4d:6e:4a +# SHA1 Fingerprint: 36:b1:2b:49:f9:81:9e:d7:4c:9e:bc:38:0f:c6:56:8f:5d:ac:b2:f7 +# SHA256 Fingerprint: e7:5e:72:ed:9f:56:0e:ec:6e:b4:80:00:73:a4:3f:c3:ad:19:19:5a:39:22:82:01:78:95:97:4a:99:02:6b:6c +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY +MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t +dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5 +WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD +VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8 +9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ +DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9 +Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N +QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ +xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G +A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG +kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr +Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5 +Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU +JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot +RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw== +-----END CERTIFICATE----- + +# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Label: "XRamp Global CA Root" +# Serial: 107108908803651509692980124233745014957 +# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1 +# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6 +# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2 +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB +gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk +MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY +UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx +NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3 +dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy +dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6 +38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP +KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q +DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4 +qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa +JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi +PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P +BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs +jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0 +eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR +vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa +IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy +i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ +O+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Label: "Go Daddy Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67 +# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4 +# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4 +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh +MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE +YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 +MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo +ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg +MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN +ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA +PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w +wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi +EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY +avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ +YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE +sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h +/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 +IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD +ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy +OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P +TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER +dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf +ReYNnyicsbkqWletNw+vHX/bvZ8= +-----END CERTIFICATE----- + +# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Label: "Starfield Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24 +# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a +# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58 +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl +MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp +U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw +NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE +ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp +ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 +DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf +8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN ++lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 +X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa +K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA +1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G +A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR +zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 +YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD +bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 +L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D +eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp +VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY +WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root CA" +# Serial: 17154717934120587862167794914071425081 +# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 +# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 +# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c +JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP +mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ +wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 +VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ +AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB +AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun +pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC +dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf +fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm +NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx +H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root CA" +# Serial: 10944719598952040374951832963794454346 +# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e +# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 +# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61 +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert High Assurance EV Root CA" +# Serial: 3553400076410547919724730734378100087 +# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a +# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 +# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm ++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW +PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM +xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB +Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 +hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg +EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA +FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec +nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z +eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF +hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 +Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep ++OkuE6N36B9K +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Label: "SwissSign Gold CA - G2" +# Serial: 13492815561806991280 +# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93 +# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61 +# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95 +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln +biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF +MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT +d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8 +76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+ +bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c +6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE +emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd +MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt +MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y +MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y +FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi +aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM +gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB +qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7 +lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn +8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6 +45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO +UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5 +O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC +bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv +GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a +77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC +hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3 +92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp +Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w +ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt +Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign Silver CA - G2 O=SwissSign AG +# Subject: CN=SwissSign Silver CA - G2 O=SwissSign AG +# Label: "SwissSign Silver CA - G2" +# Serial: 5700383053117599563 +# MD5 Fingerprint: e0:06:a1:c9:7d:cf:c9:fc:0d:c0:56:75:96:d8:62:13 +# SHA1 Fingerprint: 9b:aa:e5:9f:56:ee:21:cb:43:5a:be:25:93:df:a7:f0:40:d1:1d:cb +# SHA256 Fingerprint: be:6c:4d:a2:bb:b9:ba:59:b6:f3:93:97:68:37:42:46:c3:c0:05:99:3f:a9:8f:02:0d:1d:ed:be:d4:8a:81:d5 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=SecureTrust CA O=SecureTrust Corporation +# Subject: CN=SecureTrust CA O=SecureTrust Corporation +# Label: "SecureTrust CA" +# Serial: 17199774589125277788362757014266862032 +# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1 +# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11 +# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73 +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz +MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv +cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz +Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO +0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao +wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj +7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS +8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT +BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg +JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 +6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ +3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm +D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS +CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +# Issuer: CN=Secure Global CA O=SecureTrust Corporation +# Subject: CN=Secure Global CA O=SecureTrust Corporation +# Label: "Secure Global CA" +# Serial: 9751836167731051554232119481456978597 +# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de +# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b +# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69 +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx +MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg +Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ +iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa +/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ +jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI +HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 +sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w +gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw +KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG +AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L +URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO +H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm +I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY +iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO Certification Authority O=COMODO CA Limited +# Label: "COMODO Certification Authority" +# Serial: 104350513648249232941998508985834464573 +# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 +# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b +# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66 +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB +gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV +BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw +MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl +YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P +RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 +UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI +2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 +Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp ++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ +DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O +nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW +/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g +PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u +QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY +SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv +IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 +zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd +BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB +ZQ== +-----END CERTIFICATE----- + +# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Label: "COMODO ECC Certification Authority" +# Serial: 41578283867086692638256921589707938090 +# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 +# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 +# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT +IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw +MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy +ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N +T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR +FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J +cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW +BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm +fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv +GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +# Issuer: CN=Certigna O=Dhimyotis +# Subject: CN=Certigna O=Dhimyotis +# Label: "Certigna" +# Serial: 18364802974209362175 +# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff +# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97 +# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV +BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X +DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ +BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 +QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny +gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw +zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q +130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 +JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw +ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT +AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj +AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG +9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h +bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc +fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu +HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w +t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Label: "ePKI Root Certification Authority" +# Serial: 28956088682735189655030529057352760477 +# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3 +# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0 +# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5 +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw +IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL +SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH +SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh +ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X +DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 +TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ +fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA +sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU +WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS +nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH +dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip +NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC +AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF +MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB +uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl +PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP +JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ +gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 +j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 +5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB +o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS +/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z +Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE +W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D +hNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +# Issuer: O=certSIGN OU=certSIGN ROOT CA +# Subject: O=certSIGN OU=certSIGN ROOT CA +# Label: "certSIGN ROOT CA" +# Serial: 35210227249154 +# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17 +# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b +# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT +AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD +QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP +MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do +0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ +UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d +RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ +OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv +JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C +AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O +BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ +LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY +MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ +44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I +Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw +i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN +9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +# Issuer: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Subject: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Label: "NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny" +# Serial: 80544274841616 +# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88 +# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91 +# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98 +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG +EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 +MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl +cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR +dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB +pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM +b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm +aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz +IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT +lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz +AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 +VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG +ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 +BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG +AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M +U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh +bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C ++C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F +uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 +XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. +# Subject: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. +# Label: "SecureSign RootCA11" +# Serial: 1 +# MD5 Fingerprint: b7:52:74:e2:92:b4:80:93:f2:75:e4:cc:d7:f2:ea:26 +# SHA1 Fingerprint: 3b:c4:9f:48:f8:f3:73:a0:9c:1e:bd:f8:5b:b1:c3:65:c7:d8:11:b3 +# SHA256 Fingerprint: bf:0f:ee:fb:9e:3a:58:1a:d5:f9:e9:db:75:89:98:57:43:d2:61:08:5c:4d:31:4f:6f:5d:72:59:aa:42:16:12 +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr +MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG +A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0 +MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp +Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD +QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz +i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8 +h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV +MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9 +UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni +8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC +h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD +VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB +AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm +KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ +X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr +QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5 +pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN +QSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Label: "Microsec e-Szigno Root CA 2009" +# Serial: 14014712776195784473 +# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1 +# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e +# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78 +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD +VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 +ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G +CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y +OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx +FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp +Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP +kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc +cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U +fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 +N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC +xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 ++rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM +Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG +SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h +mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk +ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c +2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t +HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Label: "GlobalSign Root CA - R3" +# Serial: 4835703278459759426209954 +# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 +# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad +# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# Serial: 6047274297262753887 +# MD5 Fingerprint: 73:3a:74:7a:ec:bb:a3:96:a6:c2:e4:e2:c8:9b:c0:c3 +# SHA1 Fingerprint: ae:c5:fb:3f:c8:e1:bf:c4:e5:4f:03:07:5a:9a:e8:00:b7:f7:b6:fa +# SHA256 Fingerprint: 04:04:80:28:bf:1f:28:64:d4:8f:9a:d4:d8:32:94:36:6a:82:88:56:55:3f:3b:14:30:3f:90:14:7f:5d:40:ef +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy +MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD +VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv +ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl +AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF +661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9 +am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1 +ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481 +PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS +3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k +SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF +3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM +ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g +StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz +Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB +jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +# Issuer: CN=Izenpe.com O=IZENPE S.A. +# Subject: CN=Izenpe.com O=IZENPE S.A. +# Label: "Izenpe.com" +# Serial: 917563065490389241595536686991402621 +# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73 +# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19 +# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Label: "Go Daddy Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 +# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b +# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz +NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE +AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD +E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH +/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy +DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh +GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR +tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA +AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX +WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu +9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr +gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo +2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI +4uJEvlz36hz1 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 +# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e +# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs +ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw +MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj +aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp +Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg +nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 +HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N +Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN +dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 +HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G +CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU +sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 +4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg +8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 +mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Services Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 +# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f +# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs +ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy +ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy +dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p +OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 +8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K +Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe +hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk +6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q +AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI +bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB +ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z +qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn +0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN +sSi6 +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Commercial O=AffirmTrust +# Subject: CN=AffirmTrust Commercial O=AffirmTrust +# Label: "AffirmTrust Commercial" +# Serial: 8608355977964138876 +# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7 +# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7 +# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Networking O=AffirmTrust +# Subject: CN=AffirmTrust Networking O=AffirmTrust +# Label: "AffirmTrust Networking" +# Serial: 8957382827206547757 +# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f +# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f +# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium O=AffirmTrust +# Subject: CN=AffirmTrust Premium O=AffirmTrust +# Label: "AffirmTrust Premium" +# Serial: 7893706540734352110 +# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57 +# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27 +# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust +# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust +# Label: "AffirmTrust Premium ECC" +# Serial: 8401224907861490260 +# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d +# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb +# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23 +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC +VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ +cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ +BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt +VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D +0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 +ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G +A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs +aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I +flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA" +# Serial: 279744 +# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78 +# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e +# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM +MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D +ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU +cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 +WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg +Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw +IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH +UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM +TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU +BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM +kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x +AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y +sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL +I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 +J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY +VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Label: "TWCA Root Certification Authority" +# Serial: 1 +# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79 +# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48 +# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44 +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES +MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU +V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz +WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO +LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE +AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH +K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX +RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z +rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx +3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq +hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC +MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls +XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D +lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn +aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ +YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Label: "Security Communication RootCA2" +# Serial: 0 +# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43 +# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74 +# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl +MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe +U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX +DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy +dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj +YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV +OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr +zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM +VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ +hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO +ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw +awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs +OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 +DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF +coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc +okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 +t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy +1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ +SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Label: "Actalis Authentication Root CA" +# Serial: 6271844772424770508 +# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6 +# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac +# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66 +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE +BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w +MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC +SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 +ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv +UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX +4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 +KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ +gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb +rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ +51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F +be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe +KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F +v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn +fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 +jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz +ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL +e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 +jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz +WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V +SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j +pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX +X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok +fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R +K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU +ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU +LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT +LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 2 Root CA" +# Serial: 2 +# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29 +# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99 +# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48 +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr +6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV +L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 +1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx +MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ +QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB +arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr +Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi +FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS +P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN +9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz +uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h +9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t +OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo ++fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 +KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 +DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us +H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ +I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 +5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h +3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz +Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 3 Root CA" +# Serial: 2 +# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec +# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57 +# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y +ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E +N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 +tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX +0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c +/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X +KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY +zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS +O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D +34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP +K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv +Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj +QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS +IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 +HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa +O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv +033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u +dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE +kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 +3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD +u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq +4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 3" +# Serial: 1 +# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef +# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1 +# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN +8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ +RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 +hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 +ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM +EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 +A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy +WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ +1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 +6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT +91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p +TpPDpFQUWw== +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 2009" +# Serial: 623603 +# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f +# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0 +# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1 +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha +ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM +HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 +UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 +tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R +ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM +lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp +/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G +A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy +MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl +cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js +L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL +BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni +acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K +zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 +PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y +Johw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 EV 2009" +# Serial: 623604 +# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6 +# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83 +# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81 +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw +NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV +BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn +ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 +3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z +qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR +p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 +HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw +ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea +HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw +Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh +c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E +RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt +dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku +Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp +3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF +CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na +xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX +KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +# Issuer: CN=CA Disig Root R2 O=Disig a.s. +# Subject: CN=CA Disig Root R2 O=Disig a.s. +# Label: "CA Disig Root R2" +# Serial: 10572350602393338211 +# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03 +# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71 +# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03 +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV +BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu +MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy +MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx +EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe +NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH +PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I +x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe +QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR +yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO +QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 +H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ +QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD +i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs +nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 +rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI +hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf +GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb +lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka ++elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal +TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i +nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 +gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr +G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os +zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x +L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Label: "ACCVRAIZ1" +# Serial: 6828503384748696800 +# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02 +# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17 +# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13 +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE +AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw +CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ +BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND +VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb +qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY +HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo +G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA +lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr +IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ +0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH +k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 +4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO +m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa +cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl +uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI +KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls +ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG +AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT +VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG +CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA +cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA +QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA +7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA +cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA +QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA +czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu +aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt +aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud +DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF +BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp +D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU +JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m +AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD +vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms +tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH +7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA +h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF +d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H +pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Label: "TWCA Global Root CA" +# Serial: 3262 +# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96 +# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65 +# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx +EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT +VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 +NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT +B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF +10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz +0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh +MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH +zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc +46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 +yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi +laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP +oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA +BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE +qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm +4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL +1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF +H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo +RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ +nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh +15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW +6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW +nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j +wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz +aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy +KwbQBM0= +-----END CERTIFICATE----- + +# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Label: "TeliaSonera Root CA v1" +# Serial: 199041966741090107964904287217786801558 +# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c +# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37 +# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89 +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw +NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv +b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD +VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2 +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F +VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1 +7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X +Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+ +/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs +81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm +dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe +Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu +sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4 +pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs +slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ +arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD +VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG +9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl +dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj +TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed +Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7 +Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI +OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7 +vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW +t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn +HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx +SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 2" +# Serial: 1 +# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a +# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9 +# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52 +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd +AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC +FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi +1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq +jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ +wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ +WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy +NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC +uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw +IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 +g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP +BSeOE6Fuwg== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot 2011 O=Atos +# Subject: CN=Atos TrustedRoot 2011 O=Atos +# Label: "Atos TrustedRoot 2011" +# Serial: 6643877497813316402 +# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56 +# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21 +# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE +AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG +EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM +FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC +REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp +Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM +VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ +SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ +4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L +cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi +eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG +A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 +DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j +vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP +DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc +maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D +lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv +KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 1 G3" +# Serial: 687049649626669250736271037606554624078720034195 +# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab +# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67 +# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 +MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV +wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe +rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 +68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh +4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp +UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o +abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc +3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G +KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt +hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO +Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt +zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD +ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 +cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN +qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 +YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv +b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 +8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k +NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj +ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp +q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt +nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2 G3" +# Serial: 390156079458959257446133169266079962026824725800 +# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06 +# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36 +# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 +MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf +qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW +n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym +c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ +O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 +o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j +IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq +IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz +8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh +vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l +7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG +cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD +ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC +roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga +W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n +lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE ++V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV +csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd +dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg +KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM +HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 +WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3 G3" +# Serial: 268090761170461462463995952157327242137089239581 +# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7 +# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d +# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 +MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR +/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu +FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR +U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c +ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR +FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k +A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw +eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl +sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp +VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q +A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ +ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD +ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI +FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv +oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg +u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP +0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf +3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl +8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ +DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN +PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ +ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G2" +# Serial: 15385348160840213938643033620894905419 +# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d +# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f +# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA +n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc +biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp +EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA +bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu +YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW +BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI +QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I +0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni +lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 +B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv +ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G3" +# Serial: 15459312981008553731928384953135426796 +# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb +# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89 +# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2 +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg +RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf +Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q +RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD +AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY +JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv +6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G2" +# Serial: 4293743540046975378534879503202253541 +# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44 +# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4 +# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI +2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx +1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ +q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz +tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ +vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV +5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY +1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 +NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG +Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 +8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe +pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G3" +# Serial: 7089244469030293291760083333884364146 +# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca +# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e +# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0 +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe +Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw +EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x +IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG +fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO +Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd +BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx +AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ +oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 +sycX +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Trusted Root G4" +# Serial: 7451500558977370777930084869016614236 +# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49 +# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4 +# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88 +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg +RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y +ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If +xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV +ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO +DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ +jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ +CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi +EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM +fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY +uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK +chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t +9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 +SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd ++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc +fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa +sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N +cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N +0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie +4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI +r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 +/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm +gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ +-----END CERTIFICATE----- + +# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Label: "COMODO RSA Certification Authority" +# Serial: 101909084537582093308941363524873193117 +# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18 +# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4 +# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34 +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB +hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV +BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT +EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR +6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X +pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC +9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV +/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf +Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z ++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w +qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah +SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC +u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf +Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq +crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB +/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl +wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM +4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV +2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna +FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ +CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK +boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke +jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL +S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb +QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl +0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB +NVOFBkpdn627G190 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Label: "USERTrust RSA Certification Authority" +# Serial: 2645093764781058787591871645665788717 +# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5 +# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e +# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2 +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw +MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV +BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B +3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY +tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ +Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 +VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT +79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 +c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT +Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l +c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee +UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE +Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF +Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO +VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 +ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs +8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR +iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze +Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ +XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ +qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB +VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB +L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG +jjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Label: "USERTrust ECC Certification Authority" +# Serial: 123013823720199481456569720443997572134 +# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1 +# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0 +# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl +eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT +JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg +VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo +I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng +o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G +A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB +zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW +RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Label: "GlobalSign ECC Root CA - R5" +# Serial: 32785792099990507226680698011560947931244 +# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08 +# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa +# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24 +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc +8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke +hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI +KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg +515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO +xwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Label: "IdenTrust Commercial Root CA 1" +# Serial: 13298821034946342390520003877796839426 +# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7 +# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25 +# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu +VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw +MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw +JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT +3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU ++ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp +S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 +bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi +T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL +vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK +Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK +dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT +c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv +l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N +iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD +ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt +LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 +nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 ++wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK +W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT +AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq +l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG +4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ +mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A +7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Label: "IdenTrust Public Sector Root CA 1" +# Serial: 13298821034946342390521976156843933698 +# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba +# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd +# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu +VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN +MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 +MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 +ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy +RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS +bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF +/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R +3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw +EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy +9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V +GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ +2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV +WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD +W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN +AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV +DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 +TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G +lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW +mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df +WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 ++bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ +tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA +GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv +8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - G2" +# Serial: 1246989352 +# MD5 Fingerprint: 4b:e2:c9:91:96:65:0c:f4:0e:5a:93:92:a0:0a:fe:b2 +# SHA1 Fingerprint: 8c:f4:27:fd:79:0c:3a:d1:66:06:8d:e8:1e:57:ef:bb:93:22:72:d4 +# SHA256 Fingerprint: 43:df:57:74:b0:3e:7f:ef:5f:e4:0d:93:1a:7b:ed:f1:bb:2e:6b:42:73:8c:4e:6d:38:41:10:3d:3a:a7:f3:39 +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50 +cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs +IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz +dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy +NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu +dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt +dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0 +aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T +RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN +cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW +wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1 +U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0 +jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN +BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ +jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v +1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R +nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH +VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - EC1" +# Serial: 51543124481930649114116133369 +# MD5 Fingerprint: b6:7e:1d:f0:58:c5:49:6c:24:3b:3d:ed:98:18:ed:bc +# SHA1 Fingerprint: 20:d8:06:40:df:9b:25:f5:12:25:3a:11:ea:f7:59:8a:eb:14:b5:47 +# SHA256 Fingerprint: 02:ed:0e:b2:8c:14:da:45:16:5c:56:67:91:70:0d:64:51:d7:fb:56:f0:b2:ab:1d:3b:8e:b0:70:e5:6e:df:f5 +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG +A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3 +d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu +dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq +RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy +MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD +VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g +Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi +A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt +ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH +Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC +R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX +hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority +# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority +# Label: "CFCA EV ROOT" +# Serial: 407555286 +# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30 +# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83 +# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD +TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y +aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx +MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j +aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP +T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 +sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL +TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 +/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp +7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz +EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt +hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP +a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot +aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg +TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV +PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv +cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL +tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd +BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT +ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL +jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS +ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy +P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 +xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d +Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN +5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe +/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z +AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ +5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GB CA" +# Serial: 157768595616588414422159278966750757568 +# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d +# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed +# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6 +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt +MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg +Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i +YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x +CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG +b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 +HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx +WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX +1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk +u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P +99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r +M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB +BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh +cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 +gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO +ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf +aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Label: "SZAFIR ROOT CA2" +# Serial: 357043034767186914217277344587386743377558296292 +# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99 +# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de +# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6 +ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw +NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L +cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg +Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN +QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT +3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw +3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 +3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5 +BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN +XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF +AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw +8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG +nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP +oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy +d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg +LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA 2" +# Serial: 44979900017204383099463764357512596969 +# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2 +# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92 +# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04 +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB +gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu +QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG +A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz +OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ +VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3 +b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA +DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn +0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB +OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE +fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E +Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m +o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i +sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW +OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez +Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS +adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n +3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ +F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf +CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29 +XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm +djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/ +WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb +AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq +P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko +b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj +XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P +5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi +DrW5viSP +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce +# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6 +# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36 +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix +DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k +IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT +N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v +dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG +A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh +ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx +QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 +dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA +4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0 +AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10 +4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C +ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV +9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD +gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6 +Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq +NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko +LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd +ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I +XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI +M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot +9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V +Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea +j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh +X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ +l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf +bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4 +pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK +e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 +vm9qp/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions ECC RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef +# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66 +# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33 +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN +BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl +bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv +b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ +BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj +YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5 +MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0 +dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg +QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa +jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi +C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep +lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof +TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +# Issuer: CN=ISRG Root X1 O=Internet Security Research Group +# Subject: CN=ISRG Root X1 O=Internet Security Research Group +# Label: "ISRG Root X1" +# Serial: 172886928669790476064670243504169061120 +# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e +# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8 +# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 +WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu +ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc +h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ +0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U +A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW +T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH +B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC +B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv +KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn +OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn +jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw +qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI +rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq +hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ +3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK +NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 +ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur +TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC +jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc +oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq +4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA +mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d +emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Label: "AC RAIZ FNMT-RCM" +# Serial: 485876308206448804701554682760554759 +# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d +# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20 +# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx +CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ +WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ +BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG +Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ +yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf +BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz +WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF +tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z +374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC +IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL +mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 +wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS +MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 +ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet +UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H +YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 +LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 +RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM +LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf +77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N +JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm +fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp +6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp +1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B +9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok +RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv +uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 1 O=Amazon +# Subject: CN=Amazon Root CA 1 O=Amazon +# Label: "Amazon Root CA 1" +# Serial: 143266978916655856878034712317230054538369994 +# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6 +# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16 +# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj +ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM +9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw +IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 +VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L +93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm +jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA +A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI +U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs +N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv +o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU +5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy +rqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 2 O=Amazon +# Subject: CN=Amazon Root CA 2 O=Amazon +# Label: "Amazon Root CA 2" +# Serial: 143266982885963551818349160658925006970653239 +# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66 +# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a +# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4 +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK +gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ +W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg +1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K +8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r +2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me +z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR +8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj +mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz +7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6 ++XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI +0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm +UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 +LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS +k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl +7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm +btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl +urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+ +fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63 +n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE +76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H +9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT +4PsJYGw= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 3 O=Amazon +# Subject: CN=Amazon Root CA 3 O=Amazon +# Label: "Amazon Root CA 3" +# Serial: 143266986699090766294700635381230934788665930 +# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87 +# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e +# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4 +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl +ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr +ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr +BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM +YyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 4 O=Amazon +# Subject: CN=Amazon Root CA 4 O=Amazon +# Label: "Amazon Root CA 4" +# Serial: 143266989758080763974105200630763877849284878 +# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd +# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be +# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92 +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi +9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk +M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB +MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw +CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW +1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Label: "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +# Serial: 1 +# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49 +# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca +# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16 +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx +GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp +bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w +KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0 +BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy +dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG +EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll +IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU +QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT +TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg +LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7 +a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr +LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr +N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X +YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/ +iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f +AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH +V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf +IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4 +lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c +8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf +lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Label: "GDCA TrustAUTH R5 ROOT" +# Serial: 9009899650740120186 +# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4 +# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4 +# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93 +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE +BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0 +MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV +BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w +HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj +Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj +TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u +KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj +qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm +MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12 +ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP +zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk +L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC +jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA +HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC +AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm +DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5 +COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry +L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf +JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg +IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io +2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV +09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ +XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq +T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe +MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Label: "SSL.com Root Certification Authority RSA" +# Serial: 8875640296558310041 +# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29 +# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb +# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69 +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE +BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK +DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz +OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R +xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX +qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC +C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3 +6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh +/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF +YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E +JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc +US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8 +ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm ++Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi +M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV +cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc +Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs +PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/ +q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0 +cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr +a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I +H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y +K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu +nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf +oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY +Ic2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com Root Certification Authority ECC" +# Serial: 8495723813297216424 +# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e +# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a +# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65 +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz +WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0 +b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS +b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI +7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg +CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD +VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T +kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+ +gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority RSA R2" +# Serial: 6248227494352943350 +# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95 +# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a +# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV +BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE +CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy +MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G +A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD +DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq +M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf +OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa +4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9 +HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR +aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA +b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ +Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV +PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO +pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu +UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY +MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4 +9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW +s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5 +Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg +cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM +79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz +/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt +ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm +Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK +QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ +w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi +S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07 +mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority ECC" +# Serial: 3182246526754555285 +# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90 +# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d +# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8 +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx +NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv +bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA +VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku +WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP +MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX +5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ +ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg +h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 +# Label: "GlobalSign Root CA - R6" +# Serial: 1417766617973444989252670301619537 +# MD5 Fingerprint: 4f:dd:07:e4:d4:22:64:39:1e:0c:37:42:ea:d1:c6:ae +# SHA1 Fingerprint: 80:94:64:0e:b5:a7:a1:ca:11:9c:1f:dd:d5:9f:81:02:63:a7:fb:d1 +# SHA256 Fingerprint: 2c:ab:ea:fe:37:d0:6c:a2:2a:ba:73:91:c0:03:3d:25:98:29:52:c4:53:64:73:49:76:3a:3a:b5:ad:6c:cf:69 +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg +MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx +MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET +MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI +xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k +ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD +aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw +LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw +1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX +k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2 +SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h +bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n +WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY +rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce +MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu +bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt +Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61 +55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj +vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf +cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz +oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp +nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs +pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v +JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R +8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4 +5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GC CA" +# Serial: 44084345621038548146064804565436152554 +# MD5 Fingerprint: a9:d6:b9:2d:2f:93:64:f8:a5:69:ca:91:e9:68:07:23 +# SHA1 Fingerprint: e0:11:84:5e:34:de:be:88:81:b9:9c:f6:16:26:d1:96:1f:c3:b9:31 +# SHA256 Fingerprint: 85:60:f9:1c:36:24:da:ba:95:70:b5:fe:a0:db:e3:6f:f1:1a:83:23:be:94:86:85:4f:b3:f3:4a:55:71:19:8d +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw +CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91 +bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg +Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ +BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu +ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS +b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni +eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W +p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T +rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV +57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg +Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +# Issuer: CN=UCA Global G2 Root O=UniTrust +# Subject: CN=UCA Global G2 Root O=UniTrust +# Label: "UCA Global G2 Root" +# Serial: 124779693093741543919145257850076631279 +# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8 +# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a +# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9 +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH +bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x +CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds +b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr +b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9 +kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm +VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R +VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc +C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj +tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY +D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv +j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl +NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6 +iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP +O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/ +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV +ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj +L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl +1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU +b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV +PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj +y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb +EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg +DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI ++Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy +YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX +UB+K+wb1whnw0A== +-----END CERTIFICATE----- + +# Issuer: CN=UCA Extended Validation Root O=UniTrust +# Subject: CN=UCA Extended Validation Root O=UniTrust +# Label: "UCA Extended Validation Root" +# Serial: 106100277556486529736699587978573607008 +# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2 +# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a +# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH +MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF +eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx +MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV +BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog +D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS +sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop +O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk +sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi +c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj +VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz +KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/ +TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G +sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs +1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD +fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN +l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ +VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5 +c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp +4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s +t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj +2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO +vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C +xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx +cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM +fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax +-----END CERTIFICATE----- + +# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 +# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 +# Label: "Certigna Root CA" +# Serial: 269714418870597844693661054334862075617 +# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77 +# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43 +# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68 +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw +WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw +MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x +MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD +VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX +BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO +ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M +CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu +I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm +TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh +C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf +ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz +IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT +Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k +JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5 +hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB +GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov +L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo +dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr +aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq +hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L +6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG +HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6 +0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB +lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi +o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1 +gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v +faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63 +Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh +jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw +3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +# Issuer: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI +# Subject: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI +# Label: "emSign Root CA - G1" +# Serial: 235931866688319308814040 +# MD5 Fingerprint: 9c:42:84:57:dd:cb:0b:a7:2e:95:ad:b6:f3:da:bc:ac +# SHA1 Fingerprint: 8a:c7:ad:8f:73:ac:4e:c1:b5:75:4d:a5:40:f4:fc:cf:7c:b5:8e:8c +# SHA256 Fingerprint: 40:f6:af:03:46:a9:9a:a1:cd:1d:55:5a:4e:9c:ce:62:c7:f9:63:46:03:ee:40:66:15:83:3d:c8:c8:d0:03:67 +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD +VQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU +ZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH +MTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO +MRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv +Z2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz +f2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO +8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq +d7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM +tTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt +Od9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB +o0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD +AgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x +PaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM +wiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d +GNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH +6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby +RQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +# Issuer: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI +# Subject: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI +# Label: "emSign ECC Root CA - G3" +# Serial: 287880440101571086945156 +# MD5 Fingerprint: ce:0b:72:d1:9f:88:8e:d0:50:03:e8:e3:b8:8b:67:40 +# SHA1 Fingerprint: 30:43:fa:4f:f2:57:dc:a0:c3:80:ee:2e:58:ea:78:b2:3f:e6:bb:c1 +# SHA256 Fingerprint: 86:a1:ec:ba:08:9c:4a:8d:3b:be:27:34:c6:12:ba:34:1d:81:3e:04:3c:f9:e8:a8:62:cd:5c:57:a3:6b:be:6b +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG +EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo +bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ +TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s +b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0 +WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS +fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB +zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq +hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB +CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD ++JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +# Issuer: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI +# Subject: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI +# Label: "emSign Root CA - C1" +# Serial: 825510296613316004955058 +# MD5 Fingerprint: d8:e3:5d:01:21:fa:78:5a:b0:df:ba:d2:ee:2a:5f:68 +# SHA1 Fingerprint: e7:2e:f1:df:fc:b2:09:28:cf:5d:d4:d5:67:37:b1:51:cb:86:4f:01 +# SHA256 Fingerprint: 12:56:09:aa:30:1d:a0:a2:49:b9:7a:82:39:cb:6a:34:21:6f:44:dc:ac:9f:39:54:b1:42:92:f2:e8:c8:60:8f +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG +A1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg +SW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw +MFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln +biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v +dCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ +BczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ +HdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH +3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH +GPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c +xSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1 +aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq +TbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87 +/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4 +kqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG +YQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT ++xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo +WXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +# Issuer: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI +# Subject: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI +# Label: "emSign ECC Root CA - C3" +# Serial: 582948710642506000014504 +# MD5 Fingerprint: 3e:53:b3:a3:81:ee:d7:10:f8:d3:b0:1d:17:92:f5:d5 +# SHA1 Fingerprint: b6:af:43:c2:9b:81:53:7d:f6:ef:6b:c3:1f:1f:60:15:0c:ee:48:66 +# SHA256 Fingerprint: bc:4d:80:9b:15:18:9d:78:db:3e:1d:8c:f4:f9:72:6a:79:5d:a1:64:3c:a5:f1:35:8e:1d:db:0e:dc:0d:7e:b3 +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG +EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx +IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw +MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln +biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND +IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci +MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti +sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O +BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB +Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c +3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J +0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +# Issuer: CN=Hongkong Post Root CA 3 O=Hongkong Post +# Subject: CN=Hongkong Post Root CA 3 O=Hongkong Post +# Label: "Hongkong Post Root CA 3" +# Serial: 46170865288971385588281144162979347873371282084 +# MD5 Fingerprint: 11:fc:9f:bd:73:30:02:8a:fd:3f:f3:58:b9:cb:20:f0 +# SHA1 Fingerprint: 58:a2:d0:ec:20:52:81:5b:c1:f3:f8:64:02:24:4e:c2:8e:02:4b:02 +# SHA256 Fingerprint: 5a:2f:c0:3f:0c:83:b0:90:bb:fa:40:60:4b:09:88:44:6c:76:36:18:3d:f9:84:6e:17:10:1a:44:7f:b8:ef:d6 +-----BEGIN CERTIFICATE----- +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 +mpv0 +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - G4 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2015 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - G4 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2015 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - G4" +# Serial: 289383649854506086828220374796556676440 +# MD5 Fingerprint: 89:53:f1:83:23:b7:7c:8e:05:f1:8c:71:38:4e:1f:88 +# SHA1 Fingerprint: 14:88:4e:86:26:37:b0:26:af:59:62:5c:40:77:ec:35:29:ba:96:01 +# SHA256 Fingerprint: db:35:17:d1:f6:73:2a:2d:5a:b9:7c:53:3e:c7:07:79:ee:32:70:a6:2f:b4:ac:42:38:37:24:60:e6:f0:1e:88 +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAw +gb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL +Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg +MjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw +BgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0 +MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYTAlVT +MRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1 +c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJ +bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3Qg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3DumSXbcr3DbVZwbPLqGgZ +2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV3imz/f3E +T+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j +5pds8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAM +C1rlLAHGVK/XqsEQe9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73T +DtTUXm6Hnmo9RR3RXRv06QqsYJn7ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNX +wbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5XxNMhIWNlUpEbsZmOeX7m640A +2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV7rtNOzK+mndm +nqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8 +dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwl +N4y6mACXi0mWHv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNj +c0kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9nMA0GCSqGSIb3DQEBCwUAA4ICAQAS +5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4QjbRaZIxowLByQzTS +Gwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht7LGr +hFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/ +B7NTeLUKYvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uI +AeV8KEsD+UmDfLJ/fOPtjqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbw +H5Lk6rWS02FREAutp9lfx1/cH6NcjKF+m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+ +b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKWRGhXxNUzzxkvFMSUHHuk +2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjAJOgc47Ol +IQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk +5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuY +n/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw== +-----END CERTIFICATE----- + +# Issuer: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation +# Subject: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation +# Label: "Microsoft ECC Root Certificate Authority 2017" +# Serial: 136839042543790627607696632466672567020 +# MD5 Fingerprint: dd:a1:03:e6:4a:93:10:d1:bf:f0:19:42:cb:fe:ed:67 +# SHA1 Fingerprint: 99:9a:64:c3:7f:f4:7d:9f:ab:95:f1:47:69:89:14:60:ee:c4:c3:c5 +# SHA256 Fingerprint: 35:8d:f3:9d:76:4a:f9:e1:b7:66:e9:c9:72:df:35:2e:e1:5c:fa:c2:27:af:6a:d1:d7:0e:8e:4a:6e:dc:ba:02 +-----BEGIN CERTIFICATE----- +MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD +VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw +MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV +UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy +b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR +ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb +hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3 +FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV +L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB +iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= +-----END CERTIFICATE----- + +# Issuer: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation +# Subject: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation +# Label: "Microsoft RSA Root Certificate Authority 2017" +# Serial: 40975477897264996090493496164228220339 +# MD5 Fingerprint: 10:ff:00:ff:cf:c9:f8:c7:7a:c0:ee:35:8e:c9:0f:47 +# SHA1 Fingerprint: 73:a5:e6:4a:3b:ff:83:16:ff:0e:dc:cc:61:8a:90:6e:4e:ae:4d:74 +# SHA256 Fingerprint: c7:41:f7:0f:4b:2a:8d:88:bf:2e:71:c1:41:22:ef:53:ef:10:eb:a0:cf:a5:e6:4c:fa:20:f4:18:85:30:73:e0 +-----BEGIN CERTIFICATE----- +MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl +MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw +NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG +EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N +aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ +Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0 +ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1 +HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm +gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ +jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc +aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG +YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6 +W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K +UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH ++FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q +W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC +LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC +gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6 +tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh +SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2 +TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3 +pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR +xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp +GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9 +dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN +AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB +RA+GsCyRxj3qrg+E +-----END CERTIFICATE----- + +# Issuer: CN=e-Szigno Root CA 2017 O=Microsec Ltd. +# Subject: CN=e-Szigno Root CA 2017 O=Microsec Ltd. +# Label: "e-Szigno Root CA 2017" +# Serial: 411379200276854331539784714 +# MD5 Fingerprint: de:1f:f6:9e:84:ae:a7:b4:21:ce:1e:58:7d:d1:84:98 +# SHA1 Fingerprint: 89:d4:83:03:4f:9e:9a:48:80:5f:72:37:d4:a9:a6:ef:cb:7c:1f:d1 +# SHA256 Fingerprint: be:b0:0b:30:83:9b:9b:c3:2c:32:e4:44:79:05:95:06:41:f2:64:21:b1:5e:d0:89:19:8b:51:8a:e2:ea:1b:99 +-----BEGIN CERTIFICATE----- +MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV +BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk +LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv +b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ +BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg +THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v +IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv +xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H +Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB +eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo +jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ ++efcMQ== +-----END CERTIFICATE----- + +# Issuer: O=CERTSIGN SA OU=certSIGN ROOT CA G2 +# Subject: O=CERTSIGN SA OU=certSIGN ROOT CA G2 +# Label: "certSIGN Root CA G2" +# Serial: 313609486401300475190 +# MD5 Fingerprint: 8c:f1:75:8a:c6:19:cf:94:b7:f7:65:20:87:c3:97:c7 +# SHA1 Fingerprint: 26:f9:93:b4:ed:3d:28:27:b0:b9:4b:a7:e9:15:1d:a3:8d:92:e5:32 +# SHA256 Fingerprint: 65:7c:fe:2f:a7:3f:aa:38:46:25:71:f3:32:a2:36:3a:46:fc:e7:02:09:51:71:07:02:cd:fb:b6:ee:da:33:05 +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV +BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g +Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ +BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ +R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF +dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw +vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ +uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp +n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs +cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW +xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P +rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF +DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx +DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy +LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C +eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ +d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq +kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC +b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl +qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0 +OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c +NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk +ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO +pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj +03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk +PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE +1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX +QRBdJ3NghVdJIgc= +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global Certification Authority" +# Serial: 1846098327275375458322922162 +# MD5 Fingerprint: f8:1c:18:2d:2f:ba:5f:6d:a1:6c:bc:c7:ab:91:c7:0e +# SHA1 Fingerprint: 2f:8f:36:4f:e1:58:97:44:21:59:87:a5:2a:9a:d0:69:95:26:7f:b5 +# SHA256 Fingerprint: 97:55:20:15:f5:dd:fc:3c:87:88:c0:06:94:45:55:40:88:94:45:00:84:f1:00:86:70:86:bc:1a:2b:b5:8d:c8 +-----BEGIN CERTIFICATE----- +MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw +CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x +ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1 +c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx +OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI +SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn +swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu +7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8 +1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW +80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP +JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l +RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw +hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10 +coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc +BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n +twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud +DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W +0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe +uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q +lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB +aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE +sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT +MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe +qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh +VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8 +h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9 +EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK +yeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global ECC P256 Certification Authority" +# Serial: 4151900041497450638097112925 +# MD5 Fingerprint: 5b:44:e3:8d:5d:36:86:26:e8:0d:05:d2:59:a7:83:54 +# SHA1 Fingerprint: b4:90:82:dd:45:0c:be:8b:5b:b1:66:d3:e2:a4:08:26:cd:ed:42:cf +# SHA256 Fingerprint: 94:5b:bc:82:5e:a5:54:f4:89:d1:fd:51:a7:3d:df:2e:a6:24:ac:70:19:a0:52:05:22:5c:22:a7:8c:cf:a8:b4 +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf +BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 +YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x +NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G +A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 +d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF +Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG +SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN +FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w +DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw +CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh +DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +# Issuer: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. +# Subject: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. +# Label: "Trustwave Global ECC P384 Certification Authority" +# Serial: 2704997926503831671788816187 +# MD5 Fingerprint: ea:cf:60:c4:3b:b9:15:29:40:a1:97:ed:78:27:93:d6 +# SHA1 Fingerprint: e7:f3:a3:c8:cf:6f:c3:04:2e:6d:0e:67:32:c5:9e:68:95:0d:5e:d2 +# SHA256 Fingerprint: 55:90:38:59:c8:c0:c3:eb:b8:75:9e:ce:4e:25:57:22:5f:f5:75:8b:bd:38:eb:d4:82:76:60:1e:1b:d5:80:97 +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf +BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 +YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x +NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G +A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 +d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF +Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB +BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ +j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF +1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G +A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3 +AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC +MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu +Sw== +-----END CERTIFICATE----- + +# Issuer: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. +# Subject: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. +# Label: "NAVER Global Root Certification Authority" +# Serial: 9013692873798656336226253319739695165984492813 +# MD5 Fingerprint: c8:7e:41:f6:25:3b:f5:09:b3:17:e8:46:3d:bf:d0:9b +# SHA1 Fingerprint: 8f:6b:f2:a9:27:4a:da:14:a0:c4:f4:8e:61:27:f9:c0:1e:78:5d:d1 +# SHA256 Fingerprint: 88:f4:38:dc:f8:ff:d1:fa:8f:42:91:15:ff:e5:f8:2a:e1:e0:6e:0c:70:c3:75:fa:ad:71:7b:34:a4:9e:72:65 +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM +BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG +T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx +CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD +b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA +iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH +38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE +HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz +kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP +szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq +vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf +nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG +YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo +0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a +CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K +AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I +36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN +qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj +cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm ++LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL +hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe +lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7 +p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8 +piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR +LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX +5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO +dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul +9XXeifdy +-----END CERTIFICATE----- + +# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres +# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres +# Label: "AC RAIZ FNMT-RCM SERVIDORES SEGUROS" +# Serial: 131542671362353147877283741781055151509 +# MD5 Fingerprint: 19:36:9c:52:03:2f:d2:d1:bb:23:cc:dd:1e:12:55:bb +# SHA1 Fingerprint: 62:ff:d9:9e:c0:65:0d:03:ce:75:93:d2:ed:3f:2d:32:c9:e3:e5:4a +# SHA256 Fingerprint: 55:41:53:b1:3d:2c:f9:dd:b7:53:bf:be:1a:4e:0a:e0:8d:0a:a4:18:70:58:fe:60:a2:b8:62:b2:e4:b8:7b:cb +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw +CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw +FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S +Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 +MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL +DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS +QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH +sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK +Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu +SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC +MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy +v+c= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign Root R46 O=GlobalSign nv-sa +# Subject: CN=GlobalSign Root R46 O=GlobalSign nv-sa +# Label: "GlobalSign Root R46" +# Serial: 1552617688466950547958867513931858518042577 +# MD5 Fingerprint: c4:14:30:e4:fa:66:43:94:2a:6a:1b:24:5f:19:d0:ef +# SHA1 Fingerprint: 53:a2:b0:4b:ca:6b:d6:45:e6:39:8a:8e:c4:0d:d2:bf:77:c3:a2:90 +# SHA256 Fingerprint: 4f:a3:12:6d:8d:3a:11:d1:c4:85:5a:4f:80:7c:ba:d6:cf:91:9d:3a:5a:88:b0:3b:ea:2c:63:72:d9:3c:40:c9 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA +MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD +VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy +MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt +c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ +OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG +vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud +316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo +0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE +y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF +zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE ++cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN +I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs +x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa +ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC +4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 +7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti +2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk +pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF +FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt +rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk +ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 +u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP +4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 +N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 +vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6 +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign Root E46 O=GlobalSign nv-sa +# Subject: CN=GlobalSign Root E46 O=GlobalSign nv-sa +# Label: "GlobalSign Root E46" +# Serial: 1552617690338932563915843282459653771421763 +# MD5 Fingerprint: b5:b8:66:ed:de:08:83:e3:c9:e2:01:34:06:ac:51:6f +# SHA1 Fingerprint: 39:b4:6c:d5:fe:80:06:eb:e2:2f:4a:bb:08:33:a0:af:db:b9:dd:84 +# SHA256 Fingerprint: cb:b9:c4:4d:84:b8:04:3e:10:50:ea:31:a6:9f:51:49:55:d7:bf:d2:e2:c6:b4:93:01:01:9a:d6:1d:9f:50:58 +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx +CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD +ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw +MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex +HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq +R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd +yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ +7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 ++RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +# Issuer: CN=GLOBALTRUST 2020 O=e-commerce monitoring GmbH +# Subject: CN=GLOBALTRUST 2020 O=e-commerce monitoring GmbH +# Label: "GLOBALTRUST 2020" +# Serial: 109160994242082918454945253 +# MD5 Fingerprint: 8a:c7:6f:cb:6d:e3:cc:a2:f1:7c:83:fa:0e:78:d7:e8 +# SHA1 Fingerprint: d0:67:c1:13:51:01:0c:aa:d0:c7:6a:65:37:31:16:26:4f:53:71:a2 +# SHA256 Fingerprint: 9a:29:6a:51:82:d1:d4:51:a2:e3:7f:43:9b:74:da:af:a2:67:52:33:29:f9:0f:9a:0d:20:07:c3:34:e2:3c:9a +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG +A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw +FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx +MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u +aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq +hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b +RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z +YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3 +QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw +yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+ +BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ +SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH +r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0 +4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me +dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw +q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2 +nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu +H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC +XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd +6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf ++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi +kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7 +wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB +TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C +MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn +4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I +aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy +qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +# Issuer: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz +# Subject: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz +# Label: "ANF Secure Server Root CA" +# Serial: 996390341000653745 +# MD5 Fingerprint: 26:a6:44:5a:d9:af:4e:2f:b2:1d:b6:65:b0:4e:e8:96 +# SHA1 Fingerprint: 5b:6e:68:d0:cc:15:b6:a0:5f:1e:c1:5f:ae:02:fc:6b:2f:5d:6f:74 +# SHA256 Fingerprint: fb:8f:ec:75:91:69:b9:10:6b:1e:51:16:44:c6:18:c5:13:04:37:3f:6c:06:43:08:8d:8b:ef:fd:1b:99:75:99 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Subject: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Label: "Certum EC-384 CA" +# Serial: 160250656287871593594747141429395092468 +# MD5 Fingerprint: b6:65:b3:96:60:97:12:a1:ec:4e:e1:3d:a3:c6:c9:f1 +# SHA1 Fingerprint: f3:3e:78:3c:ac:df:f4:a2:cc:ac:67:55:69:56:d7:e5:16:3c:e1:ed +# SHA256 Fingerprint: 6b:32:80:85:62:53:18:aa:50:d1:73:c9:8d:8b:da:09:d5:7e:27:41:3d:11:4c:f7:87:a0:f5:d0:6c:03:0c:f6 +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw +CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw +JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT +EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 +WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT +LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX +BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE +KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm +Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 +EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J +UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn +nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Root CA" +# Serial: 40870380103424195783807378461123655149 +# MD5 Fingerprint: 51:e1:c2:e7:fe:4c:84:af:59:0e:2f:f4:54:6f:ea:29 +# SHA1 Fingerprint: c8:83:44:c0:18:ae:9f:cc:f1:87:b7:8f:22:d1:c5:d7:45:84:ba:e5 +# SHA256 Fingerprint: fe:76:96:57:38:55:77:3e:37:a9:5e:7a:d4:d9:cc:96:c3:01:57:c1:5d:31:76:5b:a9:b1:57:04:e1:ae:78:fd +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique +# Subject: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique +# Label: "TunTrust Root CA" +# Serial: 108534058042236574382096126452369648152337120275 +# MD5 Fingerprint: 85:13:b9:90:5b:36:5c:b6:5e:b8:5a:f8:e0:31:57:b4 +# SHA1 Fingerprint: cf:e9:70:84:0f:e0:73:0f:9d:f6:0c:7f:2c:4b:ee:20:46:34:9c:bb +# SHA256 Fingerprint: 2e:44:10:2a:b5:8c:b8:54:19:45:1c:8e:19:d9:ac:f3:66:2c:af:bc:61:4b:6a:53:96:0a:30:f7:d0:e2:eb:41 +-----BEGIN CERTIFICATE----- +MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL +BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg +Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv +b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG +EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u +IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ +n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd +2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF +VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ +GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF +li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU +r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2 +eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb +MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg +jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB +7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW +5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE +ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 +90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z +xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu +QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4 +FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH +22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP +xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn +dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5 +Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b +nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ +CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH +u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj +d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= +-----END CERTIFICATE----- + +# Issuer: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Subject: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Label: "HARICA TLS RSA Root CA 2021" +# Serial: 76817823531813593706434026085292783742 +# MD5 Fingerprint: 65:47:9b:58:86:dd:2c:f0:fc:a2:84:1f:1e:96:c4:91 +# SHA1 Fingerprint: 02:2d:05:82:fa:88:ce:14:0c:06:79:de:7f:14:10:e9:45:d7:a5:6d +# SHA256 Fingerprint: d9:5d:0e:8e:da:79:52:5b:f9:be:b1:1b:14:d2:10:0d:32:94:98:5f:0c:62:d9:fa:bd:9c:d9:99:ec:cb:7b:1d +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs +MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg +Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL +MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l +mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE +4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv +a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M +pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw +Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b +LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY +AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB +AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq +E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr +W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ +CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU +X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3 +f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja +H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP +JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P +zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt +jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0 +/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT +BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79 +aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW +xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU +63ZTGI0RmLo= +-----END CERTIFICATE----- + +# Issuer: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Subject: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA +# Label: "HARICA TLS ECC Root CA 2021" +# Serial: 137515985548005187474074462014555733966 +# MD5 Fingerprint: ae:f7:4c:e5:66:35:d1:b7:9b:8c:22:93:74:d3:4b:b0 +# SHA1 Fingerprint: bc:b0:c1:9d:e9:98:92:70:19:38:57:e9:8d:a7:b4:5d:6e:ee:01:48 +# SHA256 Fingerprint: 3f:99:cc:47:4a:cf:ce:4d:fe:d5:87:94:66:5e:47:8d:15:47:73:9f:2e:78:0f:1b:b4:ca:9b:13:30:97:d4:01 +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw +CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh +cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v +dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG +A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7 +KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y +STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD +AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw +SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN +nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# Serial: 1977337328857672817 +# MD5 Fingerprint: 4e:6e:9b:54:4c:ca:b7:fa:48:e4:90:b1:15:4b:1c:a3 +# SHA1 Fingerprint: 0b:be:c2:27:22:49:cb:39:aa:db:35:5c:53:e3:8c:ae:78:ff:b6:fe +# SHA256 Fingerprint: 57:de:05:83:ef:d2:b2:6e:03:61:da:99:da:9d:f4:64:8d:ef:7e:e8:44:1c:3b:72:8a:fa:9b:cd:e0:f9:b2:6a +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 +MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc +tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd +IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC +AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw +ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m +iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF +Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ +hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P +Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE +EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV +1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t +CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR +5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw +f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 +ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK +GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +# Issuer: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. +# Subject: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. +# Label: "vTrus ECC Root CA" +# Serial: 630369271402956006249506845124680065938238527194 +# MD5 Fingerprint: de:4b:c1:f5:52:8c:9b:43:e1:3e:8f:55:54:17:8d:85 +# SHA1 Fingerprint: f6:9c:db:b0:fc:f6:02:13:b6:52:32:a6:a3:91:3f:16:70:da:c3:e1 +# SHA256 Fingerprint: 30:fb:ba:2c:32:23:8e:2a:98:54:7a:f9:79:31:e5:50:42:8b:9b:3f:1c:8e:eb:66:33:dc:fa:86:c5:b2:7d:d3 +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw +RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY +BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz +MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u +LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0 +v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd +e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw +V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA +AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG +GJTO +-----END CERTIFICATE----- + +# Issuer: CN=vTrus Root CA O=iTrusChina Co.,Ltd. +# Subject: CN=vTrus Root CA O=iTrusChina Co.,Ltd. +# Label: "vTrus Root CA" +# Serial: 387574501246983434957692974888460947164905180485 +# MD5 Fingerprint: b8:c9:37:df:fa:6b:31:84:64:c5:ea:11:6a:1b:75:fc +# SHA1 Fingerprint: 84:1a:69:fb:f5:cd:1a:25:34:13:3d:e3:f8:fc:b8:99:d0:c9:14:b7 +# SHA256 Fingerprint: 8a:71:de:65:59:33:6f:42:6c:26:e5:38:80:d0:0d:88:a1:8d:a4:c6:a9:1f:0d:cb:61:94:e2:06:c5:c9:63:87 +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL +BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x +FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx +MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s +THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc +IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU +AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+ +GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9 +8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH +flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt +J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim +0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN +pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ +UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW +OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB +AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet +8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j +bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM +Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv +TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS +S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr +I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9 +b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB +UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P +Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven +sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s= +-----END CERTIFICATE----- + +# Issuer: CN=ISRG Root X2 O=Internet Security Research Group +# Subject: CN=ISRG Root X2 O=Internet Security Research Group +# Label: "ISRG Root X2" +# Serial: 87493402998870891108772069816698636114 +# MD5 Fingerprint: d3:9e:c4:1e:23:3c:a6:df:cf:a3:7e:6d:e0:14:e6:e5 +# SHA1 Fingerprint: bd:b1:b9:3c:d5:97:8d:45:c6:26:14:55:f8:db:95:c7:5a:d1:53:af +# SHA256 Fingerprint: 69:72:9b:8e:15:a8:6e:fc:17:7a:57:af:b7:17:1d:fc:64:ad:d2:8c:2f:ca:8c:f1:50:7e:34:45:3c:cb:14:70 +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw +CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg +R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 +MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT +ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW ++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 +ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI +zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW +tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 +/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +# Issuer: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. +# Subject: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. +# Label: "HiPKI Root CA - G1" +# Serial: 60966262342023497858655262305426234976 +# MD5 Fingerprint: 69:45:df:16:65:4b:e8:68:9a:8f:76:5f:ff:80:9e:d3 +# SHA1 Fingerprint: 6a:92:e4:a8:ee:1b:ec:96:45:37:e3:29:57:49:cd:96:e3:e5:d2:60 +# SHA256 Fingerprint: f0:15:ce:3c:c2:39:bf:ef:06:4b:e9:f1:d2:c4:17:e1:a0:26:4a:0a:94:be:1f:0c:8d:12:18:64:eb:69:49:cc +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa +Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3 +YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw +qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv +Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6 +lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz +Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ +KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK +FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj +HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr +y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ +/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM +a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6 +fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG +SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc +SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza +ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc +XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg +iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho +L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF +Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr +kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+ +vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU +YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Label: "GlobalSign ECC Root CA - R4" +# Serial: 159662223612894884239637590694 +# MD5 Fingerprint: 26:29:f8:6d:e1:88:bf:a2:65:7f:aa:c4:cd:0f:7f:fc +# SHA1 Fingerprint: 6b:a0:b0:98:e1:71:ef:5a:ad:fe:48:15:80:77:10:f4:bd:6f:0b:28 +# SHA256 Fingerprint: b0:85:d7:0b:96:4f:19:1a:73:e4:af:0d:54:ae:7a:0e:07:aa:fd:af:9b:71:dd:08:62:13:8a:b7:32:5a:24:a2 +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD +VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh +bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw +MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g +UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT +BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx +uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV +HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ ++wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 +bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R1 O=Google Trust Services LLC +# Subject: CN=GTS Root R1 O=Google Trust Services LLC +# Label: "GTS Root R1" +# Serial: 159662320309726417404178440727 +# MD5 Fingerprint: 05:fe:d0:bf:71:a8:a3:76:63:da:01:e0:d8:52:dc:40 +# SHA1 Fingerprint: e5:8c:1c:c4:91:3b:38:63:4b:e9:10:6e:e3:ad:8e:6b:9d:d9:81:4a +# SHA256 Fingerprint: d9:47:43:2a:bd:e7:b7:fa:90:fc:2e:6b:59:10:1b:12:80:e0:e1:c7:e4:e4:0f:a3:c6:88:7f:ff:57:a7:f4:cf +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo +27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w +Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw +TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl +qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH +szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 +Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk +MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p +aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN +VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb +C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy +h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 +7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J +ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef +MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ +Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT +6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ +0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm +2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb +bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R2 O=Google Trust Services LLC +# Subject: CN=GTS Root R2 O=Google Trust Services LLC +# Label: "GTS Root R2" +# Serial: 159662449406622349769042896298 +# MD5 Fingerprint: 1e:39:c0:53:e6:1e:29:82:0b:ca:52:55:36:5d:57:dc +# SHA1 Fingerprint: 9a:44:49:76:32:db:de:fa:d0:bc:fb:5a:7b:17:bd:9e:56:09:24:94 +# SHA256 Fingerprint: 8d:25:cd:97:22:9d:bf:70:35:6b:da:4e:b3:cc:73:40:31:e2:4c:f0:0f:af:cf:d3:2d:c7:6e:b5:84:1c:7e:a8 +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt +nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY +6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu +MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k +RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg +f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV ++3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo +dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa +G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq +gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID +AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H +vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC +B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u +NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg +yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev +HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 +xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR +TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg +JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV +7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl +6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R3 O=Google Trust Services LLC +# Subject: CN=GTS Root R3 O=Google Trust Services LLC +# Label: "GTS Root R3" +# Serial: 159662495401136852707857743206 +# MD5 Fingerprint: 3e:e7:9d:58:02:94:46:51:94:e5:e0:22:4a:8b:e7:73 +# SHA1 Fingerprint: ed:e5:71:80:2b:c8:92:b9:5b:83:3c:d2:32:68:3f:09:cd:a0:1e:46 +# SHA256 Fingerprint: 34:d8:a7:3e:e2:08:d9:bc:db:0d:95:65:20:93:4b:4e:40:e6:94:82:59:6e:8b:6f:73:c8:42:6b:01:0a:6f:48 +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G +jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 +4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 +VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm +ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X +-----END CERTIFICATE----- + +# Issuer: CN=GTS Root R4 O=Google Trust Services LLC +# Subject: CN=GTS Root R4 O=Google Trust Services LLC +# Label: "GTS Root R4" +# Serial: 159662532700760215368942768210 +# MD5 Fingerprint: 43:96:83:77:19:4d:76:b3:9d:65:52:e4:1d:22:a5:e8 +# SHA1 Fingerprint: 77:d3:03:67:b5:e0:0c:15:f6:0c:38:61:df:7c:e1:3b:92:46:4d:47 +# SHA256 Fingerprint: 34:9d:fa:40:58:c5:e2:63:12:3b:39:8a:e7:95:57:3c:4e:13:13:c8:3f:e6:8f:93:55:6c:d5:e8:03:1b:3c:7d +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD +VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG +A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw +WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz +IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi +QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR +HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D +9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 +p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +# Issuer: CN=Telia Root CA v2 O=Telia Finland Oyj +# Subject: CN=Telia Root CA v2 O=Telia Finland Oyj +# Label: "Telia Root CA v2" +# Serial: 7288924052977061235122729490515358 +# MD5 Fingerprint: 0e:8f:ac:aa:82:df:85:b1:f4:dc:10:1c:fc:99:d9:48 +# SHA1 Fingerprint: b9:99:cd:d1:73:50:8a:c4:47:05:08:9c:8c:88:fb:be:a0:2b:40:cd +# SHA256 Fingerprint: 24:2b:69:74:2f:cb:1e:5b:2a:bf:98:89:8b:94:57:21:87:54:4e:5b:4d:99:11:78:65:73:62:1f:6a:74:b8:2c +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx +CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE +AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 +NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ +MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq +AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 +vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 +lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD +n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT +7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o +6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC +TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 +WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R +DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI +pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj +YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy +rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi +0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM +A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS +SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K +TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF +6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er +3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt +Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT +VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW +ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA +rBPuUBQemMc= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH +# Subject: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH +# Label: "D-TRUST BR Root CA 1 2020" +# Serial: 165870826978392376648679885835942448534 +# MD5 Fingerprint: b5:aa:4b:d5:ed:f7:e3:55:2e:8f:72:0a:f3:75:b8:ed +# SHA1 Fingerprint: 1f:5b:98:f0:e3:b5:f7:74:3c:ed:e6:b0:36:7d:32:cd:f4:09:41:67 +# SHA256 Fingerprint: e5:9a:aa:81:60:09:c2:2b:ff:5b:25:ba:d3:7d:f3:06:f0:49:79:7c:1f:81:d8:5a:b0:89:e6:57:bd:8f:00:44 +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5 +NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS +zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0 +QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/ +VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW +wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV +dWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH +# Subject: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH +# Label: "D-TRUST EV Root CA 1 2020" +# Serial: 126288379621884218666039612629459926992 +# MD5 Fingerprint: 8c:2d:9d:70:9f:48:99:11:06:11:fb:e9:cb:30:c0:6e +# SHA1 Fingerprint: 61:db:8c:21:59:69:03:90:d8:7c:9c:12:86:54:cf:9d:3d:f4:dd:07 +# SHA256 Fingerprint: 08:17:0d:1a:a3:64:53:90:1a:2f:95:92:45:e3:47:db:0c:8d:37:ab:aa:bc:56:b8:1a:a1:00:dc:95:89:70:db +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw +CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS +VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5 +NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG +A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB +BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC +/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD +wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3 +OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g +PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf +Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l +dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 +c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO +PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA +y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb +gfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. +# Subject: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. +# Label: "DigiCert TLS ECC P384 Root G5" +# Serial: 13129116028163249804115411775095713523 +# MD5 Fingerprint: d3:71:04:6a:43:1c:db:a6:59:e1:a8:a3:aa:c5:71:ed +# SHA1 Fingerprint: 17:f3:de:5e:9f:0f:19:e9:8e:f6:1f:32:26:6e:20:c4:07:ae:30:ee +# SHA256 Fingerprint: 01:8e:13:f0:77:25:32:cf:80:9b:d1:b1:72:81:86:72:83:fc:48:c6:e1:3b:e9:c6:98:12:85:4a:49:0c:1b:05 +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp +Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 +MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ +bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS +7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp +0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS +B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 +BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ +LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 +DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. +# Subject: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. +# Label: "DigiCert TLS RSA4096 Root G5" +# Serial: 11930366277458970227240571539258396554 +# MD5 Fingerprint: ac:fe:f7:34:96:a9:f2:b3:b4:12:4b:e4:27:41:6f:e1 +# SHA1 Fingerprint: a7:88:49:dc:5d:7c:75:8c:8c:de:39:98:56:b3:aa:d0:b2:a5:71:35 +# SHA256 Fingerprint: 37:1a:00:dc:05:33:b3:72:1a:7e:eb:40:e8:41:9e:70:79:9d:2b:0a:0f:2c:1d:80:69:31:65:f7:ce:c4:ad:75 +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN +MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT +HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN +NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs +IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ +ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 +2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp +wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM +pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD +nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po +sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx +Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd +Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX +KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe +XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL +tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv +TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN +AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H +PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF +O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ +REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik +AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv +/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ +p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw +MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF +qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK +ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +# Issuer: CN=Certainly Root R1 O=Certainly +# Subject: CN=Certainly Root R1 O=Certainly +# Label: "Certainly Root R1" +# Serial: 188833316161142517227353805653483829216 +# MD5 Fingerprint: 07:70:d4:3e:82:87:a0:fa:33:36:13:f4:fa:33:e7:12 +# SHA1 Fingerprint: a0:50:ee:0f:28:71:f4:27:b2:12:6d:6f:50:96:25:ba:cc:86:42:af +# SHA256 Fingerprint: 77:b8:2c:d8:64:4c:43:05:f7:ac:c5:cb:15:6b:45:67:50:04:03:3d:51:c6:0c:62:02:a8:e0:c3:34:67:d3:a0 +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw +PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy +dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 +YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 +1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT +vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed +aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 +1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 +r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 +cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ +wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ +6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA +2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH +Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR +eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB +/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u +d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr +PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi +1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd +rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di +taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 +lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj +yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn +Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy +yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n +wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 +OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +# Issuer: CN=Certainly Root E1 O=Certainly +# Subject: CN=Certainly Root E1 O=Certainly +# Label: "Certainly Root E1" +# Serial: 8168531406727139161245376702891150584 +# MD5 Fingerprint: 0a:9e:ca:cd:3e:52:50:c6:36:f3:4b:a3:ed:a7:53:e9 +# SHA1 Fingerprint: f9:e1:6d:dc:01:89:cf:d5:82:45:63:3e:c5:37:7d:c2:eb:93:6f:2b +# SHA256 Fingerprint: b4:58:5f:22:e4:ac:75:6a:4e:86:12:a1:36:1c:5d:9d:03:1a:93:fd:84:fe:bb:77:8f:a3:06:8b:0f:c4:2d:c2 +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw +CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu +bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ +BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s +eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK ++IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 +QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 +hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm +ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG +BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +# Issuer: CN=Security Communication RootCA3 O=SECOM Trust Systems CO.,LTD. +# Subject: CN=Security Communication RootCA3 O=SECOM Trust Systems CO.,LTD. +# Label: "Security Communication RootCA3" +# Serial: 16247922307909811815 +# MD5 Fingerprint: 1c:9a:16:ff:9e:5c:e0:4d:8a:14:01:f4:35:5d:29:26 +# SHA1 Fingerprint: c3:03:c8:22:74:92:e5:61:a2:9c:5f:79:91:2b:1e:44:13:91:30:3a +# SHA256 Fingerprint: 24:a5:5c:2a:b0:51:44:2d:06:17:76:65:41:23:9a:4a:d0:32:d7:c5:51:75:aa:34:ff:de:2f:bc:4f:5c:52:94 +-----BEGIN CERTIFICATE----- +MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNV +BAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScw +JQYDVQQDEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2 +MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UEAxMeU2VjdXJpdHkg +Q29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4r +CmDvu20rhvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzA +lrenfna84xtSGc4RHwsENPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MG +TfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF7 +9+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGmnpjKIG58u4iFW/vAEGK7 +8vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtYXLVqAvO4 +g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3we +GVPKp7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst ++3A7caoreyYn8xrC3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M +0V9hvqG8OmpI6iZVIhZdXw3/JzOfGAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQ +T9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0VcwCBEF/VfR2ccCAwEAAaNCMEAw +HQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS +YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PA +FNr0Y/Dq9HHuTofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd +9XbXv8S2gVj/yP9kaWJ5rW4OH3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQI +UYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASxYfQAW0q3nHE3GYV5v4GwxxMOdnE+ +OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZXSEIx2C/pHF7uNke +gr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml+LLf +iAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUV +nuiZIesnKwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD +2NCcnWXL0CsnMQMeNuE9dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI// +1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm6Vwdp6POXiUyK+OVrCoHzrQoeIY8Laad +TdJ0MN1kURXbg4NR16/9M51NZg== +-----END CERTIFICATE----- + +# Issuer: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. +# Subject: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. +# Label: "Security Communication ECC RootCA1" +# Serial: 15446673492073852651 +# MD5 Fingerprint: 7e:43:b0:92:68:ec:05:43:4c:98:ab:5d:35:2e:7e:86 +# SHA1 Fingerprint: b8:0e:26:a9:bf:d2:b2:3b:c0:ef:46:c9:ba:c7:bb:f6:1d:0d:41:41 +# SHA256 Fingerprint: e7:4f:bd:a5:5b:d5:64:c4:73:a3:6b:44:1a:a7:99:c8:a6:8e:07:74:40:e8:28:8b:9f:a1:e5:0e:4b:ba:ca:11 +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT +AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD +VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx +NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT +HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 +IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl +dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK +ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu +9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O +be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= +-----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA1" +# Serial: 113562791157148395269083148143378328608 +# MD5 Fingerprint: 42:32:99:76:43:33:36:24:35:07:82:9b:28:f9:d0:90 +# SHA1 Fingerprint: d5:ec:8d:7b:4c:ba:79:f4:e7:e8:cb:9d:6b:ae:77:83:10:03:21:6a +# SHA256 Fingerprint: f3:89:6f:88:fe:7c:0a:88:27:66:a7:fa:6a:d2:74:9f:b5:7a:7f:3e:98:fb:76:9c:1f:a7:b0:9c:2c:44:d5:ae +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU +MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI +T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz +MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF +SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh +bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z +xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ +spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5 +58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR +at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll +5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq +nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK +V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/ +pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO +z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn +jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+ +WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF +7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli +awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u ++2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88 +X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN +SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo +P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI ++pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz +znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9 +eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2 +YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy +r/6zcCwupvI= +-----END CERTIFICATE----- + +# Issuer: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Subject: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY +# Label: "BJCA Global Root CA2" +# Serial: 58605626836079930195615843123109055211 +# MD5 Fingerprint: 5e:0a:f6:47:5f:a6:14:e8:11:01:95:3f:4d:01:eb:3c +# SHA1 Fingerprint: f4:27:86:eb:6e:b8:6d:88:31:67:02:fb:ba:66:a4:53:00:aa:7a:a6 +# SHA256 Fingerprint: 57:4d:f6:93:1e:27:80:39:66:7b:72:0a:fd:c1:60:0f:c2:7e:b6:6d:d3:09:29:79:fb:73:85:64:87:21:28:82 +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw +CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ +VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy +MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ +TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS +b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B +IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+ ++kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK +sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA +94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B +43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root E46" +# Serial: 88989738453351742415770396670917916916 +# MD5 Fingerprint: 28:23:f8:b2:98:5c:37:16:3b:3e:46:13:4e:b0:b3:01 +# SHA1 Fingerprint: ec:8a:39:6c:40:f0:2e:bc:42:75:d4:9f:ab:1c:1a:5b:67:be:d2:9a +# SHA256 Fingerprint: c9:0f:26:f0:fb:1b:40:18:b2:22:27:51:9b:5c:a2:b5:3e:2c:a5:b3:be:5c:f1:8e:fe:1b:ef:47:38:0c:53:83 +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw +CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN +MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG +A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC +WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+ +6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B +Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa +qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q +4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw== +-----END CERTIFICATE----- + +# Issuer: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Subject: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited +# Label: "Sectigo Public Server Authentication Root R46" +# Serial: 156256931880233212765902055439220583700 +# MD5 Fingerprint: 32:10:09:52:00:d5:7e:6c:43:df:15:c0:b1:16:93:e5 +# SHA1 Fingerprint: ad:98:f9:f3:e4:7d:75:3b:65:d4:82:b3:a4:52:17:bb:6e:f5:e4:38 +# SHA256 Fingerprint: 7b:b6:47:a6:2a:ee:ac:88:bf:25:7a:a5:22:d0:1f:fe:a3:95:e0:ab:45:c7:3f:93:f6:56:54:ec:38:f2:5a:06 +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf +MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD +Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw +HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY +MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp +YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa +ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz +SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf +iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X +ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3 +IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS +VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE +SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu ++Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt +8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L +HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt +zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P +AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ +YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52 +gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA +Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB +JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX +DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui +TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5 +dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65 +LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp +0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY +QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS RSA Root CA 2022" +# Serial: 148535279242832292258835760425842727825 +# MD5 Fingerprint: d8:4e:c6:59:30:d8:fe:a0:d6:7a:5a:2c:2c:69:78:da +# SHA1 Fingerprint: ec:2c:83:40:72:af:26:95:10:ff:0e:f2:03:ee:31:70:f6:78:9d:ca +# SHA256 Fingerprint: 8f:af:7d:2e:2c:b4:70:9b:b8:e0:b3:36:66:bf:75:a5:dd:45:b5:de:48:0f:8e:a8:d4:bf:e6:be:bc:17:f2:ed +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO +MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD +DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX +DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw +b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP +L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY +t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins +S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3 +PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO +L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3 +R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w +dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS ++YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS +d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG +AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f +gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z +NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM +QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf +R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ +DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW +P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy +lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq +bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w +AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q +r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji +Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU +98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Subject: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation +# Label: "SSL.com TLS ECC Root CA 2022" +# Serial: 26605119622390491762507526719404364228 +# MD5 Fingerprint: 99:d7:5c:f1:51:36:cc:e9:ce:d9:19:2e:77:71:56:c5 +# SHA1 Fingerprint: 9f:5f:d9:1a:54:6d:f5:0c:71:f0:ee:7a:bd:17:49:98:84:73:e2:39 +# SHA256 Fingerprint: c3:2f:fd:9f:46:f9:36:d1:6c:36:73:99:09:59:43:4b:9a:d6:0a:af:bb:9e:7c:f3:36:54:f1:44:cc:1b:a1:43 +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw +CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT +U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2 +MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh +dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm +acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN +SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME +GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW +uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp +15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN +b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA ECC TLS 2021" +# Serial: 81873346711060652204712539181482831616 +# MD5 Fingerprint: 16:9f:ad:f1:70:ad:79:d6:ed:29:b4:d1:c5:79:70:a8 +# SHA1 Fingerprint: 9e:bc:75:10:42:b3:02:f3:81:f4:f7:30:62:d4:8f:c3:a7:51:b2:dd +# SHA256 Fingerprint: b2:fa:e5:3e:14:cc:d7:ab:92:12:06:47:01:ae:27:9c:1d:89:88:fa:cb:77:5f:a8:a0:08:91:4e:66:39:88:a8 +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w +LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w +CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0 +MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF +Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI +zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X +tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4 +AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2 +KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD +aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu +CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo +9H1/IISpQuQo +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos +# Label: "Atos TrustedRoot Root CA RSA TLS 2021" +# Serial: 111436099570196163832749341232207667876 +# MD5 Fingerprint: d4:d3:46:b8:9a:c0:9c:76:5d:9e:3a:c3:b9:99:31:d2 +# SHA1 Fingerprint: 18:52:3b:0d:06:37:e4:d6:3a:df:23:e4:98:fb:5b:16:fb:86:74:48 +# SHA256 Fingerprint: 81:a9:08:8e:a5:9f:b3:64:c5:48:a6:f8:55:59:09:9b:6f:04:05:ef:bf:18:e5:32:4e:c9:f4:57:ba:00:11:2f +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM +MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx +MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00 +MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD +QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z +4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv +Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ +kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs +GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln +nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh +3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD +0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy +geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8 +ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB +c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI +pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU +dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs +o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ +qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw +xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM +rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4 +AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR +0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY +o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5 +dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE +oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/core.py b/frieren-cli/venv/lib/python3.11/site-packages/certifi/core.py new file mode 100644 index 0000000..de02898 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/certifi/core.py @@ -0,0 +1,108 @@ +""" +certifi.py +~~~~~~~~~~ + +This module returns the installation location of cacert.pem or its contents. +""" +import sys + + +if sys.version_info >= (3, 11): + + from importlib.resources import as_file, files + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the file + # in cases where we're inside of a zipimport situation until someone + # actually calls where(), but we don't want to re-extract the file + # on every call of where(), so we'll do it once then store it in a + # global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you to + # manage the cleanup of this file, so it doesn't actually return a + # path, it returns a context manager that will give you the path + # when you enter it and will do any cleanup when you leave it. In + # the common case of not needing a temporary file, it will just + # return the file system location and the __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem")) + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + + return _CACERT_PATH + + def contents() -> str: + return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") + +elif sys.version_info >= (3, 7): + + from importlib.resources import path as get_path, read_text + + _CACERT_CTX = None + _CACERT_PATH = None + + def where() -> str: + # This is slightly terrible, but we want to delay extracting the + # file in cases where we're inside of a zipimport situation until + # someone actually calls where(), but we don't want to re-extract + # the file on every call of where(), so we'll do it once then store + # it in a global variable. + global _CACERT_CTX + global _CACERT_PATH + if _CACERT_PATH is None: + # This is slightly janky, the importlib.resources API wants you + # to manage the cleanup of this file, so it doesn't actually + # return a path, it returns a context manager that will give + # you the path when you enter it and will do any cleanup when + # you leave it. In the common case of not needing a temporary + # file, it will just return the file system location and the + # __exit__() is a no-op. + # + # We also have to hold onto the actual context manager, because + # it will do the cleanup whenever it gets garbage collected, so + # we will also store that at the global level as well. + _CACERT_CTX = get_path("certifi", "cacert.pem") + _CACERT_PATH = str(_CACERT_CTX.__enter__()) + + return _CACERT_PATH + + def contents() -> str: + return read_text("certifi", "cacert.pem", encoding="ascii") + +else: + import os + import types + from typing import Union + + Package = Union[types.ModuleType, str] + Resource = Union[str, "os.PathLike"] + + # This fallback will work for Python versions prior to 3.7 that lack the + # importlib.resources module but relies on the existing `where` function + # so won't address issues with environments like PyOxidizer that don't set + # __file__ on modules. + def read_text( + package: Package, + resource: Resource, + encoding: str = 'utf-8', + errors: str = 'strict' + ) -> str: + with open(where(), encoding=encoding) as data: + return data.read() + + # If we don't have importlib.resources, then we will just do the old logic + # of assuming we're on the filesystem and munge the path directly. + def where() -> str: + f = os.path.dirname(__file__) + + return os.path.join(f, "cacert.pem") + + def contents() -> str: + return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/frieren-cli/venv/lib/python3.11/site-packages/certifi/py.typed b/frieren-cli/venv/lib/python3.11/site-packages/certifi/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/INSTALLER b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/LICENSE b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/LICENSE new file mode 100644 index 0000000..ad82355 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/METADATA b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/METADATA new file mode 100644 index 0000000..ad5158c --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/METADATA @@ -0,0 +1,668 @@ +Metadata-Version: 2.1 +Name: charset-normalizer +Version: 3.3.0 +Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. +Home-page: https://github.com/Ousret/charset_normalizer +Author: Ahmed TAHRI +Author-email: ahmed.tahri@cloudnursery.dev +License: MIT +Project-URL: Bug Reports, https://github.com/Ousret/charset_normalizer/issues +Project-URL: Documentation, https://charset-normalizer.readthedocs.io/en/latest +Keywords: encoding,charset,charset-detector,detector,normalization,unicode,chardet,detect +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: MIT License +Classifier: Intended Audience :: Developers +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Text Processing :: Linguistic +Classifier: Topic :: Utilities +Classifier: Typing :: Typed +Requires-Python: >=3.7.0 +Description-Content-Type: text/markdown +License-File: LICENSE +Provides-Extra: unicode_backport + +

Charset Detection, for Everyone 👋

+ +

+ The Real First Universal Charset Detector
+ + + + + Download Count Total + + + + +

+

+ Featured Packages
+ + Static Badge + + + Static Badge + +

+

+ In other language (unofficial port - by the community)
+ + Static Badge + +

+ +> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, +> I'm trying to resolve the issue by taking a new approach. +> All IANA character set names for which the Python core library provides codecs are supported. + +

+ >>>>> 👉 Try Me Online Now, Then Adopt Me 👈 <<<<< +

+ +This project offers you an alternative to **Universal Charset Encoding Detector**, also known as **Chardet**. + +| Feature | [Chardet](https://github.com/chardet/chardet) | Charset Normalizer | [cChardet](https://github.com/PyYoshi/cChardet) | +|--------------------------------------------------|:---------------------------------------------:|:--------------------------------------------------------------------------------------------------:|:-----------------------------------------------:| +| `Fast` | ❌ | ✅ | ✅ | +| `Universal**` | ❌ | ✅ | ❌ | +| `Reliable` **without** distinguishable standards | ❌ | ✅ | ✅ | +| `Reliable` **with** distinguishable standards | ✅ | ✅ | ✅ | +| `License` | LGPL-2.1
_restrictive_ | MIT | MPL-1.1
_restrictive_ | +| `Native Python` | ✅ | ✅ | ❌ | +| `Detect spoken language` | ❌ | ✅ | N/A | +| `UnicodeDecodeError Safety` | ❌ | ✅ | ❌ | +| `Whl Size (min)` | 193.6 kB | 42 kB | ~200 kB | +| `Supported Encoding` | 33 | 🎉 [99](https://charset-normalizer.readthedocs.io/en/latest/user/support.html#supported-encodings) | 40 | + +

+Reading Normalized TextCat Reading Text +

+ +*\*\* : They are clearly using specific code for a specific encoding even if covering most of used one*
+Did you got there because of the logs? See [https://charset-normalizer.readthedocs.io/en/latest/user/miscellaneous.html](https://charset-normalizer.readthedocs.io/en/latest/user/miscellaneous.html) + +## ⚡ Performance + +This package offer better performance than its counterpart Chardet. Here are some numbers. + +| Package | Accuracy | Mean per file (ms) | File per sec (est) | +|-----------------------------------------------|:--------:|:------------------:|:------------------:| +| [chardet](https://github.com/chardet/chardet) | 86 % | 200 ms | 5 file/sec | +| charset-normalizer | **98 %** | **10 ms** | 100 file/sec | + +| Package | 99th percentile | 95th percentile | 50th percentile | +|-----------------------------------------------|:---------------:|:---------------:|:---------------:| +| [chardet](https://github.com/chardet/chardet) | 1200 ms | 287 ms | 23 ms | +| charset-normalizer | 100 ms | 50 ms | 5 ms | + +Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload. + +> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. +> And yes, these results might change at any time. The dataset can be updated to include more files. +> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. +> Keep in mind that the stats are generous and that Chardet accuracy vs our is measured using Chardet initial capability +> (eg. Supported Encoding) Challenge-them if you want. + +## ✨ Installation + +Using pip: + +```sh +pip install charset-normalizer -U +``` + +## 🚀 Basic Usage + +### CLI +This package comes with a CLI. + +``` +usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] + file [file ...] + +The Real First Universal Charset Detector. Discover originating encoding used +on text file. Normalize text to unicode. + +positional arguments: + files File(s) to be analysed + +optional arguments: + -h, --help show this help message and exit + -v, --verbose Display complementary information about file if any. + Stdout will contain logs about the detection process. + -a, --with-alternative + Output complementary possibilities if any. Top-level + JSON WILL be a list. + -n, --normalize Permit to normalize input file. If not set, program + does not write anything. + -m, --minimal Only output the charset detected to STDOUT. Disabling + JSON output. + -r, --replace Replace file when trying to normalize it instead of + creating a new one. + -f, --force Replace file without asking if you are sure, use this + flag with caution. + -t THRESHOLD, --threshold THRESHOLD + Define a custom maximum amount of chaos allowed in + decoded content. 0. <= chaos <= 1. + --version Show version information and exit. +``` + +```bash +normalizer ./data/sample.1.fr.srt +``` + +or + +```bash +python -m charset_normalizer ./data/sample.1.fr.srt +``` + +🎉 Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. + +```json +{ + "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", + "encoding": "cp1252", + "encoding_aliases": [ + "1252", + "windows_1252" + ], + "alternative_encodings": [ + "cp1254", + "cp1256", + "cp1258", + "iso8859_14", + "iso8859_15", + "iso8859_16", + "iso8859_3", + "iso8859_9", + "latin_1", + "mbcs" + ], + "language": "French", + "alphabets": [ + "Basic Latin", + "Latin-1 Supplement" + ], + "has_sig_or_bom": false, + "chaos": 0.149, + "coherence": 97.152, + "unicode_path": null, + "is_preferred": true +} +``` + +### Python +*Just print out normalized text* +```python +from charset_normalizer import from_path + +results = from_path('./my_subtitle.srt') + +print(str(results.best())) +``` + +*Upgrade your code without effort* +```python +from charset_normalizer import detect +``` + +The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. + +See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) + +## 😇 Why + +When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a +reliable alternative using a completely different method. Also! I never back down on a good challenge! + +I **don't care** about the **originating charset** encoding, because **two different tables** can +produce **two identical rendered string.** +What I want is to get readable text, the best I can. + +In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 + +Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. + +## 🍰 How + + - Discard all charset encoding table that could not fit the binary content. + - Measure noise, or the mess once opened (by chunks) with a corresponding charset encoding. + - Extract matches with the lowest mess detected. + - Additionally, we measure coherence / probe for a language. + +**Wait a minute**, what is noise/mess and coherence according to **YOU ?** + +*Noise :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then +**I established** some ground rules about **what is obvious** when **it seems like** a mess. + I know that my interpretation of what is noise is probably incomplete, feel free to contribute in order to + improve or rewrite it. + +*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought +that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. + +## ⚡ Known limitations + + - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) + - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. + +## ⚠️ About Python EOLs + +**If you are running:** + +- Python >=2.7,<3.5: Unsupported +- Python 3.5: charset-normalizer < 2.1 +- Python 3.6: charset-normalizer < 3.1 +- Python 3.7: charset-normalizer < 4.0 + +Upgrade your Python interpreter as soon as possible. + +## 👤 Contributing + +Contributions, issues and feature requests are very much welcome.
+Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. + +## 📝 License + +Copyright © [Ahmed TAHRI @Ousret](https://github.com/Ousret).
+This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. + +Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) + +## 💼 For Enterprise + +Professional support for charset-normalizer is available as part of the [Tidelift +Subscription][1]. Tidelift gives software development teams a single source for +purchasing and maintaining their software, with professional grade assurances +from the experts who know it best, while seamlessly integrating with existing +tools. + +[1]: https://tidelift.com/subscription/pkg/pypi-charset-normalizer?utm_source=pypi-charset-normalizer&utm_medium=readme + +# Changelog +All notable changes to charset-normalizer will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [3.3.0](https://github.com/Ousret/charset_normalizer/compare/3.2.0...3.3.0) (2023-09-30) + +### Added +- Allow to execute the CLI (e.g. normalizer) through `python -m charset_normalizer.cli` or `python -m charset_normalizer` +- Support for 9 forgotten encoding that are supported by Python but unlisted in `encoding.aliases` as they have no alias (#323) + +### Removed +- (internal) Redundant utils.is_ascii function and unused function is_private_use_only +- (internal) charset_normalizer.assets is moved inside charset_normalizer.constant + +### Changed +- (internal) Unicode code blocks in constants are updated using the latest v15.0.0 definition to improve detection +- Optional mypyc compilation upgraded to version 1.5.1 for Python >= 3.7 + +### Fixed +- Unable to properly sort CharsetMatch when both chaos/noise and coherence were close due to an unreachable condition in \_\_lt\_\_ (#350) + +## [3.2.0](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.2.0) (2023-06-07) + +### Changed +- Typehint for function `from_path` no longer enforce `PathLike` as its first argument +- Minor improvement over the global detection reliability + +### Added +- Introduce function `is_binary` that relies on main capabilities, and optimized to detect binaries +- Propagate `enable_fallback` argument throughout `from_bytes`, `from_path`, and `from_fp` that allow a deeper control over the detection (default True) +- Explicit support for Python 3.12 + +### Fixed +- Edge case detection failure where a file would contain 'very-long' camel cased word (Issue #289) + +## [3.1.0](https://github.com/Ousret/charset_normalizer/compare/3.0.1...3.1.0) (2023-03-06) + +### Added +- Argument `should_rename_legacy` for legacy function `detect` and disregard any new arguments without errors (PR #262) + +### Removed +- Support for Python 3.6 (PR #260) + +### Changed +- Optional speedup provided by mypy/c 1.0.1 + +## [3.0.1](https://github.com/Ousret/charset_normalizer/compare/3.0.0...3.0.1) (2022-11-18) + +### Fixed +- Multi-bytes cutter/chunk generator did not always cut correctly (PR #233) + +### Changed +- Speedup provided by mypy/c 0.990 on Python >= 3.7 + +## [3.0.0](https://github.com/Ousret/charset_normalizer/compare/2.1.1...3.0.0) (2022-10-20) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it +- Sphinx warnings when generating the documentation + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [3.0.0rc1](https://github.com/Ousret/charset_normalizer/compare/3.0.0b2...3.0.0rc1) (2022-10-18) + +### Added +- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results +- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES +- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio + +### Changed +- Build with static metadata using 'build' frontend +- Make the language detection stricter + +### Fixed +- CLI with opt --normalize fail when using full path for files +- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it + +### Removed +- Coherence detector no longer return 'Simple English' instead return 'English' +- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' + +## [3.0.0b2](https://github.com/Ousret/charset_normalizer/compare/3.0.0b1...3.0.0b2) (2022-08-21) + +### Added +- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) + +### Removed +- Breaking: Method `first()` and `best()` from CharsetMatch +- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) + +### Fixed +- Sphinx warnings when generating the documentation + +## [3.0.0b1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...3.0.0b1) (2022-08-15) + +### Changed +- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 + +### Removed +- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches +- Breaking: Top-level function `normalize` +- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch +- Support for the backport `unicodedata2` + +## [2.1.1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...2.1.1) (2022-08-19) + +### Deprecated +- Function `normalize` scheduled for removal in 3.0 + +### Changed +- Removed useless call to decode in fn is_unprintable (#206) + +### Fixed +- Third-party library (i18n xgettext) crashing not recognizing utf_8 (PEP 263) with underscore from [@aleksandernovikov](https://github.com/aleksandernovikov) (#204) + +## [2.1.0](https://github.com/Ousret/charset_normalizer/compare/2.0.12...2.1.0) (2022-06-19) + +### Added +- Output the Unicode table version when running the CLI with `--version` (PR #194) + +### Changed +- Re-use decoded buffer for single byte character sets from [@nijel](https://github.com/nijel) (PR #175) +- Fixing some performance bottlenecks from [@deedy5](https://github.com/deedy5) (PR #183) + +### Fixed +- Workaround potential bug in cpython with Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space (PR #175) +- CLI default threshold aligned with the API threshold from [@oleksandr-kuzmenko](https://github.com/oleksandr-kuzmenko) (PR #181) + +### Removed +- Support for Python 3.5 (PR #192) + +### Deprecated +- Use of backport unicodedata from `unicodedata2` as Python is quickly catching up, scheduled for removal in 3.0 (PR #194) + +## [2.0.12](https://github.com/Ousret/charset_normalizer/compare/2.0.11...2.0.12) (2022-02-12) + +### Fixed +- ASCII miss-detection on rare cases (PR #170) + +## [2.0.11](https://github.com/Ousret/charset_normalizer/compare/2.0.10...2.0.11) (2022-01-30) + +### Added +- Explicit support for Python 3.11 (PR #164) + +### Changed +- The logging behavior have been completely reviewed, now using only TRACE and DEBUG levels (PR #163 #165) + +## [2.0.10](https://github.com/Ousret/charset_normalizer/compare/2.0.9...2.0.10) (2022-01-04) + +### Fixed +- Fallback match entries might lead to UnicodeDecodeError for large bytes sequence (PR #154) + +### Changed +- Skipping the language-detection (CD) on ASCII (PR #155) + +## [2.0.9](https://github.com/Ousret/charset_normalizer/compare/2.0.8...2.0.9) (2021-12-03) + +### Changed +- Moderating the logging impact (since 2.0.8) for specific environments (PR #147) + +### Fixed +- Wrong logging level applied when setting kwarg `explain` to True (PR #146) + +## [2.0.8](https://github.com/Ousret/charset_normalizer/compare/2.0.7...2.0.8) (2021-11-24) +### Changed +- Improvement over Vietnamese detection (PR #126) +- MD improvement on trailing data and long foreign (non-pure latin) data (PR #124) +- Efficiency improvements in cd/alphabet_languages from [@adbar](https://github.com/adbar) (PR #122) +- call sum() without an intermediary list following PEP 289 recommendations from [@adbar](https://github.com/adbar) (PR #129) +- Code style as refactored by Sourcery-AI (PR #131) +- Minor adjustment on the MD around european words (PR #133) +- Remove and replace SRTs from assets / tests (PR #139) +- Initialize the library logger with a `NullHandler` by default from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Setting kwarg `explain` to True will add provisionally (bounded to function lifespan) a specific stream handler (PR #135) + +### Fixed +- Fix large (misleading) sequence giving UnicodeDecodeError (PR #137) +- Avoid using too insignificant chunk (PR #137) + +### Added +- Add and expose function `set_logging_handler` to configure a specific StreamHandler from [@nmaynes](https://github.com/nmaynes) (PR #135) +- Add `CHANGELOG.md` entries, format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (PR #141) + +## [2.0.7](https://github.com/Ousret/charset_normalizer/compare/2.0.6...2.0.7) (2021-10-11) +### Added +- Add support for Kazakh (Cyrillic) language detection (PR #109) + +### Changed +- Further, improve inferring the language from a given single-byte code page (PR #112) +- Vainly trying to leverage PEP263 when PEP3120 is not supported (PR #116) +- Refactoring for potential performance improvements in loops from [@adbar](https://github.com/adbar) (PR #113) +- Various detection improvement (MD+CD) (PR #117) + +### Removed +- Remove redundant logging entry about detected language(s) (PR #115) + +### Fixed +- Fix a minor inconsistency between Python 3.5 and other versions regarding language detection (PR #117 #102) + +## [2.0.6](https://github.com/Ousret/charset_normalizer/compare/2.0.5...2.0.6) (2021-09-18) +### Fixed +- Unforeseen regression with the loss of the backward-compatibility with some older minor of Python 3.5.x (PR #100) +- Fix CLI crash when using --minimal output in certain cases (PR #103) + +### Changed +- Minor improvement to the detection efficiency (less than 1%) (PR #106 #101) + +## [2.0.5](https://github.com/Ousret/charset_normalizer/compare/2.0.4...2.0.5) (2021-09-14) +### Changed +- The project now comply with: flake8, mypy, isort and black to ensure a better overall quality (PR #81) +- The BC-support with v1.x was improved, the old staticmethods are restored (PR #82) +- The Unicode detection is slightly improved (PR #93) +- Add syntax sugar \_\_bool\_\_ for results CharsetMatches list-container (PR #91) + +### Removed +- The project no longer raise warning on tiny content given for detection, will be simply logged as warning instead (PR #92) + +### Fixed +- In some rare case, the chunks extractor could cut in the middle of a multi-byte character and could mislead the mess detection (PR #95) +- Some rare 'space' characters could trip up the UnprintablePlugin/Mess detection (PR #96) +- The MANIFEST.in was not exhaustive (PR #78) + +## [2.0.4](https://github.com/Ousret/charset_normalizer/compare/2.0.3...2.0.4) (2021-07-30) +### Fixed +- The CLI no longer raise an unexpected exception when no encoding has been found (PR #70) +- Fix accessing the 'alphabets' property when the payload contains surrogate characters (PR #68) +- The logger could mislead (explain=True) on detected languages and the impact of one MBCS match (PR #72) +- Submatch factoring could be wrong in rare edge cases (PR #72) +- Multiple files given to the CLI were ignored when publishing results to STDOUT. (After the first path) (PR #72) +- Fix line endings from CRLF to LF for certain project files (PR #67) + +### Changed +- Adjust the MD to lower the sensitivity, thus improving the global detection reliability (PR #69 #76) +- Allow fallback on specified encoding if any (PR #71) + +## [2.0.3](https://github.com/Ousret/charset_normalizer/compare/2.0.2...2.0.3) (2021-07-16) +### Changed +- Part of the detection mechanism has been improved to be less sensitive, resulting in more accurate detection results. Especially ASCII. (PR #63) +- According to the community wishes, the detection will fall back on ASCII or UTF-8 in a last-resort case. (PR #64) + +## [2.0.2](https://github.com/Ousret/charset_normalizer/compare/2.0.1...2.0.2) (2021-07-15) +### Fixed +- Empty/Too small JSON payload miss-detection fixed. Report from [@tseaver](https://github.com/tseaver) (PR #59) + +### Changed +- Don't inject unicodedata2 into sys.modules from [@akx](https://github.com/akx) (PR #57) + +## [2.0.1](https://github.com/Ousret/charset_normalizer/compare/2.0.0...2.0.1) (2021-07-13) +### Fixed +- Make it work where there isn't a filesystem available, dropping assets frequencies.json. Report from [@sethmlarson](https://github.com/sethmlarson). (PR #55) +- Using explain=False permanently disable the verbose output in the current runtime (PR #47) +- One log entry (language target preemptive) was not show in logs when using explain=True (PR #47) +- Fix undesired exception (ValueError) on getitem of instance CharsetMatches (PR #52) + +### Changed +- Public function normalize default args values were not aligned with from_bytes (PR #53) + +### Added +- You may now use charset aliases in cp_isolation and cp_exclusion arguments (PR #47) + +## [2.0.0](https://github.com/Ousret/charset_normalizer/compare/1.4.1...2.0.0) (2021-07-02) +### Changed +- 4x to 5 times faster than the previous 1.4.0 release. At least 2x faster than Chardet. +- Accent has been made on UTF-8 detection, should perform rather instantaneous. +- The backward compatibility with Chardet has been greatly improved. The legacy detect function returns an identical charset name whenever possible. +- The detection mechanism has been slightly improved, now Turkish content is detected correctly (most of the time) +- The program has been rewritten to ease the readability and maintainability. (+Using static typing)+ +- utf_7 detection has been reinstated. + +### Removed +- This package no longer require anything when used with Python 3.5 (Dropped cached_property) +- Removed support for these languages: Catalan, Esperanto, Kazakh, Baque, Volapük, Azeri, Galician, Nynorsk, Macedonian, and Serbocroatian. +- The exception hook on UnicodeDecodeError has been removed. + +### Deprecated +- Methods coherence_non_latin, w_counter, chaos_secondary_pass of the class CharsetMatch are now deprecated and scheduled for removal in v3.0 + +### Fixed +- The CLI output used the relative path of the file(s). Should be absolute. + +## [1.4.1](https://github.com/Ousret/charset_normalizer/compare/1.4.0...1.4.1) (2021-05-28) +### Fixed +- Logger configuration/usage no longer conflict with others (PR #44) + +## [1.4.0](https://github.com/Ousret/charset_normalizer/compare/1.3.9...1.4.0) (2021-05-21) +### Removed +- Using standard logging instead of using the package loguru. +- Dropping nose test framework in favor of the maintained pytest. +- Choose to not use dragonmapper package to help with gibberish Chinese/CJK text. +- Require cached_property only for Python 3.5 due to constraint. Dropping for every other interpreter version. +- Stop support for UTF-7 that does not contain a SIG. +- Dropping PrettyTable, replaced with pure JSON output in CLI. + +### Fixed +- BOM marker in a CharsetNormalizerMatch instance could be False in rare cases even if obviously present. Due to the sub-match factoring process. +- Not searching properly for the BOM when trying utf32/16 parent codec. + +### Changed +- Improving the package final size by compressing frequencies.json. +- Huge improvement over the larges payload. + +### Added +- CLI now produces JSON consumable output. +- Return ASCII if given sequences fit. Given reasonable confidence. + +## [1.3.9](https://github.com/Ousret/charset_normalizer/compare/1.3.8...1.3.9) (2021-05-13) + +### Fixed +- In some very rare cases, you may end up getting encode/decode errors due to a bad bytes payload (PR #40) + +## [1.3.8](https://github.com/Ousret/charset_normalizer/compare/1.3.7...1.3.8) (2021-05-12) + +### Fixed +- Empty given payload for detection may cause an exception if trying to access the `alphabets` property. (PR #39) + +## [1.3.7](https://github.com/Ousret/charset_normalizer/compare/1.3.6...1.3.7) (2021-05-12) + +### Fixed +- The legacy detect function should return UTF-8-SIG if sig is present in the payload. (PR #38) + +## [1.3.6](https://github.com/Ousret/charset_normalizer/compare/1.3.5...1.3.6) (2021-02-09) + +### Changed +- Amend the previous release to allow prettytable 2.0 (PR #35) + +## [1.3.5](https://github.com/Ousret/charset_normalizer/compare/1.3.4...1.3.5) (2021-02-08) + +### Fixed +- Fix error while using the package with a python pre-release interpreter (PR #33) + +### Changed +- Dependencies refactoring, constraints revised. + +### Added +- Add python 3.9 and 3.10 to the supported interpreters + +MIT License + +Copyright (c) 2019 TAHRI Ahmed R. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/RECORD b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/RECORD new file mode 100644 index 0000000..d84885e --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/RECORD @@ -0,0 +1,36 @@ +../../../bin/normalizer,sha256=baNn3pMSI5JrNpsI5z4eWqv7jzYMMOmuMhQXpd0VfGw,279 +charset_normalizer-3.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +charset_normalizer-3.3.0.dist-info/LICENSE,sha256=6zGgxaT7Cbik4yBV0lweX5w1iidS_vPNcgIT0cz-4kE,1070 +charset_normalizer-3.3.0.dist-info/METADATA,sha256=dIp-XpvvXQKv1zMQcdlRqMsROXvtJ8Yw55TIaXGegNg,32868 +charset_normalizer-3.3.0.dist-info/RECORD,, +charset_normalizer-3.3.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer-3.3.0.dist-info/WHEEL,sha256=48wUIcZcdQ2pWN7qt0HP02Cvv6HIQZGsSgx3PsepNj8,152 +charset_normalizer-3.3.0.dist-info/entry_points.txt,sha256=ADSTKrkXZ3hhdOVFi6DcUEHQRS0xfxDIE_pEz4wLIXA,65 +charset_normalizer-3.3.0.dist-info/top_level.txt,sha256=7ASyzePr8_xuZWJsnqJjIBtyV8vhEo0wBCv1MPRRi3Q,19 +charset_normalizer/__init__.py,sha256=UzI3xC8PhmcLRMzSgPb6minTmRq0kWznnCBJ8ZCc2XI,1577 +charset_normalizer/__main__.py,sha256=JxY8bleaENOFlLRb9HfoeZCzAMnn2A1oGR5Xm2eyqg0,73 +charset_normalizer/__pycache__/__init__.cpython-311.pyc,, +charset_normalizer/__pycache__/__main__.cpython-311.pyc,, +charset_normalizer/__pycache__/api.cpython-311.pyc,, +charset_normalizer/__pycache__/cd.cpython-311.pyc,, +charset_normalizer/__pycache__/constant.cpython-311.pyc,, +charset_normalizer/__pycache__/legacy.cpython-311.pyc,, +charset_normalizer/__pycache__/md.cpython-311.pyc,, +charset_normalizer/__pycache__/models.cpython-311.pyc,, +charset_normalizer/__pycache__/utils.cpython-311.pyc,, +charset_normalizer/__pycache__/version.cpython-311.pyc,, +charset_normalizer/api.py,sha256=WOlWjy6wT8SeMYFpaGbXZFN1TMXa-s8vZYfkL4G29iQ,21097 +charset_normalizer/cd.py,sha256=xwZliZcTQFA3jU0c00PRiu9MNxXTFxQkFLWmMW24ZzI,12560 +charset_normalizer/cli/__init__.py,sha256=D5ERp8P62llm2FuoMzydZ7d9rs8cvvLXqE-1_6oViPc,100 +charset_normalizer/cli/__main__.py,sha256=2F-xURZJzo063Ye-2RLJ2wcmURpbKeAzKwpiws65dAs,9744 +charset_normalizer/cli/__pycache__/__init__.cpython-311.pyc,, +charset_normalizer/cli/__pycache__/__main__.cpython-311.pyc,, +charset_normalizer/constant.py,sha256=p0IsOVcEbPWYPOdWhnhRbjK1YVBy6fs05C5vKC-zoxU,40481 +charset_normalizer/legacy.py,sha256=T-QuVMsMeDiQEk8WSszMrzVJg_14AMeSkmHdRYhdl1k,2071 +charset_normalizer/md.cpython-311-x86_64-linux-gnu.so,sha256=Y7QSLD5QLoSFAWys0-tL7R6QB7oi5864zM6zr7RWek4,16064 +charset_normalizer/md.py,sha256=N7pMe_84czujAOG_3U5Zv42JkpIO40DHCzD0bf47Caw,18668 +charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so,sha256=zNh1fHrLP-mnh0zHeMdfNy7BDPZYpx63yXWBnJEVx00,252952 +charset_normalizer/models.py,sha256=tA2tf9rfRyFW9sfoMXWSjoW0-y6EdfdMogHuQBfbOHM,11487 +charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +charset_normalizer/utils.py,sha256=welXEWvrzpBaZY0yfzPeaqsZVAZQ7mDcfMu4noiCTTU,11231 +charset_normalizer/version.py,sha256=cadHi_iqsnEErna9xaToqabie92T0nTPMTCUQ3u7yLw,79 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/REQUESTED b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/REQUESTED new file mode 100644 index 0000000..e69de29 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/WHEEL b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/WHEEL new file mode 100644 index 0000000..6919a7b --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.41.2) +Root-Is-Purelib: false +Tag: cp311-cp311-manylinux_2_17_x86_64 +Tag: cp311-cp311-manylinux2014_x86_64 + diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/entry_points.txt b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/entry_points.txt new file mode 100644 index 0000000..65619e7 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +normalizer = charset_normalizer.cli:cli_detect diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/top_level.txt b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/top_level.txt new file mode 100644 index 0000000..66958f0 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer-3.3.0.dist-info/top_level.txt @@ -0,0 +1 @@ +charset_normalizer diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__init__.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__init__.py new file mode 100644 index 0000000..55991fc --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__init__.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +""" +Charset-Normalizer +~~~~~~~~~~~~~~ +The Real First Universal Charset Detector. +A library that helps you read text from an unknown charset encoding. +Motivated by chardet, This package is trying to resolve the issue by taking a new approach. +All IANA character set names for which the Python core library provides codecs are supported. + +Basic usage: + >>> from charset_normalizer import from_bytes + >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) + >>> best_guess = results.best() + >>> str(best_guess) + 'Bсеки човек има право на образование. Oбразованието!' + +Others methods and usages are available - see the full documentation +at . +:copyright: (c) 2021 by Ahmed TAHRI +:license: MIT, see LICENSE for more details. +""" +import logging + +from .api import from_bytes, from_fp, from_path, is_binary +from .legacy import detect +from .models import CharsetMatch, CharsetMatches +from .utils import set_logging_handler +from .version import VERSION, __version__ + +__all__ = ( + "from_fp", + "from_path", + "from_bytes", + "is_binary", + "detect", + "CharsetMatch", + "CharsetMatches", + "__version__", + "VERSION", + "set_logging_handler", +) + +# Attach a NullHandler to the top level logger by default +# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library + +logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__main__.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__main__.py new file mode 100644 index 0000000..beae2ef --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__main__.py @@ -0,0 +1,4 @@ +from .cli import cli_detect + +if __name__ == "__main__": + cli_detect() diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/__init__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c6b161868416fad5ff5a1a9345ea965d9a44d7b6 GIT binary patch literal 1869 zcmcH(J#QmLbk=t4c%6^C1R4<1Kyk69i}#WgAnS;fI}*jx#X(7+*k(1}9eejO`=Oax z2UDPM4L^aF>JYjnAf1R1gbqs9C=$_DNL1HFy6!68tnGa0B2h6OzkTn`yzlqs+v#Z? z!TSB^Jz6Uw^p7IOt1v=d{szd`$U!D@G$+S2Q*-i8f#v+XnfD83!JjZE{GwUZ5b!5h z$)7YQGrY*kzHaJ%#jIp>iB0*_=5&TnvKfEYob_*+w}392w{wVUkLSk59sQ|>&@=cC z*EjQH?CLj@d1K6Z3dplDfv(GgjodD(RpKXkg!G3l;eyJ=R>*zAyw54uzqq#aJ(uDg zN*LboxRCgh!0S;ifF6nBkEo=!40&B&!^~@Q!uwddL}Hh+NZ@`LV@`>KCH+j|4i9}y z0vreXL3j{gduSiizz!WR=+^bEP-Oy~LK3V+bAx#HRvxLXHny&vr9a zANQpjf`1{W7g2$lp69?-@RiyE6F3ub6onkzt?T*&B0L+%0(@-f7~|E|)nUM+D6QZk z%h>akSaxi+`;v;W0K^kBDe#9^&Z-L!245!6lb@1fJoqX(Nq$fSPL7kGlOvq`Iyg*@ zfOmqEUle_ke4lZC%x)e5^Ei24$J;lt2TzidcNgke{%Lg~mL2PZg<5UwO`8g7bz>@& zLnGJfidnt5A|$U~Ud!13x4XK&4dvzn`xL6=KqUfanD=2(NRN1ov>C;VP~c&2bYdvJ z6WXy)14*P820HZUeOJmzGz_EbNjGlS?a(*2W5KC3UN72eU2oW7)aPE;l?`0AYk2wI z@{($}HP?rZ-CNt-Y3dE;*)$Nefw!7_cQXebH6O0GcGt5W^HobhQ-h15uD?)Y+IpeJ zyH-ebH6O!%NJ|;siPCb0L`1r2*%MaV3t+@*T3Q4pFnP6HIyIWbEh237@;&J}olZC3ZhElNNoLFD5R{r4zA) zYz=LdMy?LcD@T+e!WbATcd2{?aZ;Y@#Bnx6W*hY z5n;f1KZbk?qr*MQX)yjS+RQV0H0T-dyctpUFs#&2P-)E?n+_cXNl}hfgbdHfWcUU?_x0AU$1GI387XCuZf1>4NW#j1m)0K_E%I4|H Q<^VNMQ8O8D{x-z)FG_KL!~g&Q literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/__main__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/__main__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2f71937320ce6d657d633e587c18e0c60ab50542 GIT binary patch literal 355 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 literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/cd.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/cd.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9058d1a835e2065805d466ae0075d129664ea9f GIT binary patch literal 16215 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 literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/legacy.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/legacy.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a1d8453c2f16ad652443502e247c57e12d015eb GIT binary patch literal 2788 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 A*8l(j literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/utils.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/__pycache__/utils.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c4b203f646ec79abf1799c5141c4afed6f9fd647 GIT binary patch literal 15559 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 literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/api.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/api.py new file mode 100644 index 0000000..0ba08e3 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/api.py @@ -0,0 +1,626 @@ +import logging +from os import PathLike +from typing import BinaryIO, List, Optional, Set, Union + +from .cd import ( + coherence_ratio, + encoding_languages, + mb_encoding_languages, + merge_coherence_ratios, +) +from .constant import IANA_SUPPORTED, TOO_BIG_SEQUENCE, TOO_SMALL_SEQUENCE, TRACE +from .md import mess_ratio +from .models import CharsetMatch, CharsetMatches +from .utils import ( + any_specified_encoding, + cut_sequence_chunks, + iana_name, + identify_sig_or_bom, + is_cp_similar, + is_multi_byte_encoding, + should_strip_sig_or_bom, +) + +# Will most likely be controversial +# logging.addLevelName(TRACE, "TRACE") +logger = logging.getLogger("charset_normalizer") +explain_handler = logging.StreamHandler() +explain_handler.setFormatter( + logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") +) + + +def from_bytes( + sequences: Union[bytes, bytearray], + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.2, + cp_isolation: Optional[List[str]] = None, + cp_exclusion: Optional[List[str]] = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Given a raw bytes sequence, return the best possibles charset usable to render str objects. + If there is no results, it is a strong indicator that the source is binary/not text. + By default, the process will extract 5 blocks of 512o each to assess the mess and coherence of a given sequence. + And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. + + The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page + but never take it for granted. Can improve the performance. + + You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that + purpose. + + This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. + By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' + toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. + Custom logging format and handler can be set manually. + """ + + if not isinstance(sequences, (bytearray, bytes)): + raise TypeError( + "Expected object of type bytes or bytearray, got: {0}".format( + type(sequences) + ) + ) + + if explain: + previous_logger_level: int = logger.level + logger.addHandler(explain_handler) + logger.setLevel(TRACE) + + length: int = len(sequences) + + if length == 0: + logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level or logging.WARNING) + return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) + + if cp_isolation is not None: + logger.log( + TRACE, + "cp_isolation is set. use this flag for debugging purpose. " + "limited list of encoding allowed : %s.", + ", ".join(cp_isolation), + ) + cp_isolation = [iana_name(cp, False) for cp in cp_isolation] + else: + cp_isolation = [] + + if cp_exclusion is not None: + logger.log( + TRACE, + "cp_exclusion is set. use this flag for debugging purpose. " + "limited list of encoding excluded : %s.", + ", ".join(cp_exclusion), + ) + cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] + else: + cp_exclusion = [] + + if length <= (chunk_size * steps): + logger.log( + TRACE, + "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", + steps, + chunk_size, + length, + ) + steps = 1 + chunk_size = length + + if steps > 1 and length / steps < chunk_size: + chunk_size = int(length / steps) + + is_too_small_sequence: bool = len(sequences) < TOO_SMALL_SEQUENCE + is_too_large_sequence: bool = len(sequences) >= TOO_BIG_SEQUENCE + + if is_too_small_sequence: + logger.log( + TRACE, + "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( + length + ), + ) + elif is_too_large_sequence: + logger.log( + TRACE, + "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( + length + ), + ) + + prioritized_encodings: List[str] = [] + + specified_encoding: Optional[str] = ( + any_specified_encoding(sequences) if preemptive_behaviour else None + ) + + if specified_encoding is not None: + prioritized_encodings.append(specified_encoding) + logger.log( + TRACE, + "Detected declarative mark in sequence. Priority +1 given for %s.", + specified_encoding, + ) + + tested: Set[str] = set() + tested_but_hard_failure: List[str] = [] + tested_but_soft_failure: List[str] = [] + + fallback_ascii: Optional[CharsetMatch] = None + fallback_u8: Optional[CharsetMatch] = None + fallback_specified: Optional[CharsetMatch] = None + + results: CharsetMatches = CharsetMatches() + + sig_encoding, sig_payload = identify_sig_or_bom(sequences) + + if sig_encoding is not None: + prioritized_encodings.append(sig_encoding) + logger.log( + TRACE, + "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", + len(sig_payload), + sig_encoding, + ) + + prioritized_encodings.append("ascii") + + if "utf_8" not in prioritized_encodings: + prioritized_encodings.append("utf_8") + + for encoding_iana in prioritized_encodings + IANA_SUPPORTED: + if cp_isolation and encoding_iana not in cp_isolation: + continue + + if cp_exclusion and encoding_iana in cp_exclusion: + continue + + if encoding_iana in tested: + continue + + tested.add(encoding_iana) + + decoded_payload: Optional[str] = None + bom_or_sig_available: bool = sig_encoding == encoding_iana + strip_sig_or_bom: bool = bom_or_sig_available and should_strip_sig_or_bom( + encoding_iana + ) + + if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", + encoding_iana, + ) + continue + if encoding_iana in {"utf_7"} and not bom_or_sig_available: + logger.log( + TRACE, + "Encoding %s won't be tested as-is because detection is unreliable without BOM/SIG.", + encoding_iana, + ) + continue + + try: + is_multi_byte_decoder: bool = is_multi_byte_encoding(encoding_iana) + except (ModuleNotFoundError, ImportError): + logger.log( + TRACE, + "Encoding %s does not provide an IncrementalDecoder", + encoding_iana, + ) + continue + + try: + if is_too_large_sequence and is_multi_byte_decoder is False: + str( + sequences[: int(50e4)] + if strip_sig_or_bom is False + else sequences[len(sig_payload) : int(50e4)], + encoding=encoding_iana, + ) + else: + decoded_payload = str( + sequences + if strip_sig_or_bom is False + else sequences[len(sig_payload) :], + encoding=encoding_iana, + ) + except (UnicodeDecodeError, LookupError) as e: + if not isinstance(e, LookupError): + logger.log( + TRACE, + "Code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + similar_soft_failure_test: bool = False + + for encoding_soft_failed in tested_but_soft_failure: + if is_cp_similar(encoding_iana, encoding_soft_failed): + similar_soft_failure_test = True + break + + if similar_soft_failure_test: + logger.log( + TRACE, + "%s is deemed too similar to code page %s and was consider unsuited already. Continuing!", + encoding_iana, + encoding_soft_failed, + ) + continue + + r_ = range( + 0 if not bom_or_sig_available else len(sig_payload), + length, + int(length / steps), + ) + + multi_byte_bonus: bool = ( + is_multi_byte_decoder + and decoded_payload is not None + and len(decoded_payload) < length + ) + + if multi_byte_bonus: + logger.log( + TRACE, + "Code page %s is a multi byte encoding table and it appear that at least one character " + "was encoded using n-bytes.", + encoding_iana, + ) + + max_chunk_gave_up: int = int(len(r_) / 4) + + max_chunk_gave_up = max(max_chunk_gave_up, 2) + early_stop_count: int = 0 + lazy_str_hard_failure = False + + md_chunks: List[str] = [] + md_ratios = [] + + try: + for chunk in cut_sequence_chunks( + sequences, + encoding_iana, + r_, + chunk_size, + bom_or_sig_available, + strip_sig_or_bom, + sig_payload, + is_multi_byte_decoder, + decoded_payload, + ): + md_chunks.append(chunk) + + md_ratios.append( + mess_ratio( + chunk, + threshold, + explain is True and 1 <= len(cp_isolation) <= 2, + ) + ) + + if md_ratios[-1] >= threshold: + early_stop_count += 1 + + if (early_stop_count >= max_chunk_gave_up) or ( + bom_or_sig_available and strip_sig_or_bom is False + ): + break + except ( + UnicodeDecodeError + ) as e: # Lazy str loading may have missed something there + logger.log( + TRACE, + "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + early_stop_count = max_chunk_gave_up + lazy_str_hard_failure = True + + # We might want to check the sequence again with the whole content + # Only if initial MD tests passes + if ( + not lazy_str_hard_failure + and is_too_large_sequence + and not is_multi_byte_decoder + ): + try: + sequences[int(50e3) :].decode(encoding_iana, errors="strict") + except UnicodeDecodeError as e: + logger.log( + TRACE, + "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", + encoding_iana, + str(e), + ) + tested_but_hard_failure.append(encoding_iana) + continue + + mean_mess_ratio: float = sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 + if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: + tested_but_soft_failure.append(encoding_iana) + logger.log( + TRACE, + "%s was excluded because of initial chaos probing. Gave up %i time(s). " + "Computed mean chaos is %f %%.", + encoding_iana, + early_stop_count, + round(mean_mess_ratio * 100, ndigits=3), + ) + # Preparing those fallbacks in case we got nothing. + if ( + enable_fallback + and encoding_iana in ["ascii", "utf_8", specified_encoding] + and not lazy_str_hard_failure + ): + fallback_entry = CharsetMatch( + sequences, encoding_iana, threshold, False, [], decoded_payload + ) + if encoding_iana == specified_encoding: + fallback_specified = fallback_entry + elif encoding_iana == "ascii": + fallback_ascii = fallback_entry + else: + fallback_u8 = fallback_entry + continue + + logger.log( + TRACE, + "%s passed initial chaos probing. Mean measured chaos is %f %%", + encoding_iana, + round(mean_mess_ratio * 100, ndigits=3), + ) + + if not is_multi_byte_decoder: + target_languages: List[str] = encoding_languages(encoding_iana) + else: + target_languages = mb_encoding_languages(encoding_iana) + + if target_languages: + logger.log( + TRACE, + "{} should target any language(s) of {}".format( + encoding_iana, str(target_languages) + ), + ) + + cd_ratios = [] + + # We shall skip the CD when its about ASCII + # Most of the time its not relevant to run "language-detection" on it. + if encoding_iana != "ascii": + for chunk in md_chunks: + chunk_languages = coherence_ratio( + chunk, + language_threshold, + ",".join(target_languages) if target_languages else None, + ) + + cd_ratios.append(chunk_languages) + + cd_ratios_merged = merge_coherence_ratios(cd_ratios) + + if cd_ratios_merged: + logger.log( + TRACE, + "We detected language {} using {}".format( + cd_ratios_merged, encoding_iana + ), + ) + + results.append( + CharsetMatch( + sequences, + encoding_iana, + mean_mess_ratio, + bom_or_sig_available, + cd_ratios_merged, + decoded_payload, + ) + ) + + if ( + encoding_iana in [specified_encoding, "ascii", "utf_8"] + and mean_mess_ratio < 0.1 + ): + logger.debug( + "Encoding detection: %s is most likely the one.", encoding_iana + ) + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([results[encoding_iana]]) + + if encoding_iana == sig_encoding: + logger.debug( + "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " + "the beginning of the sequence.", + encoding_iana, + ) + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + return CharsetMatches([results[encoding_iana]]) + + if len(results) == 0: + if fallback_u8 or fallback_ascii or fallback_specified: + logger.log( + TRACE, + "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", + ) + + if fallback_specified: + logger.debug( + "Encoding detection: %s will be used as a fallback match", + fallback_specified.encoding, + ) + results.append(fallback_specified) + elif ( + (fallback_u8 and fallback_ascii is None) + or ( + fallback_u8 + and fallback_ascii + and fallback_u8.fingerprint != fallback_ascii.fingerprint + ) + or (fallback_u8 is not None) + ): + logger.debug("Encoding detection: utf_8 will be used as a fallback match") + results.append(fallback_u8) + elif fallback_ascii: + logger.debug("Encoding detection: ascii will be used as a fallback match") + results.append(fallback_ascii) + + if results: + logger.debug( + "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", + results.best().encoding, # type: ignore + len(results) - 1, + ) + else: + logger.debug("Encoding detection: Unable to determine any suitable charset.") + + if explain: + logger.removeHandler(explain_handler) + logger.setLevel(previous_logger_level) + + return results + + +def from_fp( + fp: BinaryIO, + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: Optional[List[str]] = None, + cp_exclusion: Optional[List[str]] = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but using a file pointer that is already ready. + Will not close the file pointer. + """ + return from_bytes( + fp.read(), + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def from_path( + path: Union[str, bytes, PathLike], # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: Optional[List[str]] = None, + cp_exclusion: Optional[List[str]] = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = True, +) -> CharsetMatches: + """ + Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. + Can raise IOError. + """ + with open(path, "rb") as fp: + return from_fp( + fp, + steps, + chunk_size, + threshold, + cp_isolation, + cp_exclusion, + preemptive_behaviour, + explain, + language_threshold, + enable_fallback, + ) + + +def is_binary( + fp_or_path_or_payload: Union[PathLike, str, BinaryIO, bytes], # type: ignore[type-arg] + steps: int = 5, + chunk_size: int = 512, + threshold: float = 0.20, + cp_isolation: Optional[List[str]] = None, + cp_exclusion: Optional[List[str]] = None, + preemptive_behaviour: bool = True, + explain: bool = False, + language_threshold: float = 0.1, + enable_fallback: bool = False, +) -> bool: + """ + Detect if the given input (file, bytes, or path) points to a binary file. aka. not a string. + Based on the same main heuristic algorithms and default kwargs at the sole exception that fallbacks match + are disabled to be stricter around ASCII-compatible but unlikely to be a string. + """ + if isinstance(fp_or_path_or_payload, (str, PathLike)): + guesses = from_path( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + elif isinstance( + fp_or_path_or_payload, + ( + bytes, + bytearray, + ), + ): + guesses = from_bytes( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + else: + guesses = from_fp( + fp_or_path_or_payload, + steps=steps, + chunk_size=chunk_size, + threshold=threshold, + cp_isolation=cp_isolation, + cp_exclusion=cp_exclusion, + preemptive_behaviour=preemptive_behaviour, + explain=explain, + language_threshold=language_threshold, + enable_fallback=enable_fallback, + ) + + return not guesses diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cd.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cd.py new file mode 100644 index 0000000..4ea6760 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cd.py @@ -0,0 +1,395 @@ +import importlib +from codecs import IncrementalDecoder +from collections import Counter +from functools import lru_cache +from typing import Counter as TypeCounter, Dict, List, Optional, Tuple + +from .constant import ( + FREQUENCIES, + KO_NAMES, + LANGUAGE_SUPPORTED_COUNT, + TOO_SMALL_SEQUENCE, + ZH_NAMES, +) +from .md import is_suspiciously_successive_range +from .models import CoherenceMatches +from .utils import ( + is_accentuated, + is_latin, + is_multi_byte_encoding, + is_unicode_range_secondary, + unicode_range, +) + + +def encoding_unicode_range(iana_name: str) -> List[str]: + """ + Return associated unicode ranges in a single byte code page. + """ + if is_multi_byte_encoding(iana_name): + raise IOError("Function not supported on multi-byte code page") + + decoder = importlib.import_module( + "encodings.{}".format(iana_name) + ).IncrementalDecoder + + p: IncrementalDecoder = decoder(errors="ignore") + seen_ranges: Dict[str, int] = {} + character_count: int = 0 + + for i in range(0x40, 0xFF): + chunk: str = p.decode(bytes([i])) + + if chunk: + character_range: Optional[str] = unicode_range(chunk) + + if character_range is None: + continue + + if is_unicode_range_secondary(character_range) is False: + if character_range not in seen_ranges: + seen_ranges[character_range] = 0 + seen_ranges[character_range] += 1 + character_count += 1 + + return sorted( + [ + character_range + for character_range in seen_ranges + if seen_ranges[character_range] / character_count >= 0.15 + ] + ) + + +def unicode_range_languages(primary_range: str) -> List[str]: + """ + Return inferred languages used with a unicode range. + """ + languages: List[str] = [] + + for language, characters in FREQUENCIES.items(): + for character in characters: + if unicode_range(character) == primary_range: + languages.append(language) + break + + return languages + + +@lru_cache() +def encoding_languages(iana_name: str) -> List[str]: + """ + Single-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + unicode_ranges: List[str] = encoding_unicode_range(iana_name) + primary_range: Optional[str] = None + + for specified_range in unicode_ranges: + if "Latin" not in specified_range: + primary_range = specified_range + break + + if primary_range is None: + return ["Latin Based"] + + return unicode_range_languages(primary_range) + + +@lru_cache() +def mb_encoding_languages(iana_name: str) -> List[str]: + """ + Multi-byte encoding language association. Some code page are heavily linked to particular language(s). + This function does the correspondence. + """ + if ( + iana_name.startswith("shift_") + or iana_name.startswith("iso2022_jp") + or iana_name.startswith("euc_j") + or iana_name == "cp932" + ): + return ["Japanese"] + if iana_name.startswith("gb") or iana_name in ZH_NAMES: + return ["Chinese"] + if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: + return ["Korean"] + + return [] + + +@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) +def get_target_features(language: str) -> Tuple[bool, bool]: + """ + Determine main aspects from a supported language if it contains accents and if is pure Latin. + """ + target_have_accents: bool = False + target_pure_latin: bool = True + + for character in FREQUENCIES[language]: + if not target_have_accents and is_accentuated(character): + target_have_accents = True + if target_pure_latin and is_latin(character) is False: + target_pure_latin = False + + return target_have_accents, target_pure_latin + + +def alphabet_languages( + characters: List[str], ignore_non_latin: bool = False +) -> List[str]: + """ + Return associated languages associated to given characters. + """ + languages: List[Tuple[str, float]] = [] + + source_have_accents = any(is_accentuated(character) for character in characters) + + for language, language_characters in FREQUENCIES.items(): + target_have_accents, target_pure_latin = get_target_features(language) + + if ignore_non_latin and target_pure_latin is False: + continue + + if target_have_accents is False and source_have_accents: + continue + + character_count: int = len(language_characters) + + character_match_count: int = len( + [c for c in language_characters if c in characters] + ) + + ratio: float = character_match_count / character_count + + if ratio >= 0.2: + languages.append((language, ratio)) + + languages = sorted(languages, key=lambda x: x[1], reverse=True) + + return [compatible_language[0] for compatible_language in languages] + + +def characters_popularity_compare( + language: str, ordered_characters: List[str] +) -> float: + """ + Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. + The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). + Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) + """ + if language not in FREQUENCIES: + raise ValueError("{} not available".format(language)) + + character_approved_count: int = 0 + FREQUENCIES_language_set = set(FREQUENCIES[language]) + + ordered_characters_count: int = len(ordered_characters) + target_language_characters_count: int = len(FREQUENCIES[language]) + + large_alphabet: bool = target_language_characters_count > 26 + + for character, character_rank in zip( + ordered_characters, range(0, ordered_characters_count) + ): + if character not in FREQUENCIES_language_set: + continue + + character_rank_in_language: int = FREQUENCIES[language].index(character) + expected_projection_ratio: float = ( + target_language_characters_count / ordered_characters_count + ) + character_rank_projection: int = int(character_rank * expected_projection_ratio) + + if ( + large_alphabet is False + and abs(character_rank_projection - character_rank_in_language) > 4 + ): + continue + + if ( + large_alphabet is True + and abs(character_rank_projection - character_rank_in_language) + < target_language_characters_count / 3 + ): + character_approved_count += 1 + continue + + characters_before_source: List[str] = FREQUENCIES[language][ + 0:character_rank_in_language + ] + characters_after_source: List[str] = FREQUENCIES[language][ + character_rank_in_language: + ] + characters_before: List[str] = ordered_characters[0:character_rank] + characters_after: List[str] = ordered_characters[character_rank:] + + before_match_count: int = len( + set(characters_before) & set(characters_before_source) + ) + + after_match_count: int = len( + set(characters_after) & set(characters_after_source) + ) + + if len(characters_before_source) == 0 and before_match_count <= 4: + character_approved_count += 1 + continue + + if len(characters_after_source) == 0 and after_match_count <= 4: + character_approved_count += 1 + continue + + if ( + before_match_count / len(characters_before_source) >= 0.4 + or after_match_count / len(characters_after_source) >= 0.4 + ): + character_approved_count += 1 + continue + + return character_approved_count / len(ordered_characters) + + +def alpha_unicode_split(decoded_sequence: str) -> List[str]: + """ + Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. + Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; + One containing the latin letters and the other hebrew. + """ + layers: Dict[str, str] = {} + + for character in decoded_sequence: + if character.isalpha() is False: + continue + + character_range: Optional[str] = unicode_range(character) + + if character_range is None: + continue + + layer_target_range: Optional[str] = None + + for discovered_range in layers: + if ( + is_suspiciously_successive_range(discovered_range, character_range) + is False + ): + layer_target_range = discovered_range + break + + if layer_target_range is None: + layer_target_range = character_range + + if layer_target_range not in layers: + layers[layer_target_range] = character.lower() + continue + + layers[layer_target_range] += character.lower() + + return list(layers.values()) + + +def merge_coherence_ratios(results: List[CoherenceMatches]) -> CoherenceMatches: + """ + This function merge results previously given by the function coherence_ratio. + The return type is the same as coherence_ratio. + """ + per_language_ratios: Dict[str, List[float]] = {} + for result in results: + for sub_result in result: + language, ratio = sub_result + if language not in per_language_ratios: + per_language_ratios[language] = [ratio] + continue + per_language_ratios[language].append(ratio) + + merge = [ + ( + language, + round( + sum(per_language_ratios[language]) / len(per_language_ratios[language]), + 4, + ), + ) + for language in per_language_ratios + ] + + return sorted(merge, key=lambda x: x[1], reverse=True) + + +def filter_alt_coherence_matches(results: CoherenceMatches) -> CoherenceMatches: + """ + We shall NOT return "English—" in CoherenceMatches because it is an alternative + of "English". This function only keeps the best match and remove the em-dash in it. + """ + index_results: Dict[str, List[float]] = dict() + + for result in results: + language, ratio = result + no_em_name: str = language.replace("—", "") + + if no_em_name not in index_results: + index_results[no_em_name] = [] + + index_results[no_em_name].append(ratio) + + if any(len(index_results[e]) > 1 for e in index_results): + filtered_results: CoherenceMatches = [] + + for language in index_results: + filtered_results.append((language, max(index_results[language]))) + + return filtered_results + + return results + + +@lru_cache(maxsize=2048) +def coherence_ratio( + decoded_sequence: str, threshold: float = 0.1, lg_inclusion: Optional[str] = None +) -> CoherenceMatches: + """ + Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. + A layer = Character extraction by alphabets/ranges. + """ + + results: List[Tuple[str, float]] = [] + ignore_non_latin: bool = False + + sufficient_match_count: int = 0 + + lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] + if "Latin Based" in lg_inclusion_list: + ignore_non_latin = True + lg_inclusion_list.remove("Latin Based") + + for layer in alpha_unicode_split(decoded_sequence): + sequence_frequencies: TypeCounter[str] = Counter(layer) + most_common = sequence_frequencies.most_common() + + character_count: int = sum(o for c, o in most_common) + + if character_count <= TOO_SMALL_SEQUENCE: + continue + + popular_character_ordered: List[str] = [c for c, o in most_common] + + for language in lg_inclusion_list or alphabet_languages( + popular_character_ordered, ignore_non_latin + ): + ratio: float = characters_popularity_compare( + language, popular_character_ordered + ) + + if ratio < threshold: + continue + elif ratio >= 0.8: + sufficient_match_count += 1 + + results.append((language, round(ratio, 4))) + + if sufficient_match_count >= 3: + break + + return sorted( + filter_alt_coherence_matches(results), key=lambda x: x[1], reverse=True + ) diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__init__.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__init__.py new file mode 100644 index 0000000..d95fedf --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__init__.py @@ -0,0 +1,6 @@ +from .__main__ import cli_detect, query_yes_no + +__all__ = ( + "cli_detect", + "query_yes_no", +) diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__main__.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__main__.py new file mode 100644 index 0000000..f4bcbaa --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__main__.py @@ -0,0 +1,296 @@ +import argparse +import sys +from json import dumps +from os.path import abspath, basename, dirname, join, realpath +from platform import python_version +from typing import List, Optional +from unicodedata import unidata_version + +import charset_normalizer.md as md_module +from charset_normalizer import from_fp +from charset_normalizer.models import CliDetectionResult +from charset_normalizer.version import __version__ + + +def query_yes_no(question: str, default: str = "yes") -> bool: + """Ask a yes/no question via input() and return their answer. + + "question" is a string that is presented to the user. + "default" is the presumed answer if the user just hits . + It must be "yes" (the default), "no" or None (meaning + an answer is required of the user). + + The "answer" return value is True for "yes" or False for "no". + + Credit goes to (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input + """ + valid = {"yes": True, "y": True, "ye": True, "no": False, "n": False} + if default is None: + prompt = " [y/n] " + elif default == "yes": + prompt = " [Y/n] " + elif default == "no": + prompt = " [y/N] " + else: + raise ValueError("invalid default answer: '%s'" % default) + + while True: + sys.stdout.write(question + prompt) + choice = input().lower() + if default is not None and choice == "": + return valid[default] + elif choice in valid: + return valid[choice] + else: + sys.stdout.write("Please respond with 'yes' or 'no' " "(or 'y' or 'n').\n") + + +def cli_detect(argv: Optional[List[str]] = None) -> int: + """ + CLI assistant using ARGV and ArgumentParser + :param argv: + :return: 0 if everything is fine, anything else equal trouble + """ + parser = argparse.ArgumentParser( + description="The Real First Universal Charset Detector. " + "Discover originating encoding used on text file. " + "Normalize text to unicode." + ) + + parser.add_argument( + "files", type=argparse.FileType("rb"), nargs="+", help="File(s) to be analysed" + ) + parser.add_argument( + "-v", + "--verbose", + action="store_true", + default=False, + dest="verbose", + help="Display complementary information about file if any. " + "Stdout will contain logs about the detection process.", + ) + parser.add_argument( + "-a", + "--with-alternative", + action="store_true", + default=False, + dest="alternatives", + help="Output complementary possibilities if any. Top-level JSON WILL be a list.", + ) + parser.add_argument( + "-n", + "--normalize", + action="store_true", + default=False, + dest="normalize", + help="Permit to normalize input file. If not set, program does not write anything.", + ) + parser.add_argument( + "-m", + "--minimal", + action="store_true", + default=False, + dest="minimal", + help="Only output the charset detected to STDOUT. Disabling JSON output.", + ) + parser.add_argument( + "-r", + "--replace", + action="store_true", + default=False, + dest="replace", + help="Replace file when trying to normalize it instead of creating a new one.", + ) + parser.add_argument( + "-f", + "--force", + action="store_true", + default=False, + dest="force", + help="Replace file without asking if you are sure, use this flag with caution.", + ) + parser.add_argument( + "-t", + "--threshold", + action="store", + default=0.2, + type=float, + dest="threshold", + help="Define a custom maximum amount of chaos allowed in decoded content. 0. <= chaos <= 1.", + ) + parser.add_argument( + "--version", + action="version", + version="Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}".format( + __version__, + python_version(), + unidata_version, + "OFF" if md_module.__file__.lower().endswith(".py") else "ON", + ), + help="Show version information and exit.", + ) + + args = parser.parse_args(argv) + + if args.replace is True and args.normalize is False: + print("Use --replace in addition of --normalize only.", file=sys.stderr) + return 1 + + if args.force is True and args.replace is False: + print("Use --force in addition of --replace only.", file=sys.stderr) + return 1 + + if args.threshold < 0.0 or args.threshold > 1.0: + print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) + return 1 + + x_ = [] + + for my_file in args.files: + matches = from_fp(my_file, threshold=args.threshold, explain=args.verbose) + + best_guess = matches.best() + + if best_guess is None: + print( + 'Unable to identify originating encoding for "{}". {}'.format( + my_file.name, + "Maybe try increasing maximum amount of chaos." + if args.threshold < 1.0 + else "", + ), + file=sys.stderr, + ) + x_.append( + CliDetectionResult( + abspath(my_file.name), + None, + [], + [], + "Unknown", + [], + False, + 1.0, + 0.0, + None, + True, + ) + ) + else: + x_.append( + CliDetectionResult( + abspath(my_file.name), + best_guess.encoding, + best_guess.encoding_aliases, + [ + cp + for cp in best_guess.could_be_from_charset + if cp != best_guess.encoding + ], + best_guess.language, + best_guess.alphabets, + best_guess.bom, + best_guess.percent_chaos, + best_guess.percent_coherence, + None, + True, + ) + ) + + if len(matches) > 1 and args.alternatives: + for el in matches: + if el != best_guess: + x_.append( + CliDetectionResult( + abspath(my_file.name), + el.encoding, + el.encoding_aliases, + [ + cp + for cp in el.could_be_from_charset + if cp != el.encoding + ], + el.language, + el.alphabets, + el.bom, + el.percent_chaos, + el.percent_coherence, + None, + False, + ) + ) + + if args.normalize is True: + if best_guess.encoding.startswith("utf") is True: + print( + '"{}" file does not need to be normalized, as it already came from unicode.'.format( + my_file.name + ), + file=sys.stderr, + ) + if my_file.closed is False: + my_file.close() + continue + + dir_path = dirname(realpath(my_file.name)) + file_name = basename(realpath(my_file.name)) + + o_: List[str] = file_name.split(".") + + if args.replace is False: + o_.insert(-1, best_guess.encoding) + if my_file.closed is False: + my_file.close() + elif ( + args.force is False + and query_yes_no( + 'Are you sure to normalize "{}" by replacing it ?'.format( + my_file.name + ), + "no", + ) + is False + ): + if my_file.closed is False: + my_file.close() + continue + + try: + x_[0].unicode_path = join(dir_path, ".".join(o_)) + + with open(x_[0].unicode_path, "w", encoding="utf-8") as fp: + fp.write(str(best_guess)) + except IOError as e: + print(str(e), file=sys.stderr) + if my_file.closed is False: + my_file.close() + return 2 + + if my_file.closed is False: + my_file.close() + + if args.minimal is False: + print( + dumps( + [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, + ensure_ascii=True, + indent=4, + ) + ) + else: + for my_file in args.files: + print( + ", ".join( + [ + el.encoding or "undefined" + for el in x_ + if el.path == abspath(my_file.name) + ] + ) + ) + + return 0 + + +if __name__ == "__main__": + cli_detect() diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4b65e299fd72df6789e1870551bc63082391799d GIT binary patch literal 327 zcmZuty-veG48BVuH7fK47@5e>oGMntBe1Y#v5v$v2bW9mT_c5wx8M;F8*jnNh_W)V zRqEEMjzl+X%l0RI{(W04=7Qz(;~XoFKNC1g^q1_;IC&M7sH7E*EMyZEkz`cFRdg$| z_*XI^i^h3r4OAGg4CCq325Eo+J-GHJOU4wS(Z&H#%xp^7jWYmkEx^0jF%)}Jb=#m? zmzsLCR(sV^`@rqIx+jB#?iiOmO7-Y^WzC)HhETWeGGDEfHvyNOE+6$8y(()>9s{pH zjke|)Nlk?S#+d++cf&rtYT9aJ@tUSjOqcizcH3A=`7QFV|7@GYC(+AnQc9V806d0X AhyVZp literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..026ea3e775ebabf888d7833c246916eaa6f969ff GIT binary patch literal 11724 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", + "=", + ":", + "/", + "&", + ";", + "{", + "}", + "[", + "]", + ",", + "|", + '"', + "-", +} + + +KO_NAMES: Set[str] = {"johab", "cp949", "euc_kr"} +ZH_NAMES: Set[str] = {"big5", "cp950", "big5hkscs", "hz"} + +# Logging LEVEL below DEBUG +TRACE: int = 5 + + +# Language label that contain the em dash "—" +# character are to be considered alternative seq to origin +FREQUENCIES: Dict[str, List[str]] = { + "English": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "u", + "m", + "f", + "p", + "g", + "w", + "y", + "b", + "v", + "k", + "x", + "j", + "z", + "q", + ], + "English—": [ + "e", + "a", + "t", + "i", + "o", + "n", + "s", + "r", + "h", + "l", + "d", + "c", + "m", + "u", + "f", + "p", + "g", + "w", + "b", + "y", + "v", + "k", + "j", + "x", + "z", + "q", + ], + "German": [ + "e", + "n", + "i", + "r", + "s", + "t", + "a", + "d", + "h", + "u", + "l", + "g", + "o", + "c", + "m", + "b", + "f", + "k", + "w", + "z", + "p", + "v", + "ü", + "ä", + "ö", + "j", + ], + "French": [ + "e", + "a", + "s", + "n", + "i", + "t", + "r", + "l", + "u", + "o", + "d", + "c", + "p", + "m", + "é", + "v", + "g", + "f", + "b", + "h", + "q", + "à", + "x", + "è", + "y", + "j", + ], + "Dutch": [ + "e", + "n", + "a", + "i", + "r", + "t", + "o", + "d", + "s", + "l", + "g", + "h", + "v", + "m", + "u", + "k", + "c", + "p", + "b", + "w", + "j", + "z", + "f", + "y", + "x", + "ë", + ], + "Italian": [ + "e", + "i", + "a", + "o", + "n", + "l", + "t", + "r", + "s", + "c", + "d", + "u", + "p", + "m", + "g", + "v", + "f", + "b", + "z", + "h", + "q", + "è", + "à", + "k", + "y", + "ò", + ], + "Polish": [ + "a", + "i", + "o", + "e", + "n", + "r", + "z", + "w", + "s", + "c", + "t", + "k", + "y", + "d", + "p", + "m", + "u", + "l", + "j", + "ł", + "g", + "b", + "h", + "ą", + "ę", + "ó", + ], + "Spanish": [ + "e", + "a", + "o", + "n", + "s", + "r", + "i", + "l", + "d", + "t", + "c", + "u", + "m", + "p", + "b", + "g", + "v", + "f", + "y", + "ó", + "h", + "q", + "í", + "j", + "z", + "á", + ], + "Russian": [ + "о", + "а", + "е", + "и", + "н", + "с", + "т", + "р", + "в", + "л", + "к", + "м", + "д", + "п", + "у", + "г", + "я", + "ы", + "з", + "б", + "й", + "ь", + "ч", + "х", + "ж", + "ц", + ], + # Jap-Kanji + "Japanese": [ + "人", + "一", + "大", + "亅", + "丁", + "丨", + "竹", + "笑", + "口", + "日", + "今", + "二", + "彳", + "行", + "十", + "土", + "丶", + "寸", + "寺", + "時", + "乙", + "丿", + "乂", + "气", + "気", + "冂", + "巾", + "亠", + "市", + "目", + "儿", + "見", + "八", + "小", + "凵", + "県", + "月", + "彐", + "門", + "間", + "木", + "東", + "山", + "出", + "本", + "中", + "刀", + "分", + "耳", + "又", + "取", + "最", + "言", + "田", + "心", + "思", + "刂", + "前", + "京", + "尹", + "事", + "生", + "厶", + "云", + "会", + "未", + "来", + "白", + "冫", + "楽", + "灬", + "馬", + "尸", + "尺", + "駅", + "明", + "耂", + "者", + "了", + "阝", + "都", + "高", + "卜", + "占", + "厂", + "广", + "店", + "子", + "申", + "奄", + "亻", + "俺", + "上", + "方", + "冖", + "学", + "衣", + "艮", + "食", + "自", + ], + # Jap-Katakana + "Japanese—": [ + "ー", + "ン", + "ス", + "・", + "ル", + "ト", + "リ", + "イ", + "ア", + "ラ", + "ッ", + "ク", + "ド", + "シ", + "レ", + "ジ", + "タ", + "フ", + "ロ", + "カ", + "テ", + "マ", + "ィ", + "グ", + "バ", + "ム", + "プ", + "オ", + "コ", + "デ", + "ニ", + "ウ", + "メ", + "サ", + "ビ", + "ナ", + "ブ", + "ャ", + "エ", + "ュ", + "チ", + "キ", + "ズ", + "ダ", + "パ", + "ミ", + "ェ", + "ョ", + "ハ", + "セ", + "ベ", + "ガ", + "モ", + "ツ", + "ネ", + "ボ", + "ソ", + "ノ", + "ァ", + "ヴ", + "ワ", + "ポ", + "ペ", + "ピ", + "ケ", + "ゴ", + "ギ", + "ザ", + "ホ", + "ゲ", + "ォ", + "ヤ", + "ヒ", + "ユ", + "ヨ", + "ヘ", + "ゼ", + "ヌ", + "ゥ", + "ゾ", + "ヶ", + "ヂ", + "ヲ", + "ヅ", + "ヵ", + "ヱ", + "ヰ", + "ヮ", + "ヽ", + "゠", + "ヾ", + "ヷ", + "ヿ", + "ヸ", + "ヹ", + "ヺ", + ], + # Jap-Hiragana + "Japanese——": [ + "の", + "に", + "る", + "た", + "と", + "は", + "し", + "い", + "を", + "で", + "て", + "が", + "な", + "れ", + "か", + "ら", + "さ", + "っ", + "り", + "す", + "あ", + "も", + "こ", + "ま", + "う", + "く", + "よ", + "き", + "ん", + "め", + "お", + "け", + "そ", + "つ", + "だ", + "や", + "え", + "ど", + "わ", + "ち", + "み", + "せ", + "じ", + "ば", + "へ", + "び", + "ず", + "ろ", + "ほ", + "げ", + "む", + "べ", + "ひ", + "ょ", + "ゆ", + "ぶ", + "ご", + "ゃ", + "ね", + "ふ", + "ぐ", + "ぎ", + "ぼ", + "ゅ", + "づ", + "ざ", + "ぞ", + "ぬ", + "ぜ", + "ぱ", + "ぽ", + "ぷ", + "ぴ", + "ぃ", + "ぁ", + "ぇ", + "ぺ", + "ゞ", + "ぢ", + "ぉ", + "ぅ", + "ゐ", + "ゝ", + "ゑ", + "゛", + "゜", + "ゎ", + "ゔ", + "゚", + "ゟ", + "゙", + "ゕ", + "ゖ", + ], + "Portuguese": [ + "a", + "e", + "o", + "s", + "i", + "r", + "d", + "n", + "t", + "m", + "u", + "c", + "l", + "p", + "g", + "v", + "b", + "f", + "h", + "ã", + "q", + "é", + "ç", + "á", + "z", + "í", + ], + "Swedish": [ + "e", + "a", + "n", + "r", + "t", + "s", + "i", + "l", + "d", + "o", + "m", + "k", + "g", + "v", + "h", + "f", + "u", + "p", + "ä", + "c", + "b", + "ö", + "å", + "y", + "j", + "x", + ], + "Chinese": [ + "的", + "一", + "是", + "不", + "了", + "在", + "人", + "有", + "我", + "他", + "这", + "个", + "们", + "中", + "来", + "上", + "大", + "为", + "和", + "国", + "地", + "到", + "以", + "说", + "时", + "要", + "就", + "出", + "会", + "可", + "也", + "你", + "对", + "生", + "能", + "而", + "子", + "那", + "得", + "于", + "着", + "下", + "自", + "之", + "年", + "过", + "发", + "后", + "作", + "里", + "用", + "道", + "行", + "所", + "然", + "家", + "种", + "事", + "成", + "方", + "多", + "经", + "么", + "去", + "法", + "学", + "如", + "都", + "同", + "现", + "当", + "没", + "动", + "面", + "起", + "看", + "定", + "天", + "分", + "还", + "进", + "好", + "小", + "部", + "其", + "些", + "主", + "样", + "理", + "心", + "她", + "本", + "前", + "开", + "但", + "因", + "只", + "从", + "想", + "实", + ], + "Ukrainian": [ + "о", + "а", + "н", + "і", + "и", + "р", + "в", + "т", + "е", + "с", + "к", + "л", + "у", + "д", + "м", + "п", + "з", + "я", + "ь", + "б", + "г", + "й", + "ч", + "х", + "ц", + "ї", + ], + "Norwegian": [ + "e", + "r", + "n", + "t", + "a", + "s", + "i", + "o", + "l", + "d", + "g", + "k", + "m", + "v", + "f", + "p", + "u", + "b", + "h", + "å", + "y", + "j", + "ø", + "c", + "æ", + "w", + ], + "Finnish": [ + "a", + "i", + "n", + "t", + "e", + "s", + "l", + "o", + "u", + "k", + "ä", + "m", + "r", + "v", + "j", + "h", + "p", + "y", + "d", + "ö", + "g", + "c", + "b", + "f", + "w", + "z", + ], + "Vietnamese": [ + "n", + "h", + "t", + "i", + "c", + "g", + "a", + "o", + "u", + "m", + "l", + "r", + "à", + "đ", + "s", + "e", + "v", + "p", + "b", + "y", + "ư", + "d", + "á", + "k", + "ộ", + "ế", + ], + "Czech": [ + "o", + "e", + "a", + "n", + "t", + "s", + "i", + "l", + "v", + "r", + "k", + "d", + "u", + "m", + "p", + "í", + "c", + "h", + "z", + "á", + "y", + "j", + "b", + "ě", + "é", + "ř", + ], + "Hungarian": [ + "e", + "a", + "t", + "l", + "s", + "n", + "k", + "r", + "i", + "o", + "z", + "á", + "é", + "g", + "m", + "b", + "y", + "v", + "d", + "h", + "u", + "p", + "j", + "ö", + "f", + "c", + ], + "Korean": [ + "이", + "다", + "에", + "의", + "는", + "로", + "하", + "을", + "가", + "고", + "지", + "서", + "한", + "은", + "기", + "으", + "년", + "대", + "사", + "시", + "를", + "리", + "도", + "인", + "스", + "일", + ], + "Indonesian": [ + "a", + "n", + "e", + "i", + "r", + "t", + "u", + "s", + "d", + "k", + "m", + "l", + "g", + "p", + "b", + "o", + "h", + "y", + "j", + "c", + "w", + "f", + "v", + "z", + "x", + "q", + ], + "Turkish": [ + "a", + "e", + "i", + "n", + "r", + "l", + "ı", + "k", + "d", + "t", + "s", + "m", + "y", + "u", + "o", + "b", + "ü", + "ş", + "v", + "g", + "z", + "h", + "c", + "p", + "ç", + "ğ", + ], + "Romanian": [ + "e", + "i", + "a", + "r", + "n", + "t", + "u", + "l", + "o", + "c", + "s", + "d", + "p", + "m", + "ă", + "f", + "v", + "î", + "g", + "b", + "ș", + "ț", + "z", + "h", + "â", + "j", + ], + "Farsi": [ + "ا", + "ی", + "ر", + "د", + "ن", + "ه", + "و", + "م", + "ت", + "ب", + "س", + "ل", + "ک", + "ش", + "ز", + "ف", + "گ", + "ع", + "خ", + "ق", + "ج", + "آ", + "پ", + "ح", + "ط", + "ص", + ], + "Arabic": [ + "ا", + "ل", + "ي", + "م", + "و", + "ن", + "ر", + "ت", + "ب", + "ة", + "ع", + "د", + "س", + "ف", + "ه", + "ك", + "ق", + "أ", + "ح", + "ج", + "ش", + "ط", + "ص", + "ى", + "خ", + "إ", + ], + "Danish": [ + "e", + "r", + "n", + "t", + "a", + "i", + "s", + "d", + "l", + "o", + "g", + "m", + "k", + "f", + "v", + "u", + "b", + "h", + "p", + "å", + "y", + "ø", + "æ", + "c", + "j", + "w", + ], + "Serbian": [ + "а", + "и", + "о", + "е", + "н", + "р", + "с", + "у", + "т", + "к", + "ј", + "в", + "д", + "м", + "п", + "л", + "г", + "з", + "б", + "a", + "i", + "e", + "o", + "n", + "ц", + "ш", + ], + "Lithuanian": [ + "i", + "a", + "s", + "o", + "r", + "e", + "t", + "n", + "u", + "k", + "m", + "l", + "p", + "v", + "d", + "j", + "g", + "ė", + "b", + "y", + "ų", + "š", + "ž", + "c", + "ą", + "į", + ], + "Slovene": [ + "e", + "a", + "i", + "o", + "n", + "r", + "s", + "l", + "t", + "j", + "v", + "k", + "d", + "p", + "m", + "u", + "z", + "b", + "g", + "h", + "č", + "c", + "š", + "ž", + "f", + "y", + ], + "Slovak": [ + "o", + "a", + "e", + "n", + "i", + "r", + "v", + "t", + "s", + "l", + "k", + "d", + "m", + "p", + "u", + "c", + "h", + "j", + "b", + "z", + "á", + "y", + "ý", + "í", + "č", + "é", + ], + "Hebrew": [ + "י", + "ו", + "ה", + "ל", + "ר", + "ב", + "ת", + "מ", + "א", + "ש", + "נ", + "ע", + "ם", + "ד", + "ק", + "ח", + "פ", + "ס", + "כ", + "ג", + "ט", + "צ", + "ן", + "ז", + "ך", + ], + "Bulgarian": [ + "а", + "и", + "о", + "е", + "н", + "т", + "р", + "с", + "в", + "л", + "к", + "д", + "п", + "м", + "з", + "г", + "я", + "ъ", + "у", + "б", + "ч", + "ц", + "й", + "ж", + "щ", + "х", + ], + "Croatian": [ + "a", + "i", + "o", + "e", + "n", + "r", + "j", + "s", + "t", + "u", + "k", + "l", + "v", + "d", + "m", + "p", + "g", + "z", + "b", + "c", + "č", + "h", + "š", + "ž", + "ć", + "f", + ], + "Hindi": [ + "क", + "र", + "स", + "न", + "त", + "म", + "ह", + "प", + "य", + "ल", + "व", + "ज", + "द", + "ग", + "ब", + "श", + "ट", + "अ", + "ए", + "थ", + "भ", + "ड", + "च", + "ध", + "ष", + "इ", + ], + "Estonian": [ + "a", + "i", + "e", + "s", + "t", + "l", + "u", + "n", + "o", + "k", + "r", + "d", + "m", + "v", + "g", + "p", + "j", + "h", + "ä", + "b", + "õ", + "ü", + "f", + "c", + "ö", + "y", + ], + "Thai": [ + "า", + "น", + "ร", + "อ", + "ก", + "เ", + "ง", + "ม", + "ย", + "ล", + "ว", + "ด", + "ท", + "ส", + "ต", + "ะ", + "ป", + "บ", + "ค", + "ห", + "แ", + "จ", + "พ", + "ช", + "ข", + "ใ", + ], + "Greek": [ + "α", + "τ", + "ο", + "ι", + "ε", + "ν", + "ρ", + "σ", + "κ", + "η", + "π", + "ς", + "υ", + "μ", + "λ", + "ί", + "ό", + "ά", + "γ", + "έ", + "δ", + "ή", + "ω", + "χ", + "θ", + "ύ", + ], + "Tamil": [ + "க", + "த", + "ப", + "ட", + "ர", + "ம", + "ல", + "ன", + "வ", + "ற", + "ய", + "ள", + "ச", + "ந", + "இ", + "ண", + "அ", + "ஆ", + "ழ", + "ங", + "எ", + "உ", + "ஒ", + "ஸ", + ], + "Kazakh": [ + "а", + "ы", + "е", + "н", + "т", + "р", + "л", + "і", + "д", + "с", + "м", + "қ", + "к", + "о", + "б", + "и", + "у", + "ғ", + "ж", + "ң", + "з", + "ш", + "й", + "п", + "г", + "ө", + ], +} + +LANGUAGE_SUPPORTED_COUNT: int = len(FREQUENCIES) diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/legacy.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/legacy.py new file mode 100644 index 0000000..43aad21 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/legacy.py @@ -0,0 +1,54 @@ +from typing import Any, Dict, Optional, Union +from warnings import warn + +from .api import from_bytes +from .constant import CHARDET_CORRESPONDENCE + + +def detect( + byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any +) -> Dict[str, Optional[Union[str, float]]]: + """ + chardet legacy method + Detect the encoding of the given byte string. It should be mostly backward-compatible. + Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) + This function is deprecated and should be used to migrate your project easily, consult the documentation for + further information. Not planned for removal. + + :param byte_str: The byte sequence to examine. + :param should_rename_legacy: Should we rename legacy encodings + to their more modern equivalents? + """ + if len(kwargs): + warn( + f"charset-normalizer disregard arguments '{','.join(list(kwargs.keys()))}' in legacy function detect()" + ) + + if not isinstance(byte_str, (bytearray, bytes)): + raise TypeError( # pragma: nocover + "Expected object of type bytes or bytearray, got: " + "{0}".format(type(byte_str)) + ) + + if isinstance(byte_str, bytearray): + byte_str = bytes(byte_str) + + r = from_bytes(byte_str).best() + + encoding = r.encoding if r is not None else None + language = r.language if r is not None and r.language != "Unknown" else "" + confidence = 1.0 - r.chaos if r is not None else None + + # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process + # but chardet does return 'utf-8-sig' and it is a valid codec name. + if r is not None and encoding == "utf_8" and r.bom: + encoding += "_sig" + + if should_rename_legacy is False and encoding in CHARDET_CORRESPONDENCE: + encoding = CHARDET_CORRESPONDENCE[encoding] + + return { + "encoding": encoding, + "language": language, + "confidence": confidence, + } diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md.cpython-311-x86_64-linux-gnu.so b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md.cpython-311-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..3824a428ffd621958e1f1f22dfd105c58417ffd0 GIT binary patch literal 16064 zcmeHOZ)_Y_5r3D9n`<3x6Ph-Sk-Uu(DM937yCkFpH|O}@8tl{?%Bt)gEUl64ds70bGAW+gqCE^P$Ab~1XvVc@}i%3F4Wxn{Bd2fE} z-Ss&jA@QaAEbq+xX6C)w*?oI+x9@$uZ>WD$BB9Wd>ORHNLW@B%P#gxMR7M?Ex6-jy z?bNoL*Hr7dTLc1?etC=rR*4*?7bPT6=o!}IS?o;B(np`JhzJ_=;}BN%8-tauFdf-s z;Rw->O~~ zdofqfXuMIqAh@10taO}{#d681dTzyY9OX=vraa|L5K+$H*szn!SMn#Ps$RY_Hr!Jv zm-1uocp-0e^)*g**5wY|!ql0(8krlU9-U&2x#D!0Mloc#oSUJJM&^3l=_+voD`#ZR z>CL-^LOBa(M@L1`6{g0gy~#@6&84g5bUVvg<_@WWp}}K4PG`C^eGsQCbQ9e(=8pm9 zenk}5W@hIUC2^CwEY_IMn131MQRXXfC3q@=LtZ>;I^=tm?-8`60FF7wx@!SEIR91x z_!e|RbVtSrjLFo}fEB=b&Y@0O~{Z&>D%cKHP@zrr$?vdhnE`R6Qi3A?;N zvVFemMFQ;e4bL;Vcg5RI;T>Y0!n?J$*xWWxw(3=(WdE49KX``8zE%6&HT&YDC^6hh1ysgyjJ0DkS>0t_K zX_5}FHQYsZiH9*R=<-)dIgxH|dz_^PW>GSBm<@UnO14IZknIdM?X8H`Ay2oujkf z!Xf`0`6gPEM=YZJ<^R&vTJ6(BZ(OU@ST}aPR^xBD{0^C0;>@T@%(f(2w{A%-(60%* z3FCLY^W-81Z~Qos5gYj0D_qqjAsKHK;} z6TkoB_k}#(Wzq-VlMxiRI0JD8;ta$Yh%*ppAkILXfj9$k2I35SATr>ukBqE`#G1z+ zOBNvW+DmR*4e=LZen@1jTfIwUtjBB>8EX-D!e7>3^7l7x(EoF_R%ZDTeuGR6-`QT~ zFOk%+#`3$O=k>$f{$L2LxHWBuP;sLLkOmMpwIF(Y|HPWeI|ZMXfq`G%Y!ry|IkBTf zsJdZ1dONG*e@^V_6|k0(NBSD7<)=jdFOmH?rN93d!Fu-Sc!y-6ZNJb5giZ)OE%X~g z2YPxwW$mSv;QOqOc3REbVRg25cC>fg({Ak@&F3uJ^+d71qhnumw6L6{mA6oApUr?QTiF!uE~+ zev2@^em%J9hi07>v^0EDHTnAng4(2NR`Yf3TNLJL*q$B=GC#xkHidQ4Vf-Vi-hGs$ zUw5#cI&8n)pO0bu4rOP8h~bk8vvN(x^J%lX&PyRejh|1O=qZ5xD^Sv!3yoih&Z(ny^-Vz+oRT6c3kB*jML&s)1u}JE* zzLoH8^r?c+4>;Yufqf_87K{S4djtCi39q*g!xcQbui{a{>-GO6;kyFkf&GE*r_OxO zR=lb=Gcl3Qs)%f;zJ-pl7`lSEw$ zy~D$CD;0On$(Ov!oSLY(#k`Z7DHi9*B_Ns27eUivj-qj#{?YE?KBw<^FYg<1a@Ddk z>6UW5Ii&Xs$Ge9IdkCc`xzlHhsogtD5bYy@)4Lb)&=z#ZS zam@#R)B&It%};JTF0=4Qy_O-2`-VU21yIzLWTKmN2T|F?ag7Im)D@r@2l2xW^aS~H z%?KIw2dE_@MdKG(zuRCP{86WX^5+0Ij2}J!66x6g7#mSTJp;O6VC}!1_^AIZVVo1x z<^Drn9`=5{Fa7XX!B!<9=x>Q1=ycGScv1WGYY~5Z?t|`$Trl{f+s7mR_#6U7eGmI+ z{NED)P8e9i2>l{(p~xS?;(d$ECuL!Cy|p$KfBOxc7V`VrHeoMM)fgujj9AhzHL#o*#&vSie1V(6B$kK%$9= Uy6mp!-@pYpwHt=`$Eg3m0k}Z)kN^Mx literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md.py new file mode 100644 index 0000000..a6d9350 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md.py @@ -0,0 +1,581 @@ +from functools import lru_cache +from logging import getLogger +from typing import List, Optional + +from .constant import ( + COMMON_SAFE_ASCII_CHARACTERS, + TRACE, + UNICODE_SECONDARY_RANGE_KEYWORD, +) +from .utils import ( + is_accentuated, + is_case_variable, + is_cjk, + is_emoticon, + is_hangul, + is_hiragana, + is_katakana, + is_latin, + is_punctuation, + is_separator, + is_symbol, + is_thai, + is_unprintable, + remove_accent, + unicode_range, +) + + +class MessDetectorPlugin: + """ + Base abstract class used for mess detection plugins. + All detectors MUST extend and implement given methods. + """ + + def eligible(self, character: str) -> bool: + """ + Determine if given character should be fed in. + """ + raise NotImplementedError # pragma: nocover + + def feed(self, character: str) -> None: + """ + The main routine to be executed upon character. + Insert the logic in witch the text would be considered chaotic. + """ + raise NotImplementedError # pragma: nocover + + def reset(self) -> None: # pragma: no cover + """ + Permit to reset the plugin to the initial state. + """ + raise NotImplementedError + + @property + def ratio(self) -> float: + """ + Compute the chaos ratio based on what your feed() has seen. + Must NOT be lower than 0.; No restriction gt 0. + """ + raise NotImplementedError # pragma: nocover + + +class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._punctuation_count: int = 0 + self._symbol_count: int = 0 + self._character_count: int = 0 + + self._last_printable_char: Optional[str] = None + self._frenzy_symbol_in_word: bool = False + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character != self._last_printable_char + and character not in COMMON_SAFE_ASCII_CHARACTERS + ): + if is_punctuation(character): + self._punctuation_count += 1 + elif ( + character.isdigit() is False + and is_symbol(character) + and is_emoticon(character) is False + ): + self._symbol_count += 2 + + self._last_printable_char = character + + def reset(self) -> None: # pragma: no cover + self._punctuation_count = 0 + self._character_count = 0 + self._symbol_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + ratio_of_punctuation: float = ( + self._punctuation_count + self._symbol_count + ) / self._character_count + + return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 + + +class TooManyAccentuatedPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._character_count: int = 0 + self._accentuated_count: int = 0 + + def eligible(self, character: str) -> bool: + return character.isalpha() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if is_accentuated(character): + self._accentuated_count += 1 + + def reset(self) -> None: # pragma: no cover + self._character_count = 0 + self._accentuated_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0 or self._character_count < 8: + return 0.0 + ratio_of_accentuation: float = self._accentuated_count / self._character_count + return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 + + +class UnprintablePlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._unprintable_count: int = 0 + self._character_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if is_unprintable(character): + self._unprintable_count += 1 + self._character_count += 1 + + def reset(self) -> None: # pragma: no cover + self._unprintable_count = 0 + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._unprintable_count * 8) / self._character_count + + +class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._successive_count: int = 0 + self._character_count: int = 0 + + self._last_latin_character: Optional[str] = None + + def eligible(self, character: str) -> bool: + return character.isalpha() and is_latin(character) + + def feed(self, character: str) -> None: + self._character_count += 1 + if ( + self._last_latin_character is not None + and is_accentuated(character) + and is_accentuated(self._last_latin_character) + ): + if character.isupper() and self._last_latin_character.isupper(): + self._successive_count += 1 + # Worse if its the same char duplicated with different accent. + if remove_accent(character) == remove_accent(self._last_latin_character): + self._successive_count += 1 + self._last_latin_character = character + + def reset(self) -> None: # pragma: no cover + self._successive_count = 0 + self._character_count = 0 + self._last_latin_character = None + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return (self._successive_count * 2) / self._character_count + + +class SuspiciousRange(MessDetectorPlugin): + def __init__(self) -> None: + self._suspicious_successive_range_count: int = 0 + self._character_count: int = 0 + self._last_printable_seen: Optional[str] = None + + def eligible(self, character: str) -> bool: + return character.isprintable() + + def feed(self, character: str) -> None: + self._character_count += 1 + + if ( + character.isspace() + or is_punctuation(character) + or character in COMMON_SAFE_ASCII_CHARACTERS + ): + self._last_printable_seen = None + return + + if self._last_printable_seen is None: + self._last_printable_seen = character + return + + unicode_range_a: Optional[str] = unicode_range(self._last_printable_seen) + unicode_range_b: Optional[str] = unicode_range(character) + + if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): + self._suspicious_successive_range_count += 1 + + self._last_printable_seen = character + + def reset(self) -> None: # pragma: no cover + self._character_count = 0 + self._suspicious_successive_range_count = 0 + self._last_printable_seen = None + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + ratio_of_suspicious_range_usage: float = ( + self._suspicious_successive_range_count * 2 + ) / self._character_count + + if ratio_of_suspicious_range_usage < 0.1: + return 0.0 + + return ratio_of_suspicious_range_usage + + +class SuperWeirdWordPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._word_count: int = 0 + self._bad_word_count: int = 0 + self._foreign_long_count: int = 0 + + self._is_current_word_bad: bool = False + self._foreign_long_watch: bool = False + + self._character_count: int = 0 + self._bad_character_count: int = 0 + + self._buffer: str = "" + self._buffer_accent_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if character.isalpha(): + self._buffer += character + if is_accentuated(character): + self._buffer_accent_count += 1 + if ( + self._foreign_long_watch is False + and (is_latin(character) is False or is_accentuated(character)) + and is_cjk(character) is False + and is_hangul(character) is False + and is_katakana(character) is False + and is_hiragana(character) is False + and is_thai(character) is False + ): + self._foreign_long_watch = True + return + if not self._buffer: + return + if ( + character.isspace() or is_punctuation(character) or is_separator(character) + ) and self._buffer: + self._word_count += 1 + buffer_length: int = len(self._buffer) + + self._character_count += buffer_length + + if buffer_length >= 4: + if self._buffer_accent_count / buffer_length > 0.34: + self._is_current_word_bad = True + # Word/Buffer ending with an upper case accentuated letter are so rare, + # that we will consider them all as suspicious. Same weight as foreign_long suspicious. + if is_accentuated(self._buffer[-1]) and self._buffer[-1].isupper(): + self._foreign_long_count += 1 + self._is_current_word_bad = True + if buffer_length >= 24 and self._foreign_long_watch: + camel_case_dst = [ + i + for c, i in zip(self._buffer, range(0, buffer_length)) + if c.isupper() + ] + probable_camel_cased: bool = False + + if camel_case_dst and (len(camel_case_dst) / buffer_length <= 0.3): + probable_camel_cased = True + + if not probable_camel_cased: + self._foreign_long_count += 1 + self._is_current_word_bad = True + + if self._is_current_word_bad: + self._bad_word_count += 1 + self._bad_character_count += len(self._buffer) + self._is_current_word_bad = False + + self._foreign_long_watch = False + self._buffer = "" + self._buffer_accent_count = 0 + elif ( + character not in {"<", ">", "-", "=", "~", "|", "_"} + and character.isdigit() is False + and is_symbol(character) + ): + self._is_current_word_bad = True + self._buffer += character + + def reset(self) -> None: # pragma: no cover + self._buffer = "" + self._is_current_word_bad = False + self._foreign_long_watch = False + self._bad_word_count = 0 + self._word_count = 0 + self._character_count = 0 + self._bad_character_count = 0 + self._foreign_long_count = 0 + + @property + def ratio(self) -> float: + if self._word_count <= 10 and self._foreign_long_count == 0: + return 0.0 + + return self._bad_character_count / self._character_count + + +class CjkInvalidStopPlugin(MessDetectorPlugin): + """ + GB(Chinese) based encoding often render the stop incorrectly when the content does not fit and + can be easily detected. Searching for the overuse of '丅' and '丄'. + """ + + def __init__(self) -> None: + self._wrong_stop_count: int = 0 + self._cjk_character_count: int = 0 + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + if character in {"丅", "丄"}: + self._wrong_stop_count += 1 + return + if is_cjk(character): + self._cjk_character_count += 1 + + def reset(self) -> None: # pragma: no cover + self._wrong_stop_count = 0 + self._cjk_character_count = 0 + + @property + def ratio(self) -> float: + if self._cjk_character_count < 16: + return 0.0 + return self._wrong_stop_count / self._cjk_character_count + + +class ArchaicUpperLowerPlugin(MessDetectorPlugin): + def __init__(self) -> None: + self._buf: bool = False + + self._character_count_since_last_sep: int = 0 + + self._successive_upper_lower_count: int = 0 + self._successive_upper_lower_count_final: int = 0 + + self._character_count: int = 0 + + self._last_alpha_seen: Optional[str] = None + self._current_ascii_only: bool = True + + def eligible(self, character: str) -> bool: + return True + + def feed(self, character: str) -> None: + is_concerned = character.isalpha() and is_case_variable(character) + chunk_sep = is_concerned is False + + if chunk_sep and self._character_count_since_last_sep > 0: + if ( + self._character_count_since_last_sep <= 64 + and character.isdigit() is False + and self._current_ascii_only is False + ): + self._successive_upper_lower_count_final += ( + self._successive_upper_lower_count + ) + + self._successive_upper_lower_count = 0 + self._character_count_since_last_sep = 0 + self._last_alpha_seen = None + self._buf = False + self._character_count += 1 + self._current_ascii_only = True + + return + + if self._current_ascii_only is True and character.isascii() is False: + self._current_ascii_only = False + + if self._last_alpha_seen is not None: + if (character.isupper() and self._last_alpha_seen.islower()) or ( + character.islower() and self._last_alpha_seen.isupper() + ): + if self._buf is True: + self._successive_upper_lower_count += 2 + self._buf = False + else: + self._buf = True + else: + self._buf = False + + self._character_count += 1 + self._character_count_since_last_sep += 1 + self._last_alpha_seen = character + + def reset(self) -> None: # pragma: no cover + self._character_count = 0 + self._character_count_since_last_sep = 0 + self._successive_upper_lower_count = 0 + self._successive_upper_lower_count_final = 0 + self._last_alpha_seen = None + self._buf = False + self._current_ascii_only = True + + @property + def ratio(self) -> float: + if self._character_count == 0: + return 0.0 + + return self._successive_upper_lower_count_final / self._character_count + + +@lru_cache(maxsize=1024) +def is_suspiciously_successive_range( + unicode_range_a: Optional[str], unicode_range_b: Optional[str] +) -> bool: + """ + Determine if two Unicode range seen next to each other can be considered as suspicious. + """ + if unicode_range_a is None or unicode_range_b is None: + return True + + if unicode_range_a == unicode_range_b: + return False + + if "Latin" in unicode_range_a and "Latin" in unicode_range_b: + return False + + if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: + return False + + # Latin characters can be accompanied with a combining diacritical mark + # eg. Vietnamese. + if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( + "Combining" in unicode_range_a or "Combining" in unicode_range_b + ): + return False + + keywords_range_a, keywords_range_b = unicode_range_a.split( + " " + ), unicode_range_b.split(" ") + + for el in keywords_range_a: + if el in UNICODE_SECONDARY_RANGE_KEYWORD: + continue + if el in keywords_range_b: + return False + + # Japanese Exception + range_a_jp_chars, range_b_jp_chars = ( + unicode_range_a + in ( + "Hiragana", + "Katakana", + ), + unicode_range_b in ("Hiragana", "Katakana"), + ) + if (range_a_jp_chars or range_b_jp_chars) and ( + "CJK" in unicode_range_a or "CJK" in unicode_range_b + ): + return False + if range_a_jp_chars and range_b_jp_chars: + return False + + if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: + if "CJK" in unicode_range_a or "CJK" in unicode_range_b: + return False + if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": + return False + + # Chinese/Japanese use dedicated range for punctuation and/or separators. + if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( + unicode_range_a in ["Katakana", "Hiragana"] + and unicode_range_b in ["Katakana", "Hiragana"] + ): + if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: + return False + if "Forms" in unicode_range_a or "Forms" in unicode_range_b: + return False + + return True + + +@lru_cache(maxsize=2048) +def mess_ratio( + decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False +) -> float: + """ + Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. + """ + + detectors: List[MessDetectorPlugin] = [ + md_class() for md_class in MessDetectorPlugin.__subclasses__() + ] + + length: int = len(decoded_sequence) + 1 + + mean_mess_ratio: float = 0.0 + + if length < 512: + intermediary_mean_mess_ratio_calc: int = 32 + elif length <= 1024: + intermediary_mean_mess_ratio_calc = 64 + else: + intermediary_mean_mess_ratio_calc = 128 + + for character, index in zip(decoded_sequence + "\n", range(length)): + for detector in detectors: + if detector.eligible(character): + detector.feed(character) + + if ( + index > 0 and index % intermediary_mean_mess_ratio_calc == 0 + ) or index == length - 1: + mean_mess_ratio = sum(dt.ratio for dt in detectors) + + if mean_mess_ratio >= maximum_threshold: + break + + if debug: + logger = getLogger("charset_normalizer") + + logger.log( + TRACE, + "Mess-detector extended-analysis start. " + f"intermediary_mean_mess_ratio_calc={intermediary_mean_mess_ratio_calc} mean_mess_ratio={mean_mess_ratio} " + f"maximum_threshold={maximum_threshold}", + ) + + if len(decoded_sequence) > 16: + logger.log(TRACE, f"Starting with: {decoded_sequence[:16]}") + logger.log(TRACE, f"Ending with: {decoded_sequence[-16::]}") + + for dt in detectors: # pragma: nocover + logger.log(TRACE, f"{dt.__class__}: {dt.ratio}") + + return round(mean_mess_ratio, 3) diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/md__mypyc.cpython-311-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..f3a749873d44e1597e1cb34395c16cac12d0cb2a GIT binary patch literal 252952 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�fa#y-=E2sGX5II*E2rA_-4i*&Gc*Zv~ z{zJyMF@6x^BaFX;@fH>*4#w9rzLxRLjQ@i1ZH#}J@e#%kWPB-$!%d8@XZ%RUH#44I z$rb)@WBkv8k^eba++M)+lrp}8@%4-!$M{sMoKN-wwTw1wjAz4|kD2xzKb5EjQ@(sdl=t0DhJ&c6eW!@qAypoAHHAk1-$? zxA2pz(Zj;{Bcd$)ojBvwZ#v@bRK_30eh1@6FnK5A zk72xv@o9`NVEnO+cQbxG%eR#Ay;#HcF#b5Er;hRWGd(`W?`87!j6a_70mhGFd=ukO zV0@7AqZ!}K_!Al5!uTD`&Q`{cVe%oy^XCO^jOWh<+8KWm)6>ED7M5?A@pdL3VLTs~ zyBN=(BXl!6Bu95_*u+9 z0mjp-_99gi&*w|6jGx5hLyVuy_%_Bn8Q;$MT*h}WehTBm zjL&0ygz-UEt}e#sGx=`DPh-4sXe|EEWxR#)F2-9Ke;(sg89$xzHpb6jd^+R#^DH~# zXEON=#;f1%#oG?X&tmdU#-Go47vuSJu>!_lz~tSG|0nZvDdW{|zG5;D<1b`->KOkK z)8k|OY$jjNc>cUBz3*)CSJ6jn)hslQ+U&rLz7|-_^ z+8KWd)6>CtH{-*MFJ^p%@$(qp#rP7&cQd|`*=Y=l#s3z@TNuB9>9I1tl<}#IFJruo z@e3KB&iHc1+ZkWM_zcG1&g^tBzLLp18DGVC7vnEud;#OD8SiF1e-2p6_(S;ohw(K` zPaWg=^Fbfuy-dEI@s~3`!1zUsZ(@8MY_^TN2WITUf>0Lw{ya3u_)D04GvkvP-@^F0jBjQ9walIn z;~N>@#`xzE$nuvq+m%Xkap`SV#T zF2>)=*o8{^%K z@5}o6QpSJ8M0$wwG}597NSe=p;^8Gj$+jl*N{ ze&ny_yFS{XM7Xme`59r8NZXs zH#7dPi6dbOy0(L{#-tt@tc^uo$>rRdj{h-GkFK&pJ%+2 z@h>pm#rQ3ZFJSyu#=9B+B`a?!`>%T5LW|9Pr+#)$4`biRFW~=_VGj6&SUdsi z4DW+uCz-J)FSI#;E0*^y{ z7-FBmqYxjC*dy==#Hong0uMzz1hGrtfry79b_m=D@ezpa0{1|CBx0Mud(H-Y6k@Bu zyAU6Z*bw*|#KRDG{f_1T46zMySm5^&4@cZC@HWIF5QhYQ3Gp$ATLj*OI1O=7;3pA} zL>v%!BjRHb`vl&A_&CHKf$v0|j@T{mEr^dt>=Jk#;!%hl0$+pp1jKfMS0Wyb*e382 z#3v%Q3S5nN3}Qpzg@{i=-1VENf5djgVS#5O9*ekL;OU6RAr1*V1@Xy=3vQ;_-;>0{1|C zCSsewd!Xr;o`u*d@Git>BQ^y72JtzFyM7h*kJy1YEb#k?vk@{3PNW!~uafBA$fUC-4TulM#Caz7w$%v0LC<5a%Lx3A_&R6vPgJuR%N& zv0dPmi1QHJ1YUwTAF);7YQ)nJ8v-vxd@kayJ)-^*yAX#3o{jiC#O(r4M?4*INZ=`m zXCQ77cmm>?h=T&3ff!$5=?n-w4)OVjeFBd{d;wyQz#|YBAa)Bp6!C?KT>=k8JR7k? z;68{iLTnef2jYtn+XUWoCg3@Utpe{tdkuzQ>=5`G#Frwr3%n9>Ibxf@OAuEewhCO0xDv4;@Iu5@h`YK){Ui1u4huXR@nwkH z1)h$$8gWSADTr$jw+K7|u@`Yr;4=`{A`S>V4)NuPeFBd{ya=&J;1P)H5W58)ig+<% zm%sxNFG1`OxDVo`i0uORK)ejGP2fG_0bhaGD)27ES0Xk9{s!@K#9cp&`bX?T92WR} z#48ZD3%m{SO2i?7UqZYJaf`s45U)lY6!=NRYY+zn-iY`r#6E#HAif&0N8mdV*CTcd zd<$YfVwb?{5MP7XA@DVb8xY$CUWxcx#5RGKAZ|o#6}TGlb%+gt7b0GZxNEnlf5ZXA zVS#5Oz8-PAz|#@0LmU!#3gW*ZZV`9_;u{bL1wI4ujfevRk3)PDVxPdH5Z{d0Bk%~s zO^DqB4@LZU#4dpcBEAK&L*PD$Z$)euxCi3f5ZeUaa|Yn`h^+$eLi`WJhQQw-z8!Jb zPon-22N8z_ejo82h}#9;hWJjzA%R~)d>7&tfj1$(8*xzJClTL+I3Vyw#P=fh3A_RE zeTY2*--);xv0LC<5Z{m3CGa}L8xT7Lz6S9Fi0uNeMEoFPo4`vDKZMvSa5dtG5gP(8 zMEnTit{+AHBW^()7I-$|M-jIRJRR{y#36yFApR%f7J(-qehhI?;4={a3voc;aflyB z>=Sqt;(sId2s{FDD`L06LlHlL*d_2l#7`o22;2wpQ;6*X_dxs~#5RHVWCDH~u~pz* zh@U}h2>cD=XAyV(AnG4+2ys~8_YpsbxLx3Fh&Le)3H%b`&4^nB-h}vh#6f|dMEnBc zfWR9OZ$a!6cmv|Ch&=+|iMS21Ti{y|zlhi+@H)gVA$ACS4dRy(+XY^U_!Y!9ftMhD z6|q&|YQ(Q0HUwUX_;tixyF~pXZbuvzcsAlU5Vs3F9q~5AA%UkLeiLzvz!MO^g*Yhi z8HnFT91wUM;&%}H1RjO>UBn)NM=t+^;`b1{1RjX^eZ&rd`yl=Rv0dOEh(APZ z6L?Ps;Exbn1>S}DW5kBQ-yr@3ao0{!|A@ng!vepL_*2B~0&he78RC$@FCqRMaf`s4 z5PyLq)fcR^~9)a&f96{_B_!h*Sh+P7&L;MY5hrrh$-j3KV z@JhtrBDM*<1o3x>tpZmg{vNR*@Iu5p5O;Nn`bXS_I4tmN#5)nU3p^e1F2o^$ry%|T zaf`qc5dVlcDDWAGe?lA(cpT#0h=F1*#1_PEfp0;KuQqnN z1YU=@4`PSF*C57MsXOfguSDDru}$D5i1F2)POHGxi1AO2It_srB2Gcv^}VQn#8$*% zfoCJeS0X#x1)h$0AmWg~QxM~;E1fL@Pe6=+df6Ei_zc8@5eEbwhxjnWK7mIeJ{++} z;1P)N6~j)qz(WxaLF^KEAmX8j9Rl}3d<0^S}DXv79! z$LjCA$$9>~G;7Z454_3Q{_Hf1^I7l%9?P8#*=bg%e^ai%+qo(P8%YCmkMD9eOtWIjJ(uK6ddHdh^73~(e@4Q;43q3}uG)(7PXD0iAZd~_bMx}f&O0tPjQL|y zhT-(k5c^He#)#;A~iG6C#HR5o@0RD-nB9S9!32&-(Bk+fO*8<^pv6caNqa6si59ZP`a@prEZ zCwUJS1xn#or3^F1hNML*rv5*ne@eXlf8y`-|Hj`3RKEY0^G{iW(^nM-3F9$k4X%iw z{-Ayn#^d5xJZ2>F--WUJjzsq}WA~jH&AnAautAP48Bv2pMD^zp1?@LJo_x#gGQO7{ ztD;%-ClKFR$0;UO-2vb7u~L5Oe)0nn$sbUC{%>p#vU7;Ca!Gdyem4o*Su{IR87P{LA~vU!O=G>hXBs=cnulIk!$u z2R|5FCTED8oc_sn@hV`-fXS(<|3|?XIX|Fdac^_XAkhCJSb}1x21@{X)1{b*|K$7s z=>FIcH*G$c1R76=6hd2ruL+ycfXNx8*eMi4NnBWx&HLL2sWU0REt6BBtj;7#>QKe9 zfj+w`Z``mm$hmc5DvVv=9vFTOcCI=p$$M;c#KF5Z?XDHt6R2_+kr|PF`?kLsh)jj6 zBzaR+k{#cTc z3)3qYlE2Q~nw=*8ia%>hc3MV{tds%SX{nJg%*W5{;q8~_591&!`kCBSqtlYSy>rHX zAz4Tqv7jm6srH&Y_L#)^kC*umrTn-3GnPMPc+Pf_VPC1*G{2^=;_|zG#2@B2r9_r@ z?*94h`|g19OOMa*@3ue8Z^=BF-!Axb2<2ZY-?N`lKI{FDDx+TX=)D)R;LVB zoA9tblK+{o07h2~S?JFa#cKi2AN!0x7~FC`**P9=vKch>2XdH7jq6eRV1JXc8n=F< zvj*&QL_=ad(lWR!$0)pub8X&VRl;34LgC#E?XDZ{I&i*l2;6i)N=OO@_m({htRo@~ zpU3qtk)?n;%W+X4+E3(C#7koMBEZ`lqUDWDMf~?Dj_d!hys`e3%8Oe)VAUUZ1UJh- zLXO+0Bjyp(f!mGIa-&47+$3?gl#p{NlyF2nLlU^<4LZbZ3cce5EWL9A&@M44K$p6r z3FQD$fxe5DH!>9>X8UU~JRWf8kuiUrfOt#{AAuO3^g|N#e_zDYWBAuk0ndx!?STKA z{(l-6FMW%~>*JRL?xw4F5VHe49+t-E7r7Mh_6K6+y9n_UQ5;v_m}9KIrMv!D?b#lV zD}Uqzz}%jf5&swVV0$t5j~o3Ht@>Ep$+Ap`yLRP0do*79vigaP*X%t3?PKlb2*k1W z66uThzNkN)t6%}ziXrFiiTzL31zG23&B~eyOXlBajQs$X->J@q3t%UrhZ7dcsoT{& zcGc!2XYpodL(fgXd(ZP_7~XIFb8K1u54R7(`AXKR=aX`apH~7IAW*v<2K%%jFzIYO z^`2!(&=@izCyLsKwR%Xft_GG#Sx9X@jg z{Fmq75&0cTr98Yu+g=}wsuz;7Ge1pPjhkp$DUatE zXD+MVx&rjwo)9N9`Ret`NmYS%ZJ~ zFO%2yqok{0(;3Ps{sIK^^XJ<|PMx@yg8oEuYtAWHQF;CfqjL{riM-0X6z*icoU#_b z+e?_>e+`p#rm6J)xBahg|0n=eaL3_2jBNjBPzyh=6tyrm6dCyqMtx@uXqA3>X1vI0 zN95K|z{8EMByewDO3p5DXlmyM5X;K^Eh}Z(Z`qk&Wu=_^5rm|Of?&64ZS>CVgi!8^v;Fg~&gW_?bvJqLl@o{Pg$FDSAPcC7OJ`yxMlC_Hc( zK=4uWoF3rkD>9t^6Zc#U5$n&9)BDczN6VXg;8haH_F#Flif*RJn;*%Wor6W5S1*<+cYP%C49T0X$eZ6$%D3gs zyWnQF|Eu{~DV5K6Uc6W2aVJRT`M-hc&yWT}^&cx16`fuXXLAXRFX#BPav@$)R{wyt zq&f%D3&Wdnc?}CJdE-ak3@Rb4A!3{ji(n^iZ=aO4#UKy6g5$v2$Yhw1=K5a{E%a89 zg4uY^*xh;KYphqypVF}Ght$Z85T;I&D8rnf`+&Lst~w~I|C>Dj_xZ&?Ive{p1IA>| zlxzrtvpxg}*4KA{`c)N15`>O-k`q69kIRQi$hds}?9xvP4nCFT3S6lJKj z;O&bbH!&$pS#vr#2@P-p)j3KuY?weiZvjs{0m@)hi1wkK-gjmHAT*_{87cg`15AkY z!PMVEEYNxdyp^&hS*YF-`3`LE>=rlW{1SAZ236R(8m5^T4|&jW_`e4>OXL{o2l+tN zc1{uII3PrzXj9=H4I?U2VC&Tq`2;FT1OYxiMb|{V*E3}`J`#*PBsu^YDfrANcNOf0 z8&^6ZT*ij-8hyn-=ieL2hLEC4I1@1Jv15&$4OWU0XF()*bD&O7%YxA$w|GnL zcvv|uds=w1HV3`f1B$wRJT$s2Y&tL&z43vp2z*yU%0b9{9eH0xS1qg)c0^tVDB~ni zOo-42C6v%_r8P!(GH6slhe!rLE>j>j_NJGOs8`$dtZAA&Nh zc^QXtWX4_b$Z+h?8c&6u8$7Wivg>U$zxG)Cyc?d(Iva8@fSe6J2R22B6R{Jm^cF)8 zfi>yh3KbFg337qNV=?g)vBdiVm^OdS7r1+jE$C~|(b)|Bt6G1MUKq1wyfFJ#U=_ve zo6hW;1W(TY#J*9GHEd!s?INxACo*{|<&X8~((;W8&=lmxvwd zzZd_^zS2()$bVV!_6=nA?T%$(R==yjqL}{%Gy9&1B~I+WHW+qPef~lH-hquRR=?G6 z#{BnHEDJOHK8I!yv#%DAiog3~i4)tGeqi<`#oM=So5<615R6leSS7PB5XJ#GWHz|G6XRF zg|t5CcQ8Gy5cf;JUZy{rr{4(;Dp7h^Z|#?UPJ;X&{V&oVl_33PCh1|tvS0omrHJxR zX122mbHA-wOR3?DIySss0(J=aG$Ap3IC|+t}UvZsw08ADj+1)Z<7I56Qjz zi?VN^dD|Ip;k*sQN5)I?Vz{4Z|MMc+e{{+Hr0MYWR$_mywFj&fpev4Ug3ix^kg_8b zdk1p!PW+z{`A@spV1lk&?1=`%_@eEHcE15b5bcMu)t}S<1C-Y01icmvO_*+{rRFu3 z!wxLYzPAq*^TURjX|O`{;xp?Vkt<;~0L^7wo_{AyF~#%GPa?m_w*58?g?syfD{u>c z)$=wrSphG=z63I{2~2Fi1E-w1{&&QZ6y_2ygGHqcS+<6JNU{DX>~Y0jiBXK`Ly zHWD^x=5tqoX?bZbXWzWEf|S(*lQA*W4{9jL#yyeVTQFyA>$QjE7H@TC!u%vuGe)o3R@=`BlPM=m<*%ZmSQ-vq)eQxAfF!(~;6E5w z&Uxd#X||Nr_(Eeg7?_&v@5;*rPcL61lzDH03U_2@?pof61x!D_J-4C4>TJqunD<<& z6C8eBHOxoGhPEF{^Jekx!V4*@x8p=&{Ja-ZYrn;WcGwws4y|830p~BcOYa2DmWDo} zF7T^5{I9Kg&f+|%+UoD)Y&b-$>iuNinj%PqZUnzLi=n1-i{EuNl&86}GrOHB)7sHL zR%hlWXUe(le$a}Bt?mcK&MV&I1R^!>_->f_M5aMo#B9Oxkkg+7zBvws8ZJ(==4bwT z<c@2Su$M80|r z`w8!7SWk9{pr9j?5oY*5b=|{x1Iy zCqTnTC#GZgWp7E%d@p6~K#cmv{+}&`fp*Qdl+}aKr47kz;Jb)nuCm*k1S>r7d87Bc?Zae zBIlwD8j{x?41bpf4HwFLKB(DT1Gh!FGhxMX;U(MsG9uxD0Jt7M!#b-U7@m!d@*313 zBJ~I{N<%Lei&R)Io)2k2ac35^Ls9=w`~jl=psdc!?J2A82Z`K>KLp{!9t{D@5*cJe;9rgX2HJGOHjZ=fXK%>h1I12J!x`F zGVWw-!vbc5;WHuq71gSgGoXcK&Ca^0^B)jIS^oDx!K<*-l!fnGp^^wF0UhO_1JVr! z??eM56_R!?fMghWu!u}qGYEwn`(FzRMB=bae3DG;h-UgROzApL6e*#h`aARdKS8ot zDqk!k=6#_|-qo`QjOY=_{um#YJcl~eVH4eT9;S$IqYt=s3ra5&R`lT^>I?zzu%kYwty#*rn z68M-serZ}>$~5RR`sd*tbinlx^&&P=`>E-d3Fl*#egxm`CZqIkU{hgMLFXsf3Po`A z?=O>k>p<`^6l^^81rKNxQC$r3on<1b`cDw{4Bk5*%)9}8(%AnbNo_|8yA`00lvD>& z@BNBp+X+Q|5uqE$q{jYxFvG^dk0aGzCi+@ZcOg}aQV@7Bxq1$_GCIH9gRQ{_g#)9e z!Zay)Hpn^Gyy!g(Oilum<;L4ED6q8pAsm2&$5U26C`u|O30UPRYkEVLoi_msimF7u z{f`BG+yBY-=-7ID0FEiK_1I@Gh&Fd@Wbv!OM_2lN0YTS05GSB=%_8iDQN`JCg?u{> z9;@V}LX<%Bi@v5X8SX|OW8~PhyP5l~kAkS5_6zD@4yx9Zk%p}>+1wc2?}#i#3@>Ty zzkiU0O(9mEfvP+^@;)LZ9>!nzECOl8|^WMw6 zJeLCczg#~ZFd9e8vmM;b>*oW+vGPD1=fe8K*)Vt`{M;C;dlhYQC{)y zQ&*k&n^F6Ne1f#b29xXtsZh*+BVvwlZ5n3n-`eQ0_#YFwIU5FL;vi^SwHIc|C-ufz zvelWi6RbvKoDJg95U%Glup4mV210G1*!{)>)oj+ppQhg9vT$&#D7HRambK;lf< zje~6Q3pmXlJ@$jK+noNMX<4n%sVoN{=KH^bxkox8xDLXrzdWrx&p$8Cz5V!Td%=0T zG$*^U1ZJI^!KN)1XXcUc^r-_}EuJFzKZ56S@X+dn+{P=Co^hb<;NH~8vrxCr2KY2~ zTb92A{3o6qrQ8VbEB}6Gn)l>09Vx5vM+9&TT#e7s$!qvz2|RcCO6MwBftKwnsNc(N z%t;bM=Ji-|=-F&WZC__5OgK~4S`G$#d{-oa)-OR>HWXzLJ{ABe3k+xLfdj$ODQoes z!Ezf;L(?4KHJBX1>l1n4CRbz`G!Go?Q^D7zqQ*C%7gxc&HL2lRQ7>Wv@gGn@3y8;L z#mbvvCGkQMj`jYe&Nk>_6{IZQPaS=@U`M|=Q&^#`8nJFX*NuKM>~r#C}0BW7G6IF6oEm5G9!7#-FYeJ z{*Ezecf!osmY2B)hT%Q`4{vV*A61d{{U<<6SUV_SL>+@f4Q_yf5+INWXh(vgprW|z zAnK?n2_PuMNusoED~|iVjyf*mxFN3gf{)Y_ivI{xmntywxz1iF8^?XD3^RiT3P* zY4NVGR$&u>gdatemU_uG!fW+33$(Z$it zPR)CO15D-XsFd>rcHcZHmeSlq+jm3q)|D<966>AA%qL@5yv24cH;j)k`pb}~{?pLP zh!3qF(tSfw`oc)umT2S*i=VxnEy3$@2oHMa7~Lt3{*J?SCKCq<{f9*yIyIg}w&bqO zzaUBs%qYxTfBn8iv~`{aHw6BA5kAZ`D9-z_lua4&C0wyuT!6{2Wrx^9e|?>K#%zb9 zWl|fX_Dmq4%vOx`O&r7n`rxax^Ei$oMUyLaNTNT=b$zQLd2_?@Sp+kPSrA4P$I|*2 zqoKF_S1^G;8l%~6`#DSvDq0(1h92Llpkfr!AoCnT8>zU7jEeA(iP`YZ&aXU^8-X;# z&g@9M5FNAc69*Fsfu|-ueGS9;k*yzzEX7Es>*84Rq4D8Fe(k0h3{J8bWCt)6Ny%-?M<(!#X?ZQR$R(}u*0#OA#WQmu?Wh2Geb6!cKSLLZs)K_;;n`(f4tFbR=p zO;NnXJdK$ViC3jgG8yR9(7X*pO|+YZ{Dy{4(p2)!F-#@np*Q(cSpIuDT$)pu_a2=; zrh@SB8p|SHRPw^6S`fqcge8~!)nFlp?dKvl&I4MYH-L|~WG>yDB=b8KH7vmE0GM!0m>>EJ)oC?Kf`r7;iSOwKO7^ht2l(&5 zgSF0{Z`1N0v~)7~B@_Lmz$7&?TzMHU5;6WMEZ;6|*=hiVrkq6wumei(;^)x374WH? zUrdFr)t~V21(rGCipNkzaiuT{>-wAo-sp}P)7&M;Wz4G>-80WkbQKEGCG>TQI>9=O zPCRX?DA0>|yNSZVP8iq(VHx1qgkdd>0C?^GnbXcQIcKQAFXpHC&1p?AZAQT zQVOh3vpW5;Lft?7lL-HJ@c$td|5hY$$d(HA*$|lK5mVY}XH>CEa=@9E!tY%QS)$io zzBaY*CjX;BGuOUKKK~EsOC@e6;jjZ;+9!euFYTe4ng$fbPDAwy;6SFKe<$=SsATER zGMjiM-|kHJ!)tb;J21DFzx4If$XELL+y4#u?w0;dC4JCgXEx+45^^-iP+ ze`b{cM$?G|5S)Q5iWSetsd8LVCl^~&wS;Y-UDufY z9qA8#JRH&dNB<3qD@D*E^ zmZs08tiI%WtD%)kuWcRK{B>kuwFr!quTAguUW7co=%QHhJz0^O)qi1f$qUY7{-r2y zLuo%%nec4{V$FZBWXYtANchDXbyQh>?LGnaD8SQyWmGDe5z&Fumc-QX2gEini`=U= z%+E)W&S^2u84|lBYk2x9labrfZV=9NYF|^5ksl75R0|J(Q{t5Y9>(liAR6Y%4WAsY7z@_Z7 zY>6z{V)U6MxWpl_+0`psp7cLjqLZXOy=%OjrQ@Fx9bT=kpBc=bM!~cbNe;F6Yg+bH zwlZ&IVeOkEmDQ~$!y_F=D$|qm3(#ucMPKyyJ%2sISRHkba{v%;lU?1bd7NbHE->lOJJ z?iqX|tRqnAg< zMhBa-B;m@xt4eHY3hLp?>+IXUo}>&xYG1&cz7$$5WR7ikUEsetm~x|~K~|5Q=^XYF z!RK`{1D5Z@ptJTDo)aa>^278zCHcIso&)XM=y{r7o-%&^jQ)NAK0*C`lV?wQ zu39#wf99A?xbi+|7DIy!30G>3%wr?Z3NRwfmXAzV45h3JfL- z7%U40>p1u#Y_l@U0)U3qIKs)q6-qEapzvVqVjiJL$!0N2DV#cHIpJM|Bd0y zc9HASIYHQC(ZtsL8#<1sN!cbYc<}`_G3n+9i0H&X46WNP5&H^?*HkS?w=YaZR_itM8AYPLZkK@iubVCodIQ+D(BcXUXHZe}lY+hrOTN~18kI{~)LEeV z)|Q8Ev55WmbldZ5|AvtkF`=%CZvXz$U^@3hc)`PB3b11`(T;y4V$8xV#D&6$k? zmT8SYZ_&hjVtHMklIB!XL-OfkFiO;|5(rQ&!R~x+VJieKm;#Ht&dTtXX>i@@j*) zkXGJ~fUJIBZNP3VvMhPr2m2j;o^AVl?KE3h=@-@nln1?}?|k*WH!`x_m$n^Z#N^Vm zrKawH`#@wvjdMVumC*O;UsNs~f_zlbmCsKWnW1ifo#?O75GnCkfMpPe+Jp*i)#Gf{ z#Mv&s2GKz^*vyTRY3$S=QsdRp4VGm-+l0n3E!BJr{`Ku7ZH;oihUeCail#X)-c zuJi^Zr3c+sP9AwMM@5I`NXEd>>mkJ*MloNBn5 zIFW`){Eh$HGqMCXQ&+t)5$&NlEG8$L4hTxojR)Fj@ezireZ_YCK9 zsKTl76Xh)Vo}Zz~RIUBowO_z-YhJ(@;%AE-=h&xBo3=UBW-br4nPbDbEa)clj(MKr zguQyykP$e6EHqfKaj2ohDf^cJ(=J2(y|Yt)S2JL2e+!@bbNxNy)pPs%a;53-?{0sY zZh!ZZwbe*}HP4t{-~`Q;kDZnH&M?pLGZu@*Jj5;tfjA{ehdC=vY7-wqiOiGT&6zOQFUzC?F0B< zx$s9P;oqDBUvhDzUu@{zRc&cY_HO;5bHbBNmO~s19zSJ)z$eiBVK}C%5P6z|>LM!s z?U>^%u!`9+N7cd8%5WalzJ_)%KliICSD-fYN-qJ(H&eRu`cCkDC?C zy&zoX>n-ybuGFdyRj-`u-0!~8{Lrm*ll$sLEVZrlITE#n+Q`*ybIvtxC1uJ|RH9*4 zxBQpzv`&3V3WHI;u#< z^x3ECs`RueB;o!b4#^*$@~x5Nv;r&1txs4<{+)Ws{7dH*UW+%HdWpC@C>BhnzN0!F ztcUQCOTsat51%7-%b{-DL@ZwqsqMn>O&i%9qOsv+kMAZPi2RqNj}4#E=eH{bAa?=4 z(81FHditEiJZeja6L0dv^@r*@%k8?BE)!EU=}Lqv?y#UCK5>hwZuJ%VRxUU6-7?71 z*Ttppak@-gV5%Y)$@P5R03Q(QWsX5<)Ew;xWjY;gt9B1sM0rK$HB)<1(@5Xa8oqJ; zA40Xjs+Fio?BGq(f|P#jw?G4WYzg0_TmFHyWeN$}AFHlpPRr2BD?qT?g%_@PnO}*= zR5=Mv`B1?V73Dv%gItmGD56zv6Z^p0!(qFFGX%;V(r%aby~wdv($kQfEbVQpR<1Gv zZ(Z2JtjOAJ;$E9{NTAoI+C8ujMbU5Algl!>FUyc|{FDr$z~(dra8@M7|AUh`50j}8 zo;5hTqIz;S4ph=v2ALbq^oQ!}nOcS`=DFp{#Gs6YgUl+T=d@=EO0%n-W>pHR%2%`` z8M!30d<)O@nQ6pM03Gs)zoI@p?~Cwp8;iR;+)5b!I~$N`Md^Q#rBbqwCbb>OHG=q~ z24_FBp9vU=T(_752zkGSD~3~BwA`43Iv25;Z~mK}xSx(qyyRkkkg!KxBhj`wPW6K> z`XLW}mBiYT4Dvs~Kko~s-yY(OiO1>EMSRcjtimQRzV!jB+0A5fjbXRRkXI%`fbW&Z zLq;SPK^UQ5kP=&rh!89NosG{)N`H`O5o3b#yLSqu&q0!AG36nlouD;@vn9FT3YH1Fa zC<7(N-Hn9YM}}uj&Sq6%R89slGT6LKgGg+ABobX5iQ<#zVDBTbjyWVXMADZi(=C$s zEjdYWKs`*n3rbeicK6p`OiMWIMAa}_Q_S9q+vwK&X_Vxo(qN3FEGAzSgee zbcLaPC|OD8rg4w=SeXk|aw{W^wF7V6Q6qs`g!MUwOP*V|bMq2y}7+dltoqN6<1}4qcRZ09@f&z4I^;zSYQZ zP=%|~*%wR@&ZlAp{eDWnk9=aV`3mh-F6*7^SEoVS*f6q?kSxVT*h)AcL zb@$Vn1q*gY?Yac_yJV&T41&vOo>n$J+uRv&$^?wJX@PAiZ=fYsQ&e&l`z% z+#?c>Y-FKy@==kz1=k;uTuja=#j~7{9iG*qCrj4?e$Wn-M)O&m?XlUl3B{9NeQLDx zw`2Ij%;4GkSlEzislL{X488F_FS|2`n^Vf&yMcZi31XP86EG6!U7;uDc9Gcep3F-x zip2UnxP*o1ybUECiaBm~vWZbkx+$lUhU=XpQCBmZ=aJsK!XAJETjD*V&Z_bO-JA4G zY4n(L%+h#Z{6;vrRvf!Bvse9z@!p3y>+bf&{cI$TLos6^`ZZ=L+bPpHjF+NI!#5D2SQ*_mTLnXVEiaDWV!-uUhpm0Dh#<}UH{HaGEUA*gJ*gl% zXGpvtqwq~BKyf-olX3iIr2A%FQXR?r@|t6l7gU#wG1>C18ECcD-g-iD^!>tUbrB~u z-xi44cRYRPUPtjT-sgViE#`DdUuO`u21XFwy0Rvd%B_zx=yjJTyKu#JV0r9#Tl5sg zIajM-$!ALn3(Eh17V(qgR0O@4#KqfvmLa;@HH@2;)xy!DJap6A%>Zq}pY$ zh4vHKJ`u|aH)1_K_m>$#x6}@s~*I{KRZfr38rzi?h4OmcK6U7d`?DDYyhVu2C$k) z+E3nGpEl_jgDv&_0N!TdfUbMoF1^2x~; zrqnC4b|HPiwFzTPW1-B&M#1jrWewR%_y>-%Vo7`2I6N)NR6r6+7Jyg%v4J<(g?D?S z@H~5bk_UNzVY+`1Q-gvx4uJn72IXQ4dreP^Yo7pYOIIv(=|`sfe)+b_o~8;%agxNi z>ypMF9PjntN&R<9_7C~0N58sn?I#QLD!1Ra?@02<>-XmmO}}#n*naOfRcdGX^1%)) zn2;)pBucoUYeVYndsiq^ZHGI0SZKw`4&DCnV!#V~2ul>Q_Z}Rs@iHr~M_V|vTsSR~ zZ~_cbKGSIR80(kTfZhW8ILtN<*i4A8awx7Np0Y{jZ<(U+Xvx=i#jmwkAas3S> zXs_)p%ZyGgGvfcKuODOLHV@BOsOAI1uYdHn6ke9B0^gnIW?~VVpMwSZs`g&tXYZf? zW28Y2$~g*nS^z2bVaW4R-biuuz#vjqKb1S!W+d#5IDJg5?uTB%kt&Cu{R-E*0 z4Ml?G>(awBgf+>9)26%E?Gt5Y7sqnyNCgbvs`Rm<=(?hsKbjY%uOpu`!=Cl=mkh#~ z>gGjMz3E-SA#vVZt!-91oDMMBbf~FRBsy3j1Gx*C#nH>Ng{m7qczPT9+0yjr5x)O< zSG=UA?|r$KHk@_I%%h>FwN>~5k53q*`;j_XPxk^&x*omEta`v z8=sh{MeMD@58+FO6!17VDSMnp_$I@T%5^2jM&iA{rDdAaMM9IF-5{cI|H$1b!mo4b zBgdKok{7<3ir0RS?Q(V#-aK z^Z6~bc!symHh!u013Vae%=~KFI8Bq7K_YFXxo?Gw?6mCA|D4S0kK&kY zmI)Be!RrCboGT!%vU>VgO0e`Z#@q>NnaI~`4npO)%AI=s4gH((-5OtzxaMa0f7g2M zztG5Ry&K~%Kr@U&3tVu5H#6}ZvJC1c`QAGM)G*W`aC+z3iIyLg%S#7{rs4g^W?p|G z*P!_HoESTNg-rotsp&4GAzUpNom={$a_H}jLFn?5dDDiF>awF`Aph2v95|*ZJ}M`j zpnf&^>4j(adQZvqi7e`R`h@&y<{Mh-y7LD;-HHIl7-GE0D1g2>PvGHynvsLhPu^R~ zp_9^q5=c@1b2G1JXe9}V#13EP6Yv=-;@%`TuaqMZbj4lI#_(qaq&IT;H%)+!&iDb#@J!+O;TUwFSbXboB6y78(r_v)|l2U zd{0EOvm>2miBE~8VJkAVy?GtH*$ekK_v8r8f3xvN+`NOyBFj0(vU$cQz zTsw|E%8H+s5lt|Qg7V%O<|d#wsY$+0{4~5roh`|9(ulaApubU%yl+a57o784fD>P{ ziR`hXbRUZ52WB-+x$QCTb0IuI2=lEu8JVP4#8yq(h+MtUfY( z02%&{$Z)Q)AippmOJ8>lQSl7;`GRSbn1mlH97RUrr$$-2q7kly_AwVpN{DiGh{(6k z&S6q)sQiH)gW6^2Yo|-+vX9Y`$(L*I-{V_LK93VN^`xGQ zt!XZ4;VA_EG}dV!!F!bm!i9IO;0aip#EuHjt|smTjd|R`UqVjFcOP4cu>{O|NGB*4h3SX}UXPUN-20?M$c5jnqj#>nG#9660q4UEy0ORiJ`K>#s&S z;E7^}o~yCaEIlo`)RSGx0pB$djuXZEJg}T{_nsVQM>()!19Ff|^2Dd|S#brWbdBP# z#1qaz@ztbw2WYhCx6v6X1PAv~9`K;2C00>v!mQS^h8~aIcpOVzc?u9;} z>U@vebw}hCkQu?*Nh8L6Efx*2=T@Ds|1KV}AZD4ghnWnVkDtvk7`n0DXK)hDJHX;^ zsWIbA2e{Ta^I;C>CRW<(-HuW%Vi9-bpreW-G7Yhpqazwe&7lh^JW%_#8|SQXHqb}y zynr{Qo|_IY4Sk8rip)6fuQflWF!{H!;rV|- z9|LnI`tsjuAioc<2X;JvzIK>A`Z9J&UzKqgX4lt~-|K4d=jmI9&IIMRNIH}%=szPr zFgNoPdBVTGY3V8%_p|-)C%R|6=!h*~naROYbk9sC_cK}lSr{;x@T1-DYz;Jy-yq@lzO)sdG>+eO z#8E-~-ZDJW4ePtX?+GdD?(uWyJ6~!R;zqJPorO}cXbbW-LIZ?+-q4Jav4--qIjH?F zL52s}!nz0F)X8MooyT9oSMggb1el-|+@(n_wef926Q@7!Z3eYT)9favoh82pl%s)Su>gwss-<1WB-(NGaR`;6>4N@kKp>6M z`=w-Q=`9x6RC?dI?*EM5=UvKa(*>9m(c6w&BaK)Wg3NO4y>v*3%y6}h4`#V@=L`%9@==NE9 z8M>K21d-LG`fJxNn{SD6Qkj1xD5E<({)jjYbf zu~m*TRcc=hbPvBx-{i;dU>q>cqN6s;91};_6^fx2MrRksdid#fVGXUy7@?)tc80e9{t6xR{*L77g(3*L@i4P?}%aau4b~$ zzc%VYILvI!CSi=8Xr+iA=$&GFrv;OB;F0i~l%?p>`V5~&*mRS=AyHPE9qHfat5?#~ zN;&7=5{+C?WLVxTJuw%c@P}>mqUeU&m7cw_`^Q>QfkP4XZ$`5*=DE(tTv6!W%28p~ zVYv+;H!WQ8ws_0$p8WoV-%cl4AT6@~$W!v7=Lpv?L9TZZ#>u$nCgCpg8@T7zWPRwCZTBaw?z(TnC*lTI+XOc5%nqQm0^|dPkJ^aZDnsr`ucBl!8%jt;|Wsk0Xb>ZMQKGIb$-O z#zxMcZe^W`tXt$X6g4Xj4C*pejrm+`|1whjsygw&1PZ;3=U>rL9B<=1B0tKfdyd7d zJJ&$VSoX6xAK!%z*)^_r-jND2xcMHd3ELRAjHmJy9EoQy+1L$a&wUY+J*t<%0g9k_ z$-l7kiQf#|J!E}K&UU_(nU2;mb$34Gr&-&;Sj>0U6Kon|!IGr?-iwXZt{u*nMMu`L z>!ibp&2;C|caE`R?sSNCRQB&m9!WiAIa4@u8xuQGOLW$9^Y1!ysiT%0x=bFobXXze zxaA)@Zg~#rJq9Li>zuwNs4jR~`>@8z)$>L6IfcG9#=3^Up>&e75tHT;xrU!fBJcAo zB196On_x6o1n%V%*ck$?zcb{Skqf&;ANV|jq|7Jkc-DOHUOm6=#?8>$;M`_G-z}^& zrhjg-fUzYIIKTFJmw%DyC$*0TWR^nDQHGwwp=a_T;vlf$;HRzz{5~jrTO|tRVOPfQ zG-sPs#>#dBKa*ttok8Wvwxqz4-91&V2cU;d$rZZ)!^U9kN0v^}{ivS3eRR>i1#Yg` zk+|H5#?Eh3=poT?$Mi}28>;pW5VS(a6hGzulP^n(oqkCIdZZBW()a)Yjmzy^Xlz<; z8;D1Oa$BM2*8|MQ|7i9t=ZYF%Ovqt|&0z-NgWN-H>|vVoBs$xsgCrkuDu(0`>sn_z zQ{@OP|Ht#w^4~egM3CkrHv1}e@8M^t(|m5p^H>8G7Q-?M?Ek=3a`Z!gA1JeB!6wJF zO2$#*#bb82!3~a-{1}eDgc=lVn$IoCS7C3oVTs>buXKuJYF&871j(tI_o=tx`a(=wRENF)-3(+2p zvZEAbKtCMRsdxgC0ytAd1ke+_*rQXvGV9-Kgk9x@w1SGmdnf+NuOz=JmX;1+yCG6A zBelQ6@au<{B=S_(j%(%h#z#cTS1N_~i|C$RA#S|INSSe+r{=uv_#-{g;l-H-1>}jAMJ|=M^^4>lqb+wH zFyYYDzP0ZeKDzLFrouZW2=Ap-{Z%m{w&5&v zk3=fG>{NJn2jO+F@Gf-ey(|^pa~59qF5w*?gje$~Bk#*xcwJKAjcF7fQ<0!NHo+91 z-m5J<55M=XOrf`pg_o6zABr7>_f!yGR}0VM-;`8%Z{pnG--uLr_>UmG(}VDqJd>*b zsqikh@Cs7lHPF93g79vz@J@93_cewhpnv;Xcn$QgfxgUwDL(&tS$M~}@NQ0p_ko7g z?(}7B5Z=nC4ZZzbc>Pl0O||eE=t~3nb`HY3-NHN6g}3%^DfAv@;WdzN1ASfqQ+#?0 zExax+y!%t(Eyw&o@2>Hi7=-upQ-;O|?f!W;Hy z@LLU2e0ndi@YcHUsxC|6-!{z6ZsmJ-5MBoh?*|v&WvTFHD|KjOA4-EF>UBobFJh2$S`%|(q;U#ajDSjGFIrB z{gdPDLeXIs%jA5orNOa`2+q!bXi@uvl?QN~d-cp|Z_SUKZSc!XhIWB3>;m2H8-#It zZ~EfJE5dj3TIc8_zPTy*9*V8p4ZdfesS6bekVR_frpGtlJeB`UiUl}VX6JAz!@C!UTB@Y$}y<3b4-k7mu}kOV;Rv(?)m%^wZ>9jdV(q z{a>m9zck6TGXtIDx3t%itIm5SJ5R>%>c6kw|1$O8ok!}Ie&XDQVk8?G{o_1x^h+Ij zm|XJ}9z;4`nTi^!g;yeNnXLhLuF;gE)ec#f2*T3g7lB zSAMh4MicioOKx0>Urc#8vaFC*6h5~FJbnMB{J%T+h&PMs^I0fd9-dJ}OQzM~887ie z2QY5CkeY>M^#_M5N=%zN=L@DQcJ-eRhqW-J*M%$6_+_rI*9&upkQObziA7&-OUwIU zTDQVjamN-%7k6sG+x>XkOmExiZ3b^Mc+36!wc+@q2J;pVX%~s_$F*d&Ec8=^JD0m} zG}zy`9S-pI@cKyiuX)itd}A#yhI6WgicYWUqVCIzq1Q#8aRcUU_h1KuBvXqs=^)j@ znbg{%yy}vpVxu0Srxp*W1I-b6R^A zR0b5jjTWUbiDMOLX?VstKsQ=8ND%(TP3c>>qLi+s zbKM%%xv#?UQKkZV*DXcwDA9H6G1RWG8~P{ROXTv#$Oo=A;OBlWKf||<7ti47n=VVa zaZuMA)F%$u?)wYpO^htbx>_6k4?jINRuCjWFXZUKpFo zW%#Nq!xpYMo}Vn6CZ4Awt=GneJcKk+Q>EzUeOp?WxPp?Ty|d#VeE#hCAF96m@qetI zf>QD2ak1o4JFjVZ44~5(vM6lRwxSUm5WaO^Di}M^CPf|}gl|oEOEM_2@~GS9%HvI= z;R~ygPkrL`tzxJaBtFM+noWg7IyJd@%a3nj9V?C=Rmo7s`nV^qY7>uANv8kEbAj># zu;doH>ftUPoHdwJ#E>ZA!OF<_)qSN4HURIRKaByquv^E9B>ZKiwTXm5Lh>o3|28}I zpKbaV;`{lCzXj1wJ025z(1(Y=2?$w7;Y4d&g@s)=*mdKogBiw&a~atw3p#c^Cs4nY zSN}TIKXSMAdwKQGRs9`X8in7*k6H_~iPI*s`Agx(TJ2mfUY+N9Bm%p_JbR#GE_nY&JT}b`~vnsAas*Aa}{`jB~ugx$apZmWwa9 zCxQyJ7E5-I&2#Lj4~N;q!g}Ec!wFkSq2>)3H8VCSwiNs(H=4yzXNR_kGOr@fW^lb(wUY(y$-xa>i8{pf` z!}lnQZ@G(a%%?iZU$gx;#@fn=aP{qZcG6U4a?gWr#v`s7pXtO-gD*-3cJGpnk89KVv0Hol1xn`P+o=DU{4@BjJat$2{(_1H@!iYA_dtv9E3K?PPxYy8 z8sFX8+k=z%HfnDdZ2;e1yTo^J1AH%{w&CwJal_w{F1{c5P?Go>`{l-?Mi+ehwNpG= zd`oIP%0hl>Jo@Gc`fV7GZm$FXt55Oxt$1`ffEWTTT(o-oX#I(JbocT{iFPS};j}aAd(dMgT3MBffn%xGF))vA2)b|1a`Kn|3LG;j7U^j#OeTCWv-#If3zT5V&im~sXz<0OfYXREj;@c>H z$JK)GlHy(A`y(O>;@jNAcTbD&11`Ro`&9oQ@V9dk-$wn{?6u(Ab(i=a-2mT_)HeLR zkd;Wy7hHVb^r1A3?{4`!mO-#9{$>c@tB381zvZY@kiSn*+u-~1jRxNzLslQ!q~aTl zm$FpTi^qPcH1Sy9o#U~~5+JkcL=PFoV<*`@zI6L|+Q)R~^%}Fb(6oO%oNj~bH6%8r z`o{-~psS&O{Kf&LQ+$+UAKwHJVtUd=siTk5pRkX+jpt^eq^`Ugjps%SpBgZ2+CF}Y z$b<6wMRdvDG_!~ga}gioQ`NM7?bhDxk;J#r@$k$V@a?cme7iNkcd&==sTGFN+ge!t zdd`Q^G`_nX52vG~yBZH$R)g;akzMh30(LLR-#e&n`1^Rd!S@Ll-)%k=gRlF2N~L+) zW9sG-fo!J&jFgWaIG4c+xD#j8>5hQaTE%;mX^2)|FVlsl8_mKvhwJ7$vxoW%ypiNd zhUn;Adz2%OVy&-BU+l8%S!Q3O^ccN;?s&cBy~id~c7EUf({rC@F0H4YH| z_Z)a0t>*{rIx-4(?G5Q1_lb??cu8m-zqP8+N8SZeIMu>J@8=fP^;5bn$GjorQhMg>+iyaV>8@hk+-8{sB=Ed=B9}Oc1`rS<{ZX3M|j0TUzCARH;d41 z=mrRVyUHT8ZHVCrH)#qZ0O|y&f2m|<$uZ(kXQVrzS;?0i%Igfc0{|DX2O%;&I=IJ@ zx3!L!=Mc}IL=Vn4;Opkfm(f4)L*1$8@$(@;f}j7Dbq?_JHG`GM&%LQtb)-fAJuxz# z{}&hi0aR?r&wF{-G(W$-H^|Sksq6ByyOC{xpP6{cBtJK%!_Rh*0|_@y2chm3p}rQO z_>Y#K&v9G^4QrC0W<9$zYAAjJY7C%~yd=Lje-MzICq=_uoIl~7i)l%IU7_0W>orgd z@=J$wtjbIO*3hD=w?*%EF^Zcsf3WDarD8*VjpJR@{5p|^eWw!$yKHJ^MCP+;prfx5 zz@|P{?LJ7O`f8yQ3!NuC%ol&-eOg&O#=3Y^9H)J-bGSjojyJfmffmDQA#O;k${;}c z^857x`c*FaHI4)NQVF;K{j{hWVClbEa)JJpF8x$g&ibq2bcP`O)%fR~M?WJi%Q+UC z#})LU+o&`ptF*KG5rOl0P1_+15a?}(l(Q1op%B_9u&Y{gXZqu}I38N0C3=Q&yj@hi z$2)c5k8>Gg3Cz!fvha1HW;iFAGD?kJ+=>^56N4!m3=JM9hS1uq+da&c?@m;-;s-@! zfhDrLfuG;XCGwC$%Um;_L;sq}7sk!8o4mfI=dn~*6#cx{ruut&rn5n8^T4j=W6{lO zv=hcnt-9cXvU+UxVwWa}4k3^$j`X@wlJ?Awe3oI~{e=0R2jd?#1O8om1mxSx&w zI1EW}aR_c+(s~_?{aV(pQh}7B6{cNafpKQ?czEHcUhkbIaX{-PK-$Y%blNEro1E>8 z#P3T3&Xxs^g{~7TIo4Ww44YbK@K6}OlZ<>>khT((d-l@Edvbx4#ee7S(`#Sr#qZ&7 zcerO;YLo5(x~?j+Y#wFV{5Z7=-!dD?SoA9KAqcIE%3xdPWYSN=`)z#v@a_AdT3`3= z`-ec&xj?17(EGY;DRebt$WFHT8uhXk6OYcEfoi zLbCH;q=RrS1pc7`61ocEYppXmp0aaYWHsC?1m4y2S=;I2F)=n4>LUEkF6&|o;3FFU?F_!1$>esw1i*Rw3LY1bkrXKPwqeBsktIP$2f-GIU+FP0^|0poN(n0 zhN{ij5H8g@0-7)(Eplofu;ZZgAzRP_dv6M))AvJmH`rEni6wi1=#A$e`mOn%38w~; z&ER~uLE^%CSu3A^br#@Ucw+!2j-(v4gr;lAo|are&Kk4Cxm57m%l_SSf@}X+GY#55 zth#LilAirT51O)n|Iw0=wSV7;fKFZb<6H)C*Zv(6Pz_`M&SmI%_HVM)V=ulidi#a; zd81GcgPKvH>MF~i?goB-EB%2thYSeXzZxp~_V46I?cW91zsKKfX#ZF`H1^Lmcr|ir zVBXs|W!AplH_@|q$C?D#++fEKWKokZ5I?cG`Q60mo7lnPwX-kk{r4eZ^++P^+UY>0*4r$N;OOJMnOGq9F? zW%Z^m&yd!@-n~ev(^0fx?@TJ^JF@+5KBuuR*0P*$Y{1kkB{766`{6Oot*Nmi&Jd2V zP*468#jfY)_|eV;2)EuhT*0_bvzM=ARmsm{k&2OimNSs?VCFg)EBE}XQoCMIomgmw z!0IXob7`v;;TgEU(Y&86IObl#PC$=8lm&+l0KG>qC$Ob{4P?*jH$am10@zg{WgVxhCBST)ho-d2hh z&%fYH{$Qu3A8W{Opl^dHb)FQBjr!Lr)&m{I`=BlV`hyU0hm7&BttexF$iMEm#v<9! zzuv0->OzZO6?Lkvv-n+%P{6O|3ya_P$L!=^$%pa$>2#K%>r2|2lpS*8>ci8sBbxHWCGdg3?Sl@6_MEG=$np$%G=|G87t&2SN>a1@V7numGkY);=|OAa=vHt>zZeL zm}#YJt$X_nqviX{8IbzR)sSJJ#{1kY{>JmSejf0bdx3)WhhrM}OJ|&MC>EE}Glj>E z3XP(!C%qOa*_Ia=M_C54U~B#U;ij$i`y)(1rQfc%ALO?@gqB{D-(_#{zI0%0ypt8| zt&P{lXkhItf!M~33o}2#e~V3Z%~JexH8!fDfBps`H|3wVFjceuIq{ho)@cfVoc9O$ z{`m}e>Zz9T&+9?m_0La?PpX#hPsVCrJkdw=g)XE*RaC5s_lX+#`IqVsdVf>zpnv|E zihssGztX@zzr=(*=%2f4G&SO%f4|c6&-cjOGaoqwUHFs!dFS|cN`(mb)?@aAlz{&_ zNL<;q|2hhV3)Kbir4SEYA65I-t2$V6~(P7u8Lc}&b55)@Tui%kE5yKuRWAe zN5i0QDMA@VW8=Tv`xo3{oU8u8pg4BK%R(eJ{(N~T=W{_4U39ETVgv7_tI)EXN9DqF zYQuP^$JLv>)4Tc+3#}DAa~xR+sYZopr8>y5@=og@&(Um;{O?qp3e=r7e@9qiX*s<0b> z_3RB&5KrHp2Lsn%y>W#EW>*iI@>fU*U6a51aZf{j1AlcJrOvP5)wsX9ne`&)a}0;;ubKtWHvZ~T1nK&#lUyVl`m6TB z?{+aC{TF_BS^Qo_DB#z@#jgkW?K~gMWCzIcaUo=v&&P5yjw5@iBsolEU=0iT3sGGD~vizDZ4 zPYcc$d-A%WKPpDan({{@nB7@_bmqrmP^YyYA@+Wv#;%tQx-_ZrcD)Q}u0PuAGOOPy z^Ti$7Cq5JQB7mhdu6oQ0;CBEcfUooiz21C8&>wv@?oaunm!EIokGgJ?sbsy(oiAP> zKM&>&=ZlvD->#3fBtVfrx(5vZq(2I*kDbBw?WcRQ5M7y^TO2#+Lx3x)$kfa+Q(rO| z;pAG!7_LBJW$8zVjhxHL8^_cE>xNy(O)oj9IM(Mcl=P}D&ik$82>eK{7m*j9m$bhu zmh^>PRQ{Q+Oy$x~i`X?7NAFkiitp3pICoK{$Xo#$u1L_sPX0p|3!aZpD&kWd;KIE( zavkpo!MrO#OZWMLhxuj~COKUBH>;Ig1Q&K*KO80EYnI`}>1HSpe-uaSokw|{y!U1S z0{)&`KAbbb#k!wsP=gOHkq%{4JtMl~eQvOtuvis09Hxr%g4Vt8Ttj;S{F0xzP1Ra? z@K|rdEF4O&$$ax7K7U#Jc=FlUf8kYO{nF0y#It4%%(L$wfe! z8;B>$)xx*)X8jL}8_b7SBNL|(v|vaT4XU2D+?ep8n37-fK7SY&-ydoi(!kz7LaEb2 zG&MRu>B6Fp^Iy!7YwvIVYmx+G?~A(o_WoQK*@pK1c;WY$#KHQX@SAP%n+N~Fud9pS zAn^NN+WQs&bm|nTHfir~P-qvh_cxHo-K4!A;+ap+-d_aSRdX!bdswtD!*htOGhl!* z#h$%iW9%#T-e7g6iJz^#{{spewfC>OCRzHmjA&vfdq0`w^W>kEQI7oQ<9|W$%^sYwi7|izL@hTNfgf6Ge@+_wNQ&$JqNFQ0?0L zZWmiUPqFvMv)Srg3VYF;A1*=w3#izY>6L{Fg z`rtTbrpS(jIOIN6EdDdEL;CUt>pUPvj;bTRz_vu)j4VO zv-|bIE?S21wpsz#dMxK;XQ%SN1Ru3L4nM_Uz$0y~GCMUm8>~ zU`60XQW)aj`TRj|79V6tYhVv=qty8oJR7%%H?zLtd~U;bt=FuT>|7FzJxnlcKv?TF zC%MQrw1-!&qKn(bSmIyd2fo7ZRX7iR9bEi+fL~+wu<`v6FaCWASl048|0{aa)Ha@N}Rc(Cy z4CZSmdwB;fti6;y46Nt50sREOJk3TTf&G*-DBG32JoZ3qF9-dcVlOkT2~M$>hogi| z*~>K8W9?<$TrsHA`}h~9i>R^o@{x0ss%7luk#y|Z%U@K+I7qRV1AhQO9-Ku0FH@n4 z2wVdA3cv{94gEpyzXXi*%IwGP-Lf}sO%w5m%?CQJ5vG#RNhLT;_Rq=J_`0G%uQ~36# z7*YfFW;lI#gSCnH>(Fi~_NKX7q}ZGHc+BT_oKKf1G3@!FP86xHJ0z^ zb*08m>p2Hd>QvBJ_NLMK05UP_J2(6^18x$R&pI2V@E3hGE9h%y1$$~lh}5%M$&W1n zm19Arhy=%Q*Uek2FR+k^yRYNRN}7HD;PasNKQ1FR_8GF%A}@)HWZ{|XZXL-1-c zg#A>GAoZaAVL&R5PKYpJ7@>yD6h;@t209aTpgTkG^s$A?)s$!^5w6Hlcm4BEqbOW)9`O|Q#*cyeyig(U3d46T zESuVkvZ<5}tpM0H{4gs`ksIcTT`7|uGq0E}RDoU?T@bD~+O*qL@?lZzt(-D(0G5sb zdxJU8WkP*~^9nxRmu7pXN|f_Ru8kbi;cwg5Jb<3$m3J$8`zRop*xBt<3H z(M?h8)tp82?tF6qTH#LI&ZUwS%lU41Y&}EV`OZ_u6%F8`*@afh%iFo4In?&K?krC< z|Jc(LO;*^5ri!9)<#ljC_M48|DwoNAcot@>>@!JW72 zccnlAK`VbAlxGAW|lMFZ7*I-?Hl1ch+&( z{mp3C)Dd=LtY@am);kkWMR~ocwICk*ffm}H_=u;8Efx&!$+rSQW8ng}sp#F(lMR=I ziBaBXU<|S?K2x$CXw*0Z&}KY1WB-!m`e-n_lA8Cq2{aT8kegH+`iYHJDi^q6mfB~~h%8zImMHkwVA_=~H zZnFelIvEd0Py6miaN%r~qn1vMu#GP?;iIQEtM;IEbnuA8b=yom8Ob!YtG3T(%&}rAsx?4g^f^>DqW{I(xa-dFNUq|A9prua1<6Geg)1xJ z9g1=B>BbiJ;ay3oi^OPW^}b0Y9;cN>VuY`M)};N%III8?dqbo_;!2CeW`J9*>*FJF zIdwo{9!25GJ7Jn@Z5{<5=gL68U8rdL^^BXfHlv-s4f~zc-0gQYT!5(Qe!tK1g5FM7 zZ+FhIZ0G>silrs3WKAmfOk(hiF!;$RyDq{FSDY^WH{U>MXzyl8nS<>AwWW)}fyO$8 z{y5E}{3lAl;4@zM82pP$J_a*?_j&LiVQ^Uhga4rQ7K7y27w^Y8y&GasgFYMHU#IaE z3r+PgIGz_^aH_$eT0AI}Df~CDhgPg}`OrFvh1OP_Rr@40U;=~2Vlh5N1I9c5#zLp? zp#xP77K8W!7Qc=1_|S?MVDTX@Sj6+O7{Kc!78P5>i&t~1K>@vR&IJoEDdIe8S}Z2J zSa6fW-x&Jcjhpbco!Y5mtsVBzk635|9olWDG`;A5#EHD{C%@r}@w^>cvC3sba}Zd- z2dGT|kl4CeW3>!q1nIGn1ZJdgDli+#B#40cnb%d4;VjtO&7w^#G))R*!YIFrawm}m z5hiwe+5#FaKy59c))vrtE}-juK+_DMG-o+)5+7_bCT9pN#4awSH9zn3w{dE>~J5g#jtrDF*IQ7nWUM3dP742l#&ewA> z*3LYWfY5U{ z&SG?->Xvu*FsiV`R*3E3p>^9ssA0N)$n8n`BRUs4Z_>`Cb59HPb@4Ku-&RnM@Sz?F zRO%UgZ{n>X;(bQHU58clwhS{O*S@HeiTP&?!%z&sRjmI_T6vv~mdB%m0pIhtobk@G z1Ei%k*!{v}pYZ~%TWHxaTRoAN&FqFibT(zK{*}`eQNb~4j-xBk zAUG3jy@>A&-y}5{1UdVQ)r$D$@kMB3jaG##a;-JG%3#C1GF-WZBKH=ko)i}MKd2vt z;mX!@tRP*X3p~(g6r4w4wx<8Gg?r(alR^9;3ZtTzN9-{9^jERg%FFQg3^0yJNn}+l zf6e3YknA$m10^J7kZzNFrH9*^qJ z1Qbsg>%2;@fYUNS2+Uu~&(UelOiIGCWn8`PShe~}~;FFAs4>zp~z zNAXau9;(ctIk*+r9@^@OtB*h|Es;(HFV2tL6V4BF#c;eH`XeZ#)_r+0Qj)*0Iy{j@ zG-I%Sa?6r(Zp|B6<&IW+TcHtX@3}N^rg!kPx9n#Z_BXsTuyah;^-fIT0ilPvDU&>W zr;9OW{9-z4<8ny{3>5-Vkc*~gF*f=G0Q*Un`6Nc8P940^ z9BlKqnuA>dG_5}NB0E~EkKuA7AzuNPD7fUw*QBGYoQ(n|ZZ`DGbydBHD0)MnY;`GP zbF*_gR-k{?Q1x(^Ff+aHmE-~!E z-j{)`d2^cg<~80JU8p+J_Op-e=Supacjp$js~ppSHQWcxUK8Ika&G6BdT&LM{-*QS zVsW9tLV-bhz!*+f7`ph>jRFH>Pag+zfWF7Xmw5iB7ocx%x6>DCWFcl6i1p4Dlq5bO zw4p;o$l1Iw5}Ze<5U$LE9A{idsFYLG6H=H_gcJ_8nMo+?n!11G=lj6VSWzq5`~0h@)*^6m;hel z&MSJj!F_m257rtjbner`Pll$|z*+u0a883P69$M^Yn+Kx5wA|LM3mYd-&f7rwjPgu z`bj;laf$?QuB^aS;#LPdr8RmtP~XT}s+QsWOg(99hP6t^;3(BcFWW~4+s9b-aT9$c zHZcGV%M&~qmLFlP57T|CKyJfjVr@MC2pUR(hEZF(`XjxGz0O(Mp2D|fIwSZc)+`bt z{1v~7F-}><(Z$Zu6k6GLG;}G9u6_<=`cccQom5_leyiPRp?86Kkj~vtEu(Xp23}C- zj-;k&>||*?!lL?jfqkNl*WZ)17Hm4MJMk>CRv$UQ@=f(21YVeG-Vew4w4x|6+0B10xiO+9QWFhYljrGSvs|zs^iv`Gh!N8o=Wf+lEo)`cR+c>joKvY_ zwsCc_aGf)OD(Z1>+v7F1$AzltWO&ph9EiVGkmmt8Tp8zI=S&QjF^3=G`~{+q1<}KT zs1S&M`XHVHg!*ePl*&OVkUT~lzVm)eKTY8M{g}4^#O9Ck^J@lcGP%oq#~s*Q_Pdnt z*nEhBJA{XFII9KR483&DtrRe-H(V@dcM45zr}X*;UEZz+~}XL-vM;8XetrA`YP zH@@H7h1tIIU&cCUYrnU30PU{gL;@@7?)RRnGIvwXn@K z-D{o_tPE!+y;zSo1&`*<6Yc)&D&S}fRXt_Ull|@H(Qk%M+i)rk-Se7!|I4&-aXdgR zKhC73m$zTzw;D<-ZzFhWvLo$?WjOZ-+r+&#Ci~tTTu;?kG&9R-iFCz^t4N*;=D%Rk zKvS`=e?IPP^rWf%+^i+=#hj13^q=Bar>##Sixa`e-Op`VnACW)pL-=7boX<+sjT6C z?!)r{a4D4##191sf+QIUqLqQ4p8&oD(J~a=&wY%F{(kN*&d2>du$QYH++HLH2lHR9 z)_4N*hWU=y4)XSC_m&$V-|=ZM+{Hd^fa8sv-`UDsGie_lY+=@Jyz{c3)0bx>n%J+E z|AB|zdD)R_;oAx2hwKAC8tm5|&wjhp0j^PeGYzW9a}-|(TfW}@gyrjt&8e}Iy|{`} z=QHq>y|9dS_h)U&<~{(_a?}bIiJSp|Ak>`Ef({swJ(<9``R>hRc6qXM))FDWu9sPG zpiehfb1vzf2|@%dsy@mPHp%=M^zE&xY8lcl0%QeORkMu$@RIpUE;TEvD~t^Ybrpw9 zB0pvaUMWLzk>qGgcrK>Lw;rs_|{#pX9$s$;|tm{oB{f z;gb6M4gI+OZJ+$4?lzIn{~fhm|JF^leZ7TQLH}`gH6&ah=EOo@4}g7_TMBOx-{Scz zAGPeOPc!Umkk9lkrB04y&}e?A;vXl36?OgFg~0cQobhj$Qs(-%X)1G#R1m*SoDp$q zAO`&U2|seAB!N}19{dVj{LTZvrv2M=qhO_-IC^%#^!?@9e8*Oh_D*&hT|8XBL+8$Z z#IG@K=BJmAQ*OUa>;DH8C5*|U7_DJt1S!am-UCA86$4};T999=(p<+*T5Is z;oyL0do0<+dbVn{^St3JUK{sZnYYg&fA%_viUp5+nBvdIWAGaKvs=)MrueqSS*(Z*T8{Fam;A+jeLeqntlRGF#_ThdOoRaq8tv`0iA9()l zuk_^&wkG`B*VaaO{%wL<_;y10=E0u^{_XC!;BzmyNb$2YsES!WUu60G649Xeycluq z?B8yq)cF-W8@Cs&S^siAw_&{E;m40nl3?t`ztBwAUYz72+c5ue)0=d0J6+JeweXv5 z@q6_l5F`K5#jgkWHLw?4`_R{z2EM`Docmq^@$pqXjY+t|nu7;ia}Z+`X)N6F9@&jM z=QEbBv-V*W6->BCo`H371!7Fe`8TePMCQ*66;n`<9x|6}eS*B#F;1im%oq>WF1%&hTD!2q1SA2wAo=_rvu~{#14=&;$r{_BB4F{&?+DJpYY{jvQdJ=8q z>Z?aG??vS;a@ZJI?Oa4xCca^zC0y}&GwqD<5rS{|f%Ni^(cXsk?_xBxn|A2}*S}9| zicB2FReSy}P^FqhFYhTmWOxO?%|n(X_NzFSU&y?ey}h&eQxuz&tF66h(Bvh(O#wVN z*(2Ls4_BxblJf1q$QA>MwxFg=GWdQqvk{}HVz z3s*d;_xe%;*=|b50ccio2g#X_j(O=g*NP7EoO=tVQjq!^K%p95_$d*u+KxXz8e@HstEZjm|Wimx36*v*N;ibsT1ePT*+a>UCY&n?q#}1Ha)>r)`nOrKH z{jakuN@w^e9mos2OnEWC$WzD>29=%tUL(%ZEy-T5r;_b8*YA~m1vKAzz<4LtceQ1! zC9#U`R5tlt5*LhE35|B&Y#-BC{%l?-Bf+eoRUFStHz8pi88TWGRV3X4#d6x4cyeks z(YsY~39dMLQFh{Q)YCX~p4+^mK5;cq*3T%OzL!^0?#gZkSZLW%n5L7ZsPR5Gvz>{> z{QhpCmf`%d$qc~0fdJYZdGg~)?S@3u#YWcl%)Y7o@=Y{%(qWKMmD1K)dOVO?V`pkT z=v3R)0k*3W)xC>;>@wV94-WZWyi5p3;96$37tc*x-P=?vfLLwO>@66#(}5Y8mAPoY z5PMMo_T?cEKl$^er6#=e=1Z+)nVByoj<)>^&k+{SN%t6*e8`znXWefeo`-mNu5lvj z<|FTU;fzs;y*Kalk?M@ZG2*@dJs)u*OZDg2`Vr2_!G32R*f2mV_0b~w9v)3_LD*)< z^04@s-%xtIu-F^1TW&pOmhrU;-H`&j&K?E4zs_E2_Q{_DZ7YA#b(*E?5exCxJAv5A zr|V=OT4p~69LwwWzW zzl+K4PRN4-_ksY=0Z8H#eg!;QWA{~^$f|lW-YTX&9$o8=SF?2P#ad0w$4y4|m+q(qNfIX3lRl_VT+aUs4PPv0WjK-^eF{81;e5?nh&Yd(i>jzEv!wCK` z+xgCfaNf-Od~68*Fqfo{-$V16XFE=8S<(}QGcd~g-{A3mc z7%<%b#xs<^cZ5rM1yLRg8zw#|icK3YUz%-wX?DPuUaLsO+{+iPXa}P3>R~_><>78P zubU*x#5?^Dx|Bl8)#BK&+@kVylJwiP(94P`A+d9soA!}g%qDwovL`)eIIZbUyJT9l zG}%OsTzz?WJlP4h_v~cvrzLwol|nSD_Hb@j$kxJ?3D2A{3<*71e{~87$m~MHsZ>O? zlcj1Ce@?1eQo22ZAxlrE(D)ar8lRP1CHox_@Lp2e7@mJ^48RFML!`D{nBJMtJhxvV;~UG6_p=KlT%G&odM{}ufp=}=QK5i@&jmB}Cw~?-Wtu))4+@NehJk_|hNlC{x{_OPFJ|7r zxdTCCdtA`=ve3r4&~5~pB9(_(53!E!ehjtRVel=;PgO-?N`x3ufp~=bpD0TFf9$<^ zeALzT|348%gMbqOHMTBeg%VUSQL$l(Bmz3ofGDWAUiaV}FMR||Gf*ZtEneX#;@B2NOgkbUW{rw)lKYkzDc;?>sIp>~p z?z#7#yS(pvoQVN=UJ&hl03|V;?g{rLPuc?Sxxt9Py#+kmm1wDM4r-+C~17#SAO3KG7%pMtk250~`_o8lm$vKFqSZL;{?Q z0G7(0q8uako1Cq1Hm8bAJ!!B0XkkBydZq)4^byv}V712=2;3t{;H5HXOHLYel645U zwxCnoda$GFJJ-Yabi-HPin&zX%QD(4sKzo{1ELsxMmJ^|>3fLC=M<|$*3j?{BQ3<7 zyAY;l?_(_ewJK;qf>?(rJimO^@k!rDT)Rns@N5-7reQkazw615De|%YYn$zg1oABw zxq&K^9k-kEVoQw!k$%USXXtJ1elQRnU7wgME4Ac&8WkDtAVq&@b!8A?fK>`b9D4z+ z_TAjDVysxcgd>h?evOL03l<*NY|FKUEaw7dDwgnNv%&12Lh-oBB?2w}Qjxi?mSV}y zB1>}gPf+T7IQBhUB$9F*-*Ij6A7Sxg2hoge1Nj7zY@54NHDZRtR}y*eyY;{G`qFz^ zgiGwNo{#=+yz}t@)#y*|uMQ!ma^szQIRF#dRlIYJHm*O0HHw@I;u5xo)xLVky}1AE zI;-?mUx2aGe#t1FI`={R-{YNsA&+KDcCcyESRNhllJwAq1H)??9lPn&DSwWc345!9m zLF;YjKw)0z(#SU(mAz8`0HGatI_<@rtl`lFSu9nY0+tzVD)nPnB{9Is{IY8ltJDNW z44qC9eCCxdk@8~wZFw0gua_xrxoNq)j7bHX6^ALP6KH&ffrnnrEIRb+?<{lF7JBtJ z2Maa+7eZhT7EafX24<9WWT2eNO(R3^p_p;Qz6vzX5?d{e*q}k5nN9>wZa9?dbGpT7 zL2ucvoc@p4&e=+NvH4_~cD~)&p!5)wAg$w$Ejfoa;R?4yX@fQQW~o$4Uc%<1JW4l= zffxW$&1f(zx*DdE#t+Uvs+PHuYA_#AiIAT%#08@*q39Hnou@=)X;75Szu@_p&ml9TBc zIUY>gzi6F6io(6pi`q9o}}vcMFUkQb&s_J4P`VB>u%oCi4NZs^beY$ z&Uu~TL5FC}SeIDLaHw3fm~liRD%_;{j{1K~k>i@br=Tu`GW_mQ$SI_q`1erXhksH2&B!G|eKHy5;lHa#N0q_&qCkR+i_?P=-!# zx{qVun*mSJ)d4E`BU|!{Mx#u+N{&f=M(xuRTrM@EHp$L47(`kJQ(y1bK1@2=> zXSk$|kj73H8s|P;lr6GMOU@WjoKig>$aAfUv;L*Ln~=;-Opk|ow5v!V(+uV)P&DdYXFBbAsd8&6+8+g$O3wRsI zW}su4b*|H$?5lUo;c4K8e?UVSW}!T!51o|s54DFN&Rq(M+;?np_kz7Ca)0xy&Az6l zS1wxiRF{$SG^;hNi)(q0!%h}V?<-_4r9yO27 zjGX|EJ0E)uX8F;l(&>#fJbeAJB(cjqkJIz)JT#Q_4?549VbEMgWP8HPRjA&#o2}kz zSOkMj=9f7Z5@?8E3Yn@=BR!S--7hI~7=zC$wWwijfm^%xmjZ#OyK^=AY4BpPzrik) z51xR4pT;6V%w3f3+TBjd-^tGxcWP4;|JPsV<04%+0Ug zgD=~E5opkRp!w0~n74S-{dSg$w6pC*$iOu#*sI$P=BJvg<{Qai+qCQkLC6 zIMU>`@uoD@@3NPp=I;aNk)TX$&QI+nZljY^|b=!$yq*W!mUyL?@^k z<^&r4?HBJW+;yCgR%4T#$}Y~HXymq=ab|VyKO!>rc)-Z0syf{0q6^g;{!Jm{R8@;H z$ehd5i3hinHD_dhU!dVjeytvzPH1s?wq4h$SFBFT`qx{swceOd9QrA?&)rb`4|>iE zHj2Z|BA<1hS15`RE|*3<*=(I9Evni1pW?#xAJJhon6ZvRv|e$*mFoZgi3Hjd3p5Nt zJiIG@AYI1|@MJ7{;wpihJ;5~dDR`JZP(>w`!u##bAL>vD`&$wwIy%TIciy&TaLuO3 z7u1TK=`M;k3sA$|UsU}_VP5vi0Ly1h(MR(DA4(eh10Nzk73H51p&zM-& z=Nw~#L(ia3x&}2?Sv@+$+@gcr-uWJ9DWb(LM=onGv5K8V<8se);DL10u7h`2>nkD1 zIz*wE`n^&NXj{#(=2u&8;FeX^3txv^P7v;q+rWlY2}L1~FLs{F)O_YJdXQKqDfKJP zk&-6^0TT6Rr=oqyx6AxBR@eqvh1yqKfAVboVwiurFITD9=MRQUvVE39XYG^1(d{J6jDk zrXKr}W92-DL+wix15=MZt(;Ruhn!cw=gE1dE2qx4uO~NFVC&J^;{foTo8V{HEd})aDaBdgp7wtMz_|VvmE-k95#IJQSD`^{@Ks<5VbW*Y_a&C z)LET;rbPP&M!!Ufe>1_edfmIhbAE{l?J99&lZhd>IN8v}E;n&GE_yBqM)|i;-k2lg zMwSVH&0<&)E;mCeSIR{oYhx7>QAmmJw^=Uu1EDn*ImY&PqW4AoQ~L- z@@3dAnQPr;wk+3@^V+4>AY0y%hjl*h{}-M*{UGkJ9yJk}Sz+U0dL>sa7N?%kz>YY zZEIah`_aT^tr3goT%eERFD40IWWDn$y{EeK#yyE2L(zj@?V~kAlw3#*&)Cm9-3OWK z)7?cJB>5Agzd1;9uYM3z9_OOk!3y4A%0`KUC!0O|T8kfOEHyKmh1o89Nw)+NX<NAr7+hIv%75-Md)MoG4*HhZ4GD9;5dw z7C$^4{M;lRw&8UN9ZvDMzh|)nja612Q6x%O0ZF^1ws|yv_Gm^xqZ**3kfD2-`B&Vz zi>_5AnVq&{k;|+q{6_U>X8i5gs_II0#HtPx&~1me*=~IX^!(@;-keP_LGWC&Fvjg^ zME!Dvur@0;IrEu5v3VAX=6Wk8M1AnUYgeVIZ7rODWQuyzG$Htym|cNynhAVac^qPJ zJ>oqA4YFfF^V_Vs8zScgJW=bAhKij50#3ZKX&aC=M8#OTJ~}u{^iiW}o#i^~>~W6?cJ=@N6kM z+3^z3j)w3-Ff3sxLAWx|m`{RR&Nzssi_XTReiFU}6P3Y&RUXydy0<+q!8koA-K>qi zAs$*A%~$_t2@+oN2S{8mf#yzA94~7B$)nj1n!Nh&Qu6A*O&Oc|878(&6f%16wx5$I zmL}Xx6&qKcs2>d*BWl9JP84}Wdy(KD>fs-5@dFKJs_p8fT~ZX=PR%FWe*+a|N_a>= z8rY1iHlvBLM52_HkhHshjYo5dM>7%{*Zu2|PNjU6+!e|7Z5WIejVkUr z4JC>G=wlqx65Yiw3EA+bS!}YkK+^C&4RAF#gf_={O^{AzYA;6Gy){*98CqgDfM--=EHj~0 zP<7Qh0*Ti_ZjYzrDC?Cy$rS59NIc$_4O@l=Esw)H@E9TFx#D5h-P!->3CSClNXSrLuEZ9kgz^PZ{?k&fu#~GSlP&epDt5A=k{z-db zFQ2v7WbNg*KmBOv5ylp!`XO7s;aY)X}Q)AlD1ip`If&7+ph;~m(neHr9m zx@?XV<%Li>d9J99=P6uvE7}|WzLh=PfjoSeso-81Q!C!FYiUwWH%lGLU6D2*lCu5pLeToK_kLMR zPNA5+iH@yL=zWf?WqD_fYkno~%(2a@@|)N3npibl&D$Z*e@iiXKO}VZX0?@k4H4MK z3ep4JbexH)%5-v)-x+a+A_@2RipYI`#QSas24Vs>A8Q+jtZ;PErD3i2C zVeFrnNww(SmUrcu^t9Y)grZ5fTF-Fb=lzlWCi4jv=W@C_3gnn0w&1Kq)PJ>1yoPl| zStrxE14|&pC3u_qFE*!~Yt=Z+rV!sjVFB!9FN8O<#IGP^mKaWR!-3aGI}M@U7`9y5&8K_xiMH$pZdAVBQ{Iv$Db&@W(uyeP~2Z(*uober^J}$fACo)KpUAnxC4$b7uhUTMQ;5tsPqU z%A;kT-#jzb`EEtK0lpUwttgAZ*qx-{C}c7P zrep43qT)?!rqTip{UwcDEdr9E4Ky4~UVi=k3vlHvF>T3s{i$h&EknZ;r?Zc}UbKdJ z1VpvJ48F-3Xt-G+p*h_GCGS(<^X4H=WZS3emqTUYx^^G!9v*EE`tXQX%hKpy@xM^> z*G`)$qi&LY`DUUSwYEFQVDi{WBux9o_hZ9UD&K$q5m8!(zWiHBlrov= z{YrLnounmVjsM)=@Pp*2N|oO*#D30qx(mbT4?=b5(Jl1t;9 znABd|@|({j>t?mjmL@gU(4f`LYxA3LH7(ZZ*1ViHi`~tp;*HMb?9@| z6pf^NM9n-)R7{}ZYD;mmOYs$rjy|AK$U^9xf&T5)Wg0fuVw>}9BQE{W+kO4N{&Q;etkoDoVa z#{=wmBJ>5%c~ui=(A!{UjdrnF$P1-sEi-n>k4{=iVAqesZOho(-Gjc~iF^^e*|^de z&&}$M0CDH-7bxTs5_0mFlz0XW)N?$m#H(@&p8Q3Lw@I}3@6J*+%b@a1xk76aT3i9H zY;h=TTkjax{CR9C6AbBBrswx-o?=InHd?IP02{ADz}Oy;xPF^=c7F3aiC1#};f6h- z5bsJ5>u5gdbL!~b%;?;k6kSe13-4$awCJTBBCB+2&DVNJqCe9+Ft3N2|LHtoJ7814 zI`iSa59|!Gp7NH6GejJMU$&TLifKmc!KU4CfJ1RF1M@$f=`O2lgw58T;U!f+G(Hr0 z&Ac-dYW~RS^}KY|DHy(-q*$dcQB3QBJMrDe@Qoak#B;mTYbxd zfNzj9?CntTwm`x1ly#wbd8;+hHDAmnper*9n%A07Y0@5?6*Nobok#6ViJggUj9huE zeS=$S_GrDy^`HEf(=*4l?`I;JYz0HKKsH#Z~mG-;)(<5FKXDjCiJ}sZ(Kwv@zysCUdzy%?1M8B z50)fVpyJE?<{f!w7PM5Q=S|{VTK#7H)L*h)%-IKS-YcZ(7yFW?IL-K!Zq~HLKNl>W z?!h|x%mTqU57?g}f?AI$L(w7m&D#S{k2NcXtI6S-iLBQfmdzUAjZgI(uF7A&kup}L zFi(2C8NSr^7sAMT9}YpAhCa0XQ$rt0S>e%}tibc@L>%hz z2K|QG(lQ!?qF-VVJg=UnP@u4w$d;X+54E#DM6Hdf6qf>zZOgCUoD#VqpI|$`eod;Y zMWcolZ6_NZau_C>fu~cnB>FI^toMz6{gd>w@-0s>@_|^_8ftz|>V*Q&uMgGppvN2G z64zf~mGz}zahUNZqu*!fC;C;UAklx}(mMq$MbN)R*UL#HXUAgXmvVnb6zP@U((5Sc z5~^=aiQF6Fbw;XIL6GHpAQjUnsw0h8|y#DzKE((A?0O@ zQD;l<@mi>*4o~=7_%vh3)?b+ZC~PfiN^QB4v7|L6JcMI4OZJAXIaHHPJ?Jn7l15%N zzKUCCC&d{dZNVWZ|BaOxd&|Y>0?+35h~6ozm;mW!%Tl>lcX^=xZa9A(3LLd8)G}H6 zM-FHm?6p4`!8JflI%H#MQmay(l4p&jBL9qC?iRpoYFT)u3Ybr~Yzvs|7Epk%xCNA% z0`_kmZT-&}+3^1|rA8kc>&D-yw2>8Q&N_`#Nb`Q|0Lu6}aQ<@3Be0}xl=;4MsGcjY zec@_p%2~p)?xAAV*sq+L-!f(ut&fur#ijV@72P$m{*^99eV{4~18N5(FxR*oBe*YA zJgKpJezf1)8oQYsE+@oV#^Jn`kJIB!CqY_ zIgUu4GXx*dP1d)?v2$Oj3Yvd3bKOq1__KNRA1mZcD`Z2~ve;(?D@lEo`ZKc*LvJ_w zY^}to^St9}W99HTy~D!1c$LQHPw18D3_p_1w5rEsC)`h+r@i(@mvA+psQNhW^Ls{E ziD#zW=>xd!S?vQ}-r39~6kp`)#*oA@-cbEjIHd0D(?!wDO^74Z9|o^FBQ^-GFL$zjJI(gmrW!<@$lz{B=w7}dCB(wIWPl=BC zPx|y-oWf=b3TRrH5o+Ee zR)bG6{;;aT$8$Ijs#O(E1s}YH*YlkSQKVTeah4K%>6e;^93U{J)p@|=i4c?L>S;Dl z6-fogeB%syQWRtK-bTzuY={?hj(Lh~4h?24OKRyRzG&h}Y(K=2A9r=~vfccw&#~NN zE^P@lf8||Phdu3a7abK)u!gwK*S3WR8dTAt`YX~H##df>Mb`VReJE!vW-X?bri4aJ zNxNc3L3H+q%tGj9Xlg9t6+|o6r#oAiI@klT;j;@=JKXZk(E_?9XCq3QV|CmKVh)u( zrt#x>a^XBnA9=U_<*tc+hYZ%G2qN5tC3BI5EJzGq(EM*^3O}BX>0f>VJ5f_danbjSQ*2vy-D#e?@ zqxmEJk9nCh&QuBwB>Zc42k%ta$qm0@K4gV&)Foc6$J_o+?Pa}rWM(7>>(M&w$rg}? z)>LOH5AAuw3wTETZbEP8esW_wXy)E}mI*ZQ)xjgS$f5n;{!8HCM+JtBrEluXM2*MK zn*4>Mi_*_H!6ZGn2@=dt|3tvV!E&PPSzB{O!{0B(i@fvQv*e#*)3YIjOXuC0lES z%uOP@%_AFU$$p(omT$;z4uPMgm&1B+{NEX~M6PNt+1U!hH-RhtO<#h+0(b!jX+RF_ z@4oL;KmOj{0X+?2EikDUviz1G<5M1QRQNs}gfx*r(<%JOj~@R5y`$pR74#`y z!Pgq*MnikPa{4b2t%%^p2!Nh}hX1fCVpgus1zE~GBpXHj#a}YhU_+YU(Q0GToAqKD zYCd5Q7EYCT(dZmKYxZx>nv_Pxz4|cCq1R^!6nry)sJj)N=z?L8!{i0yN1OdYt49|>0{%&{@;C} zyoF5?xA~KT=AgCaMUN+2a|(pUnv;5Uux2Ew;AX=-$(rjq@apuX$7r|aTaX)To)5BA zJjj&pzqJ)>A_0=ze4{MJVIBb1{2NcOUjb`S@-SAdIFoN>e1;26Wz^FxNa2;C6k2Y_cd z>xK*GTf!EoJ@3f_xH zIE;EI+kXEXK(xEPnlpx5xVLM#_xK^jzeYCz~$_!qM?T*w5$6IKO>CdGQ?6<6w{T4rxY`^z=xc2*mA4!h4!gS#F<3=+& z+wb$9h*m^!(cWT@1;;qvaDGU|-t)I2qZ(Rrb9f+EUx7OOP_6XO0NAM%betl)Q z{r&gB2AdqrLovU?+V2nn#t%1ljga>DZ?L)hlI#4SPTE}@{{hL`?N?)l0ndIqJejax zinU)gMI+$)PWGGiaI*a#fzbHhiTp^iUwu-+FB;}a{&y0m8=S+u24MW}CUA`XZsmtm zJP~DFJG?;E@H^_m4;dBO5C}EzHU^GvwMKQ6Immx~hBh-7ZXhKl2V>*-!gMpD`zKqY zoeqdEOd}8c3h;$Ed!sT_mASuvjY$|cALKvR#W+UAHTy3jiJ$N9f6>;+sid9T=)8%P zgPx`TjSlUWPBlY>XK6WH!qQ(G%lP+)7g7hMU((nTcqrM@>pV}b?dYioYUFUM*c@g} zZs~Wix$8XRRkgA7Q;-`=FXo4IUxd1}^elw%y2wmpv4t7d9yfeyR8Je&v5Q>xYim14 zme}9_6>PAmzH}n4H4u?|p3QyI%^hQNpR&e#j9lj&Gwrf1?TQYDd-XBt?-?!=aTA8S z!5VHqBl<$!h?8u%w-+QEZUBVFMa^e)+e4fU8aZ6U-Da34x#(y%@SH2Xnlpym8ysV} za(+m~17sJhP3bS}Wx7cJ$WP>=UVOI=1pHQ>gx^jE4+9MvAQz2JASEV$g@U@zB^h5> zCY1gC+dfues>SaCz7TIG69+tkq;bI8A%xw(``gFYeQHRHZSJ?^I&t;z&8sG#YjzkO zLTbWCv$(yk3$vTZMWAlbI3CkP24-!_B`Z^RVN z3Zc2iooDk?_ppUH513~*IG$h_)X$?7%@jW;7{fU0NNT~wsW2|UYw^rx0}cCwY_^qt z!4LZaYN~l@(#!+d40lEve0@Wgm{cFzG!@oL?HEV$G&M5Hnb6Exzr;!+q zdRfWmAdd5u(A<#zSyS5!6B@l`o>?D0%xW~>YQ$8YIV{H^T%DNGI=}a9ZOne)n@%ka#X9_-+OXxa;7T1%u8=^CMezJ>LCNWa^+dRcZ%<`_j(4_kuKJI zgr_MN@*imNYK3=80#CF3_5~M%Kg#0AKt$is!Y@hS_uUy^6$<~w7Qe6Xk4xZx$|^u7 z{@pBov&H}PMDV*O@ENr`BVoo(z%?MGycK%PnF){r8hZ?luqZ2o>$&{Ti$~dg#Egyy#C-= z$A3eMoQe1K8CD&V2D$)~=UZ%O#@1Z8};S3mvW1^LWmpZgBUf4a||AKa?wt- zXm<(iIicwlVXytkUg<`Tr1rcD4k*#X5*CZF0YYmpyhPpjzplMsf)INh zF8VRTX=R&Ria(&l$q?u^4HsGBfxHbPI0xvtUbB^Smnkt#$Wr}#pAoInVy_i;>`$I( z^IVdXMIwhYB=arF2upISNS=lyHpP|ZKw+C>;z;8n?_-h6gxoCTOqca$B~I{IUyx#? z*#H`{4;S`%32F9rNfwJ_g-7Dr_EAf+mq;>%@GATLvQ1QpSA>l;F7h0U{N4#5|L2c9 zzsDeNaV`*Y3}hMVbS0iKXM)=eHP({;Nu^Z02^B^mB8hVY_pyNMG|v zU9&b@(ob_B?Jfj;1x)lal#r$>^;{+XCQ`I=DNnPM4~p{TKk)owmvXR>1LpWOHgX5x z!z}jY!oEw`qjk1I-sY<9vk2!3;c_AT$`$(~CAPR_yU1^Vg^dOadAy!~M{yGL2_@b( zQg3nYQz9lxmE+oKo+bTyB&2;our_*8;x>ODyOfR?*!o)17SN6EZnd_7-qh~PH=*WN zbfRJ-A)Z#vN3q=PZm+y{mnKO>B!n^HzmuK{7b^geYt|Y0DT-n2DNfr-kz{FdVKH zhug)$9uYahd4$Fts_&-j87OCcQUqex@7o#5GTf4a*Xpd>-u9r|6qEci+|!L-b4+@h z9_uF1L*(Od?y!er;+6K(+;akrFGv**j=X^PdFMC}H>8{#Xvyh6LYkgW^!yP$v4=3t zjwFB5Ln62pcStL5pTaL4&2e+~tI`t3bhL5B1{YfytDSp@h7=Hfk+5UZ@zzFGr*J)g z3kOoP1D3|_5%!yVzLKiC<1lQ@0m&WTtbKbRj5EwgVlSe3&ak2SoE65qI>mSz=e9eG zATU?Sx$(gQrJ4I_ywD+^c}m}A)2h@arRD8rJn_f45KA(q+PXr_8RvOowh;Hn@(ijs zKKd7X_+aKFFpGtG0GLVc2>-lEq3GG{i2o3Zo@fr858*Jlu9^)Gh_AD=jqpjK=md7( z?emjD^>t~!@F=#e^3GpD{CI{Ar8b&!{3n>AWxsEUq0O8|=L$DDPu=qOl87^LvvVJFI9Ccp z53W(w4qG2+_&r=Wlc`(rIK&pdBEiQop3%p!`9Qy$x5QufW>``45KdxoFoi(NK9YW* zPXzVkTw{$WIzymO0s}GJa9V`+m2F$|zVF1D{`k~1>~&_^wiB~xI}!PJbS%4&n_bGt zYSsRA^VDLKIaqrg{4rMuLV#`~u=vf!;uF{_H1VZ-4EG*M4KcQ+C);2;IQM+e!FL;a zQ9yo>As^us&`Me#Y>#I!j=HjlaJfP7Ty;4cZId`m(~BTdOCEEud|R#**^EKx_Oai)m?-uw!dt)C z? z5qR7b(^KS4$-AKA3oKNK|24S?-*t~nG#`5$x9!E0NGSB$zeBI>sN*Qt>vcV2Ct(e@ zKDwQqwg^=@%oJJ|8?Z`ljp|yNDqu$=*r((^qd!rM1_8LPO^~L2eVh zKHt`1JteY_P6_>XnobGr%W03m(~M=gb9U@u3ua83+J3cGV9a`Sc|1T<9z@F;C4TUz0an2*f`Aucz|->Xou#QWR3q{5A3k z?^n2$PR;2BY}31N{AUmJP``UaHXViS0UEj+Yv@ErH5BsSrWf~=1S9RYNT*KGF0#!!c&0$|rGG+D682Bg_4M&?NQNz}#<)s7Mm(Ii`Px#Ch4|=vMn-90m%^ zea%%SlNi;R&$#bJKNpBibZl~6>RUMlgo+{8U>8fg=&^chOAUG0jzGf>iQNPJu}b4t z#-IGx{X>=ZF>n5EIE_lnkk*8)sx3Z@lBHr&oimN9++V;-pKK6xj=kCb%6101zcQUa znWyLLywE?LKFS8}4OA5KTOO*O_b#M6>T5!hF%mfLEW$~(z}Tou9WitpYkQva^tE!t zGp!s4gBp9@EGs19nU{o~ZpGesj1haCi~g@0LBBx@7>WLa@0%sDf70U5ck!PGUouX= z02!;GV?6ekgKrJ=-qG!XU1lk#yOhUaR8bx!%ArO;xsCj0P(r?_qWC;ZI2b}_Jmsk^ zOlQka)c<0#5ZkT=goM1!Yo7Pvm(IO6824|Cnp)$K`3v$==X#snpto3zvns-gjVC3( z7fAmt$^6_GzIO05o;H%c;!X^wX2n*uZC30H>EQ%Uv9fl{y(fVN_Eq>!(+;ptH~u)5 zSNGc6UW*E2A`-Gwg8OL)1<{iJ8F}>^@#wXp;QU|)4Xm}73=-DCb~2p#3IXVx>f4AC z0_-WP1^gQvvmNk9gN&=$`}*#^#UN|ByiqS75f5b4Z%Co}O$s!=yAJ}I@BDrmpmbh4 z%Lp_)1QzGC`ezsh`Sq*!kh4W;M0xd_%mRF4VVdYxQf!D{TFlOnXqmABvjl{Hx?u$u zs2hX!#@sQ*7>W8(2a!uf$KGQ(L+@9x{yP^WUT?vdsVA%J#ui(BN5gmVJpxQ&-%+t0*|*Dm+&9&1R5h&d2aU z9IFBq7JRv{XOo66F}gbDW-#@IxnYEifoPR-B_;lR@F8T;0iNGK#L0agfHsET*Y#sX zB+$4I|8?G1H=*w6sD7@fq1bmUA0*-@e~dwD$spUlyVC;cmbM-Rpj+Apt4f4lKWICn zpmP_tm&LQ4-?_gsomBJG?UpWAHr-M!Q2x-$99)(5DNs%DA|lIJ*er1Pt5mWsucX;t zH^h{DiCgk5*V~dGflTEEonIwNPEV9P*F1GgPH{{A9-&oIib~qsmgHASx{{ibg0`ey zZb?T_Qfv;UqP{+2#Ks4Tn)^ksDz=jCmRo? z_mUrd#3b0(<|LWZSm6}+SEjSfeVXAMPaf3xaxCAhQH@PpT~)?r0gnbB4r7hRxkOtu zfr`Yi{GOr`Z&+TV7^=>>gy?{S-&IKeAN1oIa)#s6Lr8zLt!(2AEjew2tn{nJ19^ue zpF{7$yMZpj6Y`@0W0`4?pzjWh5#j>{(Z?Sb(@{xG{|a_{ z5U=?^8LG44)PZ5DemRvDI3Y5irh=p62(W!XY*qR6;F{qIGs9UfY24WVHj8*Ah{hbb zU@mhpGo5R34=G0-Kiia4T99ixXrn4ENDG|U)08&MW0FQ=T`N6Kmdk0?-rxun5mF``UR`)vN=1^mSqXGu;6fHPTl;GjB^5g<6XTxUeeX92{%06Ero z?l~sT?jv3x2HjyZBQb2Y;tzU~w$p&RQl6sgSLPaG|0OR96B`yp=d4460*UHuWpI}y zX?k6Hb=FIooo@)WJlS6kE=w-y#t;6@VYBo5{OAE*8PhEMI_NgFa>CMC#uBG2JKh5cbXZeXB zS1;>e$rl@CNgF0zW-z=NG?to3hIUe(Qwz0w0-V>#G(7da(tOKu2rP{yLrds`^zW+B zn$;VC^cx#w(?^igdw1~_LfrQH!lsvyVQl)Z4mO=f9lJK=T>*W#Bo{;z6h{pU|I@6P zQ_&r4dW`z&PBz^tnQ@0;}(0!Y( zd9T%TV&8NK5k(sm%tqzBBghQQ9bq~gv)aDJ*`#LS4S9AZS}fySg>f{DpG87FW%I{N zPQ>dqnMh?!n2<*qd}v{SK+X@pg5n>hfo*YyG9T5_`CuR&n*XT@gecE%F+tMe=UIg@ zmnps7-%!2?r9z|)zooO^k2ogKs0}K2h&Y!jwnKzzwyAb72*bo1d~dL9E_d17E;d)f z24g3tAPpl;9H42?YmW%V(z9u8N(+ZZ-pevr0S;WJ_7z6LdbWC%M%;TjRW| z#P=N2z-PaF4lxE}6YP*`#rXCxt4$xVn8m)Y{Pcd&JZ|<-CBkh={@x`0*TEvG1Nj?d zp4*?ammZCE7mo0=L&*@k)z`RguPz-&HMeXs3Z#LvFE~hcENm4TL?3rlmEY2$2@8w~ z!}1Nrl4=#jJ`lyRL{4{ST=*oEjF@KoIt6K7@$PthG&+Wq z^AVLLdR)ddgEWPD5mHP12u_e>qQ8~S z*K=e-_e+^hyR<9#X)3l+Vn_WiE=4Ev(ab>x$!r_SY4~*HT%K_)!PdkaIAYA+)f`w? z!{Bj~h!}nVUzL*KJdX^qFGkGo$h#0YlO@}1G{gU-}BqjLTD@i;irARDQBGag}$$3nPO>`YXyIYA@ zNjSgPuO;eH=sK=b;%GNya8qo!3NreT-;*1hb ziA!*d68oBjKGD*6FedvKd8Y4=?61x~m6obT@9ZhuOJPp0y(HUqPvzJcx-&(0$rbYU zEzVqRV^DM1PItHP+2l|G{_dyJVfX&Rau{Yg4742jioQiP^Eli;1=g? z12;LZ*jb|gER|JAS>oeLJInGZ6`yNdK7Vxi+y<21sZKAXRb^_vshps5nagtz@$A`= z=K#xdU-3M~<#~$B^TY(tMQA0SnJ%YA`EXk9#N$hbS`|OSf>g!Jzl2Tey z3vwCoYLQ(BnUr!V@3WLQit-64TeV75_6&p2Sh0?##)jkYEOkVW*k-dzp>Bz+vjO|p5;oO&tzAXlV{*2XPALooGhTq zSsbFA7dKfxx|WKu@&hbr!U)W;;ukR6c$qcB4@@S->{|mjIh%p1mo#S@_7=Mf#jX~1 z^7u6C@mrjJ683w9)#7?f&J6KfN1o}u!*5Cjx9FmzqC-L}cZTGCQ7pe0cCu(ywjA@INvdU~@qD@Ygo;4T| zw>bTks376|Lch-LXqhW0%(F}hB|421r;`4_Dz&7%)j-~_HE@g52&9tsImxS}KA%aQ zEzYx&Q+HunzuIvC%<3r7`qib-e6bKEv#eYDt&(4XB_#t8W5Jwf#(INK?D#KD^L#3a zXdP9DWuA43-n-Ng4gIYpV&yBA0+Bk-qa{qHYk^-WFO77R&drEoEBPID9xfNnr@%-PMwX}o zObTSdTa@^XVX?)zR*6GNI9KS`-ux1eQ8-EL8CHt*Ww>HJ2@_XXRhR6CszRW1d_kVj zlJhWG&TIlbsk)K1TdDeif%F%MCsofM4bRd~+6#dGDocNn=&z3$RiE=BgUzI4b4{S5 zC}Naw79fhPS)-~e#W2fdfG|!HRe$Q`MsCa8&ZTAC63P{!S3QfMx?hH#ID^mwskPfm zDpRQm#Q2=?;?^WBcTFQeKKC50i^PN(t~!IoJZv1iXXYS!hGXnGb?LXrEa_SVXToFAu;sFN0CHd z$ZQ}h*X+RE#4nCq1R9%UGabA5kvS%_iZ=sIbCs3yA~UXnK9`>iP?(0Hdvv`FxfenfNbREhN~S!#IIoGFQ&qKZtMhu7^Dd@qP- z(;SHtq4~y#D0Cge7E5$L2-e;ytN^_}E1k=Pw7=C{hIu#z@nx)>A39&B%!zJh!LSYL zuma<^#?Ca4bB!qZEwg(EE#F6LT)uqWEF(4vq@=SV_B@XNB`VaMPZ@2_r{w5-O167G z1?SZHlx>Uv?dMZsn@D>5Vcjm(xwcs!w0>sfkG)S%oKyx5lmEzn<^MJgnZ$n$$zAck zyd(dezjt#7ZHGph<}9aESD%guk3B|S^a|F5GPS{RigT-Z7Rj^Iu}hD}!+wXUKwq@vJ>{jBIeb{4^duLv3+&j&>w>*q|T3s1^lUm)f6FRiIn{1cmwmPnpS(!E^ z_6UBQWS$#$mjB!paFzTiR{kpy>Li?xgU6h3NsZ*F$TMltDso)MA`j_M15yM2P1Eul~>>9UUIvYcZv+# zlCyjtEAKxmcSGKn?Vyw9d`0i+%6r>`Vvytyx0*U0;?L=40J7{NlkC(hR$$G4h zOI~cG2Jom1+mf@dEAP>}BkvtcpppOPwaa@}XZto*So^k&=wROqP-7?i&caVS+xIBs z{aDiQ{c~)wq}9s%qXgyq=e+^=!&NhP!@d_Ta^<~=Ud^@d(+k8P$-WVEkw1Jmyo0=t z;i@~y`x5ouN#5fnZd*IIUK7AzeUM=fI{r`Rdc`vo{{y~Oq$+0IzQk_G0N8Y`e z6d8ZWYL|D%pQUh;eFt1*<-KB92m6liO5Sq(w6lFB?`x7K>OV#DzG&tBQikRIm!2vv z)v2PCPWH{4G$uOW8HbI3ZUFDYNzO6moOpu2^B-%4esJZIo*xb9{n7oJZ}mPJz;!+3 z4<)}K>OaKP!_c^}O#VNF5zV;)%`*4 zAt0UKqs;T{S=hw6p1Muz~(J#;v-bclmFU8eP$EQ%Rf`-4*}U_W2FF;(wccepNet?%z0nw%=Yx(l;+Fc-t(nOuYB~O#G_OSBgO)7{E zDEy2-VWOOmgLzz`Ccj$$Xdd~Ut`+xuauLb_s0{?4)|1T^sc4l>WR`8*Y-h1`?Imodm!6b{a;stx-}>xzoQ z6|oKfm#fJb@!ww=Y4 z;u$nVmlRb*N`q*boLLk!)>Ls7rIj;K;h11)U3F=3xU|HYwJVvX7ln%|hI?|(q{Nz8 zd;6@7y22k&8?2gkAxsmzM+9de8kIS%s;WYiL2NRKz zRg`0+qi2>3sh&mkmRFXCsn_tVYU;!{$$)XC;UeG3rIn>M<;CWA;e?v1a8+?tg-Kc5 z!qU2MX{G9|)>kyG*q3+WXp37|RZ~8ra9UAqsT`)Tu(qNqtY5W}>e3qD$Vg?;w2IPT zxQcqOt*$7Vb%JlCb=4DmHKj8!d(ABO2k0}9n(|5u%h09PCz7IYaamz;QE^$R&p3fE zQi%}fncqiYvG5cMb-f+)SJgmgwA|SWg}8S~7uFdvv&40LUrA|kRY_?{VQuNfkl@x`A7%nNDUKFVa`!1|1uk`KF0|ORR&7hh2C!LWudaN&H?<5&_wg{U0@@mL0 zFFv!H`YNcpw6tbIMPvrdsLIlCZJ2UQy}~(>m=>AtE3Aza7o&gqC8dQC(H7E_`EPMm z1UD?Kpl2v7s;Dk2f=wyhiX$~OrIqB>7MGV7R#no2jK1)q{7UpJFPRvws`iS#w5FE9*N* zkj0=v<16fdc&U8Ohfl+&Q?Z4pJ{?DOVPO$AKq~R-Ta}LRBR!VFfc;p5oQ&qRFB8 zcv-cxW=^ZB@KUDE5~Uhhune_!*{nhr6A@)J-#BW148v1#xT@V>OtY(vOe=MnsU=Q*iqH3@*pOs<9COLV8-lVEq!PC^zzb@VEEGV;?hCxAiN9w{){cEwcun-@{c3P_u&A;m*xw2^PC|MEsTrzViv%+Ulne@n z%Ze%!ws0*_Q)`}C1296A28(KDL}o&l5DpYW*)?NEG6qwLVy!%U;DFkJuAMrK@!qiJ z4re~bb?R$cBwQLC*tr!C)L=Jo7ahjHV1yxfdU+)soBk#9v8~3Echz!}X_M(Xd8B$0 zk4cB7_LKCTT2^NUV~B~$i)lNy71_p?%+OXt2YouprC!3absOYF)2>ddnb6+kcFC9C zp|l3yq45Sy%PFl578h08P@{}NnYc$mOmWrB>hcQLxX3hM$T69jwFB^jqKhDL!?Pf< z-GExpU3i)?;Ifk740`EGxBffPRaOP7t7^;DD-=~E{H%5-{;+~|7pR@fNbsLo&gg&( z)-aZq*Pxy2tAo|~CrSzq9B}49nRwT9o;C(Gn1Kw4;%bARc})XX4B6QYZLnRZ(5ZWDuvt(y7b0J_+kEIAIV-Vh2 zOFSiqFiI0Rs1FSm1t-j+o3C`oEAZX)Pl-J`NDH{Ev@k3K>?Z$dv%;mcKA)Y{Fpv_z zn4Z6jS&Pto1Fg@~|4cLU1b3QJ6r5R9ZK8aG<@1f6FspF1BAcr)_+$IH|3Uws6!Yv9D;6?j6jkg#>ty+Uitp}ov<6D%+ez<2`my3tI~vxO zR{uQC9r*4X$y#Pzg~FZ2pkzLsW8~dt(y4y!xZEL%wXFWzAl;eI&Y|-Eh)*ZG?=}zB zV6uH^v7O@n-Dj1|r{jEL_jn}Jx6eg(kG8WOyRgSDW1r6SwTT%?@^sD4QO)GT6YD29 zChPNGx_uS@xMnn`tRSjqG|&9JO}ev(5n{Z6wkOTVjWS_eUr z`E;qrZgJ_@4t|Qy?#8IeawX3fJE*q1%sRExou;J!1E$2EJFSpu`ejxU8R6&)m}fG% zRwPP@tMw%fbi1C%xa^V@-+A?7pckaG#92~Wq3~U;?`QHg6N&a^lCGHkJUKhASNvb| zOKPCI9Jt-d%Kw!eeyW_Vl=!)J?$i)=8qmAY;b+;MfpiyQ`UZAAws+-ZT}207NM_vZ zXYk!QTIh=Dz^=#qF68VoYUqlk5%lNs-K8COU%sxQk^cwe>*Pec5OnwT?GUAyMaQmK z?moXRRyMn0Xx+!R`+Pgd>5kJon{)U1b&jfb<|Pq#pI>s6wKFgHbc$}eaOqA9I(DIH zXI`#c|DE4%xXNzHwHpCk*HRk$d2;R|jM|kQc3Lp&vWO)4cc1^yv&-)DO&ULT>7bt9 zcM;8XVTs+4)G{2nd;GcxExRd zFvB}&q4nLP?16~O+%17HYt=K^6#Xw$iTwlD{mW_G5<2lKL^wtipQoH&&; zB&mG&Df>NEY>GqA#Hz93FZ_W;wX-UVg)@+ev)RHin$u3gVyVPO#m6lw|!RmEjh zUR4+am`dDNgmb96>28#6Xt)uH=(I zMQlskrR@aWE+quxQnV;6G>iXoYstr^LJga`>}Gm;bct74RXI3OAe*Cdh=d1NN>@)S zwH6I%7tEC-wG>134K$?>)E)&}4?1Au7T8h0cDs3-RGsYC$vV5}pWMygA>K(D%IdP8 z@$i1~B#jl6b1=Kr^>phyzABvWRcL96*@o!J2_Nr##6hD^8#nH>@r4ufP8wU7H*s`+ ze&Og)9>-WFjXh(c&$s736q7W3?Nwe|!r_^450!34OPCdMpeoEsoJyXWWfc)6#Yl*3 z_#{PRsbH9h7ZS6^(c7K_bIHi%5K?hz?+zz?;L}URm6g{N%_yoY0*fO;MdiJK>=1BP z1rJP_osyF>GUbGnD^m(n26x-IsFA-0Yc-#5uQYIrIX6{!Nl{I?4v0u*osI#Tvo!t! zoeAkN)>Wyt$LOk=)6BMhO3>%?AA08a{L!b48Cy7U?C8_RkI6gZoWe8m#-BX4@YJ#A zoPF9EV^Tw|aH*$q=^Az8Q}+yUHYHMl9eSQvR9jvgG==m`+Nt)R#EMz%K6JVKNy%4CFu24$4T2+cP>eHFgDJ3LRxKS1`)xJhAvilNb0#MwifU#R z&MYme%K2dwZp@lzI5oFj$!3=tEie0m?+L#*;8*cJZR`sdylO& zr!Z_@k3!pJ78dR?Jm{xQSC*uDry_e))I{vrvL5FAA_wYf_ku6SpJw>FcQ4>{TIy-l zc58f3nl{FsZp& z{C#(h*Y?;qIb<=~>}MtKG#_;hw8x?CF@2p=8!c+aF@peJA^9_8(|xZUVlZ zN$1J}=4e>^s)H4%Ti=eS$czU43f0Knqi=?S#g9&i_PCj^TfeSOobBbFG~=N;dDdaC z&J^6OUsnrb`xbUy_3KyI)j2x+wO>~;Xm^!&XlHNgv~Ft3-{at9%rtXKU1 z=fB)L;M&Bm-zvKBkf_3=)e?{NOOoxsQdaan|KfBtwO(kGtWX`=hjecYGf-DsO$x5B{O^OxE5))y?~T}1P5i_2%L3o~81t)ncS zKCEW`F6Et z_55zi+YwKt65j=$4_wQua5DIMU_YP(%mAj3-Vx6QW&kGv*8;BxwgKk@Cy#+2a1k(V zAD=IKEbom07Xjx07o5bWyMXI~e+Q$G~@Ot1{ z;C$eE;FCZHxE7e2za#zuFax+1SO)CQ8{l=obl?KuQNYwwxa$O12CM+C1zryfow_6b zIB*g0O<+dBj(8hz9`GQXD|H-t1M7e#z&2nLFn#=v_+5H_+K%`#VA+Hn@r`;8Oyx?0 zrqd}`R~wvxUcj=mzz5EoydxguvW>QLkOMgH+#T^pfZ6Bmh;Ih22kKVzy7PGsOrOGY z;5^`F;Cf(p8b|sC$OoJZJPtSySO8oPECD*eI$#^{dSGfH_5-E^p9E$A*8;PF9{@wZ zt-#5^?lihGU^=i4coc9gumCuD>W+9d&;hOm>OIy18tQsr18@Pa|LWGEI$jk17B~-> zN`qa?%l=KkCSGh^2`uA9}8L!-)4_wd7-}8X!To~{;Fa%r+YyxfoW^?hux4;Z8 zYzWdZtp^?lYy;}Xt@JD51Iz|i0~Y~rRQ^@)15O6613JJ|I<-1(!O9in2AK-rdf@fI zMZd*Qfe!HRz|{I3aR-`q761ndu71k478xHjl~;Cf&ka58rQ-Uv+PHqA$XO~AFl zHsA(e`nBi*To3F=r&`vuBc2Id4-5g@fae3}HSdVe1}*~L2u!~Ye!wQ+T3{P+BQO+2 zE;{CUz=MEoz-(al_4u9gfhEcZ)&bL7;HT%n1$sUgy8sv5v?Kll(7BEJJQTjar#^ve zf$M+{&;h2-qkjlu4`4bl8+a733|Ihc1Kz0g?Z^pqfE$2ycOd6s*ym3A58zs07?}P? zK~X5+yD##zXdJ=9`$SZ zJVbfG5bze@WZ(keJm50m0^pm#wLk}0_Avg+snNB-slc*F&=1)3DE7=C{TOxuwgKk= zoBo3Q!1TwFQ~AJb*00t-fqcM4f2E%SrZ1!(7(~l}nZPFC7+}Ve*cZ4Kcpq@lQ}6*U zcpAI$%5K{;_&+dp5#<6W1Dk;BfeV1?i_rtv1oRyRA7DB#bqV?d%a)?Q@`1B~ZNPcJ z^k->rz$T!h=fKp#JO>7Wq33v?9hmVv^{jm0GT_=5@Q)$X+cM+=W-RA9FntAf1eO7} z0v7@M9gQ3-u?KK6@OUDr%jkU!85fnAP;FR%cZ{R(<3{U+@W=m0kY)8C@Lfgxb8<9H6t28P~74&Vad zElR(G9KbfM#(4{#CiN#Nvd*aeuq9lRXmYh#=NF8Ut5fOY>yuM^1s5AhYS=?D4+;9B4u z;N&0i6JQ%~qw;s)_oI-9D6s^Xk;27kz(v5vf$81i@ehELfjWP%sD<01VE&@&lX75A! zz&haLz|=rIz7Dt+*l#rTm==$Z0ZtwikKY1JKO!Dq23!E#08Bk99`7}Va)Czy*8>ZH zb%Wun{2|~2v$;m0|5)q*oB(XfipQ&g>yL@Y?*gVD8;?H=Tmbw4IQh7EJa`iFa*@CU z;38l(u z&^g>skdOT5#^YgN8FvpX1BS}u@r}Sm!2YLTe_%E+{X*mbuD>WApASr}g+H(^jNMPA zT;L?&qDVY`J#annK4A7G@C7=T{h#*U20pH;S|2`5Ln)*TK@qD|8L-x(rKW9K0#rzv z?>22i8%n{#OqxuZKt6^{(xzA>QV10b@Uzjf%B;E9PRY^@$VqX#;X^35EHruHnK|nwb~{(R z{j&GYnRnqD;OiutV2t$XA1WeaP48Q(o3Gx4<;rMbFL1cjPtX zdjk3LE*>6v-mknLy5$w8R#4jL6)6w-)K-GYKUJMwkid zO@aeY28Jboc|=|qn8-`T@`2?6!w}-~RRCKBEVbNKz*YiN{iHv|fpq}8MsmV&H)drm zI6XA6G^aW=QPSlf4%>Bt^nRot3rG(m{~*%yFC8Aa8K0d>={H%`kYAp&6#p;EafIg> zczVHeLz1Tmsb#4=ld~P?=}~y*gJ=3>CzcZhPsb=cw}WS36rLU6nKVDGUdy3#iRvtE zwI4i<;CYMG3r`q-LsC94(>JWWKV|A#f&W)ndt{%2-`xBF+64W9ZSova7v^L&B0^a? z)4{Xh^5Ky?@lKv=ymG3*b7T~rICyHV7#{h0QqDS~3H8Bn=xhPcQSh7v-JNBj+~^F&T2S4Q~;zXG#wn^M1(_REX{Gck$niV zo+!rr4gT&d4U$zPvdTk+Sr0>2NrtS7oUA91u<*M`*^6TKqnsb1peIq%k3$nHbFvCU z6TiE6|Bs&hadoJ0u$@gI0IaD*=N2=*8-*_%wo27%RkuxEiq zJ=jaYR(Y^Vry*W@urRP150($C8d&PsQ30&VgRKHqk%F1{4@~NZX{DJ1HKOyE+xT4%mST-_HGp@4X9zrZ3J?0zJrW=8miVwa8&RO=6!hSY6Uq@9R-SJ9 za#2cLC_{(HD-KOh#UQ2|f0Itf__q-86Y_08HF2jjJ?^ld_Kh2VAltX67Ug7Bg?5Z9 z3H6U#23i#A8<#bJ4@&^71YH1N{Ab4z5f(vEq|7yXp~Eih?|vVj)BAVA^-qMOt6T?N zoMZCsL%yozuRfm~l05q=^NH^jAm4_X;gL6so_IFkuL{^EVDE=6)_$cD=ZyVIC2qs= zJriiZ-mLMLPw=%Ls<$e%Eo(`rFY8*+1)<)otXJ@15rC^fiv)O)9137r@9anU1=n+I zF@Aya@0Rj6XP1ayEDUvLWql%}?JJOX;w1DZ8px`S z43GTfgtE4JWL0L!k~;N4R(2FWoXN4{o-9ATKJAfJnj}*V8yOD0<3*`5} zX7N|RM?J?m_|K8CcFjhqu_T@}i$4au>Pa{%}N@JA$1y|h|r z;RSM8 z3b0)Q#6n^5z>=J*(8N`tu;{Q7>5n0Olcam}?m$}Jjl&~#l9p8*%8l4^g$pd|^HhHW)k0PxeX*Wn3%-xJM zECcNM_gSdFPny(sI?^V!438{gKAHS4%2{pNUu;)_^!Z3Hk#w}bq=+t2;2prDf}^~( z$R}+pc{WISNW&Jci9?b{>a+#;5bza(;}L8Juo#%=~cae9u#QV+T zFNsKML<>WC*m{}1IAtnSl~W&@UYr6T zuh{Qw81yJ)g+&(Z`a#-t2Jn}B@Dgc&F76SajaRZAR{@_0T&7dH zvt-05%2|dyg@AgIem2rgze&~~QhTzqB;r~FRLMZY&kJRW4mDvHYr_MO5rvEvDZ?uR z>rCdW%)ySH=979)!vD4*pRpn4aJef&6T`r#O5%E)L4t@qJ_L;`bJiHW(RCg1g9`98 zgXe(om@?r9Y&Xn3He&8mm{o-aKuw^otwmW5y0gqgfxs51K&AMB*l8Q&y#jf)A`kPX zEZM&(#oQHjYzDLk=~Xumk1UaOEu>}4fw3aqh&6KexUAn{5)2hmC%l+q{WTLU%E7c! zSfL}dw>omqMAS&%BZcUV6M9bBoPGEBd$LR)oerL^^M*&R6lOeO{6(=DaqL4J`%Pae z4@I*OEpt&7tkES#$m5Y6-H3WgzYpWD6Ee>Sl}9kSYf!xbXG#XKJ}dVQs(_UV))dN> z6$MP>3<1C0gNuD%0{$5AcHu{x$|9p8rxyP&&yjSwr!eIfH%{h8ky65Rkz0WDW~7^V z*qSV_8u)|2i$!jO#S8JV5%|-LGr56!;Us=Z?b*^tfBrPV`g63Gvgs ztpDSBrS*aGoa;QEyFmOjj=#dUqCIXM9{JIU_3F-N}A_2z{VPZ(jP?FzseN50#U zuR7gdOxw}_5VC%c3Z@21J1*};-fbI)M{pFGEYr-(5k^_gLX;yq9|G@A@J_mA%PNjY*!3PA6g*gk& z6xxY`e+YS>K;AIzoqCQWQlM`bUV+GLLQWPe8FqIJi*q0{T&2m2b1>^mriyw_HU3J@ z#eD0I;gP5CImH*yfE%&y&XZ|YGFPe0pOQtEm?B^ttAUXz z^@3$>Y9+!?GWI~6>Hm|Y~eNewF*~2eEK$&R!o7_2* zyJw3f{mM`{!T#0(Jny5NUm|G+{x$)d4{VF&#Tr;V2ab&9uGm|FjU#bQd8^D3{ypH| zIY$0G@E-yHl)HvUo)h_Lv2bIy>=Z6R9>?%SbPnMdx&ZTT4HA#Q)um}|>< zFtr@)8|0##+mWY#b27e4+1r5a1ZL(DNqrGtQ)4Q+CMU4c9{Z7JAM)s&MrJdMQsyi# zAbtAX+;henP3B1RkuMvYE7ic;@HwUbqO7%UEHBNGiL)(iA)HyumAG1h{N2buOY)=H zn%T~)fbReHx;H`oi+a~8xnCQ53v77ZH*u=gw z!e|%dy9A%rhw@rXSysn-;Df-61Yd{|GBoijY)6=T1Kpt6y~88F zlr-p)IvgAs!4i*m~F8Ra0_%QD=o zx#SLI9`0)H^U2%hvR9Z>CA&;XS4YaPfQ-i=;|o4Avfzj(D*tvV|30n}OnaEQ1R_cY zGTMP*fvmUOmcjIqpJm}J^V)roaX)1IdK_MoZ7O?qUv-(wWb6^o#RgMp4)?>1C1iQ! zN*BMHd;#LomdrK_BP}0kailH6XWPy-rl-lCNICQoo|WLae-xe#;Mq3{Pak-Wjl%N; zc*37Ju|7w@Q#A^Y+!3p~hdpot!bkT&TH!y_M;G&3)N9XHDTIfi{R zleF!VjSSu3-Rb4cGv__X4Q4o@$j!t5vcEVs-c{h;G)CS{;GOi~=yIjryTIEE-l*v7 zsrMk#4vaw#*qm4Jzm;Day-eZ7Kk?!`Jx1Od@J6=}k8BkE(rnLmg*j#3B67RI`viE$ zV*8!ot@!fjyket6;N1`2C_bm!NYaiWEq6y|n&^}JUW_M58;d^k!FyFMjYxkC=~qa8j6ye>u?jN=rf)*}(@4Kt(v7aNH3z$NgeDdO+JW?{ zui<-0l5Y0AlY3EFxW2&2kJ(4(=W(=e+$3lK@o3j>95%5Arqd3AX1Uq;E!gkUd{Q z`YTA^B6@l4DHedwV=`GH=Mq8ooR5u~mEU-M_Uwj?V~{Zxdp1MWe(-PkCj5Zw+CUY;#MSRDrkg zvEa6DM*1P7-z2&l-!XGCY^8G71g&z-Y>nD(2i1eVgmhaB> zBmK3uHNvJdeKzK2|30>MssjH?@b3iw7PeFBTE(0du!+(Rsc@0F2U}mM=T@?xAnmXN z@?IGjTRR*8Z|}GL+d*Uw;gPE{`PtCpl$ru#HzDeKXR>V&mJvJMjHr8$XEjA*2V{_z9#}?|bbwE|mJug}*|^ zQ}`@4el24|6=YQWVC**B0RAK34;mZpNBYVi;(J7yek%KT)=w8@jtvKpukSyC?RgC8 z14s|D=h^eH&fAaQ91vT0#|F8EYsZGbu~z(PC1mV`jIqRZi5Hu|U-hHmk*}JGWRQ=W z?>sCF4U8NA{&Buuj)-aF#UaRh?76YUi)>uLsy^)B4iYcqJGcW#H+%MJaU1h8HiPWZ zNWYNp=^lGN*!FRxpM50Q_Pt2I9qC&jE5r6<7?;KN@}1xz$QX<5qu|djz&zx4_%7~= zVm0=4(k>(5miOl}Vzta|GQzis-;F3^(jUgw9$UcM2VTE^A?>jX>A5cqk5r1jY3+gg z?raYkzok8fz?=Wa;P!BEm{EiDpuP}B`V&a^op&ZT&lUvDlcYWBAtUckV`~r5c?(Eq!<1f=S>-Lfwy2VkC1Z#Q-AQ*9QCh1!lvU~iu;L3zg#{i*E#0Sc)7hZo>!TE zZO*9&YXS0YK)zykzYX*8j4`Rwey=E=b+2!4Ez24IsBFY#4oY&3!T3!d%Bep-y5ERS z`@#DXcxOzsb-7pW_5|tFJ#Kt$Pz)LWlD}5C3nu=Te;MMz@aQ^i0B;n$H6ysUdFq&S z%KD72p%&zfUnk1?87d2l51$0?*A1cke0)zmeGQm7e-&LP&BuBYybqj)7r%K1&Nh?Z zUl=$3)8l1tL z_eRlC3!uDb=A&m-*&jf>dFP0|=YX|o7B-r(^1<~6dmj-+In%+j>O6dp8=q}?W)6ma za(DJp`ECcU$o5QF80ydN%qU0pj~kJHGxEP%^5Z!he;a`90Cv6rC|6EyWh~qRd;qwa z@1btKb7yQNrd_mwaUb$PGA4<ec;H^yVFzHxjRZjt^3 zK^{wTvlf=q28;l>ONodfHXTI1srWsFDfldVQ1YFI$@q9gzE5mhoZ)f{a%%j7g01f{l#z$uei%qE12@7` z+pk<=cS$Ik^(9|#KrEELP*^DI(~*(dV^I*o@3l`t&M|mCi9f>dEvy_*yFK5>O&9*1F7br^PSSsyW zugniNh>Rk%7v$ZRW#whWk<`8s&B9$o-#{W0AD?ExRfWI#)<=qW!uXTl1$nk|#E$jG zUp64@EXct$TdoJ=w@F}M@Ki4x8JQ+JE>DjKyfc`W^>BJPD3|Mk)@S`-?{GH1HokYCe0GIGy2$TxG@ znoz~cQ1!A&(#xR0VWf29RXQ!*e>1KwB?L4>|f$HblyUr+l;Sa z=^cLD9~5@8WeoN=o;NJ;h6UcRz)7<}^>3}{T+;Bw@h2?nj)Vj}{7x_F4pPnZINzW2 z;F^BQTATlkcWVK!JvM#b+UNh?lup%NLt8B#{-mXiq}!OUpYKOW^R`*OIB9W*ec!|P ziJ!9X6{NkS`$%&?ZPQnhZXz8Zbv|R$^GLf$2S}a!ZF&J|7wH~S=d(8bD(a>6mZ4Fe z-S4wh-}mxe=eN$FO+UjDr|U*5?`?d~r9Yp`cbQMg^L9&|$xJuvTwt31-@JMjwc?yp z$iEMJ0P@Ioojg%0qI2`-sh^DX^2nN59=BKJ+D{bg9HAmIrIO1hnNH|bu|gQSN^kCRULDa$9FMmmqQjC2KQ1L<1Q9@4F(+evqm?j=1)dYJS$ z>4bwUpL81OJkm1K6{HQMYe{=Zw~}rr-A%fe^dRYB(&MBPe#Y`ir;*MhEhAk)+CaLN zw1;#n>2}iHqIO1hnNH|bu|gQSN^kCRULFP2X_jdUJq8R-hr2GX^p zJ)~Pnx0CKB-Aj6q^f2jh(h0v{`J~fG=aH6?t{`n7T}#?Sx|MW0>2A`!qz6e4lO89X z@HEROoklv3w2X8GX#?q6(jL;Sq}xe%lkO!wNP3v`IO&96vV78Mr1MD2NLP?Hkgg@| zA>B&4opd+pUebf4he?la(!-?3Nhb`ke9~#8^GM4`SCBT4t|jdu z-AcNhbT{c<(u1UjNsp6G__br6b4aI=&Lb@&T|wGFx|XzubSvq0(%qzcNe_}9COu9% z;WsRw)V?MEKQ8&v_tR+UnyJyV|AFTKb`MoDezS{q#lVl&Yzw$yfUioFx0G{RdBye6|1dlVl&Yf8I%wul650N%m3uA3aI()&7Mi z$v$fTijyQ??eCoCzmM|TqFOSS+CTRs$yfWYJW2LZ`$tcbe6@f0B-uyppLdevtNr6A z$v$fTu9GBR?O%A3?4$OtK1uS`{+mvceboNFCrQ5AKYEhvqxO%VB>8IpzLR7hwf~Nj zBwy{{eUj{>_V4`%$sgu=Lf4?EJdfw0Ryif7GpYM71@_XgI=XLUX^LyWC zc;wIVykG8lPma9y(^%K{t0_nGt38JnyuNusQ2AXfuUZQv?S0t;{Igzhhb`?nV&D4z zl!gYr6c(r3sqlU2?|~Va&^?mQQFtK8a_M}p_w6fehXK~N?`HpUE4aQsYA*NVzTkR) zzDFsqk9>sze1~{nqMCfYUHHQ%(GyQ!uDREE# zh?^f)9xd1FPd}CZ*Bi5T@Bfg${oh8uLh?BQeCk*6pZLppwHgOWnMr+CdIaYEUk~ul zdiD5E^@OY#173$b z{mYSm%<@${1D^gB|4NYMUWL#xur_jDlG|v@3vcuW%O8zuqzW-#}Tqzje<`e;=(H{T~18elW;# zqe*&o>CdabsQ=yJU#|LJlzj2q{rUbzc}La%0{mJ1ukRs$Ij^o3!Q4U8&*Z&#@BB2L z6O<#kjDJXq$N!E#Yo+#$aemrY?(w%vJny3@+2`@Uqo4if*x`J(Lv@oaue-;;T=hSP ze1idgs(#h~MSnS?m?0xMNJ@Ty{}fIN%8?=Z9}9T=r8Zi0NhVZt~~bO1>!jb8i5j`fc|o{N=n>YXwPrn0ih22=4!1;=fV) zQ{3ZM9(CQ`xw=FgY69q z7z-5MmwxZ;HjiDd=035)-gL!-XkGh><^MPL!8N~E{+~ukKRil$uSfrhS`g`HJ?Yt= z^wD15sNad(_l@>Dv3=g~&vg5|(f`sT&KvP1-9K(iH;?nbJ-+;ZeSA}Mmlqdb8lGOh zcbVa9Za}r)~pLPmp>hkxpzT&vl_Wf<&vx|p1=8_T9Q~etIzGYC@As$U_!R;EPCz=2e;b>>CyBXd&r1ld>rBNI^NjNEq+(T#rBD*ZmIVzn!@5 zyL>{J@jQY*Q|`0o)tPFEBiq7)>ptJr#AW+YaNR#v{5{00d9Kk(e);!$g z!S$S5k5^^eOmIDyReiojJWfW%e?wgFTc|z|V&piy$MQAmb3Sps&!ch{5Z8Mzip%uh z=)-;TYbfV#;<|sX_?L+5zNq3)0GIaaW_wjo&I`oD9$ef~_y?}EEvWqOCLZzy|lf)Ph9UQT!Z$I=QqS1o^Rc0Vdo{4 z@4?@hZOhgDz^{|Pl=u+$3D3g2JXeB>eVpYGh)35&_2hT{$H2}E*jJu)#P$B%HVZqS zB(C>96yHT$&#M*RPh8It6+cE?_g58v2YyIK?5X=!x3Js-;(8zJ65=u9ah`7}-lK9n z_@l)2JWTn2r}7zT6o1zQt52M`wVvaAfVkeXQ~X-uy8o`Y{CjayFFn^${9fYy9{Ib7 z>p8gc|A6?QhyS<4b)Rc7?ej8lY4<*lKc91|)u(%$b-=e^h?A$7xZVr&eFi*uF7bX3{tn`O9$bF&Tjcb5@Joqzd+>7NaSy(Nc+`W}6R-B*?ZgW`_^rhA zJow$j!yf#8;Npi4?>{c0oqs@F?@uaz8vMfet%tvuxZdAX{#%Lby*0%jCa(A16hA~< z@8c*w;dEQB-uqEJpSa!|Qv7=2dXGu*j}g~

Sy&uJ@=E|2c8J*P-|@alIF!_}m<; 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 bool: + if not isinstance(other, CharsetMatch): + raise TypeError( + "__eq__ cannot be invoked on {} and {}.".format( + str(other.__class__), str(self.__class__) + ) + ) + return self.encoding == other.encoding and self.fingerprint == other.fingerprint + + def __lt__(self, other: object) -> bool: + """ + Implemented to make sorted available upon CharsetMatches items. + """ + if not isinstance(other, CharsetMatch): + raise ValueError + + chaos_difference: float = abs(self.chaos - other.chaos) + coherence_difference: float = abs(self.coherence - other.coherence) + + # Below 1% difference --> Use Coherence + if chaos_difference < 0.01 and coherence_difference > 0.02: + return self.coherence > other.coherence + elif chaos_difference < 0.01 and coherence_difference <= 0.02: + # When having a difficult decision, use the result that decoded as many multi-byte as possible. + return self.multi_byte_usage > other.multi_byte_usage + + return self.chaos < other.chaos + + @property + def multi_byte_usage(self) -> float: + return 1.0 - (len(str(self)) / len(self.raw)) + + def __str__(self) -> str: + # Lazy Str Loading + if self._string is None: + self._string = str(self._payload, self._encoding, "strict") + return self._string + + def __repr__(self) -> str: + return "".format(self.encoding, self.fingerprint) + + def add_submatch(self, other: "CharsetMatch") -> None: + if not isinstance(other, CharsetMatch) or other == self: + raise ValueError( + "Unable to add instance <{}> as a submatch of a CharsetMatch".format( + other.__class__ + ) + ) + + other._string = None # Unload RAM usage; dirty trick. + self._leaves.append(other) + + @property + def encoding(self) -> str: + return self._encoding + + @property + def encoding_aliases(self) -> List[str]: + """ + Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. + """ + also_known_as: List[str] = [] + for u, p in aliases.items(): + if self.encoding == u: + also_known_as.append(p) + elif self.encoding == p: + also_known_as.append(u) + return also_known_as + + @property + def bom(self) -> bool: + return self._has_sig_or_bom + + @property + def byte_order_mark(self) -> bool: + return self._has_sig_or_bom + + @property + def languages(self) -> List[str]: + """ + Return the complete list of possible languages found in decoded sequence. + Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. + """ + return [e[0] for e in self._languages] + + @property + def language(self) -> str: + """ + Most probable language found in decoded sequence. If none were detected or inferred, the property will return + "Unknown". + """ + if not self._languages: + # Trying to infer the language based on the given encoding + # Its either English or we should not pronounce ourselves in certain cases. + if "ascii" in self.could_be_from_charset: + return "English" + + # doing it there to avoid circular import + from charset_normalizer.cd import encoding_languages, mb_encoding_languages + + languages = ( + mb_encoding_languages(self.encoding) + if is_multi_byte_encoding(self.encoding) + else encoding_languages(self.encoding) + ) + + if len(languages) == 0 or "Latin Based" in languages: + return "Unknown" + + return languages[0] + + return self._languages[0][0] + + @property + def chaos(self) -> float: + return self._mean_mess_ratio + + @property + def coherence(self) -> float: + if not self._languages: + return 0.0 + return self._languages[0][1] + + @property + def percent_chaos(self) -> float: + return round(self.chaos * 100, ndigits=3) + + @property + def percent_coherence(self) -> float: + return round(self.coherence * 100, ndigits=3) + + @property + def raw(self) -> bytes: + """ + Original untouched bytes. + """ + return self._payload + + @property + def submatch(self) -> List["CharsetMatch"]: + return self._leaves + + @property + def has_submatch(self) -> bool: + return len(self._leaves) > 0 + + @property + def alphabets(self) -> List[str]: + if self._unicode_ranges is not None: + return self._unicode_ranges + # list detected ranges + detected_ranges: List[Optional[str]] = [ + unicode_range(char) for char in str(self) + ] + # filter and sort + self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) + return self._unicode_ranges + + @property + def could_be_from_charset(self) -> List[str]: + """ + The complete list of encoding that output the exact SAME str result and therefore could be the originating + encoding. + This list does include the encoding available in property 'encoding'. + """ + return [self._encoding] + [m.encoding for m in self._leaves] + + def output(self, encoding: str = "utf_8") -> bytes: + """ + Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. + Any errors will be simply ignored by the encoder NOT replaced. + """ + if self._output_encoding is None or self._output_encoding != encoding: + self._output_encoding = encoding + self._output_payload = str(self).encode(encoding, "replace") + + return self._output_payload # type: ignore + + @property + def fingerprint(self) -> str: + """ + Retrieve the unique SHA256 computed using the transformed (re-encoded) payload. Not the original one. + """ + return sha256(self.output()).hexdigest() + + +class CharsetMatches: + """ + Container with every CharsetMatch items ordered by default from most probable to the less one. + Act like a list(iterable) but does not implements all related methods. + """ + + def __init__(self, results: Optional[List[CharsetMatch]] = None): + self._results: List[CharsetMatch] = sorted(results) if results else [] + + def __iter__(self) -> Iterator[CharsetMatch]: + yield from self._results + + def __getitem__(self, item: Union[int, str]) -> CharsetMatch: + """ + Retrieve a single item either by its position or encoding name (alias may be used here). + Raise KeyError upon invalid index or encoding not present in results. + """ + if isinstance(item, int): + return self._results[item] + if isinstance(item, str): + item = iana_name(item, False) + for result in self._results: + if item in result.could_be_from_charset: + return result + raise KeyError + + def __len__(self) -> int: + return len(self._results) + + def __bool__(self) -> bool: + return len(self._results) > 0 + + def append(self, item: CharsetMatch) -> None: + """ + Insert a single match. Will be inserted accordingly to preserve sort. + Can be inserted as a submatch. + """ + if not isinstance(item, CharsetMatch): + raise ValueError( + "Cannot append instance '{}' to CharsetMatches".format( + str(item.__class__) + ) + ) + # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) + if len(item.raw) <= TOO_BIG_SEQUENCE: + for match in self._results: + if match.fingerprint == item.fingerprint and match.chaos == item.chaos: + match.add_submatch(item) + return + self._results.append(item) + self._results = sorted(self._results) + + def best(self) -> Optional["CharsetMatch"]: + """ + Simply return the first match. Strict equivalent to matches[0]. + """ + if not self._results: + return None + return self._results[0] + + def first(self) -> Optional["CharsetMatch"]: + """ + Redundant method, call the method best(). Kept for BC reasons. + """ + return self.best() + + +CoherenceMatch = Tuple[str, float] +CoherenceMatches = List[CoherenceMatch] + + +class CliDetectionResult: + def __init__( + self, + path: str, + encoding: Optional[str], + encoding_aliases: List[str], + alternative_encodings: List[str], + language: str, + alphabets: List[str], + has_sig_or_bom: bool, + chaos: float, + coherence: float, + unicode_path: Optional[str], + is_preferred: bool, + ): + self.path: str = path + self.unicode_path: Optional[str] = unicode_path + self.encoding: Optional[str] = encoding + self.encoding_aliases: List[str] = encoding_aliases + self.alternative_encodings: List[str] = alternative_encodings + self.language: str = language + self.alphabets: List[str] = alphabets + self.has_sig_or_bom: bool = has_sig_or_bom + self.chaos: float = chaos + self.coherence: float = coherence + self.is_preferred: bool = is_preferred + + @property + def __dict__(self) -> Dict[str, Any]: # type: ignore + return { + "path": self.path, + "encoding": self.encoding, + "encoding_aliases": self.encoding_aliases, + "alternative_encodings": self.alternative_encodings, + "language": self.language, + "alphabets": self.alphabets, + "has_sig_or_bom": self.has_sig_or_bom, + "chaos": self.chaos, + "coherence": self.coherence, + "unicode_path": self.unicode_path, + "is_preferred": self.is_preferred, + } + + def to_json(self) -> str: + return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/py.typed b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/utils.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/utils.py new file mode 100644 index 0000000..45a402e --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/utils.py @@ -0,0 +1,399 @@ +import importlib +import logging +import unicodedata +from codecs import IncrementalDecoder +from encodings.aliases import aliases +from functools import lru_cache +from re import findall +from typing import Generator, List, Optional, Set, Tuple, Union + +from _multibytecodec import MultibyteIncrementalDecoder + +from .constant import ( + ENCODING_MARKS, + IANA_SUPPORTED_SIMILAR, + RE_POSSIBLE_ENCODING_INDICATION, + UNICODE_RANGES_COMBINED, + UNICODE_SECONDARY_RANGE_KEYWORD, + UTF8_MAXIMAL_ALLOCATION, +) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_accentuated(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: + return False + return ( + "WITH GRAVE" in description + or "WITH ACUTE" in description + or "WITH CEDILLA" in description + or "WITH DIAERESIS" in description + or "WITH CIRCUMFLEX" in description + or "WITH TILDE" in description + ) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def remove_accent(character: str) -> str: + decomposed: str = unicodedata.decomposition(character) + if not decomposed: + return character + + codes: List[str] = decomposed.split(" ") + + return chr(int(codes[0], 16)) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def unicode_range(character: str) -> Optional[str]: + """ + Retrieve the Unicode range official name from a single character. + """ + character_ord: int = ord(character) + + for range_name, ord_range in UNICODE_RANGES_COMBINED.items(): + if character_ord in ord_range: + return range_name + + return None + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_latin(character: str) -> bool: + try: + description: str = unicodedata.name(character) + except ValueError: + return False + return "LATIN" in description + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_punctuation(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "P" in character_category: + return True + + character_range: Optional[str] = unicode_range(character) + + if character_range is None: + return False + + return "Punctuation" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_symbol(character: str) -> bool: + character_category: str = unicodedata.category(character) + + if "S" in character_category or "N" in character_category: + return True + + character_range: Optional[str] = unicode_range(character) + + if character_range is None: + return False + + return "Forms" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_emoticon(character: str) -> bool: + character_range: Optional[str] = unicode_range(character) + + if character_range is None: + return False + + return "Emoticons" in character_range + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_separator(character: str) -> bool: + if character.isspace() or character in {"|", "+", "<", ">"}: + return True + + character_category: str = unicodedata.category(character) + + return "Z" in character_category or character_category in {"Po", "Pd", "Pc"} + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_case_variable(character: str) -> bool: + return character.islower() != character.isupper() + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_cjk(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "CJK" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hiragana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "HIRAGANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_katakana(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "KATAKANA" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_hangul(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "HANGUL" in character_name + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_thai(character: str) -> bool: + try: + character_name = unicodedata.name(character) + except ValueError: + return False + + return "THAI" in character_name + + +@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) +def is_unicode_range_secondary(range_name: str) -> bool: + return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) + + +@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) +def is_unprintable(character: str) -> bool: + return ( + character.isspace() is False # includes \n \t \r \v + and character.isprintable() is False + and character != "\x1A" # Why? Its the ASCII substitute character. + and character != "\ufeff" # bug discovered in Python, + # Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space. + ) + + +def any_specified_encoding(sequence: bytes, search_zone: int = 8192) -> Optional[str]: + """ + Extract using ASCII-only decoder any specified encoding in the first n-bytes. + """ + if not isinstance(sequence, bytes): + raise TypeError + + seq_len: int = len(sequence) + + results: List[str] = findall( + RE_POSSIBLE_ENCODING_INDICATION, + sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), + ) + + if len(results) == 0: + return None + + for specified_encoding in results: + specified_encoding = specified_encoding.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if encoding_alias == specified_encoding: + return encoding_iana + if encoding_iana == specified_encoding: + return encoding_iana + + return None + + +@lru_cache(maxsize=128) +def is_multi_byte_encoding(name: str) -> bool: + """ + Verify is a specific encoding is a multi byte one based on it IANA name + """ + return name in { + "utf_8", + "utf_8_sig", + "utf_16", + "utf_16_be", + "utf_16_le", + "utf_32", + "utf_32_le", + "utf_32_be", + "utf_7", + } or issubclass( + importlib.import_module("encodings.{}".format(name)).IncrementalDecoder, + MultibyteIncrementalDecoder, + ) + + +def identify_sig_or_bom(sequence: bytes) -> Tuple[Optional[str], bytes]: + """ + Identify and extract SIG/BOM in given sequence. + """ + + for iana_encoding in ENCODING_MARKS: + marks: Union[bytes, List[bytes]] = ENCODING_MARKS[iana_encoding] + + if isinstance(marks, bytes): + marks = [marks] + + for mark in marks: + if sequence.startswith(mark): + return iana_encoding, mark + + return None, b"" + + +def should_strip_sig_or_bom(iana_encoding: str) -> bool: + return iana_encoding not in {"utf_16", "utf_32"} + + +def iana_name(cp_name: str, strict: bool = True) -> str: + cp_name = cp_name.lower().replace("-", "_") + + encoding_alias: str + encoding_iana: str + + for encoding_alias, encoding_iana in aliases.items(): + if cp_name in [encoding_alias, encoding_iana]: + return encoding_iana + + if strict: + raise ValueError("Unable to retrieve IANA for '{}'".format(cp_name)) + + return cp_name + + +def range_scan(decoded_sequence: str) -> List[str]: + ranges: Set[str] = set() + + for character in decoded_sequence: + character_range: Optional[str] = unicode_range(character) + + if character_range is None: + continue + + ranges.add(character_range) + + return list(ranges) + + +def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: + if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): + return 0.0 + + decoder_a = importlib.import_module( + "encodings.{}".format(iana_name_a) + ).IncrementalDecoder + decoder_b = importlib.import_module( + "encodings.{}".format(iana_name_b) + ).IncrementalDecoder + + id_a: IncrementalDecoder = decoder_a(errors="ignore") + id_b: IncrementalDecoder = decoder_b(errors="ignore") + + character_match_count: int = 0 + + for i in range(255): + to_be_decoded: bytes = bytes([i]) + if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): + character_match_count += 1 + + return character_match_count / 254 + + +def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: + """ + Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using + the function cp_similarity. + """ + return ( + iana_name_a in IANA_SUPPORTED_SIMILAR + and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] + ) + + +def set_logging_handler( + name: str = "charset_normalizer", + level: int = logging.INFO, + format_string: str = "%(asctime)s | %(levelname)s | %(message)s", +) -> None: + logger = logging.getLogger(name) + logger.setLevel(level) + + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter(format_string)) + logger.addHandler(handler) + + +def cut_sequence_chunks( + sequences: bytes, + encoding_iana: str, + offsets: range, + chunk_size: int, + bom_or_sig_available: bool, + strip_sig_or_bom: bool, + sig_payload: bytes, + is_multi_byte_decoder: bool, + decoded_payload: Optional[str] = None, +) -> Generator[str, None, None]: + if decoded_payload and is_multi_byte_decoder is False: + for i in offsets: + chunk = decoded_payload[i : i + chunk_size] + if not chunk: + break + yield chunk + else: + for i in offsets: + chunk_end = i + chunk_size + if chunk_end > len(sequences) + 8: + continue + + cut_sequence = sequences[i : i + chunk_size] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode( + encoding_iana, + errors="ignore" if is_multi_byte_decoder else "strict", + ) + + # multi-byte bad cutting detector and adjustment + # not the cleanest way to perform that fix but clever enough for now. + if is_multi_byte_decoder and i > 0: + chunk_partial_size_chk: int = min(chunk_size, 16) + + if ( + decoded_payload + and chunk[:chunk_partial_size_chk] not in decoded_payload + ): + for j in range(i, i - 4, -1): + cut_sequence = sequences[j:chunk_end] + + if bom_or_sig_available and strip_sig_or_bom is False: + cut_sequence = sig_payload + cut_sequence + + chunk = cut_sequence.decode(encoding_iana, errors="ignore") + + if chunk[:chunk_partial_size_chk] in decoded_payload: + break + + yield chunk diff --git a/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/version.py b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/version.py new file mode 100644 index 0000000..db1ff57 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/charset_normalizer/version.py @@ -0,0 +1,6 @@ +""" +Expose version +""" + +__version__ = "3.3.0" +VERSION = __version__.split(".") diff --git a/frieren-cli/venv/lib/python3.11/site-packages/distutils-precedence.pth b/frieren-cli/venv/lib/python3.11/site-packages/distutils-precedence.pth new file mode 100644 index 0000000..7f009fe --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/distutils-precedence.pth @@ -0,0 +1 @@ +import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'local') == 'local'; enabled and __import__('_distutils_hack').add_shim(); diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__init__.py b/frieren-cli/venv/lib/python3.11/site-packages/git/__init__.py new file mode 100644 index 0000000..16aa005 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/git/__init__.py @@ -0,0 +1,92 @@ +# __init__.py +# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors +# +# This module is part of GitPython and is released under +# the BSD License: https://opensource.org/license/bsd-3-clause/ +# flake8: noqa +# @PydevCodeAnalysisIgnore +from git.exc import * # @NoMove @IgnorePep8 +import inspect +import os +import sys +import os.path as osp + +from typing import Optional +from git.types import PathLike + +__version__ = '3.1.37' + + +# { Initialization +def _init_externals() -> None: + """Initialize external projects by putting them into the path""" + if __version__ == '3.1.37' and "PYOXIDIZER" not in os.environ: + sys.path.insert(1, osp.join(osp.dirname(__file__), "ext", "gitdb")) + + try: + import gitdb + except ImportError as e: + raise ImportError("'gitdb' could not be found in your PYTHONPATH") from e + # END verify import + + +# } END initialization + + +################# +_init_externals() +################# + +# { Imports + +try: + from git.config import GitConfigParser # @NoMove @IgnorePep8 + from git.objects import * # @NoMove @IgnorePep8 + from git.refs import * # @NoMove @IgnorePep8 + from git.diff import * # @NoMove @IgnorePep8 + from git.db import * # @NoMove @IgnorePep8 + from git.cmd import Git # @NoMove @IgnorePep8 + from git.repo import Repo # @NoMove @IgnorePep8 + from git.remote import * # @NoMove @IgnorePep8 + from git.index import * # @NoMove @IgnorePep8 + from git.util import ( # @NoMove @IgnorePep8 + LockFile, + BlockingLockFile, + Stats, + Actor, + rmtree, + ) +except GitError as _exc: + raise ImportError("%s: %s" % (_exc.__class__.__name__, _exc)) from _exc + +# } END imports + +__all__ = [name for name, obj in locals().items() if not (name.startswith("_") or inspect.ismodule(obj))] + + +# { Initialize git executable path +GIT_OK = None + + +def refresh(path: Optional[PathLike] = None) -> None: + """Convenience method for setting the git executable path.""" + global GIT_OK + GIT_OK = False + + if not Git.refresh(path=path): + return + if not FetchInfo.refresh(): + return # type: ignore [unreachable] + + GIT_OK = True + + +# } END initialize git executable path + + +################# +try: + refresh() +except Exception as _exc: + raise ImportError("Failed to initialize: {0}".format(_exc)) from _exc +################# diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/__init__.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83841ee077d21e68b1de65f894364a4ac37832a2 GIT binary patch literal 3283 zcmb^yOKcm*b@s#Maw$(HnQs2ku1rfWXOuFL$zr^P~4HU@-CN{ zUCELv6>Q;yQ5cAGvVk;!TDT4Z=ioyE2)WdXFF7s^79kceV4%n$Hv+yGKK0E~q)5BH zb$0g6n>TOXy!Yn4H(xe3N(kByPx|mg0HJ@=Nu>z~$Sa9O=sr@B%IIjGj;zioj5o3h z>y4bkc_VN56oH{UobES7Mf7l94;Ydn0q#?RYK!W>%_|Ko!VQn$h{u)l5Q74Ar>Hj? zAtmJPWb`KQL`H8u7+Vg;R&NaGM~pV5&Eu8yb|b8W5B9xxz}Ml8LA}%HQo4+8rQ7IH zdW@sWQ6r*67?e5LkMOYpL}Wz09p4zdVXB^efmE$U#I-$0zAuM94v$|0gRCbA1 zn{NA*lL30x$@+cZ0rmz0yP{y%K-n&}dG}ORKn;TBdW-63|INPWk)P@QDC07xW&n!U zv$ketQaZ(FQ})U=?IwOBoQn;`&b{vn1lwyQldd@ui7?^df7JtyypQafHI=yu!G;i7 zP+8l<%8RR2e4QcFws5#*m9OBtz6w@5s+`?;IA8Tw@H#5h$ZK|M1w*Lb6)La#9)Z@6 zspejL1Ufyg>g5Hmp!#)b2dRGQemh*@L&aQ_im0ww76z?G#EL^MorrZNtubuGRQy2N#DF`nJDSIi8=;ZWStY&@7vrEjK|u@whv^CJ~5uewwce^yF)j;l9P;bu4LIMVq3Q~h%!G!Sr&4^6*bE+)ioUh0~f^C2|@FAHr{429QIJq?P+;iF@M@`u7I@8UHT+Lw|l` zrZ6%CEB~5XD9kN7>81SKa$#;6D0j|R_q+lTh_nExa}_$eQI zSe3hhYHQst&4_neeeo~vQu!1-!Qe9A*830*kP{ltq_J#Z$O#p4o5&Wf77iIQ0;&s6 zui2?Zy<9zFlV35OIWzN7-W9GU=9AZ_Ne`Uv`Uzel*jjM|lh{tLBr+f_1`8IAk+Pe~ zSwKB-l`c#G$f1&eLPv6wKLtZ~fAe763HIiLy@g;e4gRL07`h|82)6wg?0FvS$p<5a zVB~P&Wn)Wjl78e2NZRV0OhNdnG88+S#pUuiBLCs+4pa|X;o)7HiJo@-U{?%pq{(rh zkq`yV09?Om#k>khuZtX^B*EUyLLv~JP6Biv5U@pPs1y2tctydL=t|m4FVam}gOmV4 zM$54)(g`@{08_Q4C0C#{b+N2V+EB|bJm7??ca%!;#1d?nHZC8oWmLRTmbYeWI*CvX zj!_^}&`Uud09U-KmFuReJPWE$$E1=SfUElmW#1jzN24!I4r(14PiOr~@l zDsY_2qSxgHCN|R8d(2${uGC1`Um?%o<;)Q;mJ{p}nF4Nl*VZQxkWiTzrqqm>u!Gvm zy@*0N?<=A}&ijf;%6VV0!c%2_iMpNoUPKY6zP}8GbHS1*GPG2_17*ZC=bG}UrGQ!- z)KZdKnQKguKjqZ-B7fAW^djHoRC+z$;qV8&$ag#Sy;ee5RFUs-D!rD!#0oy4g#I7k zbt#0zX2=CFsumWd_B*F{2Oh=>eHR?B@15T}?}R_hOQQv8^r`Le(+4jH?4(bKgo3LK z6s+CwZuoB<4?Dh${5_KI9V+w=0WmLW1xd^KOCpj&IiVy-Olt`NxOeiwaG`a;!=Lcp z@HXhs_q{IqJ*B5Sr7O@=+6fQ+7#@Be9^Pxqhc6Yvm-5o(f^_-m zyu&9d8c%s|9gWRzhDQg{{-AHHmD~Si_gEwMeIv!6HA+`H(X&q9ILkeY9J}%X_v{0T F{|9_fGLirQ literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/cmd.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/cmd.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..778c5b5b3bf73345c14896a7511c95860fead55e GIT binary patch literal 59794 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 F{}=z@N^$@I literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/compat.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/compat.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a981fa3123fd41e7f5dd3554c325b477d0b7bba GIT binary patch literal 3695 zcmcguO>7fK6rNq%>s>qXhB$#FkYq{IQdbZw{1p*ewIZQv58)7KrL9_b4+Lh%c`92Q~NlC`IQ3= zqk7;P&v>;TNAZ9zTmZgpJXjweZ0i;4y$5-OeJh6=+8zM&sL?>`5bo0l^zcppuKr=@ zm$0OV@W_&1@97+eQ5nYhC4RW64WxVUNUIGqdvE$xrfWctbm%zTv~dI^<<4=i(SxOy zK2QIVRvTvZfqtfEKtIqif3!`1f9Loc=#PT_QJr5vvBB$SveYmQYG6m9wz7=PjFKVt zs-a^gX{R$9H5S=;PFXYPvXaTsW!q9t{l(lfALHHdl1-90v6!RSaYMBR#p^UCxxSCB zoGSoXpv3jh8cFK%pI&yw%Nc6emS(zvE7^>RUH_F_2D^c)7WBHJy^4uxYr4x@)D;XT zv1V9qAY(hmx+~}!VNK3)1%hdoSV@3vvoPKV-;My}F2HyJJ>=#e0wMj-Jv%Rh_7O6HEtS<@!Hl;O-)b79fRT%87+BD zOJOITGHAT!s;NxQ4LjNrPUtvk>zJ^pz6ak<5J(>V;Sc67?f{Ekw{9{BLgXML4CJ+? zlOfh-Iz19+%m^cgfwXD#Lx<;yUxB%c=u2MOK-4>UFaYHN@Q<2p!f$}jc1bf`^|DL) z@CLfitaKC#DW*|$u6@=5+CX`pfsck8G6?Cu4fF$lkADCwebij-cU;VWJ+=T2HFHYM zrH-O0i-x60 z%u*#~Qza(2A;U2&hiX<5yFO6r25M*)Y8C-?cnMocS7JDw0|TUcOisg=91TbwJr5q( zJbGuL6dW!GhpQ+UnByvPUqO5(MK?dblPyW3WofjE0=53{*Ke)g6N<`oNj_PYPZq_K z6)990uE@~>eI7YfFrIKvxZ=>oQe?IqnJtR5ok3@A+XesbFskDe_Qh~|45oerUl%y- zOS7lUBXiv~HUatz$m|24BLKN3Tw!XnPl1m)$k8=Ztp@%E0UcTF1IVizV-R zSz*BS3gk6ddn;G9w>m)QJ-=!*_Xgd!{j|5P8meyj(7Uw#*Qe*abK6LKjsh1iyS9_q z0R)m%HjORnC~#AMVOYAo=1g6xqc7M(A7M9>E0}gtgIjnYg=vOBrXvLFUhE*bz52HqY_F_W3Co4kUh0ea zy-R(bM8WiYY|ITN61tsCBnZ0~UEX#endcnXmqGQ#DfY^7rkeX=03j@vu0V4cwo?Wh z!jcGK;U+9e5Qz~MIl`_g(!&S~lIyp$G$yjgF50%~%87(#SvG~|l5IJOge$_!rS@o% zfUCb-2EoTmhKXTa6hnw0_cGIyOs{vXv!qbVpI$QXeC#~}*bVPp|1ZP~XjlsW!#wy|7+wX6to`y&BVx=c?`;*P}r#<6&sUl4jqGf5KBu$p3 z$-Dqt=0jDUlYA&w3JD$(EqUwM$Ff9JhI9>)`!?ts~{=J5|Iw zem=K-@$m;Weh)g-FwxT7uCy`USORVdc3Z-^txM(TTXpl|_TXcA55wN#s&8%{wgW!e hy824D@Z$}S?Ml3}`7bQ*1m^$% literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/config.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/config.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6cf282133f4528d539b7c20df9da9bf22e4a1c6 GIT binary patch literal 45854 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 literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/db.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/db.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9cc64630fa98425ec869cef0e3f6bf4c364e1c8 GIT binary patch literal 3740 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

eCv|YW5hQ%GE}}_ZQO%{s;}Pt= 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 UqjI-)Q;&SYQa;@#olWll4SmcaWB>pF literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/exc.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/exc.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ae430c85c2a735c349fcd62f52f70ced18e109a GIT binary patch literal 11480 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%0AFLPf)x2xoJ@1iR^IpG@0l+cWzKn$| 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 O+#ezGU+^dcmpTCQ^q`CY literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/types.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/types.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2421199a9ed8d19e8252e3365d97e998a9e45d2d GIT binary patch literal 4235 zcmcguOKcNK8m@lWacn2?BX1ID0_?^-;$>%N1vAWyfP~jZP6P&qX4qE8UABAZho`z7 zV#L9WIOND-r9oQlYECSp*+Y&TInJ?J`4F|V64IWy8Nq2z`~TfBwgao-Fxs~J>#F+y z`k(dq|1mTaC-D5VHAgc^LjHrD&NH~vc>Ncikne~_G|nJ$_~m2{`nT+>T(Ijerypqzuc$=7>CErsR~F zmeXcN&TzyU25Q8}22>pFa0FC3Ku5J`nV;$iCGr?eunf!@FviUZd4fY*W5%R8B~O{t z^0c`}-eb|~R*CwNV!dX-=c=XKmM@&P8h&i0=0Zm`{McF5Fw`}m4;62$E-7a(ES>$+ z#lm@ipxCIUZyoWC;HK| zwrT3FFBTc4pj)l1tbI+vVeyP%ulc-E%<*gtMU4aG#IQYq1C!lRKUxaK2(DW3#WkEN zx*!oXI1R_8rXQ`qDEKGV9m@PT1O1Nf+N{C$q96%jAHsfsqA%!H%}+2@cc?-cvzaf@ zjglW_K^97H*AFn`e#idn69C_ldmNj%$2YU?+r3BNJh?~yN;KhbLjSJ(mb=G)%LN%1 z)xX1pb2gK}KuNbGx=~f@j;pUzDG0M}RV2GC8DX9zU|h25CUWZKJT+iasjBMMLR^C9 zO4Y6#nq*r>Lt3K}qbkVIfK!5HA(_-%qs);k+m))Sr5Qk4xh$zJ1ghprt}WG62g%m4 z4y#*bcD+*V=m?Zt?3cD9>8Rww3X*h3S^{B>1!={tQg#Odc~rWigZ2`*MJ2OQYe+$4 zLyJLJuf7WSZ5@@I(2w0yz*K2nWjZcBsRZ8Ps$YnAtm;V{+EHZnj&9X(Y$+g1ryW=b zIByBli}3_IrKOD$4faqF0*DI)0}>zFShzcW+LG#4CuTc)Mw-97FNcXxcjZF5qdHRA zu3H)``S>-}sMA1MPGEDeR@ecAg8&Y$A4uEJU*)T|N%NJG%GN1tU?*Q=Hf{(fUuHUG z)arbXl?*)(FAy2G-mJV;0to-lGdEkAn_lwfi_F;O#r7aD z2HdY_+ zw{}wG_=6fXC}zv?BZh8Kr|<)?DvG7TF{Jo$MKNuyZeTm9DBsjoV}}A8+4V;hMYUkH z2kXR9lphE?3>w)y!qEnk)BLwns9}LbGtc0O4s~YF@ezZ}U

TKro_ytO!OM5Daz-+)W108ygXDH_Vo}t|Tk=zK}@B_WKKcqcKwkCjAa3){4asd+@anU<=5+oIJF?Jlj z?Dq&CAp~xGj4fPHeynqcgbCZ_^QXv%pu_8+q&}Y$og^kk9>yNcd#Slr;(#aO|9ODW z2qTCx-tX`&F8#|6n|A}}z#SXmTd z00Ao%hNU~h%AO?7J*js``y%63?XbW4z+BFQ3KI#i(04VPNT@32Lb@fi|h za8NE_!ou7ouxkgUh|{e<*xSOx7m8;V8RiMLC=?os?o|DFSj+_NVYnNVuqp}q>9B8= z^@?J^@oP8?HxTS&!&Y5C)hXAYU$q5}DG}`PwBI>KaF{-MQ^d#`uwVQUG@&$ z^lqu%A+fUtA3aJe3CD-5?3vNSnM1n~hgE`ld@tipcpc zASaBz>5_(d?jS~fH*DT`g`;n}q&VTTZJy)OZSpQ`ZoIJFSN=IPLxmIJXw3 literal 0 HcmV?d00001 diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/util.cpython-311.pyc b/frieren-cli/venv/lib/python3.11/site-packages/git/__pycache__/util.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d8485cc9cf7f34496974b2f33bdcce671ce5167f GIT binary patch literal 56253 zcmcePkO^Jd?QGAFG>tV~HUZzA!q9s#`NLw~68G=wn2@*lj1yB!| zw3)QihSW@(_Q=O{TAm;oJ56`o-P+yctkaWh+fL7p`>`_s8#&^^uJ&lV$GemLW0x6q z&hdE8+1cNBZ&jfRBpqjV&KAL2Rkv>4y3g-^@B7DPWiA7b&+ayhciuG^{*i8!!zo`p zyyY+$-ZngK5DbEG+z>McjYhgQjhkZTpas`v!7^@**@8AX-X65$xpmwTa|WGqoGa*J z@3@0*cJ>54>|7QsW9RZJa!79Yr$E#yC!J1fY zuvU(*3)UgtFUa8oQ048%4EH^-WT&9RnXOKeMU zORP268rvG&8fy!-#oB}Iv5sIztTWgd+ZNm==i3$R5<8^^StuKSEVetiJN9_+@z|c=o>*V7FSa+hH?}Xh zFSb9pKXxE^Aa*c#&}c9j#5SQ^Y!|%sN*@>m--i`HG#d;*!aqNPPoNx?SK6~sCHQ`5!khT#NAMe8^Udm2Z=PoLttlzVh)^qT6zas0 zF_Weh>Q~2&S%ijHEx}RIe)(yoG(w}eSEv^^Av6i5F>^5oq~7qV<%dZ4BPFpR_>At| zjp7-h3IBLs*ra*WCInW!`K+*+zJzaBgl3fDIn8|w?t{XF&?;^aw&K4{d>(l|KjskH zU$q9$3LSW}lin8hj@g85NPSMUN$orb#94$c#JwQjpTT`M?nC17%z3rwnhT*v--1Si z_(Cu|;nKX{%ia$K!zJH-1o0PyI7_)hjG#mjlxQbPDd4(QJfmp^ldub^MPX8S6m7Iw zY!UYspCWa$F11Z~47rR6yOB?tJacvo8+lbLY9h+r*EuI zB}kZOtINsX(T!hxoFB8;MxQzpYvgYYzZ{~7UW33R^3o}Iz7XT@tJ z&#tp)&*52c)q6MCv*+>b?5bxe_Us&(diRTd+jJc(ZKuxl@Co!^Z{>A0HY%T5!a# ziqd!-AR84rEym(W5m%Pe;$$3^@E(mO5636Qq8CqvrGzLIDn`TzeHf9{Ceeu`Qk#*g z!&$JOh*BZP3uPlylap~NnHZW7#OnpeDJh)7^QU<9I@~fF_gFzE;vraBUeP>2=X7pmqL;FL{gkc zCPGrYP+uAoqKHWpw%|MwPThDadObQ(a3$lROX78w8(m+BPVj5G;Li#!O2D6?``u_Z zF&x9UCT|p+m*YssGOa?2iEuJ{Rb=;}@#w_V^@2}LAU`ZvN0Q-WqTpvuOYJjqtbh9% ziCSLThFTXqN;|M|;yW~sIz}fhQdKEAuQa=|_D5)Vxi5;z&=fis4P2-VClXVV7!slq zIyx@h2#MD*-V%j!J~q&m7bP)~DAXw9wItpq#ZW=9;GUYe5JpB422!E^*wDaW=*-aY zz{xWsq2t3R&kTnKPoF+{dPF)(Wp2q%2#-=7BJq4R2Ca0u{h>A|) zRU#e;Wqmk};5EZ*rnf;nfMfvqaLZ&gB&~>+kDCVlB1hzeU`^VT=U60dx;uLk1c`Et zInt)IVay~rUiIjK%8YT^2yo#{z4#P^4~f9FX!24Zc`2F*2x278CUF3BB_Rg-BI9V_ zzVkie^+?aq#MSV4RKVn+*_Mb>a}P>VTsj|!j^TarhAV&rQyPO9{Tm1es7V9Vq&&4` zLGdsF>(|YyU`dGMW6}nsD_FwP#YDk&GKP1ecT9?kk~pE9yCdV#-mBuo)!y;w zh2F^<0QVC+d$w=yMRSYYlVQNDi(;bpVl>%1m5h$}U<%s_^rPsh4VnSpvk$W_Jf1kv zBR~BEDiO8#7qf;3ZtvWlxdST(qcd(?uH2Tzuj^d)ypTU1%XP(al@s~OiL7Vhf!Ci- z&JSe0oeR4V@L%RJ`O?w(5ZM_ztOYa160bK6Wr+xFX^0+~Swl$APz1G0f+ouOz!MVD zG13tw_%=P7K=1_$x8g8Zd$X1v?eBA|E4}NR&%gToipgT#Hh*cwfYbX4cKS(#oqir> zr*(s0n+>)KIfE6S!Q-DDmd@al1^a|}jeyOnk=TN#4}XT>xWNdnKvErl219WymQF-n zDs^;DmyAs#pvJV}8N=H~00?cq#W#%l(G2<;Be&&ir@m&mZhp>i&Ddc|<*`yG#p}sH zEIfh1BL$N2KvIlhdBlP=ej^aM6rQ*!22^<4<6@J3l%NNGiD)c39%gT`)#-W?BeN%R z3F!k^e5JTB6%hqo22Qcj8ld6Y6~Gcn03;y4!?IKg5WhfUA5esVDc-$s1ArxgC1M=u zfrPLU(&q{4(ppdDpcx9VjxS;n?HR^|G{pf+uyjPO2?Z-FP=`r+j`eALT%bNpPBj5)?jDi&q zcS`Iq4-XGV)ZRu)0v2q<{R1w(YQ&X}r5V$-F^PASqX-kH4f_!3#K_?zZQ3;JT`%Q+ zHom4!>piEO_y|NUy%FJRFNd1q5XI&N9 ztiA{=aRSpZG9@K&IetS18hx0hVqf5z7yvpKNL->dD!}nE1`)!-<*7t65KSfm7sN~9 ztI_xrgDeSA3|zYe7Ipfj$EenHm=++LCw)2+g>d1km7kNLc8OPvG-` zGtmhlevL36zz+^9l+wlsI8lB8E{vQ?) ztOxxu^VD`j8>;W?c`O9&O@Q}kRlxcmsqmiorwpcRki0DhX~&E?NlU1FNUaQ=w8iW* z;6NiEi(t-Z-cZsR4AW+P{`$LV^S4aj!WU=EFPpC!)p=+cmT0g5g>#HtiB67+iDatn z$k4M-4fX}b!qIV#OZEj$iBc?@NB|f!1QA{H(oBbwPeB0RSX=<22g0CW9|;Yed3xk@ z!8v$6A~G70qu7qAi74nqP#;(D!GaCV9t$UdK&c%fMd^V_yv|Z6_>(ec?QxK!z)e%N zd_WaZ9Qnad@pfVk!K{G;>Z-Srx2JQCEqTY5tYgcH#qO+J_W05R^Hn#WoO?3O{=T^H zty?izot4GlzPEkFU@m*Xxa{lB>VFSvn&vNMHx1p}bZTkSsq8mKa+^l;n?`drPv>i% z&OU!G>pQpXsQ~oh|W@vCTF!LrZ)|~_;$c?l^J1L~3`yk#$poCbhh_fc|7Jyo9K~ z#(#oPVGK#T>($i!mYlsdZ?DDpvew;qR}c!`eBV<(cWi!i;nAFDbKbK#>)CuCc!qO+ z%T4c`H_iT5>`2dEVx9CWgTa9!Bmh0ZY;g;iRN&$erc`i6E=^5b2@wlO2hY^5{4 zR*V@l;h-7Ztv;qrde|{znKourxTQ@$ZPBMR0t#tK-qPnO40*sewQ~WrN^+Ps5qLmb z8z+o&-q!Ln|h$wQ|{4^S1j<_rjAo zUt8YSmbNZC{P!I7OOE=5)|?}dcLcJIz_P>joydIa&C7F_bB?;S>At%>J$18hu5ZD$ z<}k*jNyWDQa8n^Y=j3q{67)sr+DeaBTRF^aPB<%Pcs%u zSDhL2v^im%tC}{iJz|8CRZuFQHcgws2RDCP!((UT#5A{i+9X)6Fl;7KJ#ETp@ER0X zK33&uqa5WNo<$Bu+##(T6P_mCsx@`#NwB^Ggj#{#xFSvf=ZJ%vAQVJH^8f_&5DSb` zG~w}U;Ts7;ZrCtt>utlJOC-gxKtlygkwo+YNUF9r0zcr)5=zqZrLmW>NrnqV5fi3X zaABzgcaqpNz(OVjcGY2#ejg8|*C=2Jit$2%=52B4JWh`&_}}oK_-6<}zt{{OZ~DcX zkIg+cJFr|`)=)9Fz4JG@@}NH zIyYcpobR6x&tI6oaC`9PQ|W;;@~W6WeJhv_F6{c={_pNz^yeD8^NroXfeq%F%{|LfDYrWX!ps&d|~ zdGFS&W9$FVm3tj!Vl|ZJ>8hko(jJPW;6LJj{R#|ZTJ#lQmDa%lTIShOAHc;|chQL9 z1LJUqku~@FB{HHD6XnQE)1+BP-RkxuOq)TV$5wqgNhOkxA}8+;OArnW17qsHVH2`H z5unM+W;LI&#A*i@-Soh9Sk>%c@bBC>CAN(SISlPS?gZEX+^l`jMI!?K%elAZ-P^L3ZLGDA6zq@_5l*7xI9QMa z>+xH-0I$_3RcYaRk;k=a9axVGRnjksIvqks-(v?TOyh?oQhq($KxanI5JF(P0=hlYzBGnPE>Qq*p>4J^4>t&^0~WwZqNMa&4Y6XR}3a= z6(OPS`GL%?tfM{WXwN&^aRHE+PA8 z&tM&p9@7pW!SpJv4eBt`WUv30id^bZ(*eT|@yd_X*Yr;(TuG1m$RGh7nJ@|#LKKD} z;OrkgHu&u5DuB5YZ#+DJfHUl-4d?1e7LzGvq`A_6owMZT>WKv)y@h1xcPoUJq6D~L z>Uo4=0ou;|(z)*<1hUsBr30z0A(EJh*G2pTDSD9gbotYfMEmoyC}zNw%6?X^-te%x9s4ynec{ufZL`Sl4F*% zeatABU-itGE`rjTHYO^yBE2G?O|aA}Ss1{JqwmW{DW52#4rnC>oprg=)MJN!Py<_! zfOfNFXnkFE2v&V+N+~^=tSBbD>{PC&AxYCu&|9{fwu{EJ4Yjqs>bPkyonC~h;QP%p zR`9G$(5&h}aDmC9$v{l$ zhnBuO7&kMQxy{Ns}=c8k-+L70VBqc4rktA+&|{~J)8w~TK?9TuyRg9gPP zVMY2Q%}i!`^KSm5sAkp52QA%Zi3>| z-P8)r)C#kPZ1XAp`zXBl?BcU`U%dNbwq=hR%lpX9U_PhTEEnSO@#3l?{W0>977-Mz zVCqCCIr?KEq`qJyG53Vf;gJ4>Qc=T8KVeC!2O$d_gR}=4LdG%aU(&N5BS<(90ENTx z#1pJy1&2}@>96ptl}i6lxL|$g-fb)`=7~(j8z*m{oIm-+7r^0WPw)X{6(q=T zbSt7A4ML;g;WU~@zZw=nX(`N*tkZx5)5aOo#4FRr_--9Fp{|&^SOz5V9X&;%uBWA6 z&;v;Q-Hb_>Gs?}6QeGxj9)rY7*_9+2t$dWGLoGHSWdpcJhK#ztDyiwLhpT@CpgxVs z_O1mb@fOpq$`|~xwdFTZ2P&b8h#DGBc}ZI&(i^#Pk#$rr=LZmH00J0B9$2FZXb2V@ z6A-D;OfI;9CxV`Vv^1eylYUjfj!akr>v;Scq$z}>OK(t47U^HnHJeng;i_Pr3}FW9 z`A-E`2pLe`ScCr!QthYN^B1@P;s*Zqjrpo?zVhlTD~2-bzJ)1vTCo|*D$>TZ5uBo| z=jdA_x6i)c@?OtR{6B8`*pk~mnBP8_Yd(^1K9Z|Gny)?zmK7sIzHxKk+`biq-MMes zTZP$Bw&_7t-Mn$$_<2?1LjN02-hPs9mdhZvF*=bD!E$HspKtq96WpW>EXj?&$d7R!r8OuwsjP* z+7I^Orl+%`0KKnHFP8Tj_@%PbI`un(*{ywX} zHxyhN3TB@VWy3;lNX!q3S^PT3W(~YOYLxb9KYOjC@A+Od2h~1RUUKgwwn860(k(|c z`&hHk#34N{naJU5k5T%2L~AGmR$3MWsmSya3hY!0tn~dLl8Q2TFxKlX2h>mqO@;_712Na!z>{=j&XHOIH%a zCI>dARq^OSeohtGNmgSQT5 z8=uIz`}6L8VzqbP-}=~!!Qt#=LC({h9-Mz{VK=S1$KO1jvE-^+^Hr_sK^d6UEZ1(F zzq&B>z3J~xzw`2)m$S7!^A;@Gv{ZN8Z*0!&dT0Ng{qqCMzUq1Fiqle710|)ZrUfB0 zkn?xs{T*PutDN>!6Mz$IppJuTyY0~YB_Wm^t#qo{NdJfjgp4FE;{q#V zaqQf8)ZKG5EjgMNl3Xugwtv~~Aa+~da^r^YJ^tOt-|4&4M*=--`o?m@rtfY0?zVTj z?{qKVZ?S%H)7=Y;o3h?LX$uWPCc;@5&AFTNkoZ}eIX34DfzCpOK-h#LVW_zm$}uGw z~$ZN?5wGTT)wXA?W1xms6D z4K1hE8Ar0A7?UAM(W*mmOgr?oFdCjC9VW-ijtK`p7j>ER+E`rskt@azA7O%f1_8ij zB~CioX4n!*AwHEXR6;We$W;P1A5aE{-Gc~X^6+yp2EvLn?>hv%9z#HAeHrPUR0EIqRi~#O*sHVl zjabIgQ=eDYEi~n-+w;}!v%~j&fqT9!OTI0c7jnK`dEYLmP1=1~dmWa*v~$H&=6uR{ zzo!27l}t~rW_!M7d-^C_?@VR;@7FXfyqv4)$=CGEo0qrm$~NqKx8=^ZOk{EMdt{EmTB;H>)PHuU`f#P;7nQC7qxlyb z8V~O?|6-pN*AYBZ4-2l?ay*I){c>ESv-NX}7Q(ezmZj<5<+?LNs$_~dDl~!xXgNj4 zZqPMJ*MJGZ0s#`Q04&Tf5dw)DP-%#fmIEw4pm~ky^29`35Wh4&(P6=86O)q=qp=G{ zRXQLWO_DkvbexfltsM+z^I_GGx=9rLDGjR@TmYY{*?2pit7*&Ev}M`vPwPJ1_`#+R zH(`Bq@5x&B@WsqR^CMM3xMcrSGCo8`DALqql9^iQ))<1n1eqQN5WH<5eM?$>`5~BK z{b3~Q4=!f}iaBy74B;CJ&6+@-hJp6TIFt#y0%OoBzXYM-6f};IWO6ETse?&)xs;G8 zurg)D1lkM|Lji3$eq&fBZwi)c$Q&$2Gb+rAsukprsTa)VpnepRKP%ag?!TqRX-0V= zqO%#S<+B5?4rML1_|4n+Sq*vHxH*jv^=42iSO(Pt8GXf?ZsPhSOo&WxDfo+$9i#1C z$m1jYYnI=y{RIh*5cFb5%1xr+=k$aC53i#`K^C-mQ%ABX(Tv3UDKTx(Vx&bycl{C} zRRK4o99A9r2{Hn;T;1YHUuMUu1)2-TwF|9n{j|C~)dg7>OH4_2lzvISz%%9GN+qqq zfMpXZz_b947!(CwE<1D;Tu~TMK&yzXFPR(;RvK7Nh#3T8ClMdV0>>7izd?S|UsLcI zf`T24Bi7}#&U{7J{ersgCeqN7P%*#xtuwdJ=IqURdoy6CwGrAyuiv8?-{-$wzVKqsw>j_I4DJks(9`c8zH@xh_|EX1;hc9{ z-n%X9*!IPJH~2nAt0rKw=X7$#j9AjFrIxwd?>%HNd}?qVDmQ;xW<&@cS4^NaTn8Sg zAK0k+J2t8ynlozIg{A!fN<631C+n#`mZ)2knzt4(uTqQyonDkL%{p*rL8;g=YnfoTEt4OzpCvWSuK5-IZ~ z0`1X>Zl-zGA?u<*_XLIrmuQ(CBO~Advwh$SN2C@+#!=d0Cc2{u`BkQil(Ni6E9n=Z31TDPyk)DUM@8CW`SUHm`{=qA|^a`l$sl(mx% zXdl=n#3YOcJ6r{)IDrNuTS)0+bc96U3Stwv{;(^TTLxy3in3i5`hf8&C4!O#*E3}0 zG)U_D;J{SkVZlvycJkCLSfLt8cG=K>;vAWKc&mgDQ)u8S)=0q{J`^3piYX@0mC{CJ z`ET)`Ak96jCRGN1_3ZKcjaxEjxR&CI!3(67f}36t)7O~}ZNrkIVd3$jMF7y!>id-x zRkm120>Ka+yd+YIq(20s9{LvpKd%{W%|T@$br)@s$7RRTYnKSB8;F_)I%ZI9v(r1y=@Q; zL8D*@n&9Th7zBA4w1`&GCYWi?36@uZI*E3%L@B#eQhgS^9CQSoL08Zn^aRU-q?$GOP<#YwSor@DH?<_ zu~BddZaCm5$NdJu1@|LO7mbL~5X!KU_TuR#q;8T^`*0s{0!9mULZxUG{NiS~6KU4I zB~)MqN@rW|Qj}AOtJ~0zl`kMhO)pXhM2w(ijv` znerepln2o_WlF$`A{Z*lKo^t{g(xl7kxR@> z@&c@Z0l3B?%As$9nq;=!WIPoIi~=%G7X)XN5A!+yD>g;TLYU;C_$2%QKwVz9SP~#- zizU%9vMAX;gF!QGOd%eEWCxnS$dsBn%4^~Z0mkcEL|6J5HBr6ZJRj13MXYQF+LzdX zG>{uRdiZa?KV6Xy->gw17_OVL3P8(yQl_o|2oPro6brd0fE*+Q%drX6B2jQNe4It& z25=Yd1Q;owYHcS#LUw5#2iu=Nd+lrjqMg38iEZs2?PrB;9XOF_W5>G5C{b(RY&%O0 z&MI!tvUg;=F-$Ak9h(4sEzU+?PWQWR#gJ5n8@|RjD zAYrw%6#+PN!$_y)%)ul*3InT9C{rU*wf9!MHfvbkvNdg)D_?H!VyCU`X-nQw zw=AEbrmJY`7Ay>vQcH=qRa9yk2ucZpuG5SvLCb5v7S`s&>PbPV{yrqHurz?R0R#>q zwM9VBsn;1Ap{ov{9cY>#;h!JUX1t>!QESU^wYlow2Bir485}mVR+_6rTuQ#De;+7h z6GI^_Gu9-jX2?gWeiQ5)*b~V%ZE?ewTnhZR8S~txY4bN-uw4LeP-_=Kt+KY>l%BYm zF$p&Ib#UQOM`Z~xWIReawC7baYVh4=8}Od0w)FMiOKb=EwI(;O^eeCxGF(DMN_|Q- zDOkG3;?v?4a;Eiy9s1cOwXyGRRGuo|h4u4(B@V>Xy6?LUx>>evNs+@QB|m)$P-;Ua zpghx_Q8HV+JbAbnH*M3uJ8ds{ZZCOW_Cr9tAE{7}&w>tLcqf1zr+SnnUWZ$#c5>Wa zn^Qx~<^f(uuC9S}5HlF0j*554kzugermIjs8PAY^#1Wcp7O1SqQ>v4>GvNlu`#=sqgx7|a33 z`@oxneFy(0L!PL>bQHg@!4A&%q^wiPvF^uVSZL!}rEEN-;a^b?a;G+?VQw0o@*O5y zKti#&z+9=;?#)_dR*s&+WiIn#UNFloCri_VH z z_Nq*uu22q-NI?1|5iDC0dXNBIi3BSsK2EN!JTy{5f)t0soxl(dCJ%*+u#-;@kCM|a zH#EafogN$+p&R>|(?cxQd3x~h;LtM^hs%+ZC)lO;2;43qE;MrT>C=Y?M+zRr_gCoT z)1wT%DOe8;9vvE%{s$`l92LnmaB_GsGscDL}+C2RR8Jz(UYeO zwy8;2gu<=H7(9q2JIWbaBz3X|V3k0v3qE+1SS0lh*0=ilWA#M?$~%!11=M;;?ynic^Tr*5Ykjj zDSpOCV11%`!qs|!@W95W&fuw;7v3G@f?h~tV69i%`1VV0zLeRWtKF8b-IhLost(Vd-J=oHk*|BK+{$ucf!6?)XS$ErV?WSyCdv^17g!$SXD5Agd?SpR~%=x$E z{aezG2b(%_jtyz&{GMfBRo>Tf&)2c!>sV~h`F7@gJ7M+;Gn4(xRdxBQwtH3GOI6*A zmvU9R^HsakgAYh4%*^U@&$DsKvvJ{4&eN9nv}HYQx;h@qdAjqS?yRSq*U)D0SEcRC z14IA%#HS}d8UCx`oTEQ&pRZkL&kQZz_^6GjYk#(;eaYRPb+<2j{PW4%Gda(e^ijx@ z%BmnZS}N<#mLWGh$=9~wtLmeUrLvA}SqFbbNkLEW&nhiXPn0(D+>7x%S z>nXR4B_G(8t9&$H`Dohyz~On_eanqJmf|#+hsA%r~G^rT6|{JFQOFKf!F( zMYgM&fKiKU)3QYPkXb;fuN1)yn+;OQx4>ot(tT1FNqt{kMHJzg8bMP$TwL+EKnNzo zQ&FZ}!Ps;>QW5Wj0LUk&lIW$i4o{vKc12ygzhs+-dM%Lx(|SLz+l`O z^e5p6gpWQvjer!vZyGbWT73Xp0hC;Q=<#Pg9-^2knWU%iuCyHiq+A4TIXOz?ovc4z zu*;=S?JNOz#0QiCXGl&{GzpL+zD?kd5UnpjtNLs2`MZ|nd4vMi>c<{UaD895M-2!Lacb8VfyY?l3?u1 zjIz`Efy3adO_%erNKK*~C>ZArfGA-j5o67i8X`Z2z?EPvF+oc<`kICZ&>-Uek}DhH z0E1tO6+9k?;~OxB$eNHi93uEgaCg8L>KH2>49(b1o$oUCq&k}^r?ghmk^M!ab7%>tBT*!mvlhGe-E(ShRFXK%Y-4& zx^Hpp6?p@*X4zxHldB@!Xsm{*z~F)vL61C%*kDk&h+GkcG5z4!1dSp~I=F8`@EeP` zH|2LoOkM*6O|C076$;yhL5J_~H&KeQ@$g02u@Y~CVs}vt1S{~;K05i1W#5|@WdM`ctW8Ur^4fe^W)AQ3JLK@ zC?o~&v4R=g{em|XVva)@tVtk^6)gw=wGSzz0~BCe1Q;<>Kt@s$2`Z&M6!cNB7eT=_ zGTMK1kj;&PU7jQonN>*GCjnYsp-^Hx4u`;@f(d&6b^>T9$6jUj285$aApPJv9wKU+D zvox&K7@WP})Gt)yZzfmYov-i4ZO+k?cl7+a+GVxDQ{J+}z3lKo{I=}yE;}mNuXfo{ z^`N3=!T(0%?32sh`ZPQ*KB%a}bxp(UNtj+$*k*@ds9qD8KYcrx4IIl=59O>8+Zhx)wKwH13KRw;O8~M6K0pSHuLOaVo|(1x_Bku z3MvUPr9qv^T9)wx$F-I%g6_bnH1HXEb}ZM{ueh7&8G;8DRV!Ay0s39P;9n3I8bI@` z*eS{(M`cE{^-$*STyavY%TQU(-}e|?(w(@P(QBEP{XaAhd#xhXV)**HuJ) zil9$0L-0i&06E5Md({)P33kygIPg#LHo*xonImnuZVbX$u)`%$R;gY6kY~l<(VL{@ zd}#&Z0WZFcbHQgClRA+uKY8$Ej094fC0zv_z}B ztJTznvIcVbk(yJ6@>q4~@mO%o6dM#sR4!nU!<1$UfRa^^O(K{?GW?Oq2byhC$T&Fs`Uw=xK zAygc7anw*<7A#puTgHY!`(wq&fFU?4J%cus&QS0y1usy*AQOXDkZ^ENR49|1IRaIM zPzX}3F{ETtttYtdAPqm(MR%zfuiy@Cs{Acm4rDC{9{3soEG#DL?uEx`UhZDBu+#d1 z!)R?^I1K#V+P=7xo$l^pr>_z4UZP^@rXE#^j)!le0{V#u$+o2^hAI_O1#KnIOEh$_ z!4M`SBQ_s*nQ0UoAYb1o z)F4eQ{_C(QOueRb^qvEo*;w_HGq@4?(pEUDQ(J__RjHf4BK3w_^=s4Dad9bTfD~)734~jh*Ln(c|2s9 z>p>AghEzH0pB@E}{yj~4lAQteRMi3YIG3v%aB`*b$7W)|%CJ$L{;OKTLwJ*n4=>}) zk7;A^nv2fjUOZPzjOXe#f36rVQVq~DY=w|;t);9BwopiX5t4V0Qhd6*M}?OGr`JDs zV`1>llS}X+<{env^%nsQU#`syf7YR4dXZ*X)u2itW-%2$Mu$cjePa?}$u#L_mUMejZFntIOP_8niH`(n2Di%p;(Tp1ccZRaw z?sO7f;%+SN$U3@L7m2tdtVr#+;FiI~VleAq&A7w8`CTjE6wJLn`!N4|*tY}CDN|ry z%6y>t0GmRq%8Et=aH7JhjmYo+kxEN4)LANTXU~Tni}<@c`s3hT{AImQWF1fN2?Qe; zvI@`*K(*{!(N6jql+iXj^5;jXp+2c8KqR}4!$v*yXKD&&m?shENj|2{&Nr%I%3e}0xQJQ(!r$QzdsCu7yCzGVc@;T#IIp+pQwRX zu`hUZACdnA^!aTU*nm;+l@Q6<4OkU8n+s$z%oC@`6+f*HT!E~}DF6Y_jwj=nCISO- zF|hBl5Eq{iuZIb5?*ZL-pqN-;YV&e(=ae0`f{)RuxusnoBI60^6$}sQACRy(^Gm38(ACr~G{?{?sY-d0Y2yBO8oMOY1kDba z1|(L2d!Du>Purp`=jqLRdP$kwLzcE}%MFd+YyWQhJDqnrZytwZ=hplFI`V3q^S9>x ztyxd&1D~HsmO7Vwor{mZZ+!2}ch6+L@lNngaIq>^+mo;D z$@+ReM?N)h`{>`A_ixR5xZ6i^)p?Z*0ihy$HN;w~PzLS>wkJY!gu$aFkCaVRe}eoG z3j*aJEm{T;{sC?Dn)@}6UUv%aElV6C&sYS*Esx%t`lw&4nDSdDjrDWPMju|IZ*r}ZIQAAs(?L{5fK8&lG>6q+EUhsV(|@RZf7$|2?%=E?hC)S@cAzsp#YHr< zGB6Ph9A#=3TYc4T8Ez`eK9;P0yaQ!zJLzC!yCk-v&T?sUnIMjZr^aFHOW0+qU7lIE znFxhxE2W~CMVHcwQOOoukX8?v5qeqs{f1VuJD#`0N-xcKO3~GU1~L;fJt@}#o9&c1 zM9JXE>SHyeEe^p}-HYM8|Bz*9l`=qeJMDOi+ochZV4Jk0hs9=J?toxzD*GGH44%c+(b~YvhI>zr)vw# z#3I7X3;U;0XqRhWFhiw*wT(1~lnElRA~ z-&ea}T}Wm|xLd8PuLHj??)yvL5*^Hn>uRXd@z??;(Pd%up%Xgy4<_(@qy|8~6)`ivkd>F$&KvGpOpvM$IGDDO`0x;$!H8C0Ix=T!oO_8(^!qqN$QH^o3n28eD zULT@fGNSRZt#LXm9_c9VgX3gKEL*n{v5Y&|A3VcB2MXH3pF$s|TlKc|SHw97w4QSA0KLk0+S z1LU9+%zl{89mDnHVln(s79Xj(QYBDb7~?{cM$%s@8xoZ?0jTLa=%_*^AtGvPbAaU6 z$1%tR+Lb{Xf-gFn5r9nYs+5-l2Q{LF0On>48z5qp2A}`+S8lzskjQU(^ll=*dpLXQ zT+aJK-upt<@d77*Xkk+hm4x`OH!@SNj4*R7IMP*$Oga^`(-a`0tei*!JhT?)!>DpB zl3UU~4`b0Hmqjz4y42Q}GoxjcF|?`G)vqaS?xptSU*HYy(?sxffCv;_GuwE2g+(Bj zj~Y0DCPM>5X+Uk@9d{4scOCnzJLi2i?|nAwc$Tk6Zy{wzU`-AyxvG)QQ}BBfe3OEI zLBV?z{BsJvN5LBu5Ra1cWN8WK(xM_`_U9BgMMj9D_J@9Sj zeBs80XETvI=P3KeyN`c#_{aO%<;SD!R2qOeJZR+H;Xz|&0B{}mYlJqVwS^~Z;i<6U z3ZgUtQgkn{h;EA226)u70ErS#r2!uG8~JPf?7JnQ4g1)wn0(f@46?>)v5lRIfx6Qj z9r-veFHNQ?)C0x^fumHfA>t&-wvSL=U~j4U zQtYsi6~kc-p^Ow}#BA5I`K{0KyR10QFSMbW0eh>8Wni{GhYTppJeuuzI^XgPzsp{T z@(XRKW>9>KKjx#123Q3D>Y*?c*nX0FraYOwacP)ngSneSYX$~d$qHt-Q*;TCj)BDv zivTdLZGvkR!`s7*!93Dld^1cU3I<3{gC)bv6tS=X2h=l~6Hwq_4*`i_J4&=Xl5ptG z)HT8|(UdMi;dzKu16YO;##n#}sIu<~*C?ZPjogrr!KPJ_`O9MX^XCUS<$wNsU!P3) zM*{n?IuWpM$JSio?ST#s_7aGX^iWCV6*|$Aqz!OsC1OVlHsTu}@1_*p0=5R0U+W>? zZwVz)pams~AZv;xi}FApt37)IpJFeaKd)wT{ydNBXRm?(ja`Vjb~m*JTzSf7ZC6BW zxIwISzG$koAq8rY_~umnqHcwpJ z@OZv+BAEW{D_z9&FBWQ>=6g!z_06cXzz~)zL4fW!i5s}V9@h|&SADg~7;Z8K9urV3 zw2Ax<3Z}6qRNIGlj<#u(;_@fF&>vujVpch5P*ZP89}wjJ69f^gP3l1_JKg_IO#emX zqA>l{Y}aD?kI>Llnf|BoA%*GBx&5U~e~EM(C9?G>SZHTUPGW1zYg5YWLCJ~vD*u`8 zSfa4$xFSqWQ#YBl$_T6Y@y zI_mS(^L4;rC`+AI*tDen2Zg%}Y%@{@T4k`R;OYv11_&D))95#;L=iFSDHG1Fu)qn2 z3StWI2Pea)f|Y>_Hmf9>6ki&hUmCmlRQogBOMgzmT?%OCaq|(5pX~kj;uuCWLc=MjEi=8>oE`FEuY*n5&f{~10-qX5RpY!bCci>Mb z&ug(|8-CckEfc)kk!#(X^FTS7qM%B@Mxt*ZZ}s_uruOBHTbJuwGSOUpFZ_IO!46Ic z(oX_!>v=qVm=&?^drjYM%0XSIz60v|(2u|Gt(qTMsJ(qQvomw;y?r_FBYE#5SqJA_ z4TG<=t{z4kjT~alO05(S6Ot>D5iH}xz)$I_1bwFw#_*g+sV{#YcN+BFQfuv9F;K9> zP|>2G-Pnl`DEDIW?y-+9Wp^FP_Z}@pw&^)KoG{v2>-G$gKb-DDCj+OCcC%A4P|-g; zEXH!&k4hK8zj|2YtFOfUNE1rHUZ}Dblm&R81>36w_Y*9l3kndV4ds@vf&D@8g3_1- zH?GSB64-ep0!U#iTI>wphZ}@D^Y+2_mgydkUV$zx2QrM8Awi3ZG(ox8XXIG_cHnUg zMIpoo)=Xh#w>iQF0AUCbWE=^$-CQ6{$Q#oZXILZTC?ebOCIH`6F!y3PaotkNFPyjn z)CSTbk|&KvBT@46HN_0qSau;~CWAJnnG1FWuoM*!AvYZa2RH^JZ|`~ty2(IQIZp!G zlGjLL1sf*t zUzK_&_?PGl6oZNCDOO8|a|NyqLsYLLs24Rq+3ksvihs++~gN zEo7p!1M|E^8Oy+1qKB#awc3FVi*HgRaM#hx4$qwPo}+FFKJKb=j;6e$DeGv0Gp4z# zY(1ax6XS@>LB(Rl?!r@J_ z*eYO#(dfXgt57-6v`WFL&WY553R#t3$(B%mRE zf(UIxNdF2EYYz|h!Y!&kEg!73eEk)a)N=TeNq7;*!e~B8 z-Kx~QOxEU16+4v% z4m?_bT@s}jDSb$>D-N^OzwjtAO2BZ^2QJ*sPnE{9L@uLs<9vjeQ`pR8oq#nIt4sv- zP!EfI_3#B;tjBiIEWKrd9m^^79NE&kdijN>BU^gQ*eD%Wt`K5FZKGpt)f} z2k$!|j5%MDv2WuS$UeP`dvB#x5RS3HN`UpVNcJ`I_HP&1dIsNDSGe{CTS7~`Z(%9s zwrM0uQ0y1@-ZIK!nIP^oEtc|n+D|UH7#lwvppDR@Nhn7XWs9&OKn*-uF^Fv;Uk4S%wC}qLfMJ*P=-meQTb!ySjIhLD>wL&S_V1^zd zl#x?DO<6%Hg+f1|qRNPY!*kC;-o#+QoOf&h(BQwXC@{J2C{+VX*$fPcN!6<)z(O62^TN6EW12OpDpb1x%*UPF=?BY~ivE1}t@yYvCey#}kz+1>d!#Cht)RqxK=mj8Hy}dc z&A4jr72q+edyKfoNU7|7vz|;O-Fvt|v7dp`ur#Qp8Sb)N(m!`-P%D z&L5FyAR|J{yCplTeTzJklPZ9GOdFXWZ%mw`GToyFa#qQCVtNh09v5K4W^>RP^2rU*U!jS!%I^v@|;$sUNAl z8aAxhPypkSED{+_!%fk^*I-iVL>GjA(iJvzlsIC}(!1TH@-0f7jtSt9N8ZrM;*gUE zFB#V=yK>6BdZy3K^5GkX>TGifXM}m%aH^cf94i+qXsQvcZE%OR8+>+g4zU6?${+=0A1K-whb_bcn? z+aCC9Zy%h;UuKB@pmR~t`)jk=U;a-91VB)*t+mVI?6_Z14ULgVwxTmv(V4I4#Fxq- z(?S3j5_n6#VKKj^=zmfZ6qA-*kygeUsi5)UWgcrGmoz$gfU>^ZvJie}>z%FS3L*1i z)rahFTz_g} z*EZLo9p+Dc8xM7xKkc^SdTlzP6S;ofg^vO2w?>Jrz*WOat+*IlfrDUxTzUM%vO%^w z=iLr_P=*oFtQjdf86MRaKTlS{jwb7B(Zpv_)_cJiLT= zu>l?eHu)7YcYJJ8hl~ANq)62i+g6JZeMXHNMLtjl#Qx_m-+DRc-IVukqFKNvH5hhY z|Go0&rSj%n`Idb77BFp1W@p8HPv!j1o5$ylr|}0jrfl|LD?6i;2XM@i9-ygGfvNJK zh~+VyvAy}?~-szDN8|;D$XDzQ(s^$!p7JCN>8c2 zrGyyK4UBmBXH?<;iB)(Om8L)1{BJL9_qP|^>WXeohy^lG5;Iu?i%E7W4WKu$ic+$f ztlivj6vBU8YXVSZn--v|hEr+a@>85X=rmj5WJMpiJXV0vbpkdCSp6cXntCV;>_gJq zT+c)l3{DF?!dhVzY7-qK0w04(D3ptxuaSot27>~M`p(y!7^+*ShVYnU*P2h%B z8@^I?t6(|{gC>aav?@rm&$v?C}Byt%5J zr7hnVcuMvaQFN=2fLFE&ff4?+KGNtJ280&T8f=Dewh>tXNdJfcj~JVpI$Qd86nsv> z7y{L7f@^nk#&!K6c|4v_Q8U@=>p!5w6Mg8rFQCQSU~rcIvb+iVjyYQMj@EmQo+U@m z;*FeRPu{U7>)5lrsh1qSZcxta5w9vKBw%2a4kY4n^P`l!!A3kZ{NzK+!qtn*Q%Esm zBA?7!>l&>A!m0tPS!0#_OWj9;+K2i*R$C(V2455ov zpeQNax|AHXXMKz4YpuUabkVy1b#j53f{~oVj=^go+RdsX@=A!nY4f*CNN>8r+DqyJ zu?UyC^!C^L*4O=pu0@F%$`16n+V=X|vfV2zGv=4g*uIIKiv-}jan1_YTlbjndl{8v zfH5J@b!bW{i-kJx*{Z?7b|N4XM8J?#K#W)5lLG`HUd2*D0Hi1yBduv7#hY{4m_y0SC>uD}hrJRybMi&OAl1mI3EBpv{-O)cqY>Y0JB zTBaDu*eWq^K2!)u^#pAh0%2Mf@t8ZAY=y^24r@{Y+R6qWEJiUJlpqDEmbFR{2SZT? zmFG@C2=Hhi62p*|DUK1BchH4=rz%3H;3a{etwazDyDl=Ri4)Yel%)LN0Wo}?WlTgR zypv2pzY5XjSmGiFVgx}5@CE`h7^APHHm(L^8Vd6vfwJRBN1%+f0d5byas2l2v~#(# z@m(=9kl*rnu4zxcX-}?l56lxxbKD5y`U^PUw7Wueb3joF^9KF}wztr8I z>pqp20qp14@=n*CuEl;B4Uo=dm%FLi(FfvAKk(Q9t`(pW9JgZMGhl27c`_ zv}|1tw5>S3)<YtF=$pWbovzT5O*{d#Q_EM}N>Y}-G-z(Jg8uj&0*)|K zu_O3b52`vH4}XkcO@z4u$TGCO@DFX#F&jgU9YB5p0==5Pb0wuw$?8qkIY z*vf$36lp^Pa?{{}TZS^RoZL8w&`v07N6Bf(bpyF_SSO7@`I0+_N`{*IftpuJ6$0R}8VLlSy303&;~CF=*ilK>#si&M1G2!T$nxd2U7u(ALBK<-Wth{1z8?L zfw}^t;ftD#xMLSJf@h*+g-X6S1yBym5pHpW5E*DiVK@M+lO#ZBJz)K0wZTn!IRzxL zCMEL&ZuKGaz-4-c+LIiW(aSO)Jto2(7X#$5KR`o7;g>=YED;ql7QGJkA@e~|G;L6g zhj}5O%)xvxGiP#y7NZaOl7)EmB%)aR^KXa8uZ5v&D;J6IV)-+&%V(Jb52+I^MEC;b zNQQB+)FDL`mX%zjad8ZT4CET*PY&2AvPObzh3Ck8ZWZiGv`vmZj&Yi5RQig>>GPu@ z<@V%-%ja}DsVbF2Jc3f>^uK`0DcK!VkujV3Qb}`&WJBajG6WYw-zK2j8qW=3JB_N0REnntavZ0KM^)HNAM~`&aY3qzclHABCGYY;q%KH^y z!5H-g=je?|k@M`|LK8{^?-?^o=`Cv5f`xbm`tJIVh=+oP3@PQ&Rs0Zn-b@fG$Cz2* z&5;w;Eld6_nbE~vIsYRtbA>*omrPK~$eZ-Mo4Ds2zWChN^u9CeCC0kUwPRO0)*W%; z>+iz>^1!=W-c4i%-s!#5Tl699ubtoZ#eGdS*v-i3@*_O4Jo2!fJ_)3&LhxEB|+ODj?{&qu)PUl zDM}|F%WI3x)Xn^`Si1#opp~5n~AmqHw zX$xd7;4?Zmupm7EKJ0vQVe}4+^=NCo#pIHAXV$xu_4&M;`rY8$1q|3%b0H^ zs?zC(b@l~ctIxF5E6Po^l8=)7y;@qk)PoljxRO|1KGymYKnRJ_4QTcl6nTbuoG0}=m;W6gRZl>f!IGuK=KuuKHKaTJea)$~x)k#U#Y+Ltn z-7qcY*ouK~TF1Os0dK(8#%{I)0Z0D{oD*>vjfi}Z^D#>=!Y2*!f%z=>k|uzQ6_A5D znjp&fr-8Lv9w}Kcg4P=LJo6JY?EeOzr^T~=q4oWi_Y;3QnBBZ1=iQmd*mel?dlatr zggm?c++95{zB`h0Z_c|n!ywIh&d9)F%aXq(GqBjo!6B^v@0Y=>{N1TsS!=$m6?#~d zuyR9o&ma|#ZMCNhkBsu-XQ{xgCEK{6~RIJoJpW336L<{6|3mB%ZZ36*J3 zyltJ!I?iQ#&gC5E^0;uE``lmqu6g0b;FQe{bI3dw188e|OfudwEk} z{unk6pC4SY8mb-#bHG=(u;bRt>6h7@I`DB-Zu4NS=19KgNY-}*YnQW3(NA8uj$OF( zj`pnbW9TV_&9_j$j;i%p90bp#-%tw@W20c>G^fO*iG*uOos@ulw{TnMX1aZj9+)YP zK$b+!EUn26A?ksV;nmdE{di5s4e?pAWK*!kP|;4(Mxzx9n+O(|2IiyOOXZ{4$Dd}g z>jw}xHj$9ADPv}*MWzzk^bveqC{Hw34zIO711iR;8^(zt0G?8J2(6inNsY3iy?li0CModourkeH}Csz3v(;DmxW zK`WiALN5>rzaaUcNCxqMKtg+HkxnNe6~RM!J1c%byuk1G&F$UZ`cjFPQY3uq-^}jp z%+Aivd^7WX-+Z(63mCZ-v^Kf((O2bqOj;cF;(_KUHbRHxD=w3&Ac|v4l#$Xc$<8ew z#;3!ub%q+?{CW4kb<^H!7%8~*3QEdiP{C9`GNyg+R=LMM(^dEVUc*FhKOqX5fyt%L zA3#b;LzaEFt{PK_zoREN>a7Fl{!ug-M??3;|1vXIcZ}uk03CGU?4p7cQhN?Gzx*Q zeDU=K$X6Gz*v-F)nUTr$o4Ft?4O65W@-OX3)GMe9D|_3Yr4O7Q7iQ;Y^F1ahM{#6T19Q`76A^YG4J`-(%VaaY8$c| zc>K9Bdbgf7W`B}hL%lvG!(M0%+rLP@T|c0B0I}j_9+!v(f~^j zF4%IejSRS8pIpw^JQWT^t7Pe5ac&2m7>LB>t6;Gfc7!40lnMhdJrbjs2-z#BE0&fq zn_om}h}CByA!Q>zj(9k`cyJxy8S%Ny`jpQUWXUo<+QvT^GIJS$yQOBa+xC0vc>^Y- ztKL`NQRV4i*$8B*{p$Q>v>DB+MKf}mAN47~|EtuhOA<5gZ${Q~p(H7WqplcRH};e( zk{|FL@f|fMleTZDS%HYJqrt;l)FNBBSxOnQIN0#fw^H;5WqPRkyHcb;?&^gFEdCK` zoaTJG@-nXzD6XR~zM!*XIPzf5>VyldS5lFJ?#cN1>!@qORYiR}rz=W9ZV5pms)?wV z6ca7#Op`6tcLMclU~q7-A7%%N{P@eox)HnQm+?X_>@ZJ-!+b7R4aJ6;E7MqNTzu%g z0_~G^zr~uA3xfSBD|CyR1e*TkLVTjm?@|Q$5GlZ5>Ebs@MvkNEK>W7V*tRQm%HDM- z6CJjr!*_zP<^SD=Z#N{v$*On4sYNULbb1<~kL63+%><9w!6R1iNVcKH(c*X4M)rtO zr#s*&uhZTYe{ZULzNHJ}C}|2}Q9f+7+PIUp*~|}6{9gF{GtfRNzTd{e*Tex$x8vqK zwkTm=#!nGjYCA1_`=XYj=8!|qAf5j`m5WSXT|D6!!JnCy*(|=2bUWom?=XUOd7Eu` zbyq=`KHT?N(BuN3phE_X@^+18!bk1!Q7d><2=C-4*;C(+WKA|#GlV3}4xaK+UPU)- zt&K4&;0-?RzC2EM4&)80z%kBRiLjj$f$f~;lkv%q0*!fJT_BpgLx~@V?t>pn zb#it+cmXUW?*`|3p9Azt82jNL8W!`mk}#a<-A@Jzc4EqeYmP*%Ow6VQWv}QuCpA)<0vWrX{Z4Jf z-KqV*pJLyJzyGYCGFwSr+5w(!MhMcnfA*Pf%i(!Tl6Tc!`b+tALYN zP0`s^nwtrgXgleNNqCp}_#HeBWv2^nW#CzmS;3H|?oBN)lZGSXZxJHDNfUWEB-3z6 zrQxiew4Qs_9y=!|B`DHq+>&nvsn23nsgFeaq11ljx3Ab^FT07o_A{xb+pjt)VjrLK zEpFmI3IbX*rJ;&g#&^2dC;{dA${!ulgV&weXb#1B9^@u@U`8B@4buC=?1134#Ab{zJbS z*X!cdV81%u|BYPL`3o0K)-ddD8yn;TQFE4=q#{_ZTJ#PUP0pTkv~f#QOAGTCux|9) z6=+*ug}HAQm-#Q=P_uA#b{3;4Z2?!YPUjgYh6%6HcbT_U#csw-mW}x_ZpqbMGZ&B~ z9*v!fP4aF`PA$y{GM%f&9Dymy@MaS)Q*f*IkqOhsA*4yUif$m}-2^Yxc?i*p5BU`s3GcwwT)n;kMHX@ow4Eur31tBLrX};00$yB=t-Gm;(F2W;(UP2$CpTI^gPoKUp$o0Y6dc|G_?IR2k_7ff>93UJduu4!D z0kbNIlxranJc+`eF?9`F=PlEO9}|ufCI}}8773RK&k$rO zi7+@1@swLanBOBjL0BdHfN+@bOTtmYJ;HAYe;~ZZ5>_Y7EKh{e{hq$R5dKQ|8{uQZ zC}E9IjYwvQ&?Y`q2HBv@9AoGRf%aZx<+&_z(5lr!Ik)g;;fTn%m*gW?Qy>7+s64Ih zpTVc}nCFOj3{mksBlZ?58)Vc9A6X+D zm!Hd18<$_!Xo$Nb9Uogygpy|Y2`y+xGS=Wb)*3Cn*45~CK{i$t6P%6Om(MS-5IZfy^6MO zYscA?`To)eZ@l-0_4sqvsTVW7XYJmzma#31z_zKh?|$g#;h%=BL#M14Udr@M*?m)J zHPGt})WwhAIrjCFw@=0~4Q)`7#9T6#8ckk@wQqX{NjdjIkKwDc zRcqcCQmqNdQs5-#)4}DQ6~EQ@6l{IVr4nG!;oI&+z&NHDyFY>9Pe}Ds=m95PYwbU3 z_vveLMZg`sKi?Wrd-+f}Np#6@yf6?@QQiTEcfj#NW4*#MS3nY*Ey79P5N8!*GMrgc zuZZh~jt14pbm1fs0Zw{C953`3e%M#rtafvswBFQN3W0i;Wj$N3_+0>tBE6|$eFsVb zXI|h3du#H|Nh`7^;~%j71D1av+q@?}iR~C+zIGd9!&ydbI9{kWw(jPQ0X4vvg_D{S zXBp9O=7q*Oh4q5~uD^q`d|I4U6r>a4^0oU_wPWuWUeW?LgqxWdfVNHGq@w9QyYn&e zuPm+}`|zfCy|AxQ^{`Ify$m^>>Y+Ri4h@yT@xq`{8@c0qJ7h&hu)Dk+9L?5VvT843 zFHBf>3sgg#S=|_a{`M4X)@K5{?ZEEz)XFZ)KaveJ=*yj%K$i`BE>p|6JY2Y(s7qdW zXF3z;wgcVPBcnK0$1MK|Cp4T1?6d1Ibw!Kwd~s zEKghQhwbQ-E2pgJh`nW$<%YHmSQB46>r=O`Pukg7k($~Q`|lpM+CP_xjM$M8JRx6Q zqq-9lkZP!Iu6Bgug{ZN2h2%9uD_7*RfT zIB^PCpA^o4#E2gn}$?BQOH4u9t#tsGSOncQ-=v zku_djF9nUMQKhi#wldziz9u2-?(hlUVFfAsMo8RP_ZX z30`;KWcunAgm@bvd0>rK*GoYiI~3>HmC@Svs190_8`j;o9Wi{E>bFVk%9!X|L%TYr h)&*G?BQ~<7 None: + """Registers for notifications to learn that process output is ready to read, and dispatches lines to + the respective line handlers. + This function returns once the finalizer returns + + :return: result of finalizer + :param process: subprocess.Popen instance + :param stdout_handler: f(stdout_line_string), or None + :param stderr_handler: f(stderr_line_string), or None + :param finalizer: f(proc) - wait for proc to finish + :param decode_streams: + Assume stdout/stderr streams are binary and decode them before pushing \ + their contents to handlers. + Set it to False if `universal_newline == True` (then streams are in text-mode) + or if decoding must happen later (i.e. for Diffs). + :param kill_after_timeout: + float or None, Default = None + To specify a timeout in seconds for the git command, after which the process + should be killed. + """ + + # Use 2 "pump" threads and wait for both to finish. + def pump_stream( + cmdline: List[str], + name: str, + stream: Union[BinaryIO, TextIO], + is_decode: bool, + handler: Union[None, Callable[[Union[bytes, str]], None]], + ) -> None: + try: + for line in stream: + if handler: + if is_decode: + assert isinstance(line, bytes) + line_str = line.decode(defenc) + handler(line_str) + else: + handler(line) + + except Exception as ex: + log.error(f"Pumping {name!r} of cmd({remove_password_if_present(cmdline)}) failed due to: {ex!r}") + if "I/O operation on closed file" not in str(ex): + # Only reraise if the error was not due to the stream closing + raise CommandError([f"<{name}-pump>"] + remove_password_if_present(cmdline), ex) from ex + finally: + stream.close() + + if hasattr(process, "proc"): + process = cast("Git.AutoInterrupt", process) + cmdline: str | Tuple[str, ...] | List[str] = getattr(process.proc, "args", "") + p_stdout = process.proc.stdout if process.proc else None + p_stderr = process.proc.stderr if process.proc else None + else: + process = cast(Popen, process) # type: ignore [redundant-cast] + cmdline = getattr(process, "args", "") + p_stdout = process.stdout + p_stderr = process.stderr + + if not isinstance(cmdline, (tuple, list)): + cmdline = cmdline.split() + + pumps: List[Tuple[str, IO, Callable[..., None] | None]] = [] + if p_stdout: + pumps.append(("stdout", p_stdout, stdout_handler)) + if p_stderr: + pumps.append(("stderr", p_stderr, stderr_handler)) + + threads: List[threading.Thread] = [] + + for name, stream, handler in pumps: + t = threading.Thread(target=pump_stream, args=(cmdline, name, stream, decode_streams, handler)) + t.daemon = True + t.start() + threads.append(t) + + ## FIXME: Why Join?? Will block if `stdin` needs feeding... + # + for t in threads: + t.join(timeout=kill_after_timeout) + if t.is_alive(): + if isinstance(process, Git.AutoInterrupt): + process._terminate() + else: # Don't want to deal with the other case + raise RuntimeError( + "Thread join() timed out in cmd.handle_process_output()." + f" kill_after_timeout={kill_after_timeout} seconds" + ) + if stderr_handler: + error_str: Union[str, bytes] = ( + "error: process killed because it timed out." f" kill_after_timeout={kill_after_timeout} seconds" + ) + if not decode_streams and isinstance(p_stderr, BinaryIO): + # Assume stderr_handler needs binary input + error_str = cast(str, error_str) + error_str = error_str.encode() + # We ignore typing on the next line because mypy does not like + # the way we inferred that stderr takes str or bytes + stderr_handler(error_str) # type: ignore + + if finalizer: + return finalizer(process) + else: + return None + + +def dashify(string: str) -> str: + return string.replace("_", "-") + + +def slots_to_dict(self: "Git", exclude: Sequence[str] = ()) -> Dict[str, Any]: + return {s: getattr(self, s) for s in self.__slots__ if s not in exclude} + + +def dict_to_slots_and__excluded_are_none(self: object, d: Mapping[str, Any], excluded: Sequence[str] = ()) -> None: + for k, v in d.items(): + setattr(self, k, v) + for k in excluded: + setattr(self, k, None) + + +## -- End Utilities -- @} + + +# value of Windows process creation flag taken from MSDN +CREATE_NO_WINDOW = 0x08000000 + +## CREATE_NEW_PROCESS_GROUP is needed to allow killing it afterwards, +# see https://docs.python.org/3/library/subprocess.html#subprocess.Popen.send_signal +PROC_CREATIONFLAGS = ( + CREATE_NO_WINDOW | subprocess.CREATE_NEW_PROCESS_GROUP if is_win else 0 # type: ignore[attr-defined] +) # mypy error if not windows + + +class Git(LazyMixin): + + """ + The Git class manages communication with the Git binary. + + It provides a convenient interface to calling the Git binary, such as in:: + + g = Git( git_dir ) + g.init() # calls 'git init' program + rval = g.ls_files() # calls 'git ls-files' program + + ``Debugging`` + Set the GIT_PYTHON_TRACE environment variable print each invocation + of the command to stdout. + Set its value to 'full' to see details about the returned values. + """ + + __slots__ = ( + "_working_dir", + "cat_file_all", + "cat_file_header", + "_version_info", + "_git_options", + "_persistent_git_options", + "_environment", + ) + + _excluded_ = ("cat_file_all", "cat_file_header", "_version_info") + + re_unsafe_protocol = re.compile("(.+)::.+") + + def __getstate__(self) -> Dict[str, Any]: + return slots_to_dict(self, exclude=self._excluded_) + + def __setstate__(self, d: Dict[str, Any]) -> None: + dict_to_slots_and__excluded_are_none(self, d, excluded=self._excluded_) + + # CONFIGURATION + + git_exec_name = "git" # default that should work on linux and windows + + # Enables debugging of GitPython's git commands + GIT_PYTHON_TRACE = os.environ.get("GIT_PYTHON_TRACE", False) + + # If True, a shell will be used when executing git commands. + # This should only be desirable on Windows, see https://github.com/gitpython-developers/GitPython/pull/126 + # and check `git/test_repo.py:TestRepo.test_untracked_files()` TC for an example where it is required. + # Override this value using `Git.USE_SHELL = True` + USE_SHELL = False + + # Provide the full path to the git executable. Otherwise it assumes git is in the path + _git_exec_env_var = "GIT_PYTHON_GIT_EXECUTABLE" + _refresh_env_var = "GIT_PYTHON_REFRESH" + GIT_PYTHON_GIT_EXECUTABLE = None + # note that the git executable is actually found during the refresh step in + # the top level __init__ + + @classmethod + def refresh(cls, path: Union[None, PathLike] = None) -> bool: + """This gets called by the refresh function (see the top level + __init__). + """ + # discern which path to refresh with + if path is not None: + new_git = os.path.expanduser(path) + new_git = os.path.abspath(new_git) + else: + new_git = os.environ.get(cls._git_exec_env_var, cls.git_exec_name) + + # keep track of the old and new git executable path + old_git = cls.GIT_PYTHON_GIT_EXECUTABLE + cls.GIT_PYTHON_GIT_EXECUTABLE = new_git + + # test if the new git executable path is valid + + # - a GitCommandNotFound error is spawned by ourselves + # - a PermissionError is spawned if the git executable provided + # cannot be executed for whatever reason + + has_git = False + try: + cls().version() + has_git = True + except (GitCommandNotFound, PermissionError): + pass + + # warn or raise exception if test failed + if not has_git: + err = ( + dedent( + """\ + Bad git executable. + The git executable must be specified in one of the following ways: + - be included in your $PATH + - be set via $%s + - explicitly set via git.refresh() + """ + ) + % cls._git_exec_env_var + ) + + # revert to whatever the old_git was + cls.GIT_PYTHON_GIT_EXECUTABLE = old_git + + if old_git is None: + # on the first refresh (when GIT_PYTHON_GIT_EXECUTABLE is + # None) we only are quiet, warn, or error depending on the + # GIT_PYTHON_REFRESH value + + # determine what the user wants to happen during the initial + # refresh we expect GIT_PYTHON_REFRESH to either be unset or + # be one of the following values: + # 0|q|quiet|s|silence + # 1|w|warn|warning + # 2|r|raise|e|error + + mode = os.environ.get(cls._refresh_env_var, "raise").lower() + + quiet = ["quiet", "q", "silence", "s", "none", "n", "0"] + warn = ["warn", "w", "warning", "1"] + error = ["error", "e", "raise", "r", "2"] + + if mode in quiet: + pass + elif mode in warn or mode in error: + err = ( + dedent( + """\ + %s + All git commands will error until this is rectified. + + This initial warning can be silenced or aggravated in the future by setting the + $%s environment variable. Use one of the following values: + - %s: for no warning or exception + - %s: for a printed warning + - %s: for a raised exception + + Example: + export %s=%s + """ + ) + % ( + err, + cls._refresh_env_var, + "|".join(quiet), + "|".join(warn), + "|".join(error), + cls._refresh_env_var, + quiet[0], + ) + ) + + if mode in warn: + print("WARNING: %s" % err) + else: + raise ImportError(err) + else: + err = ( + dedent( + """\ + %s environment variable has been set but it has been set with an invalid value. + + Use only the following values: + - %s: for no warning or exception + - %s: for a printed warning + - %s: for a raised exception + """ + ) + % ( + cls._refresh_env_var, + "|".join(quiet), + "|".join(warn), + "|".join(error), + ) + ) + raise ImportError(err) + + # we get here if this was the init refresh and the refresh mode + # was not error, go ahead and set the GIT_PYTHON_GIT_EXECUTABLE + # such that we discern the difference between a first import + # and a second import + cls.GIT_PYTHON_GIT_EXECUTABLE = cls.git_exec_name + else: + # after the first refresh (when GIT_PYTHON_GIT_EXECUTABLE + # is no longer None) we raise an exception + raise GitCommandNotFound("git", err) + + return has_git + + @classmethod + def is_cygwin(cls) -> bool: + return is_cygwin_git(cls.GIT_PYTHON_GIT_EXECUTABLE) + + @overload + @classmethod + def polish_url(cls, url: str, is_cygwin: Literal[False] = ...) -> str: + ... + + @overload + @classmethod + def polish_url(cls, url: str, is_cygwin: Union[None, bool] = None) -> str: + ... + + @classmethod + def polish_url(cls, url: str, is_cygwin: Union[None, bool] = None) -> PathLike: + if is_cygwin is None: + is_cygwin = cls.is_cygwin() + + if is_cygwin: + url = cygpath(url) + else: + """Remove any backslahes from urls to be written in config files. + + Windows might create config-files containing paths with backslashed, + but git stops liking them as it will escape the backslashes. + Hence we undo the escaping just to be sure. + """ + url = os.path.expandvars(url) + if url.startswith("~"): + url = os.path.expanduser(url) + url = url.replace("\\\\", "\\").replace("\\", "/") + return url + + @classmethod + def check_unsafe_protocols(cls, url: str) -> None: + """ + Check for unsafe protocols. + + Apart from the usual protocols (http, git, ssh), + Git allows "remote helpers" that have the form `::

`, + one of these helpers (`ext::`) can be used to invoke any arbitrary command. + + See: + + - https://git-scm.com/docs/gitremote-helpers + - https://git-scm.com/docs/git-remote-ext + """ + match = cls.re_unsafe_protocol.match(url) + if match: + protocol = match.group(1) + raise UnsafeProtocolError( + f"The `{protocol}::` protocol looks suspicious, use `allow_unsafe_protocols=True` to allow it." + ) + + @classmethod + def check_unsafe_options(cls, options: List[str], unsafe_options: List[str]) -> None: + """ + Check for unsafe options. + + Some options that are passed to `git ` can be used to execute + arbitrary commands, this are blocked by default. + """ + # Options can be of the form `foo` or `--foo bar` `--foo=bar`, + # so we need to check if they start with "--foo" or if they are equal to "foo". + bare_unsafe_options = [option.lstrip("-") for option in unsafe_options] + for option in options: + for unsafe_option, bare_option in zip(unsafe_options, bare_unsafe_options): + if option.startswith(unsafe_option) or option == bare_option: + raise UnsafeOptionError( + f"{unsafe_option} is not allowed, use `allow_unsafe_options=True` to allow it." + ) + + class AutoInterrupt(object): + """Kill/Interrupt the stored process instance once this instance goes out of scope. It is + used to prevent processes piling up in case iterators stop reading. + Besides all attributes are wired through to the contained process object. + + The wait method was overridden to perform automatic status code checking + and possibly raise.""" + + __slots__ = ("proc", "args", "status") + + # If this is non-zero it will override any status code during + # _terminate, used to prevent race conditions in testing + _status_code_if_terminate: int = 0 + + def __init__(self, proc: Union[None, subprocess.Popen], args: Any) -> None: + self.proc = proc + self.args = args + self.status: Union[int, None] = None + + def _terminate(self) -> None: + """Terminate the underlying process""" + if self.proc is None: + return + + proc = self.proc + self.proc = None + if proc.stdin: + proc.stdin.close() + if proc.stdout: + proc.stdout.close() + if proc.stderr: + proc.stderr.close() + # did the process finish already so we have a return code ? + try: + if proc.poll() is not None: + self.status = self._status_code_if_terminate or proc.poll() + return None + except OSError as ex: + log.info("Ignored error after process had died: %r", ex) + + # can be that nothing really exists anymore ... + if os is None or getattr(os, "kill", None) is None: + return None + + # try to kill it + try: + proc.terminate() + status = proc.wait() # ensure process goes away + + self.status = self._status_code_if_terminate or status + except OSError as ex: + log.info("Ignored error after process had died: %r", ex) + except AttributeError: + # try windows + # for some reason, providing None for stdout/stderr still prints something. This is why + # we simply use the shell and redirect to nul. Its slower than CreateProcess, question + # is whether we really want to see all these messages. Its annoying no matter what. + if is_win: + call( + ("TASKKILL /F /T /PID %s 2>nul 1>nul" % str(proc.pid)), + shell=True, + ) + # END exception handling + + def __del__(self) -> None: + self._terminate() + + def __getattr__(self, attr: str) -> Any: + return getattr(self.proc, attr) + + # TODO: Bad choice to mimic `proc.wait()` but with different args. + def wait(self, stderr: Union[None, str, bytes] = b"") -> int: + """Wait for the process and return its status code. + + :param stderr: Previously read value of stderr, in case stderr is already closed. + :warn: may deadlock if output or error pipes are used and not handled separately. + :raise GitCommandError: if the return status is not 0""" + if stderr is None: + stderr_b = b"" + stderr_b = force_bytes(data=stderr, encoding="utf-8") + status: Union[int, None] + if self.proc is not None: + status = self.proc.wait() + p_stderr = self.proc.stderr + else: # Assume the underlying proc was killed earlier or never existed + status = self.status + p_stderr = None + + def read_all_from_possibly_closed_stream(stream: Union[IO[bytes], None]) -> bytes: + if stream: + try: + return stderr_b + force_bytes(stream.read()) + except (OSError, ValueError): + return stderr_b or b"" + else: + return stderr_b or b"" + + # END status handling + + if status != 0: + errstr = read_all_from_possibly_closed_stream(p_stderr) + log.debug("AutoInterrupt wait stderr: %r" % (errstr,)) + raise GitCommandError(remove_password_if_present(self.args), status, errstr) + return status + + # END auto interrupt + + class CatFileContentStream(object): + + """Object representing a sized read-only stream returning the contents of + an object. + It behaves like a stream, but counts the data read and simulates an empty + stream once our sized content region is empty. + If not all data is read to the end of the objects's lifetime, we read the + rest to assure the underlying stream continues to work""" + + __slots__: Tuple[str, ...] = ("_stream", "_nbr", "_size") + + def __init__(self, size: int, stream: IO[bytes]) -> None: + self._stream = stream + self._size = size + self._nbr = 0 # num bytes read + + # special case: if the object is empty, has null bytes, get the + # final newline right away. + if size == 0: + stream.read(1) + # END handle empty streams + + def read(self, size: int = -1) -> bytes: + bytes_left = self._size - self._nbr + if bytes_left == 0: + return b"" + if size > -1: + # assure we don't try to read past our limit + size = min(bytes_left, size) + else: + # they try to read all, make sure its not more than what remains + size = bytes_left + # END check early depletion + data = self._stream.read(size) + self._nbr += len(data) + + # check for depletion, read our final byte to make the stream usable by others + if self._size - self._nbr == 0: + self._stream.read(1) # final newline + # END finish reading + return data + + def readline(self, size: int = -1) -> bytes: + if self._nbr == self._size: + return b"" + + # clamp size to lowest allowed value + bytes_left = self._size - self._nbr + if size > -1: + size = min(bytes_left, size) + else: + size = bytes_left + # END handle size + + data = self._stream.readline(size) + self._nbr += len(data) + + # handle final byte + if self._size - self._nbr == 0: + self._stream.read(1) + # END finish reading + + return data + + def readlines(self, size: int = -1) -> List[bytes]: + if self._nbr == self._size: + return [] + + # leave all additional logic to our readline method, we just check the size + out = [] + nbr = 0 + while True: + line = self.readline() + if not line: + break + out.append(line) + if size > -1: + nbr += len(line) + if nbr > size: + break + # END handle size constraint + # END readline loop + return out + + # skipcq: PYL-E0301 + def __iter__(self) -> "Git.CatFileContentStream": + return self + + def __next__(self) -> bytes: + line = self.readline() + if not line: + raise StopIteration + + return line + + next = __next__ + + def __del__(self) -> None: + bytes_left = self._size - self._nbr + if bytes_left: + # read and discard - seeking is impossible within a stream + # includes terminating newline + self._stream.read(bytes_left + 1) + # END handle incomplete read + + def __init__(self, working_dir: Union[None, PathLike] = None): + """Initialize this instance with: + + :param working_dir: + Git directory we should work in. If None, we always work in the current + directory as returned by os.getcwd(). + It is meant to be the working tree directory if available, or the + .git directory in case of bare repositories.""" + super(Git, self).__init__() + self._working_dir = expand_path(working_dir) + self._git_options: Union[List[str], Tuple[str, ...]] = () + self._persistent_git_options: List[str] = [] + + # Extra environment variables to pass to git commands + self._environment: Dict[str, str] = {} + + # cached command slots + self.cat_file_header: Union[None, TBD] = None + self.cat_file_all: Union[None, TBD] = None + + def __getattr__(self, name: str) -> Any: + """A convenience method as it allows to call the command as if it was + an object. + + :return: Callable object that will execute call _call_process with your arguments.""" + if name[0] == "_": + return LazyMixin.__getattr__(self, name) + return lambda *args, **kwargs: self._call_process(name, *args, **kwargs) + + def set_persistent_git_options(self, **kwargs: Any) -> None: + """Specify command line options to the git executable + for subsequent subcommand calls + + :param kwargs: + is a dict of keyword arguments. + these arguments are passed as in _call_process + but will be passed to the git command rather than + the subcommand. + """ + + self._persistent_git_options = self.transform_kwargs(split_single_char_options=True, **kwargs) + + def _set_cache_(self, attr: str) -> None: + if attr == "_version_info": + # We only use the first 4 numbers, as everything else could be strings in fact (on windows) + process_version = self._call_process("version") # should be as default *args and **kwargs used + version_numbers = process_version.split(" ")[2] + + self._version_info = cast( + Tuple[int, int, int, int], + tuple(int(n) for n in version_numbers.split(".")[:4] if n.isdigit()), + ) + else: + super(Git, self)._set_cache_(attr) + # END handle version info + + @property + def working_dir(self) -> Union[None, PathLike]: + """:return: Git directory we are working on""" + return self._working_dir + + @property + def version_info(self) -> Tuple[int, int, int, int]: + """ + :return: tuple(int, int, int, int) tuple with integers representing the major, minor + and additional version numbers as parsed from git version. + This value is generated on demand and is cached""" + return self._version_info + + @overload + def execute(self, command: Union[str, Sequence[Any]], *, as_process: Literal[True]) -> "AutoInterrupt": + ... + + @overload + def execute( + self, + command: Union[str, Sequence[Any]], + *, + as_process: Literal[False] = False, + stdout_as_string: Literal[True], + ) -> Union[str, Tuple[int, str, str]]: + ... + + @overload + def execute( + self, + command: Union[str, Sequence[Any]], + *, + as_process: Literal[False] = False, + stdout_as_string: Literal[False] = False, + ) -> Union[bytes, Tuple[int, bytes, str]]: + ... + + @overload + def execute( + self, + command: Union[str, Sequence[Any]], + *, + with_extended_output: Literal[False], + as_process: Literal[False], + stdout_as_string: Literal[True], + ) -> str: + ... + + @overload + def execute( + self, + command: Union[str, Sequence[Any]], + *, + with_extended_output: Literal[False], + as_process: Literal[False], + stdout_as_string: Literal[False], + ) -> bytes: + ... + + def execute( + self, + command: Union[str, Sequence[Any]], + istream: Union[None, BinaryIO] = None, + with_extended_output: bool = False, + with_exceptions: bool = True, + as_process: bool = False, + output_stream: Union[None, BinaryIO] = None, + stdout_as_string: bool = True, + kill_after_timeout: Union[None, float] = None, + with_stdout: bool = True, + universal_newlines: bool = False, + shell: Union[None, bool] = None, + env: Union[None, Mapping[str, str]] = None, + max_chunk_size: int = io.DEFAULT_BUFFER_SIZE, + strip_newline_in_stdout: bool = True, + **subprocess_kwargs: Any, + ) -> Union[str, bytes, Tuple[int, Union[str, bytes], str], AutoInterrupt]: + """Handles executing the command on the shell and consumes and returns + the returned information (stdout) + + :param command: + The command argument list to execute. + It should be a string, or a sequence of program arguments. The + program to execute is the first item in the args sequence or string. + + :param istream: + Standard input filehandle passed to subprocess.Popen. + + :param with_extended_output: + Whether to return a (status, stdout, stderr) tuple. + + :param with_exceptions: + Whether to raise an exception when git returns a non-zero status. + + :param as_process: + Whether to return the created process instance directly from which + streams can be read on demand. This will render with_extended_output and + with_exceptions ineffective - the caller will have + to deal with the details himself. + It is important to note that the process will be placed into an AutoInterrupt + wrapper that will interrupt the process once it goes out of scope. If you + use the command in iterators, you should pass the whole process instance + instead of a single stream. + + :param output_stream: + If set to a file-like object, data produced by the git command will be + output to the given stream directly. + This feature only has any effect if as_process is False. Processes will + always be created with a pipe due to issues with subprocess. + This merely is a workaround as data will be copied from the + output pipe to the given output stream directly. + Judging from the implementation, you shouldn't use this flag ! + + :param stdout_as_string: + if False, the commands standard output will be bytes. Otherwise, it will be + decoded into a string using the default encoding (usually utf-8). + The latter can fail, if the output contains binary data. + + :param env: + A dictionary of environment variables to be passed to `subprocess.Popen`. + + :param max_chunk_size: + Maximum number of bytes in one chunk of data passed to the output_stream in + one invocation of write() method. If the given number is not positive then + the default value is used. + + :param subprocess_kwargs: + Keyword arguments to be passed to subprocess.Popen. Please note that + some of the valid kwargs are already set by this method, the ones you + specify may not be the same ones. + + :param with_stdout: If True, default True, we open stdout on the created process + :param universal_newlines: + if True, pipes will be opened as text, and lines are split at + all known line endings. + :param shell: + Whether to invoke commands through a shell (see `Popen(..., shell=True)`). + It overrides :attr:`USE_SHELL` if it is not `None`. + :param kill_after_timeout: + To specify a timeout in seconds for the git command, after which the process + should be killed. This will have no effect if as_process is set to True. It is + set to None by default and will let the process run until the timeout is + explicitly specified. This feature is not supported on Windows. It's also worth + noting that kill_after_timeout uses SIGKILL, which can have negative side + effects on a repository. For example, stale locks in case of git gc could + render the repository incapable of accepting changes until the lock is manually + removed. + :param strip_newline_in_stdout: + Whether to strip the trailing ``\\n`` of the command stdout. + :return: + * str(output) if extended_output = False (Default) + * tuple(int(status), str(stdout), str(stderr)) if extended_output = True + + if output_stream is True, the stdout value will be your output stream: + * output_stream if extended_output = False + * tuple(int(status), output_stream, str(stderr)) if extended_output = True + + Note git is executed with LC_MESSAGES="C" to ensure consistent + output regardless of system language. + + :raise GitCommandError: + + :note: + If you add additional keyword arguments to the signature of this method, + you must update the execute_kwargs tuple housed in this module.""" + # Remove password for the command if present + redacted_command = remove_password_if_present(command) + if self.GIT_PYTHON_TRACE and (self.GIT_PYTHON_TRACE != "full" or as_process): + log.info(" ".join(redacted_command)) + + # Allow the user to have the command executed in their working dir. + try: + cwd = self._working_dir or os.getcwd() # type: Union[None, str] + if not os.access(str(cwd), os.X_OK): + cwd = None + except FileNotFoundError: + cwd = None + + # Start the process + inline_env = env + env = os.environ.copy() + # Attempt to force all output to plain ascii english, which is what some parsing code + # may expect. + # According to stackoverflow (http://goo.gl/l74GC8), we are setting LANGUAGE as well + # just to be sure. + env["LANGUAGE"] = "C" + env["LC_ALL"] = "C" + env.update(self._environment) + if inline_env is not None: + env.update(inline_env) + + if is_win: + cmd_not_found_exception = OSError + if kill_after_timeout is not None: + raise GitCommandError( + redacted_command, + '"kill_after_timeout" feature is not supported on Windows.', + ) + # Only search PATH, not CWD. This must be in the *caller* environment. The "1" can be any value. + maybe_patch_caller_env = patch_env("NoDefaultCurrentDirectoryInExePath", "1") + else: + cmd_not_found_exception = FileNotFoundError # NOQA # exists, flake8 unknown @UndefinedVariable + maybe_patch_caller_env = contextlib.nullcontext() + # end handle + + stdout_sink = PIPE if with_stdout else getattr(subprocess, "DEVNULL", None) or open(os.devnull, "wb") + istream_ok = "None" + if istream: + istream_ok = "" + log.debug( + "Popen(%s, cwd=%s, universal_newlines=%s, shell=%s, istream=%s)", + redacted_command, + cwd, + universal_newlines, + shell, + istream_ok, + ) + try: + with maybe_patch_caller_env: + proc = Popen( + command, + env=env, + cwd=cwd, + bufsize=-1, + stdin=istream or DEVNULL, + stderr=PIPE, + stdout=stdout_sink, + shell=shell is not None and shell or self.USE_SHELL, + close_fds=is_posix, # unsupported on windows + universal_newlines=universal_newlines, + creationflags=PROC_CREATIONFLAGS, + **subprocess_kwargs, + ) + except cmd_not_found_exception as err: + raise GitCommandNotFound(redacted_command, err) from err + else: + # replace with a typeguard for Popen[bytes]? + proc.stdout = cast(BinaryIO, proc.stdout) + proc.stderr = cast(BinaryIO, proc.stderr) + + if as_process: + return self.AutoInterrupt(proc, command) + + def _kill_process(pid: int) -> None: + """Callback method to kill a process.""" + p = Popen( + ["ps", "--ppid", str(pid)], + stdout=PIPE, + creationflags=PROC_CREATIONFLAGS, + ) + child_pids = [] + if p.stdout is not None: + for line in p.stdout: + if len(line.split()) > 0: + local_pid = (line.split())[0] + if local_pid.isdigit(): + child_pids.append(int(local_pid)) + try: + # Windows does not have SIGKILL, so use SIGTERM instead + sig = getattr(signal, "SIGKILL", signal.SIGTERM) + os.kill(pid, sig) + for child_pid in child_pids: + try: + os.kill(child_pid, sig) + except OSError: + pass + kill_check.set() # tell the main routine that the process was killed + except OSError: + # It is possible that the process gets completed in the duration after timeout + # happens and before we try to kill the process. + pass + return + + # end + + if kill_after_timeout is not None: + kill_check = threading.Event() + watchdog = threading.Timer(kill_after_timeout, _kill_process, args=(proc.pid,)) + + # Wait for the process to return + status = 0 + stdout_value: Union[str, bytes] = b"" + stderr_value: Union[str, bytes] = b"" + newline = "\n" if universal_newlines else b"\n" + try: + if output_stream is None: + if kill_after_timeout is not None: + watchdog.start() + stdout_value, stderr_value = proc.communicate() + if kill_after_timeout is not None: + watchdog.cancel() + if kill_check.is_set(): + stderr_value = 'Timeout: the command "%s" did not complete in %d ' "secs." % ( + " ".join(redacted_command), + kill_after_timeout, + ) + if not universal_newlines: + stderr_value = stderr_value.encode(defenc) + # strip trailing "\n" + if stdout_value.endswith(newline) and strip_newline_in_stdout: # type: ignore + stdout_value = stdout_value[:-1] + if stderr_value.endswith(newline): # type: ignore + stderr_value = stderr_value[:-1] + + status = proc.returncode + else: + max_chunk_size = max_chunk_size if max_chunk_size and max_chunk_size > 0 else io.DEFAULT_BUFFER_SIZE + stream_copy(proc.stdout, output_stream, max_chunk_size) + stdout_value = proc.stdout.read() + stderr_value = proc.stderr.read() + # strip trailing "\n" + if stderr_value.endswith(newline): # type: ignore + stderr_value = stderr_value[:-1] + status = proc.wait() + # END stdout handling + finally: + proc.stdout.close() + proc.stderr.close() + + if self.GIT_PYTHON_TRACE == "full": + cmdstr = " ".join(redacted_command) + + def as_text(stdout_value: Union[bytes, str]) -> str: + return not output_stream and safe_decode(stdout_value) or "" + + # end + + if stderr_value: + log.info( + "%s -> %d; stdout: '%s'; stderr: '%s'", + cmdstr, + status, + as_text(stdout_value), + safe_decode(stderr_value), + ) + elif stdout_value: + log.info("%s -> %d; stdout: '%s'", cmdstr, status, as_text(stdout_value)) + else: + log.info("%s -> %d", cmdstr, status) + # END handle debug printing + + if with_exceptions and status != 0: + raise GitCommandError(redacted_command, status, stderr_value, stdout_value) + + if isinstance(stdout_value, bytes) and stdout_as_string: # could also be output_stream + stdout_value = safe_decode(stdout_value) + + # Allow access to the command's status code + if with_extended_output: + return (status, stdout_value, safe_decode(stderr_value)) + else: + return stdout_value + + def environment(self) -> Dict[str, str]: + return self._environment + + def update_environment(self, **kwargs: Any) -> Dict[str, Union[str, None]]: + """ + Set environment variables for future git invocations. Return all changed + values in a format that can be passed back into this function to revert + the changes: + + ``Examples``:: + + old_env = self.update_environment(PWD='/tmp') + self.update_environment(**old_env) + + :param kwargs: environment variables to use for git processes + :return: dict that maps environment variables to their old values + """ + old_env = {} + for key, value in kwargs.items(): + # set value if it is None + if value is not None: + old_env[key] = self._environment.get(key) + self._environment[key] = value + # remove key from environment if its value is None + elif key in self._environment: + old_env[key] = self._environment[key] + del self._environment[key] + return old_env + + @contextlib.contextmanager + def custom_environment(self, **kwargs: Any) -> Iterator[None]: + """ + A context manager around the above ``update_environment`` method to restore the + environment back to its previous state after operation. + + ``Examples``:: + + with self.custom_environment(GIT_SSH='/bin/ssh_wrapper'): + repo.remotes.origin.fetch() + + :param kwargs: see update_environment + """ + old_env = self.update_environment(**kwargs) + try: + yield + finally: + self.update_environment(**old_env) + + def transform_kwarg(self, name: str, value: Any, split_single_char_options: bool) -> List[str]: + if len(name) == 1: + if value is True: + return ["-%s" % name] + elif value not in (False, None): + if split_single_char_options: + return ["-%s" % name, "%s" % value] + else: + return ["-%s%s" % (name, value)] + else: + if value is True: + return ["--%s" % dashify(name)] + elif value is not False and value is not None: + return ["--%s=%s" % (dashify(name), value)] + return [] + + def transform_kwargs(self, split_single_char_options: bool = True, **kwargs: Any) -> List[str]: + """Transforms Python style kwargs into git command line options.""" + args = [] + for k, v in kwargs.items(): + if isinstance(v, (list, tuple)): + for value in v: + args += self.transform_kwarg(k, value, split_single_char_options) + else: + args += self.transform_kwarg(k, v, split_single_char_options) + return args + + @classmethod + def _unpack_args(cls, arg_list: Sequence[str]) -> List[str]: + outlist = [] + if isinstance(arg_list, (list, tuple)): + for arg in arg_list: + outlist.extend(cls._unpack_args(arg)) + else: + outlist.append(str(arg_list)) + + return outlist + + def __call__(self, **kwargs: Any) -> "Git": + """Specify command line options to the git executable + for a subcommand call + + :param kwargs: + is a dict of keyword arguments. + these arguments are passed as in _call_process + but will be passed to the git command rather than + the subcommand. + + ``Examples``:: + git(work_tree='/tmp').difftool()""" + self._git_options = self.transform_kwargs(split_single_char_options=True, **kwargs) + return self + + @overload + def _call_process(self, method: str, *args: None, **kwargs: None) -> str: + ... # if no args given, execute called with all defaults + + @overload + def _call_process( + self, + method: str, + istream: int, + as_process: Literal[True], + *args: Any, + **kwargs: Any, + ) -> "Git.AutoInterrupt": + ... + + @overload + def _call_process( + self, method: str, *args: Any, **kwargs: Any + ) -> Union[str, bytes, Tuple[int, Union[str, bytes], str], "Git.AutoInterrupt"]: + ... + + def _call_process( + self, method: str, *args: Any, **kwargs: Any + ) -> Union[str, bytes, Tuple[int, Union[str, bytes], str], "Git.AutoInterrupt"]: + """Run the given git command with the specified arguments and return + the result as a String + + :param method: + is the command. Contained "_" characters will be converted to dashes, + such as in 'ls_files' to call 'ls-files'. + + :param args: + is the list of arguments. If None is included, it will be pruned. + This allows your commands to call git more conveniently as None + is realized as non-existent + + :param kwargs: + It contains key-values for the following: + - the :meth:`execute()` kwds, as listed in :var:`execute_kwargs`; + - "command options" to be converted by :meth:`transform_kwargs()`; + - the `'insert_kwargs_after'` key which its value must match one of ``*args`` + and any cmd-options will be appended after the matched arg. + + Examples:: + + git.rev_list('master', max_count=10, header=True) + + turns into:: + + git rev-list max-count 10 --header master + + :return: Same as ``execute`` + if no args given used execute default (esp. as_process = False, stdout_as_string = True) + and return str""" + # Handle optional arguments prior to calling transform_kwargs + # otherwise these'll end up in args, which is bad. + exec_kwargs = {k: v for k, v in kwargs.items() if k in execute_kwargs} + opts_kwargs = {k: v for k, v in kwargs.items() if k not in execute_kwargs} + + insert_after_this_arg = opts_kwargs.pop("insert_kwargs_after", None) + + # Prepare the argument list + + opt_args = self.transform_kwargs(**opts_kwargs) + ext_args = self._unpack_args([a for a in args if a is not None]) + + if insert_after_this_arg is None: + args_list = opt_args + ext_args + else: + try: + index = ext_args.index(insert_after_this_arg) + except ValueError as err: + raise ValueError( + "Couldn't find argument '%s' in args %s to insert cmd options after" + % (insert_after_this_arg, str(ext_args)) + ) from err + # end handle error + args_list = ext_args[: index + 1] + opt_args + ext_args[index + 1 :] + # end handle opts_kwargs + + call = [self.GIT_PYTHON_GIT_EXECUTABLE] + + # add persistent git options + call.extend(self._persistent_git_options) + + # add the git options, then reset to empty + # to avoid side_effects + call.extend(self._git_options) + self._git_options = () + + call.append(dashify(method)) + call.extend(args_list) + + return self.execute(call, **exec_kwargs) + + def _parse_object_header(self, header_line: str) -> Tuple[str, str, int]: + """ + :param header_line: + type_string size_as_int + + :return: (hex_sha, type_string, size_as_int) + + :raise ValueError: if the header contains indication for an error due to + incorrect input sha""" + tokens = header_line.split() + if len(tokens) != 3: + if not tokens: + raise ValueError("SHA could not be resolved, git returned: %r" % (header_line.strip())) + else: + raise ValueError("SHA %s could not be resolved, git returned: %r" % (tokens[0], header_line.strip())) + # END handle actual return value + # END error handling + + if len(tokens[0]) != 40: + raise ValueError("Failed to parse header: %r" % header_line) + return (tokens[0], tokens[1], int(tokens[2])) + + def _prepare_ref(self, ref: AnyStr) -> bytes: + # required for command to separate refs on stdin, as bytes + if isinstance(ref, bytes): + # Assume 40 bytes hexsha - bin-to-ascii for some reason returns bytes, not text + refstr: str = ref.decode("ascii") + elif not isinstance(ref, str): + refstr = str(ref) # could be ref-object + else: + refstr = ref + + if not refstr.endswith("\n"): + refstr += "\n" + return refstr.encode(defenc) + + def _get_persistent_cmd(self, attr_name: str, cmd_name: str, *args: Any, **kwargs: Any) -> "Git.AutoInterrupt": + cur_val = getattr(self, attr_name) + if cur_val is not None: + return cur_val + + options = {"istream": PIPE, "as_process": True} + options.update(kwargs) + + cmd = self._call_process(cmd_name, *args, **options) + setattr(self, attr_name, cmd) + cmd = cast("Git.AutoInterrupt", cmd) + return cmd + + def __get_object_header(self, cmd: "Git.AutoInterrupt", ref: AnyStr) -> Tuple[str, str, int]: + if cmd.stdin and cmd.stdout: + cmd.stdin.write(self._prepare_ref(ref)) + cmd.stdin.flush() + return self._parse_object_header(cmd.stdout.readline()) + else: + raise ValueError("cmd stdin was empty") + + def get_object_header(self, ref: str) -> Tuple[str, str, int]: + """Use this method to quickly examine the type and size of the object behind + the given ref. + + :note: The method will only suffer from the costs of command invocation + once and reuses the command in subsequent calls. + + :return: (hexsha, type_string, size_as_int)""" + cmd = self._get_persistent_cmd("cat_file_header", "cat_file", batch_check=True) + return self.__get_object_header(cmd, ref) + + def get_object_data(self, ref: str) -> Tuple[str, str, int, bytes]: + """As get_object_header, but returns object data as well + + :return: (hexsha, type_string, size_as_int, data_string) + :note: not threadsafe""" + hexsha, typename, size, stream = self.stream_object_data(ref) + data = stream.read(size) + del stream + return (hexsha, typename, size, data) + + def stream_object_data(self, ref: str) -> Tuple[str, str, int, "Git.CatFileContentStream"]: + """As get_object_header, but returns the data as a stream + + :return: (hexsha, type_string, size_as_int, stream) + :note: This method is not threadsafe, you need one independent Command instance per thread to be safe !""" + cmd = self._get_persistent_cmd("cat_file_all", "cat_file", batch=True) + hexsha, typename, size = self.__get_object_header(cmd, ref) + cmd_stdout = cmd.stdout if cmd.stdout is not None else io.BytesIO() + return (hexsha, typename, size, self.CatFileContentStream(size, cmd_stdout)) + + def clear_cache(self) -> "Git": + """Clear all kinds of internal caches to release resources. + + Currently persistent commands will be interrupted. + + :return: self""" + for cmd in (self.cat_file_all, self.cat_file_header): + if cmd: + cmd.__del__() + + self.cat_file_all = None + self.cat_file_header = None + return self diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/compat.py b/frieren-cli/venv/lib/python3.11/site-packages/git/compat.py new file mode 100644 index 0000000..624f261 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/git/compat.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- +# config.py +# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors +# +# This module is part of GitPython and is released under +# the BSD License: https://opensource.org/license/bsd-3-clause/ +"""utilities to help provide compatibility with python 3""" +# flake8: noqa + +import locale +import os +import sys + +from gitdb.utils.encoding import ( + force_bytes, # @UnusedImport + force_text, # @UnusedImport +) + +# typing -------------------------------------------------------------------- + +from typing import ( + Any, + AnyStr, + Dict, + IO, + Optional, + Tuple, + Type, + Union, + overload, +) + +# --------------------------------------------------------------------------- + + +is_win: bool = os.name == "nt" +is_posix = os.name == "posix" +is_darwin = os.name == "darwin" +defenc = sys.getfilesystemencoding() + + +@overload +def safe_decode(s: None) -> None: + ... + + +@overload +def safe_decode(s: AnyStr) -> str: + ... + + +def safe_decode(s: Union[AnyStr, None]) -> Optional[str]: + """Safely decodes a binary string to unicode""" + if isinstance(s, str): + return s + elif isinstance(s, bytes): + return s.decode(defenc, "surrogateescape") + elif s is None: + return None + else: + raise TypeError("Expected bytes or text, but got %r" % (s,)) + + +@overload +def safe_encode(s: None) -> None: + ... + + +@overload +def safe_encode(s: AnyStr) -> bytes: + ... + + +def safe_encode(s: Optional[AnyStr]) -> Optional[bytes]: + """Safely encodes a binary string to unicode""" + if isinstance(s, str): + return s.encode(defenc) + elif isinstance(s, bytes): + return s + elif s is None: + return None + else: + raise TypeError("Expected bytes or text, but got %r" % (s,)) + + +@overload +def win_encode(s: None) -> None: + ... + + +@overload +def win_encode(s: AnyStr) -> bytes: + ... + + +def win_encode(s: Optional[AnyStr]) -> Optional[bytes]: + """Encode unicodes for process arguments on Windows.""" + if isinstance(s, str): + return s.encode(locale.getpreferredencoding(False)) + elif isinstance(s, bytes): + return s + elif s is not None: + raise TypeError("Expected bytes or text, but got %r" % (s,)) + return None diff --git a/frieren-cli/venv/lib/python3.11/site-packages/git/config.py b/frieren-cli/venv/lib/python3.11/site-packages/git/config.py new file mode 100644 index 0000000..76b1491 --- /dev/null +++ b/frieren-cli/venv/lib/python3.11/site-packages/git/config.py @@ -0,0 +1,895 @@ +# config.py +# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors +# +# This module is part of GitPython and is released under +# the BSD License: https://opensource.org/license/bsd-3-clause/ +"""Module containing module parser implementation able to properly read and write +configuration files""" + +import sys +import abc +from functools import wraps +import inspect +from io import BufferedReader, IOBase +import logging +import os +import re +import fnmatch + +from git.compat import ( + defenc, + force_text, + is_win, +) + +from git.util import LockFile + +import os.path as osp + +import configparser as cp + +# typing------------------------------------------------------- + +from typing import ( + Any, + Callable, + Generic, + IO, + List, + Dict, + Sequence, + TYPE_CHECKING, + Tuple, + TypeVar, + Union, + cast, +) + +from git.types import Lit_config_levels, ConfigLevels_Tup, PathLike, assert_never, _T + +if TYPE_CHECKING: + from git.repo.base import Repo + from io import BytesIO + +T_ConfigParser = TypeVar("T_ConfigParser", bound="GitConfigParser") +T_OMD_value = TypeVar("T_OMD_value", str, bytes, int, float, bool) + +if sys.version_info[:3] < (3, 7, 2): + # typing.Ordereddict not added until py 3.7.2 + from collections import OrderedDict + + OrderedDict_OMD = OrderedDict +else: + from typing import OrderedDict + + OrderedDict_OMD = OrderedDict[str, List[T_OMD_value]] # type: ignore[assignment, misc] + +# ------------------------------------------------------------- + +__all__ = ("GitConfigParser", "SectionConstraint") + + +log = logging.getLogger("git.config") +log.addHandler(logging.NullHandler()) + +# invariants +# represents the configuration level of a configuration file + + +CONFIG_LEVELS: ConfigLevels_Tup = ("system", "user", "global", "repository") + + +# Section pattern to detect conditional includes. +# https://git-scm.com/docs/git-config#_conditional_includes +CONDITIONAL_INCLUDE_REGEXP = re.compile(r"(?<=includeIf )\"(gitdir|gitdir/i|onbranch):(.+)\"") + + +class MetaParserBuilder(abc.ABCMeta): # noqa: B024 + """Utility class wrapping base-class methods into decorators that assure read-only properties""" + + def __new__(cls, name: str, bases: Tuple, clsdict: Dict[str, Any]) -> "MetaParserBuilder": + """ + Equip all base-class methods with a needs_values decorator, and all non-const methods + with a set_dirty_and_flush_changes decorator in addition to that.""" + kmm = "_mutating_methods_" + if kmm in clsdict: + mutating_methods = clsdict[kmm] + for base in bases: + methods = (t for t in inspect.getmembers(base, inspect.isroutine) if not t[0].startswith("_")) + for name, method in methods: + if name in clsdict: + continue + method_with_values = needs_values(method) + if name in mutating_methods: + method_with_values = set_dirty_and_flush_changes(method_with_values) + # END mutating methods handling + + clsdict[name] = method_with_values + # END for each name/method pair + # END for each base + # END if mutating methods configuration is set + + new_type = super(MetaParserBuilder, cls).__new__(cls, name, bases, clsdict) + return new_type + + +def needs_values(func: Callable[..., _T]) -> Callable[..., _T]: + """Returns method assuring we read values (on demand) before we try to access them""" + + @wraps(func) + def assure_data_present(self: "GitConfigParser", *args: Any, **kwargs: Any) -> _T: + self.read() + return func(self, *args, **kwargs) + + # END wrapper method + return assure_data_present + + +def set_dirty_and_flush_changes(non_const_func: Callable[..., _T]) -> Callable[..., _T]: + """Return method that checks whether given non constant function may be called. + If so, the instance will be set dirty. + Additionally, we flush the changes right to disk""" + + def flush_changes(self: "GitConfigParser", *args: Any, **kwargs: Any) -> _T: + rval = non_const_func(self, *args, **kwargs) + self._dirty = True + self.write() + return rval + + # END wrapper method + flush_changes.__name__ = non_const_func.__name__ + return flush_changes + + +class SectionConstraint(Generic[T_ConfigParser]): + + """Constrains a ConfigParser to only option commands which are constrained to + always use the section we have been initialized with. + + It supports all ConfigParser methods that operate on an option. + + :note: + If used as a context manager, will release the wrapped ConfigParser.""" + + __slots__ = ("_config", "_section_name") + _valid_attrs_ = ( + "get_value", + "set_value", + "get", + "set", + "getint", + "getfloat", + "getboolean", + "has_option", + "remove_section", + "remove_option", + "options", + ) + + def __init__(self, config: T_ConfigParser, section: str) -> None: + self._config = config + self._section_name = section + + def __del__(self) -> None: + # Yes, for some reason, we have to call it explicitly for it to work in PY3 ! + # Apparently __del__ doesn't get call anymore if refcount becomes 0 + # Ridiculous ... . + self._config.release() + + def __getattr__(self, attr: str) -> Any: + if attr in self._valid_attrs_: + return lambda *args, **kwargs: self._call_config(attr, *args, **kwargs) + return super(SectionConstraint, self).__getattribute__(attr) + + def _call_config(self, method: str, *args: Any, **kwargs: Any) -> Any: + """Call the configuration at the given method which must take a section name + as first argument""" + return getattr(self._config, method)(self._section_name, *args, **kwargs) + + @property + def config(self) -> T_ConfigParser: + """return: Configparser instance we constrain""" + return self._config + + def release(self) -> None: + """Equivalent to GitConfigParser.release(), which is called on our underlying parser instance""" + return self._config.release() + + def __enter__(self) -> "SectionConstraint[T_ConfigParser]": + self._config.__enter__() + return self + + def __exit__(self, exception_type: str, exception_value: str, traceback: str) -> None: + self._config.__exit__(exception_type, exception_value, traceback) + + +class _OMD(OrderedDict_OMD): + """Ordered multi-dict.""" + + def __setitem__(self, key: str, value: _T) -> None: + super(_OMD, self).__setitem__(key, [value]) + + def add(self, key: str, value: Any) -> None: + if key not in self: + super(_OMD, self).__setitem__(key, [value]) + return None + super(_OMD, self).__getitem__(key).append(value) + + def setall(self, key: str, values: List[_T]) -> None: + super(_OMD, self).__setitem__(key, values) + + def __getitem__(self, key: str) -> Any: + return super(_OMD, self).__getitem__(key)[-1] + + def getlast(self, key: str) -> Any: + return super(_OMD, self).__getitem__(key)[-1] + + def setlast(self, key: str, value: Any) -> None: + if key not in self: + super(_OMD, self).__setitem__(key, [value]) + return + + prior = super(_OMD, self).__getitem__(key) + prior[-1] = value + + def get(self, key: str, default: Union[_T, None] = None) -> Union[_T, None]: + return super(_OMD, self).get(key, [default])[-1] + + def getall(self, key: str) -> List[_T]: + return super(_OMD, self).__getitem__(key) + + def items(self) -> List[Tuple[str, _T]]: # type: ignore[override] + """List of (key, last value for key).""" + return [(k, self[k]) for k in self] + + def items_all(self) -> List[Tuple[str, List[_T]]]: + """List of (key, list of values for key).""" + return [(k, self.getall(k)) for k in self] + + +def get_config_path(config_level: Lit_config_levels) -> str: + # we do not support an absolute path of the gitconfig on windows , + # use the global config instead + if is_win and config_level == "system": + config_level = "global" + + if config_level == "system": + return "/etc/gitconfig" + elif config_level == "user": + config_home = os.environ.get("XDG_CONFIG_HOME") or osp.join(os.environ.get("HOME", "~"), ".config") + return osp.normpath(osp.expanduser(osp.join(config_home, "git", "config"))) + elif config_level == "global": + return osp.normpath(osp.expanduser("~/.gitconfig")) + elif config_level == "repository": + raise ValueError("No repo to get repository configuration from. Use Repo._get_config_path") + else: + # Should not reach here. Will raise ValueError if does. Static typing will warn missing elifs + assert_never( # type: ignore[unreachable] + config_level, + ValueError(f"Invalid configuration level: {config_level!r}"), + ) + + +class GitConfigParser(cp.RawConfigParser, metaclass=MetaParserBuilder): + + """Implements specifics required to read git style configuration files. + + This variation behaves much like the git.config command such that the configuration + will be read on demand based on the filepath given during initialization. + + The changes will automatically be written once the instance goes out of scope, but + can be triggered manually as well. + + The configuration file will be locked if you intend to change values preventing other + instances to write concurrently. + + :note: + The config is case-sensitive even when queried, hence section and option names + must match perfectly. + If used as a context manager, will release the locked file.""" + + # { Configuration + # The lock type determines the type of lock to use in new configuration readers. + # They must be compatible to the LockFile interface. + # A suitable alternative would be the BlockingLockFile + t_lock = LockFile + re_comment = re.compile(r"^\s*[#;]") + + # } END configuration + + optvalueonly_source = r"\s*(?P