From dfe256d39ee1d50ca9f88c188fce45c032b14c28 Mon Sep 17 00:00:00 2001 From: KARLA TORRES Date: Sat, 29 May 2021 16:52:19 -0400 Subject: [PATCH 1/3] Used Deployed version- Created Options 1-13, & 20 to navigate video-store scenarios --- .vscode/launch.json | 15 + .vscode/settings.json | 3 + __pycache__/video_store.cpython-39.pyc | Bin 0 -> 4364 bytes main.py | 201 +- venv/bin/Activate.ps1 | 241 + venv/bin/activate | 66 + venv/bin/activate.csh | 25 + venv/bin/activate.fish | 64 + venv/bin/autopep8 | 8 + venv/bin/chardetect | 8 + venv/bin/pip | 8 + venv/bin/pip3 | 8 + venv/bin/pip3.9 | 8 + venv/bin/pycodestyle | 8 + venv/bin/python | 1 + venv/bin/python3 | 1 + venv/bin/python3.9 | 1 + .../__pycache__/autopep8.cpython-39.pyc | Bin 0 -> 100137 bytes .../__pycache__/pycodestyle.cpython-39.pyc | Bin 0 -> 72540 bytes .../site-packages/_distutils_hack/__init__.py | 123 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 5012 bytes .../__pycache__/override.cpython-39.pyc | Bin 0 -> 238 bytes .../site-packages/_distutils_hack/override.py | 1 + .../autopep8-1.5.7.dist-info/AUTHORS.rst | 48 + .../autopep8-1.5.7.dist-info/INSTALLER | 1 + .../autopep8-1.5.7.dist-info/LICENSE | 23 + .../autopep8-1.5.7.dist-info/METADATA | 457 + .../autopep8-1.5.7.dist-info/RECORD | 12 + .../autopep8-1.5.7.dist-info/REQUESTED | 0 .../autopep8-1.5.7.dist-info/WHEEL | 6 + .../autopep8-1.5.7.dist-info/entry_points.txt | 3 + .../autopep8-1.5.7.dist-info/top_level.txt | 1 + venv/lib/python3.9/site-packages/autopep8.py | 4540 +++++++++ .../certifi-2020.12.5.dist-info/INSTALLER | 1 + .../certifi-2020.12.5.dist-info/LICENSE | 21 + .../certifi-2020.12.5.dist-info/METADATA | 83 + .../certifi-2020.12.5.dist-info/RECORD | 13 + .../certifi-2020.12.5.dist-info/WHEEL | 6 + .../certifi-2020.12.5.dist-info/top_level.txt | 1 + .../site-packages/certifi/__init__.py | 3 + .../site-packages/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 263 bytes .../__pycache__/__main__.cpython-39.pyc | Bin 0 -> 428 bytes .../certifi/__pycache__/core.cpython-39.pyc | Bin 0 -> 1154 bytes .../site-packages/certifi/cacert.pem | 4325 +++++++++ .../python3.9/site-packages/certifi/core.py | 60 + .../chardet-4.0.0.dist-info/INSTALLER | 1 + .../chardet-4.0.0.dist-info/LICENSE | 504 + .../chardet-4.0.0.dist-info/METADATA | 101 + .../chardet-4.0.0.dist-info/RECORD | 94 + .../chardet-4.0.0.dist-info/WHEEL | 6 + .../chardet-4.0.0.dist-info/entry_points.txt | 3 + .../chardet-4.0.0.dist-info/top_level.txt | 1 + .../site-packages/chardet/__init__.py | 83 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1887 bytes .../__pycache__/big5freq.cpython-39.pyc | Bin 0 -> 27166 bytes .../__pycache__/big5prober.cpython-39.pyc | Bin 0 -> 1121 bytes .../chardistribution.cpython-39.pyc | Bin 0 -> 6207 bytes .../charsetgroupprober.cpython-39.pyc | Bin 0 -> 2248 bytes .../__pycache__/charsetprober.cpython-39.pyc | Bin 0 -> 3470 bytes .../codingstatemachine.cpython-39.pyc | Bin 0 -> 2897 bytes .../chardet/__pycache__/compat.cpython-39.pyc | Bin 0 -> 386 bytes .../__pycache__/cp949prober.cpython-39.pyc | Bin 0 -> 1128 bytes .../chardet/__pycache__/enums.cpython-39.pyc | Bin 0 -> 2635 bytes .../__pycache__/escprober.cpython-39.pyc | Bin 0 -> 2620 bytes .../chardet/__pycache__/escsm.cpython-39.pyc | Bin 0 -> 7069 bytes .../__pycache__/eucjpprober.cpython-39.pyc | Bin 0 -> 2434 bytes .../__pycache__/euckrfreq.cpython-39.pyc | Bin 0 -> 12050 bytes .../__pycache__/euckrprober.cpython-39.pyc | Bin 0 -> 1129 bytes .../__pycache__/euctwfreq.cpython-39.pyc | Bin 0 -> 27170 bytes .../__pycache__/euctwprober.cpython-39.pyc | Bin 0 -> 1129 bytes .../__pycache__/gb2312freq.cpython-39.pyc | Bin 0 -> 19094 bytes .../__pycache__/gb2312prober.cpython-39.pyc | Bin 0 -> 1137 bytes .../__pycache__/hebrewprober.cpython-39.pyc | Bin 0 -> 3006 bytes .../__pycache__/jisfreq.cpython-39.pyc | Bin 0 -> 22122 bytes .../chardet/__pycache__/jpcntx.cpython-39.pyc | Bin 0 -> 37595 bytes .../langbulgarianmodel.cpython-39.pyc | Bin 0 -> 21785 bytes .../__pycache__/langgreekmodel.cpython-39.pyc | Bin 0 -> 20461 bytes .../langhebrewmodel.cpython-39.pyc | Bin 0 -> 20529 bytes .../langhungarianmodel.cpython-39.pyc | Bin 0 -> 21730 bytes .../langrussianmodel.cpython-39.pyc | Bin 0 -> 26333 bytes .../__pycache__/langthaimodel.cpython-39.pyc | Bin 0 -> 20705 bytes .../langturkishmodel.cpython-39.pyc | Bin 0 -> 20545 bytes .../__pycache__/latin1prober.cpython-39.pyc | Bin 0 -> 2942 bytes .../mbcharsetprober.cpython-39.pyc | Bin 0 -> 2249 bytes .../mbcsgroupprober.cpython-39.pyc | Bin 0 -> 1118 bytes .../chardet/__pycache__/mbcssm.cpython-39.pyc | Bin 0 -> 15705 bytes .../sbcharsetprober.cpython-39.pyc | Bin 0 -> 3102 bytes .../sbcsgroupprober.cpython-39.pyc | Bin 0 -> 1687 bytes .../__pycache__/sjisprober.cpython-39.pyc | Bin 0 -> 2470 bytes .../universaldetector.cpython-39.pyc | Bin 0 -> 5818 bytes .../__pycache__/utf8prober.cpython-39.pyc | Bin 0 -> 1979 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 426 bytes .../site-packages/chardet/big5freq.py | 386 + .../site-packages/chardet/big5prober.py | 47 + .../site-packages/chardet/chardistribution.py | 233 + .../chardet/charsetgroupprober.py | 107 + .../site-packages/chardet/charsetprober.py | 145 + .../site-packages/chardet/cli/__init__.py | 1 + .../cli/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 183 bytes .../cli/__pycache__/chardetect.cpython-39.pyc | Bin 0 -> 2641 bytes .../site-packages/chardet/cli/chardetect.py | 84 + .../chardet/codingstatemachine.py | 88 + .../python3.9/site-packages/chardet/compat.py | 36 + .../site-packages/chardet/cp949prober.py | 49 + .../python3.9/site-packages/chardet/enums.py | 76 + .../site-packages/chardet/escprober.py | 101 + .../python3.9/site-packages/chardet/escsm.py | 246 + .../site-packages/chardet/eucjpprober.py | 92 + .../site-packages/chardet/euckrfreq.py | 195 + .../site-packages/chardet/euckrprober.py | 47 + .../site-packages/chardet/euctwfreq.py | 387 + .../site-packages/chardet/euctwprober.py | 46 + .../site-packages/chardet/gb2312freq.py | 283 + .../site-packages/chardet/gb2312prober.py | 46 + .../site-packages/chardet/hebrewprober.py | 292 + .../site-packages/chardet/jisfreq.py | 325 + .../python3.9/site-packages/chardet/jpcntx.py | 233 + .../chardet/langbulgarianmodel.py | 4650 +++++++++ .../site-packages/chardet/langgreekmodel.py | 4398 +++++++++ .../site-packages/chardet/langhebrewmodel.py | 4383 +++++++++ .../chardet/langhungarianmodel.py | 4650 +++++++++ .../site-packages/chardet/langrussianmodel.py | 5718 +++++++++++ .../site-packages/chardet/langthaimodel.py | 4383 +++++++++ .../site-packages/chardet/langturkishmodel.py | 4383 +++++++++ .../site-packages/chardet/latin1prober.py | 145 + .../site-packages/chardet/mbcharsetprober.py | 91 + .../site-packages/chardet/mbcsgroupprober.py | 54 + .../python3.9/site-packages/chardet/mbcssm.py | 572 ++ .../chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 188 bytes .../__pycache__/languages.cpython-39.pyc | Bin 0 -> 7919 bytes .../chardet/metadata/languages.py | 310 + .../site-packages/chardet/sbcharsetprober.py | 145 + .../site-packages/chardet/sbcsgroupprober.py | 83 + .../site-packages/chardet/sjisprober.py | 92 + .../chardet/universaldetector.py | 286 + .../site-packages/chardet/utf8prober.py | 82 + .../site-packages/chardet/version.py | 9 + .../site-packages/distutils-precedence.pth | 1 + .../idna-2.10.dist-info/INSTALLER | 1 + .../idna-2.10.dist-info/LICENSE.rst | 34 + .../idna-2.10.dist-info/METADATA | 243 + .../site-packages/idna-2.10.dist-info/RECORD | 22 + .../site-packages/idna-2.10.dist-info/WHEEL | 6 + .../idna-2.10.dist-info/top_level.txt | 1 + .../python3.9/site-packages/idna/__init__.py | 2 + .../idna/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 245 bytes .../idna/__pycache__/codec.cpython-39.pyc | Bin 0 -> 2899 bytes .../idna/__pycache__/compat.cpython-39.pyc | Bin 0 -> 617 bytes .../idna/__pycache__/core.cpython-39.pyc | Bin 0 -> 9165 bytes .../idna/__pycache__/idnadata.cpython-39.pyc | Bin 0 -> 22126 bytes .../idna/__pycache__/intranges.cpython-39.pyc | Bin 0 -> 1797 bytes .../__pycache__/package_data.cpython-39.pyc | Bin 0 -> 200 bytes .../idna/__pycache__/uts46data.cpython-39.pyc | Bin 0 -> 146134 bytes .../lib/python3.9/site-packages/idna/codec.py | 118 + .../python3.9/site-packages/idna/compat.py | 12 + venv/lib/python3.9/site-packages/idna/core.py | 400 + .../python3.9/site-packages/idna/idnadata.py | 2050 ++++ .../python3.9/site-packages/idna/intranges.py | 53 + .../site-packages/idna/package_data.py | 2 + .../python3.9/site-packages/idna/uts46data.py | 8357 +++++++++++++++++ .../pip-21.1.2.dist-info/INSTALLER | 1 + .../pip-21.1.2.dist-info/LICENSE.txt | 20 + .../pip-21.1.2.dist-info/METADATA | 91 + .../site-packages/pip-21.1.2.dist-info/RECORD | 797 ++ .../pip-21.1.2.dist-info/REQUESTED | 0 .../site-packages/pip-21.1.2.dist-info/WHEEL | 5 + .../pip-21.1.2.dist-info/entry_points.txt | 5 + .../pip-21.1.2.dist-info/top_level.txt | 1 + .../python3.9/site-packages/pip/__init__.py | 14 + .../python3.9/site-packages/pip/__main__.py | 31 + .../pip/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 590 bytes .../pip/__pycache__/__main__.cpython-39.pyc | Bin 0 -> 587 bytes .../site-packages/pip/_internal/__init__.py | 15 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 639 bytes .../__pycache__/build_env.cpython-39.pyc | Bin 0 -> 8952 bytes .../__pycache__/cache.cpython-39.pyc | Bin 0 -> 7842 bytes .../__pycache__/configuration.cpython-39.pyc | Bin 0 -> 10694 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 0 -> 15643 bytes .../_internal/__pycache__/main.cpython-39.pyc | Bin 0 -> 576 bytes .../__pycache__/pyproject.cpython-39.pyc | Bin 0 -> 3454 bytes .../self_outdated_check.cpython-39.pyc | Bin 0 -> 4339 bytes .../__pycache__/wheel_builder.cpython-39.pyc | Bin 0 -> 8277 bytes .../site-packages/pip/_internal/build_env.py | 286 + .../site-packages/pip/_internal/cache.py | 287 + .../pip/_internal/cli/__init__.py | 4 + .../cli/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 272 bytes .../__pycache__/autocompletion.cpython-39.pyc | Bin 0 -> 4970 bytes .../__pycache__/base_command.cpython-39.pyc | Bin 0 -> 5793 bytes .../cli/__pycache__/cmdoptions.cpython-39.pyc | Bin 0 -> 21027 bytes .../command_context.cpython-39.pyc | Bin 0 -> 1221 bytes .../cli/__pycache__/main.cpython-39.pyc | Bin 0 -> 1321 bytes .../__pycache__/main_parser.cpython-39.pyc | Bin 0 -> 2102 bytes .../cli/__pycache__/parser.cpython-39.pyc | Bin 0 -> 9366 bytes .../__pycache__/progress_bars.cpython-39.pyc | Bin 0 -> 7438 bytes .../__pycache__/req_command.cpython-39.pyc | Bin 0 -> 11211 bytes .../cli/__pycache__/spinners.cpython-39.pyc | Bin 0 -> 4609 bytes .../__pycache__/status_codes.cpython-39.pyc | Bin 0 -> 351 bytes .../pip/_internal/cli/autocompletion.py | 162 + .../pip/_internal/cli/base_command.py | 221 + .../pip/_internal/cli/cmdoptions.py | 1024 ++ .../pip/_internal/cli/command_context.py | 30 + .../site-packages/pip/_internal/cli/main.py | 71 + .../pip/_internal/cli/main_parser.py | 89 + .../site-packages/pip/_internal/cli/parser.py | 305 + .../pip/_internal/cli/progress_bars.py | 261 + .../pip/_internal/cli/req_command.py | 461 + .../pip/_internal/cli/spinners.py | 172 + .../pip/_internal/cli/status_codes.py | 6 + .../pip/_internal/commands/__init__.py | 110 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2865 bytes .../commands/__pycache__/cache.cpython-39.pyc | Bin 0 -> 5747 bytes .../commands/__pycache__/check.cpython-39.pyc | Bin 0 -> 1513 bytes .../__pycache__/completion.cpython-39.pyc | Bin 0 -> 3069 bytes .../__pycache__/configuration.cpython-39.pyc | Bin 0 -> 8050 bytes .../commands/__pycache__/debug.cpython-39.pyc | Bin 0 -> 6434 bytes .../__pycache__/download.cpython-39.pyc | Bin 0 -> 3920 bytes .../__pycache__/freeze.cpython-39.pyc | Bin 0 -> 2918 bytes .../commands/__pycache__/hash.cpython-39.pyc | Bin 0 -> 2030 bytes .../commands/__pycache__/help.cpython-39.pyc | Bin 0 -> 1249 bytes .../__pycache__/install.cpython-39.pyc | Bin 0 -> 16696 bytes .../commands/__pycache__/list.cpython-39.pyc | Bin 0 -> 8807 bytes .../__pycache__/search.cpython-39.pyc | Bin 0 -> 4906 bytes .../commands/__pycache__/show.cpython-39.pyc | Bin 0 -> 6305 bytes .../__pycache__/uninstall.cpython-39.pyc | Bin 0 -> 2854 bytes .../commands/__pycache__/wheel.cpython-39.pyc | Bin 0 -> 4793 bytes .../pip/_internal/commands/cache.py | 228 + .../pip/_internal/commands/check.py | 48 + .../pip/_internal/commands/completion.py | 93 + .../pip/_internal/commands/configuration.py | 280 + .../pip/_internal/commands/debug.py | 215 + .../pip/_internal/commands/download.py | 141 + .../pip/_internal/commands/freeze.py | 104 + .../pip/_internal/commands/hash.py | 58 + .../pip/_internal/commands/help.py | 42 + .../pip/_internal/commands/install.py | 740 ++ .../pip/_internal/commands/list.py | 319 + .../pip/_internal/commands/search.py | 162 + .../pip/_internal/commands/show.py | 181 + .../pip/_internal/commands/uninstall.py | 92 + .../pip/_internal/commands/wheel.py | 178 + .../pip/_internal/configuration.py | 403 + .../pip/_internal/distributions/__init__.py | 20 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 768 bytes .../__pycache__/base.cpython-39.pyc | Bin 0 -> 1824 bytes .../__pycache__/installed.cpython-39.pyc | Bin 0 -> 1169 bytes .../__pycache__/sdist.cpython-39.pyc | Bin 0 -> 3432 bytes .../__pycache__/wheel.cpython-39.pyc | Bin 0 -> 1513 bytes .../pip/_internal/distributions/base.py | 39 + .../pip/_internal/distributions/installed.py | 22 + .../pip/_internal/distributions/sdist.py | 95 + .../pip/_internal/distributions/wheel.py | 34 + .../site-packages/pip/_internal/exceptions.py | 397 + .../pip/_internal/index/__init__.py | 2 + .../index/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 226 bytes .../__pycache__/collector.cpython-39.pyc | Bin 0 -> 15082 bytes .../__pycache__/package_finder.cpython-39.pyc | Bin 0 -> 26609 bytes .../index/__pycache__/sources.cpython-39.pyc | Bin 0 -> 7191 bytes .../pip/_internal/index/collector.py | 556 ++ .../pip/_internal/index/package_finder.py | 1012 ++ .../pip/_internal/index/sources.py | 224 + .../pip/_internal/locations/__init__.py | 184 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 3682 bytes .../__pycache__/_distutils.cpython-39.pyc | Bin 0 -> 3879 bytes .../__pycache__/_sysconfig.cpython-39.pyc | Bin 0 -> 4497 bytes .../locations/__pycache__/base.cpython-39.pyc | Bin 0 -> 1210 bytes .../pip/_internal/locations/_distutils.py | 150 + .../pip/_internal/locations/_sysconfig.py | 180 + .../pip/_internal/locations/base.py | 48 + .../site-packages/pip/_internal/main.py | 13 + .../pip/_internal/metadata/__init__.py | 43 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1725 bytes .../metadata/__pycache__/base.cpython-39.pyc | Bin 0 -> 5299 bytes .../__pycache__/pkg_resources.cpython-39.pyc | Bin 0 -> 4253 bytes .../pip/_internal/metadata/base.py | 142 + .../pip/_internal/metadata/pkg_resources.py | 126 + .../pip/_internal/models/__init__.py | 2 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 260 bytes .../__pycache__/candidate.cpython-39.pyc | Bin 0 -> 1373 bytes .../__pycache__/direct_url.cpython-39.pyc | Bin 0 -> 6286 bytes .../__pycache__/format_control.cpython-39.pyc | Bin 0 -> 2530 bytes .../models/__pycache__/index.cpython-39.pyc | Bin 0 -> 1183 bytes .../models/__pycache__/link.cpython-39.pyc | Bin 0 -> 7187 bytes .../models/__pycache__/scheme.cpython-39.pyc | Bin 0 -> 938 bytes .../__pycache__/search_scope.cpython-39.pyc | Bin 0 -> 3339 bytes .../selection_prefs.cpython-39.pyc | Bin 0 -> 1573 bytes .../__pycache__/target_python.cpython-39.pyc | Bin 0 -> 3270 bytes .../models/__pycache__/wheel.cpython-39.pyc | Bin 0 -> 4185 bytes .../pip/_internal/models/candidate.py | 34 + .../pip/_internal/models/direct_url.py | 233 + .../pip/_internal/models/format_control.py | 86 + .../pip/_internal/models/index.py | 34 + .../pip/_internal/models/link.py | 248 + .../pip/_internal/models/scheme.py | 31 + .../pip/_internal/models/search_scope.py | 131 + .../pip/_internal/models/selection_prefs.py | 47 + .../pip/_internal/models/target_python.py | 114 + .../pip/_internal/models/wheel.py | 95 + .../pip/_internal/network/__init__.py | 2 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 248 bytes .../network/__pycache__/auth.cpython-39.pyc | Bin 0 -> 7045 bytes .../network/__pycache__/cache.cpython-39.pyc | Bin 0 -> 2727 bytes .../__pycache__/download.cpython-39.pyc | Bin 0 -> 5087 bytes .../__pycache__/lazy_wheel.cpython-39.pyc | Bin 0 -> 7912 bytes .../__pycache__/session.cpython-39.pyc | Bin 0 -> 9495 bytes .../network/__pycache__/utils.cpython-39.pyc | Bin 0 -> 1314 bytes .../network/__pycache__/xmlrpc.cpython-39.pyc | Bin 0 -> 1893 bytes .../pip/_internal/network/auth.py | 312 + .../pip/_internal/network/cache.py | 76 + .../pip/_internal/network/download.py | 196 + .../pip/_internal/network/lazy_wheel.py | 224 + .../pip/_internal/network/session.py | 449 + .../pip/_internal/network/utils.py | 95 + .../pip/_internal/network/xmlrpc.py | 49 + .../pip/_internal/operations/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 196 bytes .../__pycache__/check.cpython-39.pyc | Bin 0 -> 3692 bytes .../__pycache__/freeze.cpython-39.pyc | Bin 0 -> 5645 bytes .../__pycache__/prepare.cpython-39.pyc | Bin 0 -> 14232 bytes .../_internal/operations/build/__init__.py | 0 .../build/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 202 bytes .../build/__pycache__/metadata.cpython-39.pyc | Bin 0 -> 1148 bytes .../metadata_legacy.cpython-39.pyc | Bin 0 -> 1922 bytes .../build/__pycache__/wheel.cpython-39.pyc | Bin 0 -> 1127 bytes .../__pycache__/wheel_legacy.cpython-39.pyc | Bin 0 -> 2521 bytes .../_internal/operations/build/metadata.py | 35 + .../operations/build/metadata_legacy.py | 74 + .../pip/_internal/operations/build/wheel.py | 38 + .../operations/build/wheel_legacy.py | 110 + .../pip/_internal/operations/check.py | 153 + .../pip/_internal/operations/freeze.py | 264 + .../_internal/operations/install/__init__.py | 2 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 260 bytes .../editable_legacy.cpython-39.pyc | Bin 0 -> 1303 bytes .../install/__pycache__/legacy.cpython-39.pyc | Bin 0 -> 3191 bytes .../install/__pycache__/wheel.cpython-39.pyc | Bin 0 -> 20813 bytes .../operations/install/editable_legacy.py | 47 + .../_internal/operations/install/legacy.py | 125 + .../pip/_internal/operations/install/wheel.py | 819 ++ .../pip/_internal/operations/prepare.py | 655 ++ .../site-packages/pip/_internal/pyproject.py | 183 + .../pip/_internal/req/__init__.py | 98 + .../req/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2343 bytes .../__pycache__/constructors.cpython-39.pyc | Bin 0 -> 11003 bytes .../req/__pycache__/req_file.cpython-39.pyc | Bin 0 -> 12436 bytes .../__pycache__/req_install.cpython-39.pyc | Bin 0 -> 21034 bytes .../req/__pycache__/req_set.cpython-39.pyc | Bin 0 -> 5680 bytes .../__pycache__/req_tracker.cpython-39.pyc | Bin 0 -> 4025 bytes .../__pycache__/req_uninstall.cpython-39.pyc | Bin 0 -> 17461 bytes .../pip/_internal/req/constructors.py | 486 + .../pip/_internal/req/req_file.py | 551 ++ .../pip/_internal/req/req_install.py | 892 ++ .../pip/_internal/req/req_set.py | 199 + .../pip/_internal/req/req_tracker.py | 140 + .../pip/_internal/req/req_uninstall.py | 640 ++ .../pip/_internal/resolution/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 196 bytes .../__pycache__/base.cpython-39.pyc | Bin 0 -> 939 bytes .../pip/_internal/resolution/base.py | 16 + .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 203 bytes .../__pycache__/resolver.cpython-39.pyc | Bin 0 -> 11476 bytes .../_internal/resolution/legacy/resolver.py | 462 + .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 207 bytes .../__pycache__/base.cpython-39.pyc | Bin 0 -> 6309 bytes .../__pycache__/candidates.cpython-39.pyc | Bin 0 -> 17889 bytes .../__pycache__/factory.cpython-39.pyc | Bin 0 -> 16356 bytes .../found_candidates.cpython-39.pyc | Bin 0 -> 4655 bytes .../__pycache__/provider.cpython-39.pyc | Bin 0 -> 6575 bytes .../__pycache__/reporter.cpython-39.pyc | Bin 0 -> 3139 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 0 -> 7044 bytes .../__pycache__/resolver.cpython-39.pyc | Bin 0 -> 8051 bytes .../_internal/resolution/resolvelib/base.py | 165 + .../resolution/resolvelib/candidates.py | 604 ++ .../resolution/resolvelib/factory.py | 661 ++ .../resolution/resolvelib/found_candidates.py | 145 + .../resolution/resolvelib/provider.py | 175 + .../resolution/resolvelib/reporter.py | 78 + .../resolution/resolvelib/requirements.py | 198 + .../resolution/resolvelib/resolver.py | 305 + .../pip/_internal/self_outdated_check.py | 187 + .../pip/_internal/utils/__init__.py | 0 .../utils/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 191 bytes .../utils/__pycache__/appdirs.cpython-39.pyc | Bin 0 -> 1256 bytes .../utils/__pycache__/compat.cpython-39.pyc | Bin 0 -> 1458 bytes .../compatibility_tags.cpython-39.pyc | Bin 0 -> 3834 bytes .../utils/__pycache__/datetime.cpython-39.pyc | Bin 0 -> 462 bytes .../__pycache__/deprecation.cpython-39.pyc | Bin 0 -> 2757 bytes .../direct_url_helpers.cpython-39.pyc | Bin 0 -> 2511 bytes .../__pycache__/distutils_args.cpython-39.pyc | Bin 0 -> 1056 bytes .../utils/__pycache__/encoding.cpython-39.pyc | Bin 0 -> 1221 bytes .../__pycache__/entrypoints.cpython-39.pyc | Bin 0 -> 1260 bytes .../__pycache__/filesystem.cpython-39.pyc | Bin 0 -> 4930 bytes .../__pycache__/filetypes.cpython-39.pyc | Bin 0 -> 803 bytes .../utils/__pycache__/glibc.cpython-39.pyc | Bin 0 -> 1613 bytes .../utils/__pycache__/hashes.cpython-39.pyc | Bin 0 -> 4995 bytes .../inject_securetransport.cpython-39.pyc | Bin 0 -> 964 bytes .../utils/__pycache__/logging.cpython-39.pyc | Bin 0 -> 8915 bytes .../utils/__pycache__/misc.cpython-39.pyc | Bin 0 -> 21519 bytes .../utils/__pycache__/models.cpython-39.pyc | Bin 0 -> 1895 bytes .../__pycache__/packaging.cpython-39.pyc | Bin 0 -> 2519 bytes .../utils/__pycache__/parallel.cpython-39.pyc | Bin 0 -> 3036 bytes .../__pycache__/pkg_resources.cpython-39.pyc | Bin 0 -> 1717 bytes .../setuptools_build.cpython-39.pyc | Bin 0 -> 2961 bytes .../__pycache__/subprocess.cpython-39.pyc | Bin 0 -> 5684 bytes .../utils/__pycache__/temp_dir.cpython-39.pyc | Bin 0 -> 6835 bytes .../__pycache__/unpacking.cpython-39.pyc | Bin 0 -> 6456 bytes .../utils/__pycache__/urls.cpython-39.pyc | Bin 0 -> 1347 bytes .../__pycache__/virtualenv.cpython-39.pyc | Bin 0 -> 3214 bytes .../utils/__pycache__/wheel.cpython-39.pyc | Bin 0 -> 5965 bytes .../pip/_internal/utils/appdirs.py | 38 + .../pip/_internal/utils/compat.py | 65 + .../pip/_internal/utils/compatibility_tags.py | 174 + .../pip/_internal/utils/datetime.py | 12 + .../pip/_internal/utils/deprecation.py | 102 + .../pip/_internal/utils/direct_url_helpers.py | 117 + .../pip/_internal/utils/distutils_args.py | 43 + .../pip/_internal/utils/encoding.py | 37 + .../pip/_internal/utils/entrypoints.py | 28 + .../pip/_internal/utils/filesystem.py | 193 + .../pip/_internal/utils/filetypes.py | 28 + .../pip/_internal/utils/glibc.py | 92 + .../pip/_internal/utils/hashes.py | 165 + .../_internal/utils/inject_securetransport.py | 36 + .../pip/_internal/utils/logging.py | 387 + .../site-packages/pip/_internal/utils/misc.py | 821 ++ .../pip/_internal/utils/models.py | 47 + .../pip/_internal/utils/packaging.py | 89 + .../pip/_internal/utils/parallel.py | 101 + .../pip/_internal/utils/pkg_resources.py | 40 + .../pip/_internal/utils/setuptools_build.py | 173 + .../pip/_internal/utils/subprocess.py | 281 + .../pip/_internal/utils/temp_dir.py | 260 + .../pip/_internal/utils/unpacking.py | 267 + .../site-packages/pip/_internal/utils/urls.py | 49 + .../pip/_internal/utils/virtualenv.py | 111 + .../pip/_internal/utils/wheel.py | 189 + .../pip/_internal/vcs/__init__.py | 14 + .../vcs/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 484 bytes .../vcs/__pycache__/bazaar.cpython-39.pyc | Bin 0 -> 3000 bytes .../vcs/__pycache__/git.cpython-39.pyc | Bin 0 -> 9976 bytes .../vcs/__pycache__/mercurial.cpython-39.pyc | Bin 0 -> 4621 bytes .../vcs/__pycache__/subversion.cpython-39.pyc | Bin 0 -> 7955 bytes .../__pycache__/versioncontrol.cpython-39.pyc | Bin 0 -> 19100 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 96 + .../site-packages/pip/_internal/vcs/git.py | 450 + .../pip/_internal/vcs/mercurial.py | 158 + .../pip/_internal/vcs/subversion.py | 329 + .../pip/_internal/vcs/versioncontrol.py | 715 ++ .../pip/_internal/wheel_builder.py | 360 + .../site-packages/pip/_vendor/__init__.py | 113 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2946 bytes .../__pycache__/appdirs.cpython-39.pyc | Bin 0 -> 21399 bytes .../_vendor/__pycache__/distro.cpython-39.pyc | Bin 0 -> 36878 bytes .../__pycache__/pyparsing.cpython-39.pyc | Bin 0 -> 240435 bytes .../_vendor/__pycache__/six.cpython-39.pyc | Bin 0 -> 26945 bytes .../site-packages/pip/_vendor/appdirs.py | 633 ++ .../pip/_vendor/cachecontrol/__init__.py | 11 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 549 bytes .../__pycache__/_cmd.cpython-39.pyc | Bin 0 -> 1570 bytes .../__pycache__/adapter.cpython-39.pyc | Bin 0 -> 3075 bytes .../__pycache__/cache.cpython-39.pyc | Bin 0 -> 1822 bytes .../__pycache__/compat.cpython-39.pyc | Bin 0 -> 746 bytes .../__pycache__/controller.cpython-39.pyc | Bin 0 -> 7763 bytes .../__pycache__/filewrapper.cpython-39.pyc | Bin 0 -> 2171 bytes .../__pycache__/heuristics.cpython-39.pyc | Bin 0 -> 4703 bytes .../__pycache__/serialize.cpython-39.pyc | Bin 0 -> 4222 bytes .../__pycache__/wrapper.cpython-39.pyc | Bin 0 -> 673 bytes .../pip/_vendor/cachecontrol/_cmd.py | 57 + .../pip/_vendor/cachecontrol/adapter.py | 133 + .../pip/_vendor/cachecontrol/cache.py | 39 + .../_vendor/cachecontrol/caches/__init__.py | 2 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 293 bytes .../__pycache__/file_cache.cpython-39.pyc | Bin 0 -> 3309 bytes .../__pycache__/redis_cache.cpython-39.pyc | Bin 0 -> 1565 bytes .../_vendor/cachecontrol/caches/file_cache.py | 146 + .../cachecontrol/caches/redis_cache.py | 33 + .../pip/_vendor/cachecontrol/compat.py | 29 + .../pip/_vendor/cachecontrol/controller.py | 376 + .../pip/_vendor/cachecontrol/filewrapper.py | 80 + .../pip/_vendor/cachecontrol/heuristics.py | 135 + .../pip/_vendor/cachecontrol/serialize.py | 188 + .../pip/_vendor/cachecontrol/wrapper.py | 29 + .../pip/_vendor/certifi/__init__.py | 3 + .../pip/_vendor/certifi/__main__.py | 12 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 275 bytes .../__pycache__/__main__.cpython-39.pyc | Bin 0 -> 452 bytes .../certifi/__pycache__/core.cpython-39.pyc | Bin 0 -> 1543 bytes .../pip/_vendor/certifi/cacert.pem | 4325 +++++++++ .../site-packages/pip/_vendor/certifi/core.py | 76 + .../pip/_vendor/chardet/__init__.py | 83 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1899 bytes .../__pycache__/big5freq.cpython-39.pyc | Bin 0 -> 27178 bytes .../__pycache__/big5prober.cpython-39.pyc | Bin 0 -> 1133 bytes .../chardistribution.cpython-39.pyc | Bin 0 -> 6219 bytes .../charsetgroupprober.cpython-39.pyc | Bin 0 -> 2260 bytes .../__pycache__/charsetprober.cpython-39.pyc | Bin 0 -> 3482 bytes .../codingstatemachine.cpython-39.pyc | Bin 0 -> 2909 bytes .../chardet/__pycache__/compat.cpython-39.pyc | Bin 0 -> 398 bytes .../__pycache__/cp949prober.cpython-39.pyc | Bin 0 -> 1140 bytes .../chardet/__pycache__/enums.cpython-39.pyc | Bin 0 -> 2647 bytes .../__pycache__/escprober.cpython-39.pyc | Bin 0 -> 2632 bytes .../chardet/__pycache__/escsm.cpython-39.pyc | Bin 0 -> 7081 bytes .../__pycache__/eucjpprober.cpython-39.pyc | Bin 0 -> 2446 bytes .../__pycache__/euckrfreq.cpython-39.pyc | Bin 0 -> 12062 bytes .../__pycache__/euckrprober.cpython-39.pyc | Bin 0 -> 1141 bytes .../__pycache__/euctwfreq.cpython-39.pyc | Bin 0 -> 27182 bytes .../__pycache__/euctwprober.cpython-39.pyc | Bin 0 -> 1141 bytes .../__pycache__/gb2312freq.cpython-39.pyc | Bin 0 -> 19106 bytes .../__pycache__/gb2312prober.cpython-39.pyc | Bin 0 -> 1149 bytes .../__pycache__/hebrewprober.cpython-39.pyc | Bin 0 -> 3018 bytes .../__pycache__/jisfreq.cpython-39.pyc | Bin 0 -> 22134 bytes .../chardet/__pycache__/jpcntx.cpython-39.pyc | Bin 0 -> 37607 bytes .../langbulgarianmodel.cpython-39.pyc | Bin 0 -> 21809 bytes .../__pycache__/langgreekmodel.cpython-39.pyc | Bin 0 -> 20485 bytes .../langhebrewmodel.cpython-39.pyc | Bin 0 -> 20553 bytes .../langhungarianmodel.cpython-39.pyc | Bin 0 -> 21754 bytes .../langrussianmodel.cpython-39.pyc | Bin 0 -> 26357 bytes .../__pycache__/langthaimodel.cpython-39.pyc | Bin 0 -> 20729 bytes .../langturkishmodel.cpython-39.pyc | Bin 0 -> 20569 bytes .../__pycache__/latin1prober.cpython-39.pyc | Bin 0 -> 2954 bytes .../mbcharsetprober.cpython-39.pyc | Bin 0 -> 2261 bytes .../mbcsgroupprober.cpython-39.pyc | Bin 0 -> 1130 bytes .../chardet/__pycache__/mbcssm.cpython-39.pyc | Bin 0 -> 15717 bytes .../sbcharsetprober.cpython-39.pyc | Bin 0 -> 3114 bytes .../sbcsgroupprober.cpython-39.pyc | Bin 0 -> 1699 bytes .../__pycache__/sjisprober.cpython-39.pyc | Bin 0 -> 2482 bytes .../universaldetector.cpython-39.pyc | Bin 0 -> 5830 bytes .../__pycache__/utf8prober.cpython-39.pyc | Bin 0 -> 1991 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 438 bytes .../pip/_vendor/chardet/big5freq.py | 386 + .../pip/_vendor/chardet/big5prober.py | 47 + .../pip/_vendor/chardet/chardistribution.py | 233 + .../pip/_vendor/chardet/charsetgroupprober.py | 107 + .../pip/_vendor/chardet/charsetprober.py | 145 + .../pip/_vendor/chardet/cli/__init__.py | 1 + .../cli/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 195 bytes .../cli/__pycache__/chardetect.cpython-39.pyc | Bin 0 -> 2689 bytes .../pip/_vendor/chardet/cli/chardetect.py | 84 + .../pip/_vendor/chardet/codingstatemachine.py | 88 + .../pip/_vendor/chardet/compat.py | 36 + .../pip/_vendor/chardet/cp949prober.py | 49 + .../pip/_vendor/chardet/enums.py | 76 + .../pip/_vendor/chardet/escprober.py | 101 + .../pip/_vendor/chardet/escsm.py | 246 + .../pip/_vendor/chardet/eucjpprober.py | 92 + .../pip/_vendor/chardet/euckrfreq.py | 195 + .../pip/_vendor/chardet/euckrprober.py | 47 + .../pip/_vendor/chardet/euctwfreq.py | 387 + .../pip/_vendor/chardet/euctwprober.py | 46 + .../pip/_vendor/chardet/gb2312freq.py | 283 + .../pip/_vendor/chardet/gb2312prober.py | 46 + .../pip/_vendor/chardet/hebrewprober.py | 292 + .../pip/_vendor/chardet/jisfreq.py | 325 + .../pip/_vendor/chardet/jpcntx.py | 233 + .../pip/_vendor/chardet/langbulgarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langgreekmodel.py | 4398 +++++++++ .../pip/_vendor/chardet/langhebrewmodel.py | 4383 +++++++++ .../pip/_vendor/chardet/langhungarianmodel.py | 4650 +++++++++ .../pip/_vendor/chardet/langrussianmodel.py | 5718 +++++++++++ .../pip/_vendor/chardet/langthaimodel.py | 4383 +++++++++ .../pip/_vendor/chardet/langturkishmodel.py | 4383 +++++++++ .../pip/_vendor/chardet/latin1prober.py | 145 + .../pip/_vendor/chardet/mbcharsetprober.py | 91 + .../pip/_vendor/chardet/mbcsgroupprober.py | 54 + .../pip/_vendor/chardet/mbcssm.py | 572 ++ .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 200 bytes .../__pycache__/languages.cpython-39.pyc | Bin 0 -> 7931 bytes .../pip/_vendor/chardet/metadata/languages.py | 310 + .../pip/_vendor/chardet/sbcharsetprober.py | 145 + .../pip/_vendor/chardet/sbcsgroupprober.py | 83 + .../pip/_vendor/chardet/sjisprober.py | 92 + .../pip/_vendor/chardet/universaldetector.py | 286 + .../pip/_vendor/chardet/utf8prober.py | 82 + .../pip/_vendor/chardet/version.py | 9 + .../pip/_vendor/colorama/__init__.py | 6 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 443 bytes .../colorama/__pycache__/ansi.cpython-39.pyc | Bin 0 -> 3228 bytes .../__pycache__/ansitowin32.cpython-39.pyc | Bin 0 -> 7694 bytes .../__pycache__/initialise.cpython-39.pyc | Bin 0 -> 1710 bytes .../colorama/__pycache__/win32.cpython-39.pyc | Bin 0 -> 3942 bytes .../__pycache__/winterm.cpython-39.pyc | Bin 0 -> 4664 bytes .../pip/_vendor/colorama/ansi.py | 102 + .../pip/_vendor/colorama/ansitowin32.py | 258 + .../pip/_vendor/colorama/initialise.py | 80 + .../pip/_vendor/colorama/win32.py | 152 + .../pip/_vendor/colorama/winterm.py | 169 + .../pip/_vendor/distlib/__init__.py | 23 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1056 bytes .../distlib/__pycache__/compat.cpython-39.pyc | Bin 0 -> 32158 bytes .../__pycache__/database.cpython-39.pyc | Bin 0 -> 42480 bytes .../distlib/__pycache__/index.cpython-39.pyc | Bin 0 -> 17501 bytes .../__pycache__/locators.cpython-39.pyc | Bin 0 -> 38489 bytes .../__pycache__/manifest.cpython-39.pyc | Bin 0 -> 10192 bytes .../__pycache__/markers.cpython-39.pyc | Bin 0 -> 4483 bytes .../__pycache__/metadata.cpython-39.pyc | Bin 0 -> 26409 bytes .../__pycache__/resources.cpython-39.pyc | Bin 0 -> 11022 bytes .../__pycache__/scripts.cpython-39.pyc | Bin 0 -> 10930 bytes .../distlib/__pycache__/util.cpython-39.pyc | Bin 0 -> 48202 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 20307 bytes .../distlib/__pycache__/wheel.cpython-39.pyc | Bin 0 -> 26391 bytes .../pip/_vendor/distlib/_backport/__init__.py | 6 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 483 bytes .../_backport/__pycache__/misc.cpython-39.pyc | Bin 0 -> 1103 bytes .../__pycache__/shutil.cpython-39.pyc | Bin 0 -> 21677 bytes .../__pycache__/sysconfig.cpython-39.pyc | Bin 0 -> 15967 bytes .../__pycache__/tarfile.cpython-39.pyc | Bin 0 -> 62731 bytes .../pip/_vendor/distlib/_backport/misc.py | 41 + .../pip/_vendor/distlib/_backport/shutil.py | 764 ++ .../_vendor/distlib/_backport/sysconfig.cfg | 84 + .../_vendor/distlib/_backport/sysconfig.py | 786 ++ .../pip/_vendor/distlib/_backport/tarfile.py | 2607 +++++ .../pip/_vendor/distlib/compat.py | 1120 +++ .../pip/_vendor/distlib/database.py | 1339 +++ .../pip/_vendor/distlib/index.py | 516 + .../pip/_vendor/distlib/locators.py | 1302 +++ .../pip/_vendor/distlib/manifest.py | 393 + .../pip/_vendor/distlib/markers.py | 131 + .../pip/_vendor/distlib/metadata.py | 1056 +++ .../pip/_vendor/distlib/resources.py | 355 + .../pip/_vendor/distlib/scripts.py | 419 + .../site-packages/pip/_vendor/distlib/t32.exe | Bin 0 -> 96768 bytes .../site-packages/pip/_vendor/distlib/t64.exe | Bin 0 -> 105984 bytes .../site-packages/pip/_vendor/distlib/util.py | 1761 ++++ .../pip/_vendor/distlib/version.py | 736 ++ .../site-packages/pip/_vendor/distlib/w32.exe | Bin 0 -> 90112 bytes .../site-packages/pip/_vendor/distlib/w64.exe | Bin 0 -> 99840 bytes .../pip/_vendor/distlib/wheel.py | 1018 ++ .../site-packages/pip/_vendor/distro.py | 1230 +++ .../pip/_vendor/html5lib/__init__.py | 35 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1302 bytes .../__pycache__/_ihatexml.cpython-39.pyc | Bin 0 -> 13771 bytes .../__pycache__/_inputstream.cpython-39.pyc | Bin 0 -> 21630 bytes .../__pycache__/_tokenizer.cpython-39.pyc | Bin 0 -> 39725 bytes .../__pycache__/_utils.cpython-39.pyc | Bin 0 -> 4802 bytes .../__pycache__/constants.cpython-39.pyc | Bin 0 -> 66340 bytes .../__pycache__/html5parser.cpython-39.pyc | Bin 0 -> 91011 bytes .../__pycache__/serializer.cpython-39.pyc | Bin 0 -> 10813 bytes .../pip/_vendor/html5lib/_ihatexml.py | 289 + .../pip/_vendor/html5lib/_inputstream.py | 918 ++ .../pip/_vendor/html5lib/_tokenizer.py | 1735 ++++ .../pip/_vendor/html5lib/_trie/__init__.py | 5 + .../_trie/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 352 bytes .../_trie/__pycache__/_base.cpython-39.pyc | Bin 0 -> 1596 bytes .../_trie/__pycache__/py.cpython-39.pyc | Bin 0 -> 2257 bytes .../pip/_vendor/html5lib/_trie/_base.py | 40 + .../pip/_vendor/html5lib/_trie/py.py | 67 + .../pip/_vendor/html5lib/_utils.py | 159 + .../pip/_vendor/html5lib/constants.py | 2946 ++++++ .../pip/_vendor/html5lib/filters/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 200 bytes .../alphabeticalattributes.cpython-39.pyc | Bin 0 -> 1322 bytes .../filters/__pycache__/base.cpython-39.pyc | Bin 0 -> 870 bytes .../inject_meta_charset.cpython-39.pyc | Bin 0 -> 1876 bytes .../filters/__pycache__/lint.cpython-39.pyc | Bin 0 -> 2618 bytes .../__pycache__/optionaltags.cpython-39.pyc | Bin 0 -> 2763 bytes .../__pycache__/sanitizer.cpython-39.pyc | Bin 0 -> 16886 bytes .../__pycache__/whitespace.cpython-39.pyc | Bin 0 -> 1368 bytes .../filters/alphabeticalattributes.py | 29 + .../pip/_vendor/html5lib/filters/base.py | 12 + .../html5lib/filters/inject_meta_charset.py | 73 + .../pip/_vendor/html5lib/filters/lint.py | 93 + .../_vendor/html5lib/filters/optionaltags.py | 207 + .../pip/_vendor/html5lib/filters/sanitizer.py | 916 ++ .../_vendor/html5lib/filters/whitespace.py | 38 + .../pip/_vendor/html5lib/html5parser.py | 2795 ++++++ .../pip/_vendor/html5lib/serializer.py | 409 + .../_vendor/html5lib/treeadapters/__init__.py | 30 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 937 bytes .../__pycache__/genshi.cpython-39.pyc | Bin 0 -> 1545 bytes .../__pycache__/sax.cpython-39.pyc | Bin 0 -> 1464 bytes .../_vendor/html5lib/treeadapters/genshi.py | 54 + .../pip/_vendor/html5lib/treeadapters/sax.py | 50 + .../_vendor/html5lib/treebuilders/__init__.py | 88 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 3332 bytes .../__pycache__/base.cpython-39.pyc | Bin 0 -> 11316 bytes .../__pycache__/dom.cpython-39.pyc | Bin 0 -> 9453 bytes .../__pycache__/etree.cpython-39.pyc | Bin 0 -> 11821 bytes .../__pycache__/etree_lxml.cpython-39.pyc | Bin 0 -> 13004 bytes .../pip/_vendor/html5lib/treebuilders/base.py | 417 + .../pip/_vendor/html5lib/treebuilders/dom.py | 239 + .../_vendor/html5lib/treebuilders/etree.py | 343 + .../html5lib/treebuilders/etree_lxml.py | 392 + .../_vendor/html5lib/treewalkers/__init__.py | 154 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 3998 bytes .../__pycache__/base.cpython-39.pyc | Bin 0 -> 6997 bytes .../__pycache__/dom.cpython-39.pyc | Bin 0 -> 1732 bytes .../__pycache__/etree.cpython-39.pyc | Bin 0 -> 3494 bytes .../__pycache__/etree_lxml.cpython-39.pyc | Bin 0 -> 6631 bytes .../__pycache__/genshi.cpython-39.pyc | Bin 0 -> 1888 bytes .../pip/_vendor/html5lib/treewalkers/base.py | 252 + .../pip/_vendor/html5lib/treewalkers/dom.py | 43 + .../pip/_vendor/html5lib/treewalkers/etree.py | 131 + .../html5lib/treewalkers/etree_lxml.py | 215 + .../_vendor/html5lib/treewalkers/genshi.py | 69 + .../pip/_vendor/idna/__init__.py | 2 + .../idna/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 257 bytes .../idna/__pycache__/codec.cpython-39.pyc | Bin 0 -> 2791 bytes .../idna/__pycache__/compat.cpython-39.pyc | Bin 0 -> 629 bytes .../idna/__pycache__/core.cpython-39.pyc | Bin 0 -> 9085 bytes .../idna/__pycache__/idnadata.cpython-39.pyc | Bin 0 -> 22138 bytes .../idna/__pycache__/intranges.cpython-39.pyc | Bin 0 -> 1809 bytes .../__pycache__/package_data.cpython-39.pyc | Bin 0 -> 211 bytes .../idna/__pycache__/uts46data.cpython-39.pyc | Bin 0 -> 146146 bytes .../site-packages/pip/_vendor/idna/codec.py | 110 + .../site-packages/pip/_vendor/idna/compat.py | 12 + .../site-packages/pip/_vendor/idna/core.py | 396 + .../pip/_vendor/idna/idnadata.py | 2050 ++++ .../pip/_vendor/idna/intranges.py | 53 + .../pip/_vendor/idna/package_data.py | 2 + .../pip/_vendor/idna/uts46data.py | 8356 ++++++++++++++++ .../pip/_vendor/msgpack/__init__.py | 54 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1414 bytes .../__pycache__/_version.cpython-39.pyc | Bin 0 -> 218 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 0 -> 1852 bytes .../msgpack/__pycache__/ext.cpython-39.pyc | Bin 0 -> 6280 bytes .../__pycache__/fallback.cpython-39.pyc | Bin 0 -> 26726 bytes .../pip/_vendor/msgpack/_version.py | 1 + .../pip/_vendor/msgpack/exceptions.py | 48 + .../site-packages/pip/_vendor/msgpack/ext.py | 193 + .../pip/_vendor/msgpack/fallback.py | 1087 +++ .../pip/_vendor/packaging/__about__.py | 27 + .../pip/_vendor/packaging/__init__.py | 26 + .../__pycache__/__about__.cpython-39.pyc | Bin 0 -> 689 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 545 bytes .../__pycache__/_compat.cpython-39.pyc | Bin 0 -> 1143 bytes .../__pycache__/_structures.cpython-39.pyc | Bin 0 -> 2897 bytes .../__pycache__/_typing.cpython-39.pyc | Bin 0 -> 1500 bytes .../__pycache__/markers.cpython-39.pyc | Bin 0 -> 9271 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 0 -> 4144 bytes .../__pycache__/specifiers.cpython-39.pyc | Bin 0 -> 20926 bytes .../packaging/__pycache__/tags.cpython-39.pyc | Bin 0 -> 18543 bytes .../__pycache__/utils.cpython-39.pyc | Bin 0 -> 3611 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 12675 bytes .../pip/_vendor/packaging/_compat.py | 38 + .../pip/_vendor/packaging/_structures.py | 86 + .../pip/_vendor/packaging/_typing.py | 48 + .../pip/_vendor/packaging/markers.py | 336 + .../pip/_vendor/packaging/requirements.py | 160 + .../pip/_vendor/packaging/specifiers.py | 864 ++ .../pip/_vendor/packaging/tags.py | 866 ++ .../pip/_vendor/packaging/utils.py | 138 + .../pip/_vendor/packaging/version.py | 556 ++ .../pip/_vendor/pep517/__init__.py | 6 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 313 bytes .../pep517/__pycache__/build.cpython-39.pyc | Bin 0 -> 3562 bytes .../pep517/__pycache__/check.cpython-39.pyc | Bin 0 -> 5097 bytes .../__pycache__/colorlog.cpython-39.pyc | Bin 0 -> 2938 bytes .../pep517/__pycache__/compat.cpython-39.pyc | Bin 0 -> 1115 bytes .../__pycache__/dirtools.cpython-39.pyc | Bin 0 -> 1347 bytes .../__pycache__/envbuild.cpython-39.pyc | Bin 0 -> 4480 bytes .../pep517/__pycache__/meta.cpython-39.pyc | Bin 0 -> 2920 bytes .../__pycache__/wrappers.cpython-39.pyc | Bin 0 -> 10480 bytes .../site-packages/pip/_vendor/pep517/build.py | 127 + .../site-packages/pip/_vendor/pep517/check.py | 206 + .../pip/_vendor/pep517/colorlog.py | 115 + .../pip/_vendor/pep517/compat.py | 34 + .../pip/_vendor/pep517/dirtools.py | 44 + .../pip/_vendor/pep517/envbuild.py | 167 + .../pip/_vendor/pep517/in_process/__init__.py | 17 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 915 bytes .../__pycache__/_in_process.cpython-39.pyc | Bin 0 -> 8277 bytes .../_vendor/pep517/in_process/_in_process.py | 280 + .../site-packages/pip/_vendor/pep517/meta.py | 92 + .../pip/_vendor/pep517/wrappers.py | 318 + .../pip/_vendor/pkg_resources/__init__.py | 3296 +++++++ .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 100331 bytes .../__pycache__/py31compat.cpython-39.pyc | Bin 0 -> 650 bytes .../pip/_vendor/pkg_resources/py31compat.py | 23 + .../pip/_vendor/progress/__init__.py | 177 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 5657 bytes .../progress/__pycache__/bar.cpython-39.pyc | Bin 0 -> 2639 bytes .../__pycache__/counter.cpython-39.pyc | Bin 0 -> 1473 bytes .../__pycache__/spinner.cpython-39.pyc | Bin 0 -> 1390 bytes .../site-packages/pip/_vendor/progress/bar.py | 91 + .../pip/_vendor/progress/counter.py | 41 + .../pip/_vendor/progress/spinner.py | 43 + .../site-packages/pip/_vendor/pyparsing.py | 7107 ++++++++++++++ .../pip/_vendor/requests/__init__.py | 142 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 3669 bytes .../__pycache__/__version__.cpython-39.pyc | Bin 0 -> 555 bytes .../_internal_utils.cpython-39.pyc | Bin 0 -> 1302 bytes .../__pycache__/adapters.cpython-39.pyc | Bin 0 -> 16973 bytes .../requests/__pycache__/api.cpython-39.pyc | Bin 0 -> 6759 bytes .../requests/__pycache__/auth.cpython-39.pyc | Bin 0 -> 8331 bytes .../requests/__pycache__/certs.cpython-39.pyc | Bin 0 -> 633 bytes .../__pycache__/compat.cpython-39.pyc | Bin 0 -> 1612 bytes .../__pycache__/cookies.cpython-39.pyc | Bin 0 -> 18822 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 0 -> 5245 bytes .../requests/__pycache__/help.cpython-39.pyc | Bin 0 -> 2716 bytes .../requests/__pycache__/hooks.cpython-39.pyc | Bin 0 -> 990 bytes .../__pycache__/models.cpython-39.pyc | Bin 0 -> 23939 bytes .../__pycache__/packages.cpython-39.pyc | Bin 0 -> 502 bytes .../__pycache__/sessions.cpython-39.pyc | Bin 0 -> 19844 bytes .../__pycache__/status_codes.cpython-39.pyc | Bin 0 -> 4239 bytes .../__pycache__/structures.cpython-39.pyc | Bin 0 -> 4460 bytes .../requests/__pycache__/utils.cpython-39.pyc | Bin 0 -> 22617 bytes .../pip/_vendor/requests/__version__.py | 14 + .../pip/_vendor/requests/_internal_utils.py | 42 + .../pip/_vendor/requests/adapters.py | 533 ++ .../site-packages/pip/_vendor/requests/api.py | 161 + .../pip/_vendor/requests/auth.py | 305 + .../pip/_vendor/requests/certs.py | 18 + .../pip/_vendor/requests/compat.py | 76 + .../pip/_vendor/requests/cookies.py | 549 ++ .../pip/_vendor/requests/exceptions.py | 123 + .../pip/_vendor/requests/help.py | 119 + .../pip/_vendor/requests/hooks.py | 34 + .../pip/_vendor/requests/models.py | 956 ++ .../pip/_vendor/requests/packages.py | 16 + .../pip/_vendor/requests/sessions.py | 781 ++ .../pip/_vendor/requests/status_codes.py | 123 + .../pip/_vendor/requests/structures.py | 105 + .../pip/_vendor/requests/utils.py | 992 ++ .../pip/_vendor/resolvelib/__init__.py | 26 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 606 bytes .../__pycache__/providers.cpython-39.pyc | Bin 0 -> 6526 bytes .../__pycache__/reporters.cpython-39.pyc | Bin 0 -> 2302 bytes .../__pycache__/resolvers.cpython-39.pyc | Bin 0 -> 15197 bytes .../__pycache__/structs.cpython-39.pyc | Bin 0 -> 6920 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 201 bytes .../collections_abc.cpython-39.pyc | Bin 0 -> 375 bytes .../resolvelib/compat/collections_abc.py | 6 + .../pip/_vendor/resolvelib/providers.py | 124 + .../pip/_vendor/resolvelib/reporters.py | 37 + .../pip/_vendor/resolvelib/resolvers.py | 474 + .../pip/_vendor/resolvelib/structs.py | 153 + .../site-packages/pip/_vendor/six.py | 982 ++ .../pip/_vendor/tenacity/__init__.py | 523 ++ .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 14716 bytes .../__pycache__/_asyncio.cpython-39.pyc | Bin 0 -> 2203 bytes .../__pycache__/_utils.cpython-39.pyc | Bin 0 -> 3951 bytes .../tenacity/__pycache__/after.cpython-39.pyc | Bin 0 -> 978 bytes .../__pycache__/before.cpython-39.pyc | Bin 0 -> 874 bytes .../__pycache__/before_sleep.cpython-39.pyc | Bin 0 -> 1222 bytes .../__pycache__/compat.cpython-39.pyc | Bin 0 -> 958 bytes .../tenacity/__pycache__/nap.cpython-39.pyc | Bin 0 -> 1027 bytes .../tenacity/__pycache__/retry.cpython-39.pyc | Bin 0 -> 7412 bytes .../tenacity/__pycache__/stop.cpython-39.pyc | Bin 0 -> 3788 bytes .../__pycache__/tornadoweb.cpython-39.pyc | Bin 0 -> 1342 bytes .../tenacity/__pycache__/wait.cpython-39.pyc | Bin 0 -> 7345 bytes .../pip/_vendor/tenacity/_asyncio.py | 81 + .../pip/_vendor/tenacity/_utils.py | 159 + .../pip/_vendor/tenacity/after.py | 40 + .../pip/_vendor/tenacity/before.py | 35 + .../pip/_vendor/tenacity/before_sleep.py | 51 + .../pip/_vendor/tenacity/compat.py | 23 + .../site-packages/pip/_vendor/tenacity/nap.py | 40 + .../pip/_vendor/tenacity/retry.py | 192 + .../pip/_vendor/tenacity/stop.py | 95 + .../pip/_vendor/tenacity/tornadoweb.py | 49 + .../pip/_vendor/tenacity/wait.py | 183 + .../pip/_vendor/toml/__init__.py | 25 + .../toml/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 732 bytes .../toml/__pycache__/decoder.cpython-39.pyc | Bin 0 -> 23224 bytes .../toml/__pycache__/encoder.cpython-39.pyc | Bin 0 -> 9407 bytes .../toml/__pycache__/ordered.cpython-39.pyc | Bin 0 -> 971 bytes .../toml/__pycache__/tz.cpython-39.pyc | Bin 0 -> 1273 bytes .../site-packages/pip/_vendor/toml/decoder.py | 1057 +++ .../site-packages/pip/_vendor/toml/encoder.py | 304 + .../site-packages/pip/_vendor/toml/ordered.py | 15 + .../site-packages/pip/_vendor/toml/tz.py | 24 + .../pip/_vendor/urllib3/__init__.py | 85 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2189 bytes .../__pycache__/_collections.cpython-39.pyc | Bin 0 -> 10784 bytes .../__pycache__/_version.cpython-39.pyc | Bin 0 -> 213 bytes .../__pycache__/connection.cpython-39.pyc | Bin 0 -> 13369 bytes .../__pycache__/connectionpool.cpython-39.pyc | Bin 0 -> 24468 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 0 -> 11646 bytes .../urllib3/__pycache__/fields.cpython-39.pyc | Bin 0 -> 8161 bytes .../__pycache__/filepost.cpython-39.pyc | Bin 0 -> 2762 bytes .../__pycache__/poolmanager.cpython-39.pyc | Bin 0 -> 15164 bytes .../__pycache__/request.cpython-39.pyc | Bin 0 -> 5625 bytes .../__pycache__/response.cpython-39.pyc | Bin 0 -> 20836 bytes .../pip/_vendor/urllib3/_collections.py | 337 + .../pip/_vendor/urllib3/_version.py | 2 + .../pip/_vendor/urllib3/connection.py | 539 ++ .../pip/_vendor/urllib3/connectionpool.py | 1067 +++ .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 199 bytes .../_appengine_environ.cpython-39.pyc | Bin 0 -> 1419 bytes .../__pycache__/appengine.cpython-39.pyc | Bin 0 -> 8272 bytes .../__pycache__/ntlmpool.cpython-39.pyc | Bin 0 -> 3264 bytes .../__pycache__/pyopenssl.cpython-39.pyc | Bin 0 -> 15531 bytes .../securetransport.cpython-39.pyc | Bin 0 -> 21843 bytes .../contrib/__pycache__/socks.cpython-39.pyc | Bin 0 -> 5635 bytes .../urllib3/contrib/_appengine_environ.py | 36 + .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 216 bytes .../__pycache__/bindings.cpython-39.pyc | Bin 0 -> 10723 bytes .../__pycache__/low_level.cpython-39.pyc | Bin 0 -> 9172 bytes .../contrib/_securetransport/bindings.py | 519 + .../contrib/_securetransport/low_level.py | 396 + .../pip/_vendor/urllib3/contrib/appengine.py | 314 + .../pip/_vendor/urllib3/contrib/ntlmpool.py | 121 + .../pip/_vendor/urllib3/contrib/pyopenssl.py | 509 + .../urllib3/contrib/securetransport.py | 920 ++ .../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 | 5 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 313 bytes .../packages/__pycache__/six.cpython-39.pyc | Bin 0 -> 26517 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 210 bytes .../__pycache__/makefile.cpython-39.pyc | Bin 0 -> 1308 bytes .../urllib3/packages/backports/makefile.py | 51 + .../pip/_vendor/urllib3/packages/six.py | 1021 ++ .../packages/ssl_match_hostname/__init__.py | 22 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 550 bytes .../_implementation.cpython-39.pyc | Bin 0 -> 3303 bytes .../ssl_match_hostname/_implementation.py | 160 + .../pip/_vendor/urllib3/poolmanager.py | 536 ++ .../pip/_vendor/urllib3/request.py | 170 + .../pip/_vendor/urllib3/response.py | 821 ++ .../pip/_vendor/urllib3/util/__init__.py | 49 + .../util/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1109 bytes .../__pycache__/connection.cpython-39.pyc | Bin 0 -> 3463 bytes .../util/__pycache__/proxy.cpython-39.pyc | Bin 0 -> 1345 bytes .../util/__pycache__/queue.cpython-39.pyc | Bin 0 -> 1064 bytes .../util/__pycache__/request.cpython-39.pyc | Bin 0 -> 3452 bytes .../util/__pycache__/response.cpython-39.pyc | Bin 0 -> 2349 bytes .../util/__pycache__/retry.cpython-39.pyc | Bin 0 -> 15966 bytes .../util/__pycache__/ssl_.cpython-39.pyc | Bin 0 -> 11027 bytes .../__pycache__/ssltransport.cpython-39.pyc | Bin 0 -> 7515 bytes .../util/__pycache__/timeout.cpython-39.pyc | Bin 0 -> 8947 bytes .../util/__pycache__/url.cpython-39.pyc | Bin 0 -> 10623 bytes .../util/__pycache__/wait.cpython-39.pyc | Bin 0 -> 3132 bytes .../pip/_vendor/urllib3/util/connection.py | 150 + .../pip/_vendor/urllib3/util/proxy.py | 56 + .../pip/_vendor/urllib3/util/queue.py | 22 + .../pip/_vendor/urllib3/util/request.py | 143 + .../pip/_vendor/urllib3/util/response.py | 107 + .../pip/_vendor/urllib3/util/retry.py | 602 ++ .../pip/_vendor/urllib3/util/ssl_.py | 474 + .../pip/_vendor/urllib3/util/ssltransport.py | 221 + .../pip/_vendor/urllib3/util/timeout.py | 268 + .../pip/_vendor/urllib3/util/url.py | 430 + .../pip/_vendor/urllib3/util/wait.py | 153 + .../site-packages/pip/_vendor/vendor.txt | 22 + .../pip/_vendor/webencodings/__init__.py | 342 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 9723 bytes .../__pycache__/labels.cpython-39.pyc | Bin 0 -> 3837 bytes .../__pycache__/mklabels.cpython-39.pyc | Bin 0 -> 1907 bytes .../__pycache__/tests.cpython-39.pyc | Bin 0 -> 5071 bytes .../__pycache__/x_user_defined.cpython-39.pyc | Bin 0 -> 2667 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 + venv/lib/python3.9/site-packages/pip/py.typed | 4 + .../site-packages/pkg_resources/__init__.py | 3288 +++++++ .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 100439 bytes .../pkg_resources/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 193 bytes .../__pycache__/appdirs.cpython-39.pyc | Bin 0 -> 20510 bytes .../__pycache__/pyparsing.cpython-39.pyc | Bin 0 -> 201346 bytes .../pkg_resources/_vendor/appdirs.py | 608 ++ .../_vendor/packaging/__about__.py | 27 + .../_vendor/packaging/__init__.py | 26 + .../__pycache__/__about__.cpython-39.pyc | Bin 0 -> 709 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 555 bytes .../__pycache__/_compat.cpython-39.pyc | Bin 0 -> 1153 bytes .../__pycache__/_structures.cpython-39.pyc | Bin 0 -> 2907 bytes .../__pycache__/_typing.cpython-39.pyc | Bin 0 -> 1498 bytes .../__pycache__/markers.cpython-39.pyc | Bin 0 -> 9314 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 0 -> 4091 bytes .../__pycache__/specifiers.cpython-39.pyc | Bin 0 -> 20590 bytes .../packaging/__pycache__/tags.cpython-39.pyc | Bin 0 -> 17269 bytes .../__pycache__/utils.cpython-39.pyc | Bin 0 -> 1660 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 13327 bytes .../_vendor/packaging/_compat.py | 38 + .../_vendor/packaging/_structures.py | 86 + .../_vendor/packaging/_typing.py | 48 + .../_vendor/packaging/markers.py | 328 + .../_vendor/packaging/requirements.py | 145 + .../_vendor/packaging/specifiers.py | 863 ++ .../pkg_resources/_vendor/packaging/tags.py | 751 ++ .../pkg_resources/_vendor/packaging/utils.py | 65 + .../_vendor/packaging/version.py | 535 ++ .../pkg_resources/_vendor/pyparsing.py | 5742 +++++++++++ .../pkg_resources/extern/__init__.py | 72 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2685 bytes .../__pycache__/setup.cpython-39.pyc | Bin 0 -> 321 bytes .../data/my-test-package-source/setup.py | 6 + .../pycodestyle-2.7.0.dist-info/INSTALLER | 1 + .../pycodestyle-2.7.0.dist-info/LICENSE | 25 + .../pycodestyle-2.7.0.dist-info/METADATA | 1046 +++ .../pycodestyle-2.7.0.dist-info/RECORD | 11 + .../pycodestyle-2.7.0.dist-info/WHEEL | 6 + .../entry_points.txt | 3 + .../namespace_packages.txt | 1 + .../pycodestyle-2.7.0.dist-info/top_level.txt | 1 + .../python3.9/site-packages/pycodestyle.py | 2786 ++++++ .../requests-2.25.1.dist-info/INSTALLER | 1 + .../requests-2.25.1.dist-info/LICENSE | 175 + .../requests-2.25.1.dist-info/METADATA | 103 + .../requests-2.25.1.dist-info/RECORD | 43 + .../requests-2.25.1.dist-info/REQUESTED | 0 .../requests-2.25.1.dist-info/WHEEL | 6 + .../requests-2.25.1.dist-info/top_level.txt | 1 + .../site-packages/requests/__init__.py | 137 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 3469 bytes .../__pycache__/__version__.cpython-39.pyc | Bin 0 -> 543 bytes .../_internal_utils.cpython-39.pyc | Bin 0 -> 1290 bytes .../__pycache__/adapters.cpython-39.pyc | Bin 0 -> 16889 bytes .../requests/__pycache__/api.cpython-39.pyc | Bin 0 -> 6747 bytes .../requests/__pycache__/auth.cpython-39.pyc | Bin 0 -> 8319 bytes .../requests/__pycache__/certs.cpython-39.pyc | Bin 0 -> 609 bytes .../__pycache__/compat.cpython-39.pyc | Bin 0 -> 1641 bytes .../__pycache__/cookies.cpython-39.pyc | Bin 0 -> 18810 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 0 -> 5221 bytes .../requests/__pycache__/help.cpython-39.pyc | Bin 0 -> 2646 bytes .../requests/__pycache__/hooks.cpython-39.pyc | Bin 0 -> 978 bytes .../__pycache__/models.cpython-39.pyc | Bin 0 -> 23855 bytes .../__pycache__/packages.cpython-39.pyc | Bin 0 -> 397 bytes .../__pycache__/sessions.cpython-39.pyc | Bin 0 -> 19832 bytes .../__pycache__/status_codes.cpython-39.pyc | Bin 0 -> 4227 bytes .../__pycache__/structures.cpython-39.pyc | Bin 0 -> 4448 bytes .../requests/__pycache__/utils.cpython-39.pyc | Bin 0 -> 22605 bytes .../site-packages/requests/__version__.py | 14 + .../site-packages/requests/_internal_utils.py | 42 + .../site-packages/requests/adapters.py | 533 ++ .../python3.9/site-packages/requests/api.py | 161 + .../python3.9/site-packages/requests/auth.py | 305 + .../python3.9/site-packages/requests/certs.py | 18 + .../site-packages/requests/compat.py | 72 + .../site-packages/requests/cookies.py | 549 ++ .../site-packages/requests/exceptions.py | 123 + .../python3.9/site-packages/requests/help.py | 119 + .../python3.9/site-packages/requests/hooks.py | 34 + .../site-packages/requests/models.py | 956 ++ .../site-packages/requests/packages.py | 14 + .../site-packages/requests/sessions.py | 781 ++ .../site-packages/requests/status_codes.py | 123 + .../site-packages/requests/structures.py | 105 + .../python3.9/site-packages/requests/utils.py | 992 ++ .../setuptools-54.2.0.dist-info/INSTALLER | 1 + .../setuptools-54.2.0.dist-info/LICENSE | 19 + .../setuptools-54.2.0.dist-info/METADATA | 114 + .../setuptools-54.2.0.dist-info/RECORD | 297 + .../setuptools-54.2.0.dist-info/REQUESTED | 0 .../setuptools-54.2.0.dist-info/WHEEL | 5 + .../dependency_links.txt | 2 + .../entry_points.txt | 61 + .../setuptools-54.2.0.dist-info/top_level.txt | 3 + .../site-packages/setuptools/__init__.py | 241 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 8626 bytes .../_deprecation_warning.cpython-39.pyc | Bin 0 -> 552 bytes .../__pycache__/_imp.cpython-39.pyc | Bin 0 -> 2087 bytes .../__pycache__/archive_util.cpython-39.pyc | Bin 0 -> 5816 bytes .../__pycache__/build_meta.cpython-39.pyc | Bin 0 -> 9075 bytes .../__pycache__/config.cpython-39.pyc | Bin 0 -> 19850 bytes .../__pycache__/dep_util.cpython-39.pyc | Bin 0 -> 859 bytes .../__pycache__/depends.cpython-39.pyc | Bin 0 -> 5251 bytes .../__pycache__/dist.cpython-39.pyc | Bin 0 -> 33334 bytes .../__pycache__/errors.cpython-39.pyc | Bin 0 -> 852 bytes .../__pycache__/extension.cpython-39.pyc | Bin 0 -> 1946 bytes .../__pycache__/glob.cpython-39.pyc | Bin 0 -> 3696 bytes .../__pycache__/installer.cpython-39.pyc | Bin 0 -> 2773 bytes .../__pycache__/launch.cpython-39.pyc | Bin 0 -> 903 bytes .../__pycache__/lib2to3_ex.cpython-39.pyc | Bin 0 -> 2705 bytes .../__pycache__/monkey.cpython-39.pyc | Bin 0 -> 4615 bytes .../__pycache__/msvc.cpython-39.pyc | Bin 0 -> 43272 bytes .../__pycache__/namespaces.cpython-39.pyc | Bin 0 -> 3602 bytes .../__pycache__/package_index.cpython-39.pyc | Bin 0 -> 33096 bytes .../__pycache__/py34compat.cpython-39.pyc | Bin 0 -> 482 bytes .../__pycache__/sandbox.cpython-39.pyc | Bin 0 -> 15776 bytes .../__pycache__/ssl_support.cpython-39.pyc | Bin 0 -> 6863 bytes .../__pycache__/unicode_utils.cpython-39.pyc | Bin 0 -> 1116 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 326 bytes .../__pycache__/wheel.cpython-39.pyc | Bin 0 -> 7282 bytes .../windows_support.cpython-39.pyc | Bin 0 -> 1025 bytes .../setuptools/_deprecation_warning.py | 7 + .../setuptools/_distutils/__init__.py | 15 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 460 bytes .../__pycache__/_msvccompiler.cpython-39.pyc | Bin 0 -> 13815 bytes .../__pycache__/archive_util.cpython-39.pyc | Bin 0 -> 6647 bytes .../__pycache__/bcppcompiler.cpython-39.pyc | Bin 0 -> 6558 bytes .../__pycache__/ccompiler.cpython-39.pyc | Bin 0 -> 33263 bytes .../_distutils/__pycache__/cmd.cpython-39.pyc | Bin 0 -> 13986 bytes .../__pycache__/config.cpython-39.pyc | Bin 0 -> 3589 bytes .../__pycache__/core.cpython-39.pyc | Bin 0 -> 6714 bytes .../cygwinccompiler.cpython-39.pyc | Bin 0 -> 8563 bytes .../__pycache__/debug.cpython-39.pyc | Bin 0 -> 256 bytes .../__pycache__/dep_util.cpython-39.pyc | Bin 0 -> 2776 bytes .../__pycache__/dir_util.cpython-39.pyc | Bin 0 -> 5877 bytes .../__pycache__/dist.cpython-39.pyc | Bin 0 -> 34447 bytes .../__pycache__/errors.cpython-39.pyc | Bin 0 -> 5312 bytes .../__pycache__/extension.cpython-39.pyc | Bin 0 -> 6977 bytes .../__pycache__/fancy_getopt.cpython-39.pyc | Bin 0 -> 10685 bytes .../__pycache__/file_util.cpython-39.pyc | Bin 0 -> 6043 bytes .../__pycache__/filelist.cpython-39.pyc | Bin 0 -> 9895 bytes .../_distutils/__pycache__/log.cpython-39.pyc | Bin 0 -> 2375 bytes .../__pycache__/msvc9compiler.cpython-39.pyc | Bin 0 -> 17572 bytes .../__pycache__/msvccompiler.cpython-39.pyc | Bin 0 -> 14767 bytes .../__pycache__/py35compat.cpython-39.pyc | Bin 0 -> 632 bytes .../__pycache__/py38compat.cpython-39.pyc | Bin 0 -> 427 bytes .../__pycache__/spawn.cpython-39.pyc | Bin 0 -> 3428 bytes .../__pycache__/sysconfig.cpython-39.pyc | Bin 0 -> 12409 bytes .../__pycache__/text_file.cpython-39.pyc | Bin 0 -> 8501 bytes .../__pycache__/unixccompiler.cpython-39.pyc | Bin 0 -> 6662 bytes .../__pycache__/util.cpython-39.pyc | Bin 0 -> 15695 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 7401 bytes .../versionpredicate.cpython-39.pyc | Bin 0 -> 5185 bytes .../setuptools/_distutils/_msvccompiler.py | 561 ++ .../setuptools/_distutils/archive_util.py | 256 + .../setuptools/_distutils/bcppcompiler.py | 393 + .../setuptools/_distutils/ccompiler.py | 1116 +++ .../setuptools/_distutils/cmd.py | 403 + .../setuptools/_distutils/command/__init__.py | 31 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 535 bytes .../command/__pycache__/bdist.cpython-39.pyc | Bin 0 -> 3665 bytes .../__pycache__/bdist_dumb.cpython-39.pyc | Bin 0 -> 3648 bytes .../__pycache__/bdist_msi.cpython-39.pyc | Bin 0 -> 19830 bytes .../__pycache__/bdist_rpm.cpython-39.pyc | Bin 0 -> 12285 bytes .../__pycache__/bdist_wininst.cpython-39.pyc | Bin 0 -> 8605 bytes .../command/__pycache__/build.cpython-39.pyc | Bin 0 -> 3941 bytes .../__pycache__/build_clib.cpython-39.pyc | Bin 0 -> 4860 bytes .../__pycache__/build_ext.cpython-39.pyc | Bin 0 -> 16309 bytes .../__pycache__/build_py.cpython-39.pyc | Bin 0 -> 10493 bytes .../__pycache__/build_scripts.cpython-39.pyc | Bin 0 -> 4390 bytes .../command/__pycache__/check.cpython-39.pyc | Bin 0 -> 4969 bytes .../command/__pycache__/clean.cpython-39.pyc | Bin 0 -> 2142 bytes .../command/__pycache__/config.cpython-39.pyc | Bin 0 -> 10272 bytes .../__pycache__/install.cpython-39.pyc | Bin 0 -> 13859 bytes .../__pycache__/install_data.cpython-39.pyc | Bin 0 -> 2345 bytes .../install_egg_info.cpython-39.pyc | Bin 0 -> 3080 bytes .../install_headers.cpython-39.pyc | Bin 0 -> 1770 bytes .../__pycache__/install_lib.cpython-39.pyc | Bin 0 -> 5142 bytes .../install_scripts.cpython-39.pyc | Bin 0 -> 2193 bytes .../__pycache__/py37compat.cpython-39.pyc | Bin 0 -> 1036 bytes .../__pycache__/register.cpython-39.pyc | Bin 0 -> 8513 bytes .../command/__pycache__/sdist.cpython-39.pyc | Bin 0 -> 14540 bytes .../command/__pycache__/upload.cpython-39.pyc | Bin 0 -> 5263 bytes .../setuptools/_distutils/command/bdist.py | 143 + .../_distutils/command/bdist_dumb.py | 123 + .../_distutils/command/bdist_msi.py | 749 ++ .../_distutils/command/bdist_rpm.py | 579 ++ .../_distutils/command/bdist_wininst.py | 377 + .../setuptools/_distutils/command/build.py | 157 + .../_distutils/command/build_clib.py | 209 + .../_distutils/command/build_ext.py | 755 ++ .../setuptools/_distutils/command/build_py.py | 416 + .../_distutils/command/build_scripts.py | 160 + .../setuptools/_distutils/command/check.py | 148 + .../setuptools/_distutils/command/clean.py | 76 + .../setuptools/_distutils/command/config.py | 344 + .../setuptools/_distutils/command/install.py | 677 ++ .../_distutils/command/install_data.py | 79 + .../_distutils/command/install_egg_info.py | 77 + .../_distutils/command/install_headers.py | 47 + .../_distutils/command/install_lib.py | 217 + .../_distutils/command/install_scripts.py | 60 + .../_distutils/command/py37compat.py | 30 + .../setuptools/_distutils/command/register.py | 304 + .../setuptools/_distutils/command/sdist.py | 494 + .../setuptools/_distutils/command/upload.py | 214 + .../setuptools/_distutils/config.py | 130 + .../setuptools/_distutils/core.py | 234 + .../setuptools/_distutils/cygwinccompiler.py | 403 + .../setuptools/_distutils/debug.py | 5 + .../setuptools/_distutils/dep_util.py | 92 + .../setuptools/_distutils/dir_util.py | 210 + .../setuptools/_distutils/dist.py | 1257 +++ .../setuptools/_distutils/errors.py | 97 + .../setuptools/_distutils/extension.py | 240 + .../setuptools/_distutils/fancy_getopt.py | 457 + .../setuptools/_distutils/file_util.py | 238 + .../setuptools/_distutils/filelist.py | 327 + .../setuptools/_distutils/log.py | 77 + .../setuptools/_distutils/msvc9compiler.py | 788 ++ .../setuptools/_distutils/msvccompiler.py | 643 ++ .../setuptools/_distutils/py35compat.py | 19 + .../setuptools/_distutils/py38compat.py | 7 + .../setuptools/_distutils/spawn.py | 125 + .../setuptools/_distutils/sysconfig.py | 573 ++ .../setuptools/_distutils/text_file.py | 286 + .../setuptools/_distutils/unixccompiler.py | 328 + .../setuptools/_distutils/util.py | 561 ++ .../setuptools/_distutils/version.py | 347 + .../setuptools/_distutils/versionpredicate.py | 166 + .../site-packages/setuptools/_imp.py | 82 + .../setuptools/_vendor/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 190 bytes .../__pycache__/ordered_set.cpython-39.pyc | Bin 0 -> 16384 bytes .../__pycache__/pyparsing.cpython-39.pyc | Bin 0 -> 201343 bytes .../setuptools/_vendor/ordered_set.py | 488 + .../setuptools/_vendor/packaging/__about__.py | 27 + .../setuptools/_vendor/packaging/__init__.py | 26 + .../__pycache__/__about__.cpython-39.pyc | Bin 0 -> 706 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 552 bytes .../__pycache__/_compat.cpython-39.pyc | Bin 0 -> 1150 bytes .../__pycache__/_structures.cpython-39.pyc | Bin 0 -> 2904 bytes .../__pycache__/_typing.cpython-39.pyc | Bin 0 -> 1495 bytes .../__pycache__/markers.cpython-39.pyc | Bin 0 -> 9308 bytes .../__pycache__/requirements.cpython-39.pyc | Bin 0 -> 4085 bytes .../__pycache__/specifiers.cpython-39.pyc | Bin 0 -> 20587 bytes .../packaging/__pycache__/tags.cpython-39.pyc | Bin 0 -> 17266 bytes .../__pycache__/utils.cpython-39.pyc | Bin 0 -> 1657 bytes .../__pycache__/version.cpython-39.pyc | Bin 0 -> 13324 bytes .../setuptools/_vendor/packaging/_compat.py | 38 + .../_vendor/packaging/_structures.py | 86 + .../setuptools/_vendor/packaging/_typing.py | 48 + .../setuptools/_vendor/packaging/markers.py | 328 + .../_vendor/packaging/requirements.py | 145 + .../_vendor/packaging/specifiers.py | 863 ++ .../setuptools/_vendor/packaging/tags.py | 751 ++ .../setuptools/_vendor/packaging/utils.py | 65 + .../setuptools/_vendor/packaging/version.py | 535 ++ .../setuptools/_vendor/pyparsing.py | 5742 +++++++++++ .../site-packages/setuptools/archive_util.py | 205 + .../site-packages/setuptools/build_meta.py | 281 + .../site-packages/setuptools/cli-32.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/cli-64.exe | Bin 0 -> 74752 bytes .../site-packages/setuptools/cli.exe | Bin 0 -> 65536 bytes .../setuptools/command/__init__.py | 17 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 670 bytes .../command/__pycache__/alias.cpython-39.pyc | Bin 0 -> 2373 bytes .../__pycache__/bdist_egg.cpython-39.pyc | Bin 0 -> 13039 bytes .../__pycache__/bdist_rpm.cpython-39.pyc | Bin 0 -> 1359 bytes .../__pycache__/bdist_wininst.cpython-39.pyc | Bin 0 -> 1225 bytes .../__pycache__/build_clib.cpython-39.pyc | Bin 0 -> 2470 bytes .../__pycache__/build_ext.cpython-39.pyc | Bin 0 -> 9743 bytes .../__pycache__/build_py.cpython-39.pyc | Bin 0 -> 8697 bytes .../__pycache__/develop.cpython-39.pyc | Bin 0 -> 6458 bytes .../__pycache__/dist_info.cpython-39.pyc | Bin 0 -> 1397 bytes .../__pycache__/easy_install.cpython-39.pyc | Bin 0 -> 63558 bytes .../__pycache__/egg_info.cpython-39.pyc | Bin 0 -> 21714 bytes .../__pycache__/install.cpython-39.pyc | Bin 0 -> 4038 bytes .../install_egg_info.cpython-39.pyc | Bin 0 -> 2429 bytes .../__pycache__/install_lib.cpython-39.pyc | Bin 0 -> 4136 bytes .../install_scripts.cpython-39.pyc | Bin 0 -> 2352 bytes .../__pycache__/py36compat.cpython-39.pyc | Bin 0 -> 4591 bytes .../__pycache__/register.cpython-39.pyc | Bin 0 -> 847 bytes .../command/__pycache__/rotate.cpython-39.pyc | Bin 0 -> 2506 bytes .../__pycache__/saveopts.cpython-39.pyc | Bin 0 -> 925 bytes .../command/__pycache__/sdist.cpython-39.pyc | Bin 0 -> 7299 bytes .../command/__pycache__/setopt.cpython-39.pyc | Bin 0 -> 4537 bytes .../command/__pycache__/test.cpython-39.pyc | Bin 0 -> 8500 bytes .../command/__pycache__/upload.cpython-39.pyc | Bin 0 -> 820 bytes .../__pycache__/upload_docs.cpython-39.pyc | Bin 0 -> 6163 bytes .../site-packages/setuptools/command/alias.py | 78 + .../setuptools/command/bdist_egg.py | 456 + .../setuptools/command/bdist_rpm.py | 31 + .../setuptools/command/bdist_wininst.py | 30 + .../setuptools/command/build_clib.py | 101 + .../setuptools/command/build_ext.py | 322 + .../setuptools/command/build_py.py | 270 + .../setuptools/command/develop.py | 216 + .../setuptools/command/dist_info.py | 36 + .../setuptools/command/easy_install.py | 2290 +++++ .../setuptools/command/egg_info.py | 727 ++ .../setuptools/command/install.py | 125 + .../setuptools/command/install_egg_info.py | 62 + .../setuptools/command/install_lib.py | 122 + .../setuptools/command/install_scripts.py | 68 + .../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 | 222 + .../setuptools/command/setopt.py | 148 + .../site-packages/setuptools/command/test.py | 274 + .../setuptools/command/upload.py | 17 + .../setuptools/command/upload_docs.py | 202 + .../site-packages/setuptools/config.py | 710 ++ .../site-packages/setuptools/dep_util.py | 25 + .../site-packages/setuptools/depends.py | 175 + .../site-packages/setuptools/dist.py | 1057 +++ .../site-packages/setuptools/errors.py | 16 + .../site-packages/setuptools/extension.py | 55 + .../setuptools/extern/__init__.py | 72 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2708 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.exe | Bin 0 -> 65536 bytes .../site-packages/setuptools/installer.py | 97 + .../site-packages/setuptools/launch.py | 36 + .../site-packages/setuptools/lib2to3_ex.py | 68 + .../site-packages/setuptools/monkey.py | 177 + .../site-packages/setuptools/msvc.py | 1826 ++++ .../site-packages/setuptools/namespaces.py | 107 + .../site-packages/setuptools/package_index.py | 1145 +++ .../site-packages/setuptools/py34compat.py | 13 + .../site-packages/setuptools/sandbox.py | 496 + .../setuptools/script (dev).tmpl | 6 + .../site-packages/setuptools/script.tmpl | 3 + .../site-packages/setuptools/ssl_support.py | 266 + .../site-packages/setuptools/unicode_utils.py | 42 + .../site-packages/setuptools/version.py | 6 + .../site-packages/setuptools/wheel.py | 213 + .../setuptools/windows_support.py | 29 + .../toml-0.10.2.dist-info/INSTALLER | 1 + .../toml-0.10.2.dist-info/LICENSE | 27 + .../toml-0.10.2.dist-info/METADATA | 255 + .../toml-0.10.2.dist-info/RECORD | 16 + .../site-packages/toml-0.10.2.dist-info/WHEEL | 6 + .../toml-0.10.2.dist-info/top_level.txt | 1 + .../python3.9/site-packages/toml/__init__.py | 25 + .../toml/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 708 bytes .../toml/__pycache__/decoder.cpython-39.pyc | Bin 0 -> 23200 bytes .../toml/__pycache__/encoder.cpython-39.pyc | Bin 0 -> 9383 bytes .../toml/__pycache__/ordered.cpython-39.pyc | Bin 0 -> 947 bytes .../toml/__pycache__/tz.cpython-39.pyc | Bin 0 -> 1261 bytes .../python3.9/site-packages/toml/decoder.py | 1057 +++ .../python3.9/site-packages/toml/encoder.py | 304 + .../python3.9/site-packages/toml/ordered.py | 15 + venv/lib/python3.9/site-packages/toml/tz.py | 24 + .../urllib3-1.26.4.dist-info/DESCRIPTION.rst | 1323 +++ .../urllib3-1.26.4.dist-info/INSTALLER | 1 + .../urllib3-1.26.4.dist-info/LICENSE.txt | 21 + .../urllib3-1.26.4.dist-info/METADATA | 1366 +++ .../urllib3-1.26.4.dist-info/RECORD | 86 + .../urllib3-1.26.4.dist-info/WHEEL | 6 + .../urllib3-1.26.4.dist-info/metadata.json | 1 + .../urllib3-1.26.4.dist-info/top_level.txt | 1 + .../site-packages/urllib3/__init__.py | 85 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 2177 bytes .../__pycache__/_collections.cpython-39.pyc | Bin 0 -> 10772 bytes .../__pycache__/_version.cpython-39.pyc | Bin 0 -> 201 bytes .../__pycache__/connection.cpython-39.pyc | Bin 0 -> 13357 bytes .../__pycache__/connectionpool.cpython-39.pyc | Bin 0 -> 24456 bytes .../__pycache__/exceptions.cpython-39.pyc | Bin 0 -> 11634 bytes .../urllib3/__pycache__/fields.cpython-39.pyc | Bin 0 -> 8149 bytes .../__pycache__/filepost.cpython-39.pyc | Bin 0 -> 2750 bytes .../__pycache__/poolmanager.cpython-39.pyc | Bin 0 -> 15152 bytes .../__pycache__/request.cpython-39.pyc | Bin 0 -> 5613 bytes .../__pycache__/response.cpython-39.pyc | Bin 0 -> 20824 bytes .../site-packages/urllib3/_collections.py | 337 + .../site-packages/urllib3/_version.py | 2 + .../site-packages/urllib3/connection.py | 539 ++ .../site-packages/urllib3/connectionpool.py | 1067 +++ .../site-packages/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 187 bytes .../_appengine_environ.cpython-39.pyc | Bin 0 -> 1407 bytes .../__pycache__/appengine.cpython-39.pyc | Bin 0 -> 8236 bytes .../__pycache__/ntlmpool.cpython-39.pyc | Bin 0 -> 3252 bytes .../__pycache__/pyopenssl.cpython-39.pyc | Bin 0 -> 15495 bytes .../securetransport.cpython-39.pyc | Bin 0 -> 21807 bytes .../contrib/__pycache__/socks.cpython-39.pyc | Bin 0 -> 5623 bytes .../urllib3/contrib/_appengine_environ.py | 36 + .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 204 bytes .../__pycache__/bindings.cpython-39.pyc | Bin 0 -> 10699 bytes .../__pycache__/low_level.cpython-39.pyc | Bin 0 -> 9160 bytes .../contrib/_securetransport/bindings.py | 519 + .../contrib/_securetransport/low_level.py | 396 + .../urllib3/contrib/appengine.py | 314 + .../site-packages/urllib3/contrib/ntlmpool.py | 121 + .../urllib3/contrib/pyopenssl.py | 509 + .../urllib3/contrib/securetransport.py | 920 ++ .../site-packages/urllib3/contrib/socks.py | 216 + .../site-packages/urllib3/exceptions.py | 323 + .../python3.9/site-packages/urllib3/fields.py | 274 + .../site-packages/urllib3/filepost.py | 98 + .../urllib3/packages/__init__.py | 5 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 301 bytes .../packages/__pycache__/six.cpython-39.pyc | Bin 0 -> 26505 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 198 bytes .../__pycache__/makefile.cpython-39.pyc | Bin 0 -> 1296 bytes .../urllib3/packages/backports/makefile.py | 51 + .../site-packages/urllib3/packages/six.py | 1021 ++ .../packages/ssl_match_hostname/__init__.py | 22 + .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 538 bytes .../_implementation.cpython-39.pyc | Bin 0 -> 3291 bytes .../ssl_match_hostname/_implementation.py | 160 + .../site-packages/urllib3/poolmanager.py | 536 ++ .../site-packages/urllib3/request.py | 170 + .../site-packages/urllib3/response.py | 821 ++ .../site-packages/urllib3/util/__init__.py | 49 + .../util/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 1097 bytes .../__pycache__/connection.cpython-39.pyc | Bin 0 -> 3439 bytes .../util/__pycache__/proxy.cpython-39.pyc | Bin 0 -> 1333 bytes .../util/__pycache__/queue.cpython-39.pyc | Bin 0 -> 1052 bytes .../util/__pycache__/request.cpython-39.pyc | Bin 0 -> 3440 bytes .../util/__pycache__/response.cpython-39.pyc | Bin 0 -> 2337 bytes .../util/__pycache__/retry.cpython-39.pyc | Bin 0 -> 15954 bytes .../util/__pycache__/ssl_.cpython-39.pyc | Bin 0 -> 11003 bytes .../__pycache__/ssltransport.cpython-39.pyc | Bin 0 -> 7479 bytes .../util/__pycache__/timeout.cpython-39.pyc | Bin 0 -> 8935 bytes .../util/__pycache__/url.cpython-39.pyc | Bin 0 -> 10587 bytes .../util/__pycache__/wait.cpython-39.pyc | Bin 0 -> 3120 bytes .../site-packages/urllib3/util/connection.py | 150 + .../site-packages/urllib3/util/proxy.py | 56 + .../site-packages/urllib3/util/queue.py | 22 + .../site-packages/urllib3/util/request.py | 143 + .../site-packages/urllib3/util/response.py | 107 + .../site-packages/urllib3/util/retry.py | 602 ++ .../site-packages/urllib3/util/ssl_.py | 474 + .../urllib3/util/ssltransport.py | 221 + .../site-packages/urllib3/util/timeout.py | 268 + .../site-packages/urllib3/util/url.py | 430 + .../site-packages/urllib3/util/wait.py | 153 + venv/pyvenv.cfg | 3 + video_store.py | 155 + 1404 files changed, 290539 insertions(+), 5 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 __pycache__/video_store.cpython-39.pyc create mode 100644 venv/bin/Activate.ps1 create mode 100644 venv/bin/activate create mode 100644 venv/bin/activate.csh create mode 100644 venv/bin/activate.fish create mode 100755 venv/bin/autopep8 create mode 100755 venv/bin/chardetect create mode 100755 venv/bin/pip create mode 100755 venv/bin/pip3 create mode 100755 venv/bin/pip3.9 create mode 100755 venv/bin/pycodestyle create mode 120000 venv/bin/python create mode 120000 venv/bin/python3 create mode 120000 venv/bin/python3.9 create mode 100644 venv/lib/python3.9/site-packages/__pycache__/autopep8.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/__pycache__/pycodestyle.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/_distutils_hack/__init__.py create mode 100644 venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/_distutils_hack/override.py create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/AUTHORS.rst create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/LICENSE create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/REQUESTED create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/entry_points.txt create mode 100644 venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/autopep8.py create mode 100644 venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/LICENSE create mode 100644 venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/certifi/__init__.py create mode 100644 venv/lib/python3.9/site-packages/certifi/__main__.py create mode 100644 venv/lib/python3.9/site-packages/certifi/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/certifi/__pycache__/__main__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/certifi/__pycache__/core.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/certifi/cacert.pem create mode 100644 venv/lib/python3.9/site-packages/certifi/core.py create mode 100644 venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/LICENSE create mode 100644 venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/chardet/__init__.py create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/big5freq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/big5prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/chardistribution.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/charsetgroupprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/charsetprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/codingstatemachine.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/cp949prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/enums.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/escprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/escsm.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/eucjpprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/euckrfreq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/euckrprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/euctwfreq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/euctwprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/gb2312freq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/gb2312prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/hebrewprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/jisfreq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/jpcntx.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/langgreekmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/langhebrewmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/langhungarianmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/langrussianmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/langthaimodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/langturkishmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/latin1prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/mbcharsetprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/mbcssm.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/sbcharsetprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/sjisprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/universaldetector.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/utf8prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/big5freq.py create mode 100644 venv/lib/python3.9/site-packages/chardet/big5prober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/chardistribution.py create mode 100644 venv/lib/python3.9/site-packages/chardet/charsetgroupprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/charsetprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/cli/__init__.py create mode 100644 venv/lib/python3.9/site-packages/chardet/cli/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/cli/__pycache__/chardetect.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/cli/chardetect.py create mode 100644 venv/lib/python3.9/site-packages/chardet/codingstatemachine.py create mode 100644 venv/lib/python3.9/site-packages/chardet/compat.py create mode 100644 venv/lib/python3.9/site-packages/chardet/cp949prober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/enums.py create mode 100644 venv/lib/python3.9/site-packages/chardet/escprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/escsm.py create mode 100644 venv/lib/python3.9/site-packages/chardet/eucjpprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/euckrfreq.py create mode 100644 venv/lib/python3.9/site-packages/chardet/euckrprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/euctwfreq.py create mode 100644 venv/lib/python3.9/site-packages/chardet/euctwprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/gb2312freq.py create mode 100644 venv/lib/python3.9/site-packages/chardet/gb2312prober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/hebrewprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/jisfreq.py create mode 100644 venv/lib/python3.9/site-packages/chardet/jpcntx.py create mode 100644 venv/lib/python3.9/site-packages/chardet/langbulgarianmodel.py create mode 100644 venv/lib/python3.9/site-packages/chardet/langgreekmodel.py create mode 100644 venv/lib/python3.9/site-packages/chardet/langhebrewmodel.py create mode 100644 venv/lib/python3.9/site-packages/chardet/langhungarianmodel.py create mode 100644 venv/lib/python3.9/site-packages/chardet/langrussianmodel.py create mode 100644 venv/lib/python3.9/site-packages/chardet/langthaimodel.py create mode 100644 venv/lib/python3.9/site-packages/chardet/langturkishmodel.py create mode 100644 venv/lib/python3.9/site-packages/chardet/latin1prober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/mbcharsetprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/mbcsgroupprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/mbcssm.py create mode 100644 venv/lib/python3.9/site-packages/chardet/metadata/__init__.py create mode 100644 venv/lib/python3.9/site-packages/chardet/metadata/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/metadata/__pycache__/languages.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/chardet/metadata/languages.py create mode 100644 venv/lib/python3.9/site-packages/chardet/sbcharsetprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/sbcsgroupprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/sjisprober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/universaldetector.py create mode 100644 venv/lib/python3.9/site-packages/chardet/utf8prober.py create mode 100644 venv/lib/python3.9/site-packages/chardet/version.py create mode 100644 venv/lib/python3.9/site-packages/distutils-precedence.pth create mode 100644 venv/lib/python3.9/site-packages/idna-2.10.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/idna-2.10.dist-info/LICENSE.rst create mode 100644 venv/lib/python3.9/site-packages/idna-2.10.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/idna-2.10.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/idna-2.10.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/idna-2.10.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/idna/__init__.py create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/codec.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/core.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/idnadata.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/intranges.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/package_data.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/__pycache__/uts46data.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/idna/codec.py create mode 100644 venv/lib/python3.9/site-packages/idna/compat.py create mode 100644 venv/lib/python3.9/site-packages/idna/core.py create mode 100644 venv/lib/python3.9/site-packages/idna/idnadata.py create mode 100644 venv/lib/python3.9/site-packages/idna/intranges.py create mode 100644 venv/lib/python3.9/site-packages/idna/package_data.py create mode 100644 venv/lib/python3.9/site-packages/idna/uts46data.py create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/REQUESTED create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/entry_points.txt create mode 100644 venv/lib/python3.9/site-packages/pip-21.1.2.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/pip/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/__main__.py create mode 100644 venv/lib/python3.9/site-packages/pip/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/__pycache__/__main__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/build_env.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/cache.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/configuration.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/exceptions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/main.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/pyproject.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/build_env.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cache.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/parser.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/main.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/cache.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/check.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/completion.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/debug.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/download.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/hash.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/help.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/install.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/list.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/search.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/show.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/check.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/download.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/help.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/install.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/list.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/search.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/show.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/configuration.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/exceptions.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/collector.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/__pycache__/sources.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/collector.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/index/sources.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/_distutils.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/locations/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/main.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/candidate.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/format_control.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/index.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/link.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/scheme.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/target_python.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/index.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/link.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/auth.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/cache.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/download.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/session.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/auth.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/cache.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/download.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/session.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/utils.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/check.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/check.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/legacy.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/pyproject.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/constructors.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_file.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_install.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_set.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_tracker.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/constructors.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/distutils_args.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/inject_securetransport.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/misc.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/models.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/parallel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/pkg_resources.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/urls.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/models.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/git.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/bazaar.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py create mode 100644 venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/appdirs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/distro.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/pyparsing.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/__pycache__/six.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/appdirs.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/certifi/cacert.pem create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/certifi/core.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5freq.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/misc.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/shutil.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/sysconfig.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__pycache__/tarfile.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/markers.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/distro.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_ihatexml.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_inputstream.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/constants.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/html5parser.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/_base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/_base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/py.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_utils.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/alphabeticalattributes.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/inject_meta_charset.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/lint.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/optionaltags.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/sanitizer.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__pycache__/whitespace.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/serializer.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/genshi.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__pycache__/sax.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/sax.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/dom.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/etree_lxml.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/dom.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/base.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/dom.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/etree_lxml.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__pycache__/genshi.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/base.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/dom.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/core.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/codec.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/core.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/idnadata.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/intranges.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/package_data.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/idna/uts46data.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/_version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/_version.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/exceptions.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/ext.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/msgpack/fallback.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/_compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/_typing.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/_compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/_typing.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/packaging/version.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/build.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/check.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/colorlog.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/dirtools.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/envbuild.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/meta.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/__pycache__/wrappers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/build.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/check.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/colorlog.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/dirtools.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/envbuild.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__pycache__/_in_process.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/meta.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/py31compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/bar.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/counter.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/__pycache__/spinner.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/bar.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/counter.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/progress/spinner.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/pyparsing.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/api.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/help.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/models.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/__version__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/_internal_utils.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/adapters.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/api.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/auth.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/certs.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/cookies.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/exceptions.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/help.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/hooks.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/models.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/packages.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/sessions.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/status_codes.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/structures.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/requests/utils.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/providers.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/reporters.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/six.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_asyncio.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_utils.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/after.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before_sleep.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/compat.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/nap.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/retry.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/stop.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/tornadoweb.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/tenacity/wait.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/__pycache__/decoder.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/__pycache__/encoder.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/__pycache__/ordered.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/__pycache__/tz.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/decoder.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/encoder.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/ordered.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/toml/tz.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_collections.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_version.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connection.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connectionpool.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/appengine.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/securetransport.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/socks.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/exceptions.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/fields.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/filepost.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/six.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/poolmanager.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/request.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/response.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/connection.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/proxy.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/queue.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/request.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/response.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/retry.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssl_.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssltransport.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/timeout.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/url.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/wait.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/labels.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/mklabels.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/tests.py create mode 100644 venv/lib/python3.9/site-packages/pip/_vendor/webencodings/x_user_defined.py create mode 100644 venv/lib/python3.9/site-packages/pip/py.typed create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/__pycache__/appdirs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/__pycache__/pyparsing.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/appdirs.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/__about__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/_compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/_structures.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/_typing.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/markers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/requirements.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/tags.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_compat.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_typing.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/extern/__init__.py create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/extern/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/__pycache__/setup.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/LICENSE create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/namespace_packages.txt create mode 100644 venv/lib/python3.9/site-packages/pycodestyle-2.7.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/pycodestyle.py create mode 100644 venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/LICENSE create mode 100644 venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/REQUESTED create mode 100644 venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/requests-2.25.1.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/requests/__init__.py create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/__version__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/_internal_utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/adapters.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/api.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/auth.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/certs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/cookies.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/exceptions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/help.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/hooks.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/models.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/packages.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/sessions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/status_codes.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/structures.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__pycache__/utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/requests/__version__.py create mode 100644 venv/lib/python3.9/site-packages/requests/_internal_utils.py create mode 100644 venv/lib/python3.9/site-packages/requests/adapters.py create mode 100644 venv/lib/python3.9/site-packages/requests/api.py create mode 100644 venv/lib/python3.9/site-packages/requests/auth.py create mode 100644 venv/lib/python3.9/site-packages/requests/certs.py create mode 100644 venv/lib/python3.9/site-packages/requests/compat.py create mode 100644 venv/lib/python3.9/site-packages/requests/cookies.py create mode 100644 venv/lib/python3.9/site-packages/requests/exceptions.py create mode 100644 venv/lib/python3.9/site-packages/requests/help.py create mode 100644 venv/lib/python3.9/site-packages/requests/hooks.py create mode 100644 venv/lib/python3.9/site-packages/requests/models.py create mode 100644 venv/lib/python3.9/site-packages/requests/packages.py create mode 100644 venv/lib/python3.9/site-packages/requests/sessions.py create mode 100644 venv/lib/python3.9/site-packages/requests/status_codes.py create mode 100644 venv/lib/python3.9/site-packages/requests/structures.py create mode 100644 venv/lib/python3.9/site-packages/requests/utils.py create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/LICENSE create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/REQUESTED create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/dependency_links.txt create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/entry_points.txt create mode 100644 venv/lib/python3.9/site-packages/setuptools-54.2.0.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/setuptools/__init__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/_deprecation_warning.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/_imp.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/archive_util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/build_meta.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/config.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/dep_util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/depends.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/dist.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/errors.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/extension.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/glob.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/installer.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/launch.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/lib2to3_ex.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/monkey.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/msvc.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/namespaces.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/package_index.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/py34compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/sandbox.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/ssl_support.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/unicode_utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/wheel.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/__pycache__/windows_support.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_deprecation_warning.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__init__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/_msvccompiler.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/archive_util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/bcppcompiler.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/ccompiler.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/cmd.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/config.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/core.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/cygwinccompiler.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/debug.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/dep_util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/dir_util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/dist.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/errors.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/extension.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/fancy_getopt.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/file_util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/filelist.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/log.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/msvc9compiler.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/msvccompiler.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/py35compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/py38compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/sysconfig.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/text_file.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/unixccompiler.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/util.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/__pycache__/versionpredicate.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/_msvccompiler.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/archive_util.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/bcppcompiler.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_dumb.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_msi.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_rpm.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/bdist_wininst.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_clib.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_ext.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_py.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/build_scripts.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/check.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/clean.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/config.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_data.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_egg_info.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_headers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_lib.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/install_scripts.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/py37compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/register.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/sdist.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/__pycache__/upload.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_dumb.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_msi.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_rpm.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_wininst.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_clib.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_py.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_scripts.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/check.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/clean.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/config.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/install.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_data.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_egg_info.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_headers.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_lib.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_scripts.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/py37compat.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/register.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/sdist.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/command/upload.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/config.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/core.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/cygwinccompiler.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/debug.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/dep_util.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/dir_util.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/errors.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/extension.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/fancy_getopt.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/file_util.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/filelist.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/log.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/msvc9compiler.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/msvccompiler.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/py35compat.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/py38compat.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/sysconfig.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/text_file.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/util.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/version.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_distutils/versionpredicate.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_imp.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/__pycache__/ordered_set.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/__pycache__/pyparsing.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/ordered_set.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__about__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__init__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/__about__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/_compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/_structures.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/_typing.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/markers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/requirements.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/specifiers.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/tags.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/utils.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__pycache__/version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_compat.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_structures.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_typing.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/markers.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/requirements.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/specifiers.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/tags.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/utils.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/version.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/_vendor/pyparsing.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/archive_util.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/build_meta.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/cli-32.exe create mode 100644 venv/lib/python3.9/site-packages/setuptools/cli-64.exe create mode 100644 venv/lib/python3.9/site-packages/setuptools/cli.exe create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__init__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/alias.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/bdist_egg.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/bdist_rpm.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/bdist_wininst.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/build_clib.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/build_ext.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/build_py.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/develop.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/dist_info.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/easy_install.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/egg_info.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install_egg_info.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install_lib.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/install_scripts.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/py36compat.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/register.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/rotate.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/saveopts.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/sdist.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/setopt.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/test.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/upload.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/__pycache__/upload_docs.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/alias.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/bdist_egg.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/bdist_rpm.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/bdist_wininst.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/build_clib.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/build_ext.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/build_py.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/develop.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/dist_info.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/easy_install.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/egg_info.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/install.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/install_egg_info.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/install_lib.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/install_scripts.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/launcher manifest.xml create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/py36compat.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/register.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/rotate.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/saveopts.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/sdist.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/setopt.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/test.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/upload.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/command/upload_docs.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/config.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/dep_util.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/depends.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/dist.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/errors.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/extension.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/extern/__init__.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/extern/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/setuptools/glob.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/gui-32.exe create mode 100644 venv/lib/python3.9/site-packages/setuptools/gui-64.exe create mode 100644 venv/lib/python3.9/site-packages/setuptools/gui.exe create mode 100644 venv/lib/python3.9/site-packages/setuptools/installer.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/launch.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/lib2to3_ex.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/monkey.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/msvc.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/namespaces.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/package_index.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/py34compat.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/sandbox.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/script (dev).tmpl create mode 100644 venv/lib/python3.9/site-packages/setuptools/script.tmpl create mode 100644 venv/lib/python3.9/site-packages/setuptools/ssl_support.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/unicode_utils.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/version.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/wheel.py create mode 100644 venv/lib/python3.9/site-packages/setuptools/windows_support.py create mode 100644 venv/lib/python3.9/site-packages/toml-0.10.2.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/toml-0.10.2.dist-info/LICENSE create mode 100644 venv/lib/python3.9/site-packages/toml-0.10.2.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/toml-0.10.2.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/toml-0.10.2.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/toml-0.10.2.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/toml/__init__.py create mode 100644 venv/lib/python3.9/site-packages/toml/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/toml/__pycache__/decoder.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/toml/__pycache__/encoder.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/toml/__pycache__/ordered.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/toml/__pycache__/tz.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/toml/decoder.py create mode 100644 venv/lib/python3.9/site-packages/toml/encoder.py create mode 100644 venv/lib/python3.9/site-packages/toml/ordered.py create mode 100644 venv/lib/python3.9/site-packages/toml/tz.py create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/DESCRIPTION.rst create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/INSTALLER create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/LICENSE.txt create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/METADATA create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/RECORD create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/WHEEL create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/metadata.json create mode 100644 venv/lib/python3.9/site-packages/urllib3-1.26.4.dist-info/top_level.txt create mode 100644 venv/lib/python3.9/site-packages/urllib3/__init__.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/_collections.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/_version.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/connection.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/connectionpool.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/exceptions.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/fields.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/filepost.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/poolmanager.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/request.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/__pycache__/response.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/_collections.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/_version.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/connection.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/connectionpool.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__init__.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/_appengine_environ.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/appengine.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/ntlmpool.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/__pycache__/socks.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/_appengine_environ.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/__init__.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/bindings.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/_securetransport/low_level.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/appengine.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/ntlmpool.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/pyopenssl.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/securetransport.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/contrib/socks.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/exceptions.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/fields.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/filepost.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/__init__.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/__pycache__/six.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/backports/__init__.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/backports/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/backports/__pycache__/makefile.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/backports/makefile.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/six.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/ssl_match_hostname/__init__.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/packages/ssl_match_hostname/_implementation.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/poolmanager.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/request.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/response.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__init__.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/__init__.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/connection.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/proxy.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/queue.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/request.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/response.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/retry.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/ssl_.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/ssltransport.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/timeout.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/url.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/__pycache__/wait.cpython-39.pyc create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/connection.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/proxy.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/queue.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/request.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/response.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/retry.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/ssl_.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/ssltransport.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/timeout.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/url.py create mode 100644 venv/lib/python3.9/site-packages/urllib3/util/wait.py create mode 100644 venv/pyvenv.cfg create mode 100644 video_store.py diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..17e15f27 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Current File", + "type": "python", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..5b80df36 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "venv/bin/python" +} \ No newline at end of file diff --git a/__pycache__/video_store.cpython-39.pyc b/__pycache__/video_store.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c9e063a2959a774a2a62577cf01ac1d6df1eaaf GIT binary patch literal 4364 zcmd5=OK%%h6ux&J&UoxNNs~5BDRk)DrKx$pg^-HG3JbM@MGzWX-$^sUvE4i4qF58L zXcuhQAvRDcS!T=6nJp{+f+Y~&xp!tVb`lVX1&-#-eVqF^ukV~mXMWyg_zi#j<*W6x zjQvWT^3O!)Lp;$f5WxiRu?_v^8(j5`4dY`b3}HTH!hB+En1bJDP3t%Cvv!wg`B&`s z14aWzdu$lunp)4X_PVHuxu<-?5{{@oWgE7*AzV?zNJZ4eJVxe3LoDF!h()o4cU9aJ zXT&l%T+tLO;w)Meaa&vwSJ7Hh zH(yWP&qEOm?#BZew7XX6_S81;+{F`}14($oe3lrXJTXBH!5}$zIxsf?m*# z1K~fWJ=3M4-yKEqU?-4GE447VDM>SuPLMXpA(L}>OsT*?^=>cJeP8wO40lt<_rrb|`+fyGL_`>`;BUNqB-ovtXEOg$u-O^)Voyy@R`YH= zh&w$m>^~0rIB0iD5ws^=RVm^o8c>9h!16zvdsfW0p_Xk!7^^I?g!#R(XD9Z)c|fYM zNHumG#=Rh2P)Fdd*%4`7LR+0E@I@yMCUaV@=#Zz@b~NZ8TB#$0N24H$qtqG>qFC!} z3FkK}lI|qyMCOS!K+-z6<*q;M$j(kgtE1td4}FqqHE|SMR|Ysy+o*<-i1uNI!SVNd z#a`j#)spJU++9wb*^hjqP|JCAVz#eU!B^P<-{T3-)L^vb0_G1bxr|q8J`76292!~} z^03*f)_P$S>x)J!n2+c@#uxecTyp6W8#`a)Wa_>iuvM@$42fl0!wiax}XO@Pu<fugE4?sY=N29Zf1rkoXS`BUQL*G-TX5pG@*s{R9V{;pnenZLvPHpogDzOuY^`*m zX}&J`QvM?ol6$Lgdlii%ze@N|0N-b(@-HJc6N8KpTl-dG?Ar(My38bIdr~{PZ)@zd zBm%qBix4{GgK~`sog|+JNh?ET0!h(zXlgr<3FJv$xkB2^W%RR+UjlcAKIdVD@uiZm zC-EN>nJ%M5{t%7AQ$2X3QFtkNC4n#e&|nITi+BXmMi-TgS#(CX&_ncL&dhMwQaEgGTbQwht=3l7*iY=4#^gD|6QgHoEO$dXrx z%s@t6vueRU0Yer=7b%CA6H%G(m`xGT$r?-B0AOaK&TZ4Y^p9R68nOanuq&2ED zJ3YUPL*(lu-z6f2vma)K=bJS877@kt7tXFr%{;=kvE*-@eR{z$5&s97f`lJun(|0f zUw`pv~ofb0i&UG1q=ky#< znaTlWIGNezzf1##&^abhCegAf$xqDz3mLZOvVBLgQ9fc^rGfJOXIPs?8y{KHrIYAm z1^`9_Z4mk}l~h2=*NBj-787UayODg}_fyyRcLrkAqjuf*AB{RaJtM2MZk32C)?c8O zN8~DzYebqvsQ8mDB2);;SBOxKmhTdIkI0cVRg1pFBvrknn20uZxNEyr$8r}O%dwrR zyW)a6HH=i 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 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 virutal 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 + } +} + +# 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/venv/bin/activate b/venv/bin/activate new file mode 100644 index 00000000..c8392064 --- /dev/null +++ b/venv/bin/activate @@ -0,0 +1,66 @@ +# 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 + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV="/Users/ada/projects/video-store-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 +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/venv/bin/activate.csh b/venv/bin/activate.csh new file mode 100644 index 00000000..1cbdc9a7 --- /dev/null +++ b/venv/bin/activate.csh @@ -0,0 +1,25 @@ +# 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; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV "/Users/ada/projects/video-store-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" +endif + +alias pydoc python -m pydoc + +rehash diff --git a/venv/bin/activate.fish b/venv/bin/activate.fish new file mode 100644 index 00000000..49efcfbf --- /dev/null +++ b/venv/bin/activate.fish @@ -0,0 +1,64 @@ +# 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" + functions -e fish_prompt + set -e _OLD_FISH_PROMPT_OVERRIDE + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + + set -e VIRTUAL_ENV + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV "/Users/ada/projects/video-store-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" +end diff --git a/venv/bin/autopep8 b/venv/bin/autopep8 new file mode 100755 index 00000000..370f09f7 --- /dev/null +++ b/venv/bin/autopep8 @@ -0,0 +1,8 @@ +#!/Users/ada/projects/video-store-cli/venv/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from autopep8 import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/chardetect b/venv/bin/chardetect new file mode 100755 index 00000000..170c6104 --- /dev/null +++ b/venv/bin/chardetect @@ -0,0 +1,8 @@ +#!/Users/ada/projects/video-store-cli/venv/bin/python3.9 +# -*- coding: utf-8 -*- +import re +import sys +from chardet.cli.chardetect import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/venv/bin/pip b/venv/bin/pip new file mode 100755 index 00000000..ddc74a99 --- /dev/null +++ b/venv/bin/pip @@ -0,0 +1,8 @@ +#!/Users/ada/projects/video-store-cli/venv/bin/python3.9 +# -*- 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/venv/bin/pip3 b/venv/bin/pip3 new file mode 100755 index 00000000..ddc74a99 --- /dev/null +++ b/venv/bin/pip3 @@ -0,0 +1,8 @@ +#!/Users/ada/projects/video-store-cli/venv/bin/python3.9 +# -*- 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/venv/bin/pip3.9 b/venv/bin/pip3.9 new file mode 100755 index 00000000..ddc74a99 --- /dev/null +++ b/venv/bin/pip3.9 @@ -0,0 +1,8 @@ +#!/Users/ada/projects/video-store-cli/venv/bin/python3.9 +# -*- 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/venv/bin/pycodestyle b/venv/bin/pycodestyle new file mode 100755 index 00000000..3034aad4 --- /dev/null +++ b/venv/bin/pycodestyle @@ -0,0 +1,8 @@ +#!/Users/ada/projects/video-store-cli/venv/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from pycodestyle import _main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(_main()) diff --git a/venv/bin/python b/venv/bin/python new file mode 120000 index 00000000..e616d269 --- /dev/null +++ b/venv/bin/python @@ -0,0 +1 @@ +python3.9 \ No newline at end of file diff --git a/venv/bin/python3 b/venv/bin/python3 new file mode 120000 index 00000000..e616d269 --- /dev/null +++ b/venv/bin/python3 @@ -0,0 +1 @@ +python3.9 \ No newline at end of file diff --git a/venv/bin/python3.9 b/venv/bin/python3.9 new file mode 120000 index 00000000..9c670a49 --- /dev/null +++ b/venv/bin/python3.9 @@ -0,0 +1 @@ +/usr/local/opt/python@3.9/bin/python3.9 \ No newline at end of file diff --git a/venv/lib/python3.9/site-packages/__pycache__/autopep8.cpython-39.pyc b/venv/lib/python3.9/site-packages/__pycache__/autopep8.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2282a9da6bcd1fa57d6f46bf264663910419229e GIT binary patch literal 100137 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 Y^vZsA!FHG3dDnFp+~U%?yzM&w1-Q85uK)l5 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc b/venv/lib/python3.9/site-packages/_distutils_hack/__pycache__/override.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..47c68239c316d78f03e288bba1bed100db336480 GIT binary patch literal 238 zcmZ9FF$w}P5Ji)%L=i2$g5WxZl_25?Y{bSU#?9bHR}(UE!P*OW1T6(mWa|;^tQ-YF z{P6$h!!S?R>s7%zwyyII_x(M7mGBs`smX!Dh=V-Ivyj5biD)OYhBB7oF4}@ruCw*H zo!qKQ*^PH0DmAMar(B64Sc4Z4-tRu~oWqnb5NM;p2e-m35|n)9Qi?8MniUpG+?G(- o1^9i;-L}{51KEhFXOdnb!5=2.7.0) +Requires-Dist: toml + +======== +autopep8 +======== + +.. image:: https://img.shields.io/pypi/v/autopep8.svg + :target: https://pypi.org/project/autopep8/ + :alt: PyPI Version + +.. image:: https://github.com/hhatto/autopep8/workflows/Python%20package/badge.svg + :target: https://github.com/hhatto/autopep8/actions + :alt: Build status + +.. image:: https://codecov.io/gh/hhatto/autopep8/branch/master/graph/badge.svg + :target: https://codecov.io/gh/hhatto/autopep8 + :alt: Code Coverage + +autopep8 automatically formats Python code to conform to the `PEP 8`_ style +guide. It uses the pycodestyle_ utility to determine what parts of the code +needs to be formatted. autopep8 is capable of fixing most of the formatting +issues_ that can be reported by pycodestyle. + +.. _PEP 8: https://www.python.org/dev/peps/pep-0008/ +.. _issues: https://pycodestyle.readthedocs.org/en/latest/intro.html#error-codes + +.. contents:: + + +Installation +============ + +From pip:: + + $ pip install --upgrade autopep8 + +Consider using the ``--user`` option_. + +.. _option: https://pip.pypa.io/en/latest/user_guide/#user-installs + + +Requirements +============ + +autopep8 requires pycodestyle_. + +.. _pycodestyle: https://github.com/PyCQA/pycodestyle + + +Usage +===== + +To modify a file in place (with aggressive level 2):: + + $ autopep8 --in-place --aggressive --aggressive + +Before running autopep8. + +.. code-block:: python + + import math, sys; + + def example1(): + ####This is a long comment. This should be wrapped to fit within 72 characters. + some_tuple=( 1,2, 3,'a' ); + some_variable={'long':'Long code lines should be wrapped within 79 characters.', + 'other':[math.pi, 100,200,300,9876543210,'This is a long string that goes on'], + 'more':{'inner':'This whole logical line should be wrapped.',some_tuple:[1, + 20,300,40000,500000000,60000000000000000]}} + return (some_tuple, some_variable) + def example2(): return {'has_key() is deprecated':True}.has_key({'f':2}.has_key('')); + class Example3( object ): + def __init__ ( self, bar ): + #Comments should have a space after the hash. + if bar : bar+=1; bar=bar* bar ; return bar + else: + some_string = """ + Indentation in multiline strings should not be touched. + Only actual code should be reindented. + """ + return (sys.path, some_string) + +After running autopep8. + +.. code-block:: python + + import math + import sys + + + def example1(): + # This is a long comment. This should be wrapped to fit within 72 + # characters. + some_tuple = (1, 2, 3, 'a') + some_variable = { + 'long': 'Long code lines should be wrapped within 79 characters.', + 'other': [ + math.pi, + 100, + 200, + 300, + 9876543210, + 'This is a long string that goes on'], + 'more': { + 'inner': 'This whole logical line should be wrapped.', + some_tuple: [ + 1, + 20, + 300, + 40000, + 500000000, + 60000000000000000]}} + return (some_tuple, some_variable) + + + def example2(): return ('' in {'f': 2}) in {'has_key() is deprecated': True} + + + class Example3(object): + def __init__(self, bar): + # Comments should have a space after the hash. + if bar: + bar += 1 + bar = bar * bar + return bar + else: + some_string = """ + Indentation in multiline strings should not be touched. + Only actual code should be reindented. + """ + return (sys.path, some_string) + +Options:: + + usage: autopep8 [-h] [--version] [-v] [-d] [-i] [--global-config filename] + [--ignore-local-config] [-r] [-j n] [-p n] [-a] + [--experimental] [--exclude globs] [--list-fixes] + [--ignore errors] [--select errors] [--max-line-length n] + [--line-range line line] [--hang-closing] [--exit-code] + [files [files ...]] + + Automatically formats Python code to conform to the PEP 8 style guide. + + positional arguments: + files files to format or '-' for standard in + + optional arguments: + -h, --help show this help message and exit + --version show program's version number and exit + -v, --verbose print verbose messages; multiple -v result in more + verbose messages + -d, --diff print the diff for the fixed source + -i, --in-place make changes to files in place + --global-config filename + path to a global pep8 config file; if this file does + not exist then this is ignored (default: + ~/.config/pep8) + --ignore-local-config + don't look for and apply local config files; if not + passed, defaults are updated with any config files in + the project's root directory + -r, --recursive run recursively over directories; must be used with + --in-place or --diff + -j n, --jobs n number of parallel jobs; match CPU count if value is + less than 1 + -p n, --pep8-passes n + maximum number of additional pep8 passes (default: + infinite) + -a, --aggressive enable non-whitespace changes; multiple -a result in + more aggressive changes + --experimental enable experimental fixes + --exclude globs exclude file/directory names that match these comma- + separated globs + --list-fixes list codes for fixes; used by --ignore and --select + --ignore errors do not fix these errors/warnings (default: + E226,E24,W50,W690) + --select errors fix only these errors/warnings (e.g. E4,W) + --max-line-length n set maximum allowed line length (default: 79) + --line-range line line, --range line line + only fix errors found within this inclusive range of + line numbers (e.g. 1 99); line numbers are indexed at + 1 + --hang-closing hang-closing option passed to pycodestyle + --exit-code change to behavior of exit code. default behavior of + return value, 0 is no differences, 1 is error exit. + return 2 when add this option. 2 is exists + differences. + + +Features +======== + +autopep8 fixes the following issues_ reported by pycodestyle_:: + + E101 - Reindent all lines. + E11 - Fix indentation. + E121 - Fix indentation to be a multiple of four. + E122 - Add absent indentation for hanging indentation. + E123 - Align closing bracket to match opening bracket. + E124 - Align closing bracket to match visual indentation. + E125 - Indent to distinguish line from next logical line. + E126 - Fix over-indented hanging indentation. + E127 - Fix visual indentation. + E128 - Fix visual indentation. + E129 - Fix visual indentation. + E131 - Fix hanging indent for unaligned continuation line. + E133 - Fix missing indentation for closing bracket. + E20 - Remove extraneous whitespace. + E211 - Remove extraneous whitespace. + E22 - Fix extraneous whitespace around keywords. + E224 - Remove extraneous whitespace around operator. + E225 - Fix missing whitespace around operator. + E226 - Fix missing whitespace around arithmetic operator. + E227 - Fix missing whitespace around bitwise/shift operator. + E228 - Fix missing whitespace around modulo operator. + E231 - Add missing whitespace. + E241 - Fix extraneous whitespace around keywords. + E242 - Remove extraneous whitespace around operator. + E251 - Remove whitespace around parameter '=' sign. + E252 - Missing whitespace around parameter equals. + E26 - Fix spacing after comment hash for inline comments. + E265 - Fix spacing after comment hash for block comments. + E266 - Fix too many leading '#' for block comments. + E27 - Fix extraneous whitespace around keywords. + E301 - Add missing blank line. + E302 - Add missing 2 blank lines. + E303 - Remove extra blank lines. + E304 - Remove blank line following function decorator. + E305 - Expected 2 blank lines after end of function or class. + E306 - Expected 1 blank line before a nested definition. + E401 - Put imports on separate lines. + E402 - Fix module level import not at top of file + E501 - Try to make lines fit within --max-line-length characters. + E502 - Remove extraneous escape of newline. + E701 - Put colon-separated compound statement on separate lines. + E70 - Put semicolon-separated compound statement on separate lines. + E711 - Fix comparison with None. + E712 - Fix comparison with boolean. + E713 - Use 'not in' for test for membership. + E714 - Use 'is not' test for object identity. + E721 - Use "isinstance()" instead of comparing types directly. + E722 - Fix bare except. + E731 - Use a def when use do not assign a lambda expression. + W291 - Remove trailing whitespace. + W292 - Add a single newline at the end of the file. + W293 - Remove trailing whitespace on blank line. + W391 - Remove trailing blank lines. + W503 - Fix line break before binary operator. + W504 - Fix line break after binary operator. + W601 - Use "in" rather than "has_key()". + W602 - Fix deprecated form of raising exception. + W603 - Use "!=" instead of "<>" + W604 - Use "repr()" instead of backticks. + W605 - Fix invalid escape sequence 'x'. + W690 - Fix various deprecated code (via lib2to3). + +autopep8 also fixes some issues not found by pycodestyle_. + +- Correct deprecated or non-idiomatic Python code (via ``lib2to3``). Use this + for making Python 2.7 code more compatible with Python 3. (This is triggered + if ``W690`` is enabled.) +- Normalize files with mixed line endings. +- Put a blank line between a class docstring and its first method + declaration. (Enabled with ``E301``.) +- Remove blank lines between a function declaration and its docstring. (Enabled + with ``E303``.) + +autopep8 avoids fixing some issues found by pycodestyle_. + +- ``E112``/``E113`` for non comments are reports of bad indentation that break + syntax rules. These should not be modified at all. +- ``E265``, which refers to spacing after comment hash, is ignored if the + comment looks like code. autopep8 avoids modifying these since they are not + real comments. If you really want to get rid of the pycodestyle_ warning, + consider just removing the commented-out code. (This can be automated via + eradicate_.) + +.. _eradicate: https://github.com/myint/eradicate + + +More advanced usage +=================== + +By default autopep8 only makes whitespace changes. Thus, by default, it does +not fix ``E711`` and ``E712``. (Changing ``x == None`` to ``x is None`` may +change the meaning of the program if ``x`` has its ``__eq__`` method +overridden.) Nor does it correct deprecated code ``W6``. To enable these +more aggressive fixes, use the ``--aggressive`` option:: + + $ autopep8 --aggressive + +Use multiple ``--aggressive`` to increase the aggressiveness level. For +example, ``E712`` requires aggressiveness level 2 (since ``x == True`` could be +changed to either ``x`` or ``x is True``, but autopep8 chooses the former). + +``--aggressive`` will also shorten lines more aggressively. It will also remove +trailing whitespace more aggressively. (Usually, we don't touch trailing +whitespace in docstrings and other multiline strings. And to do even more +aggressive changes to docstrings, use docformatter_.) + +.. _docformatter: https://github.com/myint/docformatter + +To enable only a subset of the fixes, use the ``--select`` option. For example, +to fix various types of indentation issues:: + + $ autopep8 --select=E1,W1 + +Similarly, to just fix deprecated code:: + + $ autopep8 --aggressive --select=W6 + +The above is useful when trying to port a single code base to work with both +Python 2 and Python 3 at the same time. + +If the file being fixed is large, you may want to enable verbose progress +messages:: + + $ autopep8 -v + +Passing in ``--experimental`` enables the following functionality: + +- Shortens code lines by taking its length into account + +:: + +$ autopep8 --experimental + +Use as a module +=============== + +The simplest way of using autopep8 as a module is via the ``fix_code()`` +function: + + >>> import autopep8 + >>> autopep8.fix_code('x= 123\n') + 'x = 123\n' + +Or with options: + + >>> import autopep8 + >>> autopep8.fix_code('x.has_key(y)\n', + ... options={'aggressive': 1}) + 'y in x\n' + >>> autopep8.fix_code('print( 123 )\n', + ... options={'ignore': ['E']}) + 'print( 123 )\n' + + +Configuration +============= + +By default, if ``$HOME/.config/pycodestyle`` (``~\.pycodestyle`` in Windows +environment) exists, it will be used as global configuration file. +Alternatively, you can specify the global configuration file with the +``--global-config`` option. + +Also, if ``setup.cfg``, ``tox.ini``, ``.pep8`` and ``.flake8`` files exist +in the directory where the target file exists, it will be used as the +configuration file. + +``pep8``, ``pycodestyle``, and ``flake8`` can be used as a section. + +configuration file example:: + + [pycodestyle] + max_line_length = 120 + ignore = E501 + +pyproject.toml +-------------- + +autopep8 can also use ``pyproject.toml``. +The section must be ``[tool.autopep8]``, and ``pyproject.toml`` takes precedence +over any other configuration files. + +configuration file example:: + + [tool.autopep8] + max_line_length = 120 + ignore = "E501,W6" # or ["E501", "W6"] + in-place = true + recursive = true + aggressive = 3 + + +Testing +======= + +Test cases are in ``test/test_autopep8.py``. They can be run directly via +``python test/test_autopep8.py`` or via tox_. The latter is useful for +testing against multiple Python interpreters. (We currently test against +CPython versions 2.7, 3.6 3.7 and 3.8. We also test against PyPy.) + +.. _`tox`: https://pypi.org/project/tox/ + +Broad spectrum testing is available via ``test/acid.py``. This script runs +autopep8 against Python code and checks for correctness and completeness of the +code fixes. It can check that the bytecode remains identical. +``test/acid_pypi.py`` makes use of ``acid.py`` to test against the latest +released packages on PyPI. + + +Troubleshooting +=============== + +``pkg_resources.DistributionNotFound`` +-------------------------------------- + +If you are using an ancient version of ``setuptools``, you might encounter +``pkg_resources.DistributionNotFound`` when trying to run ``autopep8``. Try +upgrading ``setuptools`` to workaround this ``setuptools`` problem:: + + $ pip install --upgrade setuptools + +Use ``sudo`` if you are installing to the system. + + +Links +===== + +* PyPI_ +* GitHub_ +* `Travis CI`_ +* Coveralls_ + +.. _PyPI: https://pypi.org/project/autopep8/ +.. _GitHub: https://github.com/hhatto/autopep8 +.. _`Travis CI`: https://travis-ci.org/hhatto/autopep8 +.. _`Coveralls`: https://coveralls.io/r/hhatto/autopep8 + + diff --git a/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/RECORD b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/RECORD new file mode 100644 index 00000000..67f44f29 --- /dev/null +++ b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/RECORD @@ -0,0 +1,12 @@ +../../../bin/autopep8,sha256=tTvZQCmsY6FBUl0w3tdyfkZG_Z1U16lzRm0AZ9Px9cg,242 +__pycache__/autopep8.cpython-39.pyc,, +autopep8-1.5.7.dist-info/AUTHORS.rst,sha256=tiTPsbzGl9dtXCMEWXbWSV1zan1M-BoWtiixs46GIWk,2003 +autopep8-1.5.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +autopep8-1.5.7.dist-info/LICENSE,sha256=jR0COOSFQ0QZFMqwdB1N4-Bwobg2f3h69fIJr7YLCWo,1181 +autopep8-1.5.7.dist-info/METADATA,sha256=aaGRK_LSdJjV-rSXQBIU-gLaxLefsV08ePptJlgB1I8,16774 +autopep8-1.5.7.dist-info/RECORD,, +autopep8-1.5.7.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +autopep8-1.5.7.dist-info/WHEEL,sha256=Z-nyYpwrcSqxfdux5Mbn_DQ525iP7J2DG3JgGvOYyTQ,110 +autopep8-1.5.7.dist-info/entry_points.txt,sha256=iHNa5_cSXw2ablVbRmfiFGMG1CNrpEPRCEjn3nspaJ8,44 +autopep8-1.5.7.dist-info/top_level.txt,sha256=s2x-di3QBwGxr7kd5xErt2pom8dsFRdINbmwsOEgLfU,9 +autopep8.py,sha256=Y1HIZkZ-oZ4RtuUuIKHt6FsoI_bFPBRwe63iyTFoFD8,154311 diff --git a/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/REQUESTED b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/REQUESTED new file mode 100644 index 00000000..e69de29b diff --git a/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/WHEEL b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/WHEEL new file mode 100644 index 00000000..01b8fc7d --- /dev/null +++ b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.36.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/entry_points.txt b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/entry_points.txt new file mode 100644 index 00000000..e3b2c4f8 --- /dev/null +++ b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +autopep8 = autopep8:main + diff --git a/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/top_level.txt b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/top_level.txt new file mode 100644 index 00000000..d81c0c25 --- /dev/null +++ b/venv/lib/python3.9/site-packages/autopep8-1.5.7.dist-info/top_level.txt @@ -0,0 +1 @@ +autopep8 diff --git a/venv/lib/python3.9/site-packages/autopep8.py b/venv/lib/python3.9/site-packages/autopep8.py new file mode 100644 index 00000000..b20d8124 --- /dev/null +++ b/venv/lib/python3.9/site-packages/autopep8.py @@ -0,0 +1,4540 @@ +#!/usr/bin/env python + +# Copyright (C) 2010-2011 Hideo Hattori +# Copyright (C) 2011-2013 Hideo Hattori, Steven Myint +# Copyright (C) 2013-2016 Hideo Hattori, Steven Myint, Bill Wendling +# +# 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. + +# Copyright (C) 2006-2009 Johann C. Rocholl +# Copyright (C) 2009-2013 Florent Xicluna +# +# 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. + +"""Automatically formats Python code to conform to the PEP 8 style guide. + +Fixes that only need be done once can be added by adding a function of the form +"fix_(source)" to this module. They should return the fixed source code. +These fixes are picked up by apply_global_fixes(). + +Fixes that depend on pycodestyle should be added as methods to FixPEP8. See the +class documentation for more information. + +""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import argparse +import codecs +import collections +import copy +import difflib +import fnmatch +import inspect +import io +import itertools +import keyword +import locale +import os +import re +import signal +import sys +import textwrap +import token +import tokenize +import warnings +import ast +try: + from configparser import ConfigParser as SafeConfigParser + from configparser import Error +except ImportError: + from ConfigParser import SafeConfigParser + from ConfigParser import Error + +import pycodestyle +from pycodestyle import STARTSWITH_INDENT_STATEMENT_REGEX + + +try: + unicode +except NameError: + unicode = str + + +__version__ = '1.5.7' + + +CR = '\r' +LF = '\n' +CRLF = '\r\n' + + +PYTHON_SHEBANG_REGEX = re.compile(r'^#!.*\bpython[23]?\b\s*$') +LAMBDA_REGEX = re.compile(r'([\w.]+)\s=\slambda\s*([)(=\w,\s.]*):') +COMPARE_NEGATIVE_REGEX = re.compile(r'\b(not)\s+([^][)(}{]+?)\s+(in|is)\s') +COMPARE_NEGATIVE_REGEX_THROUGH = re.compile(r'\b(not\s+in|is\s+not)\s') +BARE_EXCEPT_REGEX = re.compile(r'except\s*:') +STARTSWITH_DEF_REGEX = re.compile(r'^(async\s+def|def)\s.*\):') +DOCSTRING_START_REGEX = re.compile(r'^u?r?(?P["\']{3})') +ENABLE_REGEX = re.compile(r'# *(fmt|autopep8): *on') +DISABLE_REGEX = re.compile(r'# *(fmt|autopep8): *off') + +EXIT_CODE_OK = 0 +EXIT_CODE_ERROR = 1 +EXIT_CODE_EXISTS_DIFF = 2 +EXIT_CODE_ARGPARSE_ERROR = 99 + +# For generating line shortening candidates. +SHORTEN_OPERATOR_GROUPS = frozenset([ + frozenset([',']), + frozenset(['%']), + frozenset([',', '(', '[', '{']), + frozenset(['%', '(', '[', '{']), + frozenset([',', '(', '[', '{', '%', '+', '-', '*', '/', '//']), + frozenset(['%', '+', '-', '*', '/', '//']), +]) + + +DEFAULT_IGNORE = 'E226,E24,W50,W690' # TODO: use pycodestyle.DEFAULT_IGNORE +DEFAULT_INDENT_SIZE = 4 +# these fixes conflict with each other, if the `--ignore` setting causes both +# to be enabled, disable both of them +CONFLICTING_CODES = ('W503', 'W504') + +SELECTED_GLOBAL_FIXED_METHOD_CODES = ['W602', ] + +# W602 is handled separately due to the need to avoid "with_traceback". +CODE_TO_2TO3 = { + 'E231': ['ws_comma'], + 'E721': ['idioms'], + 'W601': ['has_key'], + 'W603': ['ne'], + 'W604': ['repr'], + 'W690': ['apply', + 'except', + 'exitfunc', + 'numliterals', + 'operator', + 'paren', + 'reduce', + 'renames', + 'standarderror', + 'sys_exc', + 'throw', + 'tuple_params', + 'xreadlines']} + + +if sys.platform == 'win32': # pragma: no cover + DEFAULT_CONFIG = os.path.expanduser(r'~\.pycodestyle') +else: + DEFAULT_CONFIG = os.path.join(os.getenv('XDG_CONFIG_HOME') or + os.path.expanduser('~/.config'), + 'pycodestyle') +# fallback, use .pep8 +if not os.path.exists(DEFAULT_CONFIG): # pragma: no cover + if sys.platform == 'win32': + DEFAULT_CONFIG = os.path.expanduser(r'~\.pep8') + else: + DEFAULT_CONFIG = os.path.join(os.path.expanduser('~/.config'), 'pep8') +PROJECT_CONFIG = ('setup.cfg', 'tox.ini', '.pep8', '.flake8') + + +MAX_PYTHON_FILE_DETECTION_BYTES = 1024 + + +def open_with_encoding(filename, mode='r', encoding=None, limit_byte_check=-1): + """Return opened file with a specific encoding.""" + if not encoding: + encoding = detect_encoding(filename, limit_byte_check=limit_byte_check) + + return io.open(filename, mode=mode, encoding=encoding, + newline='') # Preserve line endings + + +def detect_encoding(filename, limit_byte_check=-1): + """Return file encoding.""" + try: + with open(filename, 'rb') as input_file: + from lib2to3.pgen2 import tokenize as lib2to3_tokenize + encoding = lib2to3_tokenize.detect_encoding(input_file.readline)[0] + + with open_with_encoding(filename, encoding=encoding) as test_file: + test_file.read(limit_byte_check) + + return encoding + except (LookupError, SyntaxError, UnicodeDecodeError): + return 'latin-1' + + +def readlines_from_file(filename): + """Return contents of file.""" + with open_with_encoding(filename) as input_file: + return input_file.readlines() + + +def extended_blank_lines(logical_line, + blank_lines, + blank_before, + indent_level, + previous_logical): + """Check for missing blank lines after class declaration.""" + if previous_logical.startswith('def '): + if blank_lines and pycodestyle.DOCSTRING_REGEX.match(logical_line): + yield (0, 'E303 too many blank lines ({})'.format(blank_lines)) + elif pycodestyle.DOCSTRING_REGEX.match(previous_logical): + # Missing blank line between class docstring and method declaration. + if ( + indent_level and + not blank_lines and + not blank_before and + logical_line.startswith(('def ')) and + '(self' in logical_line + ): + yield (0, 'E301 expected 1 blank line, found 0') + + +pycodestyle.register_check(extended_blank_lines) + + +def continued_indentation(logical_line, tokens, indent_level, hang_closing, + indent_char, noqa): + """Override pycodestyle's function to provide indentation information.""" + first_row = tokens[0][2][0] + nrows = 1 + tokens[-1][2][0] - first_row + if noqa or nrows == 1: + return + + # indent_next tells us whether the next block is indented. Assuming + # that it is indented by 4 spaces, then we should not allow 4-space + # indents on the final continuation line. In turn, some other + # indents are allowed to have an extra 4 spaces. + indent_next = logical_line.endswith(':') + + row = depth = 0 + valid_hangs = ( + (DEFAULT_INDENT_SIZE,) + if indent_char != '\t' else (DEFAULT_INDENT_SIZE, + 2 * DEFAULT_INDENT_SIZE) + ) + + # Remember how many brackets were opened on each line. + parens = [0] * nrows + + # Relative indents of physical lines. + rel_indent = [0] * nrows + + # For each depth, collect a list of opening rows. + open_rows = [[0]] + # For each depth, memorize the hanging indentation. + hangs = [None] + + # Visual indents. + indent_chances = {} + last_indent = tokens[0][2] + indent = [last_indent[1]] + + last_token_multiline = None + line = None + last_line = '' + last_line_begins_with_multiline = False + for token_type, text, start, end, line in tokens: + + newline = row < start[0] - first_row + if newline: + row = start[0] - first_row + newline = (not last_token_multiline and + token_type not in (tokenize.NL, tokenize.NEWLINE)) + last_line_begins_with_multiline = last_token_multiline + + if newline: + # This is the beginning of a continuation line. + last_indent = start + + # Record the initial indent. + rel_indent[row] = pycodestyle.expand_indent(line) - indent_level + + # Identify closing bracket. + close_bracket = (token_type == tokenize.OP and text in ']})') + + # Is the indent relative to an opening bracket line? + for open_row in reversed(open_rows[depth]): + hang = rel_indent[row] - rel_indent[open_row] + hanging_indent = hang in valid_hangs + if hanging_indent: + break + if hangs[depth]: + hanging_indent = (hang == hangs[depth]) + + visual_indent = (not close_bracket and hang > 0 and + indent_chances.get(start[1])) + + if close_bracket and indent[depth]: + # Closing bracket for visual indent. + if start[1] != indent[depth]: + yield (start, 'E124 {}'.format(indent[depth])) + elif close_bracket and not hang: + # closing bracket matches indentation of opening bracket's line + if hang_closing: + yield (start, 'E133 {}'.format(indent[depth])) + elif indent[depth] and start[1] < indent[depth]: + if visual_indent is not True: + # Visual indent is broken. + yield (start, 'E128 {}'.format(indent[depth])) + elif (hanging_indent or + (indent_next and + rel_indent[row] == 2 * DEFAULT_INDENT_SIZE)): + # Hanging indent is verified. + if close_bracket and not hang_closing: + yield (start, 'E123 {}'.format(indent_level + + rel_indent[open_row])) + hangs[depth] = hang + elif visual_indent is True: + # Visual indent is verified. + indent[depth] = start[1] + elif visual_indent in (text, unicode): + # Ignore token lined up with matching one from a previous line. + pass + else: + one_indented = (indent_level + rel_indent[open_row] + + DEFAULT_INDENT_SIZE) + # Indent is broken. + if hang <= 0: + error = ('E122', one_indented) + elif indent[depth]: + error = ('E127', indent[depth]) + elif not close_bracket and hangs[depth]: + error = ('E131', one_indented) + elif hang > DEFAULT_INDENT_SIZE: + error = ('E126', one_indented) + else: + hangs[depth] = hang + error = ('E121', one_indented) + + yield (start, '{} {}'.format(*error)) + + # Look for visual indenting. + if ( + parens[row] and + token_type not in (tokenize.NL, tokenize.COMMENT) and + not indent[depth] + ): + indent[depth] = start[1] + indent_chances[start[1]] = True + # Deal with implicit string concatenation. + elif (token_type in (tokenize.STRING, tokenize.COMMENT) or + text in ('u', 'ur', 'b', 'br')): + indent_chances[start[1]] = unicode + # Special case for the "if" statement because len("if (") is equal to + # 4. + elif not indent_chances and not row and not depth and text == 'if': + indent_chances[end[1] + 1] = True + elif text == ':' and line[end[1]:].isspace(): + open_rows[depth].append(row) + + # Keep track of bracket depth. + if token_type == tokenize.OP: + if text in '([{': + depth += 1 + indent.append(0) + hangs.append(None) + if len(open_rows) == depth: + open_rows.append([]) + open_rows[depth].append(row) + parens[row] += 1 + elif text in ')]}' and depth > 0: + # Parent indents should not be more than this one. + prev_indent = indent.pop() or last_indent[1] + hangs.pop() + for d in range(depth): + if indent[d] > prev_indent: + indent[d] = 0 + for ind in list(indent_chances): + if ind >= prev_indent: + del indent_chances[ind] + del open_rows[depth + 1:] + depth -= 1 + if depth: + indent_chances[indent[depth]] = True + for idx in range(row, -1, -1): + if parens[idx]: + parens[idx] -= 1 + break + assert len(indent) == depth + 1 + if ( + start[1] not in indent_chances and + # This is for purposes of speeding up E121 (GitHub #90). + not last_line.rstrip().endswith(',') + ): + # Allow to line up tokens. + indent_chances[start[1]] = text + + last_token_multiline = (start[0] != end[0]) + if last_token_multiline: + rel_indent[end[0] - first_row] = rel_indent[row] + + last_line = line + + if ( + indent_next and + not last_line_begins_with_multiline and + pycodestyle.expand_indent(line) == indent_level + DEFAULT_INDENT_SIZE + ): + pos = (start[0], indent[0] + 4) + desired_indent = indent_level + 2 * DEFAULT_INDENT_SIZE + if visual_indent: + yield (pos, 'E129 {}'.format(desired_indent)) + else: + yield (pos, 'E125 {}'.format(desired_indent)) + + +del pycodestyle._checks['logical_line'][pycodestyle.continued_indentation] +pycodestyle.register_check(continued_indentation) + + +class FixPEP8(object): + + """Fix invalid code. + + Fixer methods are prefixed "fix_". The _fix_source() method looks for these + automatically. + + The fixer method can take either one or two arguments (in addition to + self). The first argument is "result", which is the error information from + pycodestyle. The second argument, "logical", is required only for + logical-line fixes. + + The fixer method can return the list of modified lines or None. An empty + list would mean that no changes were made. None would mean that only the + line reported in the pycodestyle error was modified. Note that the modified + line numbers that are returned are indexed at 1. This typically would + correspond with the line number reported in the pycodestyle error + information. + + [fixed method list] + - e111,e114,e115,e116 + - e121,e122,e123,e124,e125,e126,e127,e128,e129 + - e201,e202,e203 + - e211 + - e221,e222,e223,e224,e225 + - e231 + - e251,e252 + - e261,e262 + - e271,e272,e273,e274 + - e301,e302,e303,e304,e305,e306 + - e401,e402 + - e502 + - e701,e702,e703,e704 + - e711,e712,e713,e714 + - e722 + - e731 + - w291 + - w503,504 + + """ + + def __init__(self, filename, + options, + contents=None, + long_line_ignore_cache=None): + self.filename = filename + if contents is None: + self.source = readlines_from_file(filename) + else: + sio = io.StringIO(contents) + self.source = sio.readlines() + self.options = options + self.indent_word = _get_indentword(''.join(self.source)) + + # collect imports line + self.imports = {} + for i, line in enumerate(self.source): + if (line.find("import ") == 0 or line.find("from ") == 0) and \ + line not in self.imports: + # collect only import statements that first appeared + self.imports[line] = i + + self.long_line_ignore_cache = ( + set() if long_line_ignore_cache is None + else long_line_ignore_cache) + + # Many fixers are the same even though pycodestyle categorizes them + # differently. + self.fix_e115 = self.fix_e112 + self.fix_e121 = self._fix_reindent + self.fix_e122 = self._fix_reindent + self.fix_e123 = self._fix_reindent + self.fix_e124 = self._fix_reindent + self.fix_e126 = self._fix_reindent + self.fix_e127 = self._fix_reindent + self.fix_e128 = self._fix_reindent + self.fix_e129 = self._fix_reindent + self.fix_e133 = self.fix_e131 + self.fix_e202 = self.fix_e201 + self.fix_e203 = self.fix_e201 + self.fix_e211 = self.fix_e201 + self.fix_e221 = self.fix_e271 + self.fix_e222 = self.fix_e271 + self.fix_e223 = self.fix_e271 + self.fix_e226 = self.fix_e225 + self.fix_e227 = self.fix_e225 + self.fix_e228 = self.fix_e225 + self.fix_e241 = self.fix_e271 + self.fix_e242 = self.fix_e224 + self.fix_e252 = self.fix_e225 + self.fix_e261 = self.fix_e262 + self.fix_e272 = self.fix_e271 + self.fix_e273 = self.fix_e271 + self.fix_e274 = self.fix_e271 + self.fix_e306 = self.fix_e301 + self.fix_e501 = ( + self.fix_long_line_logically if + options and (options.aggressive >= 2 or options.experimental) else + self.fix_long_line_physically) + self.fix_e703 = self.fix_e702 + self.fix_w293 = self.fix_w291 + + def _fix_source(self, results): + try: + (logical_start, logical_end) = _find_logical(self.source) + logical_support = True + except (SyntaxError, tokenize.TokenError): # pragma: no cover + logical_support = False + + completed_lines = set() + for result in sorted(results, key=_priority_key): + if result['line'] in completed_lines: + continue + + fixed_methodname = 'fix_' + result['id'].lower() + if hasattr(self, fixed_methodname): + fix = getattr(self, fixed_methodname) + + line_index = result['line'] - 1 + original_line = self.source[line_index] + + is_logical_fix = len(_get_parameters(fix)) > 2 + if is_logical_fix: + logical = None + if logical_support: + logical = _get_logical(self.source, + result, + logical_start, + logical_end) + if logical and set(range( + logical[0][0] + 1, + logical[1][0] + 1)).intersection( + completed_lines): + continue + + modified_lines = fix(result, logical) + else: + modified_lines = fix(result) + + if modified_lines is None: + # Force logical fixes to report what they modified. + assert not is_logical_fix + + if self.source[line_index] == original_line: + modified_lines = [] + + if modified_lines: + completed_lines.update(modified_lines) + elif modified_lines == []: # Empty list means no fix + if self.options.verbose >= 2: + print( + '---> Not fixing {error} on line {line}'.format( + error=result['id'], line=result['line']), + file=sys.stderr) + else: # We assume one-line fix when None. + completed_lines.add(result['line']) + else: + if self.options.verbose >= 3: + print( + "---> '{}' is not defined.".format(fixed_methodname), + file=sys.stderr) + + info = result['info'].strip() + print('---> {}:{}:{}:{}'.format(self.filename, + result['line'], + result['column'], + info), + file=sys.stderr) + + def fix(self): + """Return a version of the source code with PEP 8 violations fixed.""" + pep8_options = { + 'ignore': self.options.ignore, + 'select': self.options.select, + 'max_line_length': self.options.max_line_length, + 'hang_closing': self.options.hang_closing, + } + results = _execute_pep8(pep8_options, self.source) + + if self.options.verbose: + progress = {} + for r in results: + if r['id'] not in progress: + progress[r['id']] = set() + progress[r['id']].add(r['line']) + print('---> {n} issue(s) to fix {progress}'.format( + n=len(results), progress=progress), file=sys.stderr) + + if self.options.line_range: + start, end = self.options.line_range + results = [r for r in results + if start <= r['line'] <= end] + + self._fix_source(filter_results(source=''.join(self.source), + results=results, + aggressive=self.options.aggressive)) + + if self.options.line_range: + # If number of lines has changed then change line_range. + count = sum(sline.count('\n') + for sline in self.source[start - 1:end]) + self.options.line_range[1] = start + count - 1 + + return ''.join(self.source) + + def _fix_reindent(self, result): + """Fix a badly indented line. + + This is done by adding or removing from its initial indent only. + + """ + num_indent_spaces = int(result['info'].split()[1]) + line_index = result['line'] - 1 + target = self.source[line_index] + + self.source[line_index] = ' ' * num_indent_spaces + target.lstrip() + + def fix_e112(self, result): + """Fix under-indented comments.""" + line_index = result['line'] - 1 + target = self.source[line_index] + + if not target.lstrip().startswith('#'): + # Don't screw with invalid syntax. + return [] + + self.source[line_index] = self.indent_word + target + + def fix_e113(self, result): + """Fix unexpected indentation.""" + line_index = result['line'] - 1 + target = self.source[line_index] + indent = _get_indentation(target) + stripped = target.lstrip() + self.source[line_index] = indent[1:] + stripped + + def fix_e116(self, result): + """Fix over-indented comments.""" + line_index = result['line'] - 1 + target = self.source[line_index] + + indent = _get_indentation(target) + stripped = target.lstrip() + + if not stripped.startswith('#'): + # Don't screw with invalid syntax. + return [] + + self.source[line_index] = indent[1:] + stripped + + def fix_e117(self, result): + """Fix over-indented.""" + line_index = result['line'] - 1 + target = self.source[line_index] + + indent = _get_indentation(target) + if indent == '\t': + return [] + + stripped = target.lstrip() + + self.source[line_index] = indent[1:] + stripped + + def fix_e125(self, result): + """Fix indentation undistinguish from the next logical line.""" + num_indent_spaces = int(result['info'].split()[1]) + line_index = result['line'] - 1 + target = self.source[line_index] + + spaces_to_add = num_indent_spaces - len(_get_indentation(target)) + indent = len(_get_indentation(target)) + modified_lines = [] + + while len(_get_indentation(self.source[line_index])) >= indent: + self.source[line_index] = (' ' * spaces_to_add + + self.source[line_index]) + modified_lines.append(1 + line_index) # Line indexed at 1. + line_index -= 1 + + return modified_lines + + def fix_e131(self, result): + """Fix indentation undistinguish from the next logical line.""" + num_indent_spaces = int(result['info'].split()[1]) + line_index = result['line'] - 1 + target = self.source[line_index] + + spaces_to_add = num_indent_spaces - len(_get_indentation(target)) + + if spaces_to_add >= 0: + self.source[line_index] = (' ' * spaces_to_add + + self.source[line_index]) + else: + offset = abs(spaces_to_add) + self.source[line_index] = self.source[line_index][offset:] + + def fix_e201(self, result): + """Remove extraneous whitespace.""" + line_index = result['line'] - 1 + target = self.source[line_index] + offset = result['column'] - 1 + + fixed = fix_whitespace(target, + offset=offset, + replacement='') + + self.source[line_index] = fixed + + def fix_e224(self, result): + """Remove extraneous whitespace around operator.""" + target = self.source[result['line'] - 1] + offset = result['column'] - 1 + fixed = target[:offset] + target[offset:].replace('\t', ' ') + self.source[result['line'] - 1] = fixed + + def fix_e225(self, result): + """Fix missing whitespace around operator.""" + target = self.source[result['line'] - 1] + offset = result['column'] - 1 + fixed = target[:offset] + ' ' + target[offset:] + + # Only proceed if non-whitespace characters match. + # And make sure we don't break the indentation. + if ( + fixed.replace(' ', '') == target.replace(' ', '') and + _get_indentation(fixed) == _get_indentation(target) + ): + self.source[result['line'] - 1] = fixed + error_code = result.get('id', 0) + try: + ts = generate_tokens(fixed) + except (SyntaxError, tokenize.TokenError): + return + if not check_syntax(fixed.lstrip()): + return + errors = list( + pycodestyle.missing_whitespace_around_operator(fixed, ts)) + for e in reversed(errors): + if error_code != e[1].split()[0]: + continue + offset = e[0][1] + fixed = fixed[:offset] + ' ' + fixed[offset:] + self.source[result['line'] - 1] = fixed + else: + return [] + + def fix_e231(self, result): + """Add missing whitespace.""" + line_index = result['line'] - 1 + target = self.source[line_index] + offset = result['column'] + fixed = target[:offset].rstrip() + ' ' + target[offset:].lstrip() + self.source[line_index] = fixed + + def fix_e251(self, result): + """Remove whitespace around parameter '=' sign.""" + line_index = result['line'] - 1 + target = self.source[line_index] + + # This is necessary since pycodestyle sometimes reports columns that + # goes past the end of the physical line. This happens in cases like, + # foo(bar\n=None) + c = min(result['column'] - 1, + len(target) - 1) + + if target[c].strip(): + fixed = target + else: + fixed = target[:c].rstrip() + target[c:].lstrip() + + # There could be an escaped newline + # + # def foo(a=\ + # 1) + if fixed.endswith(('=\\\n', '=\\\r\n', '=\\\r')): + self.source[line_index] = fixed.rstrip('\n\r \t\\') + self.source[line_index + 1] = self.source[line_index + 1].lstrip() + return [line_index + 1, line_index + 2] # Line indexed at 1 + + self.source[result['line'] - 1] = fixed + + def fix_e262(self, result): + """Fix spacing after comment hash.""" + target = self.source[result['line'] - 1] + offset = result['column'] + + code = target[:offset].rstrip(' \t#') + comment = target[offset:].lstrip(' \t#') + + fixed = code + (' # ' + comment if comment.strip() else '\n') + + self.source[result['line'] - 1] = fixed + + def fix_e271(self, result): + """Fix extraneous whitespace around keywords.""" + line_index = result['line'] - 1 + target = self.source[line_index] + offset = result['column'] - 1 + + fixed = fix_whitespace(target, + offset=offset, + replacement=' ') + + if fixed == target: + return [] + else: + self.source[line_index] = fixed + + def fix_e301(self, result): + """Add missing blank line.""" + cr = '\n' + self.source[result['line'] - 1] = cr + self.source[result['line'] - 1] + + def fix_e302(self, result): + """Add missing 2 blank lines.""" + add_linenum = 2 - int(result['info'].split()[-1]) + offset = 1 + if self.source[result['line'] - 2].strip() == "\\": + offset = 2 + cr = '\n' * add_linenum + self.source[result['line'] - offset] = ( + cr + self.source[result['line'] - offset] + ) + + def fix_e303(self, result): + """Remove extra blank lines.""" + delete_linenum = int(result['info'].split('(')[1].split(')')[0]) - 2 + delete_linenum = max(1, delete_linenum) + + # We need to count because pycodestyle reports an offset line number if + # there are comments. + cnt = 0 + line = result['line'] - 2 + modified_lines = [] + while cnt < delete_linenum and line >= 0: + if not self.source[line].strip(): + self.source[line] = '' + modified_lines.append(1 + line) # Line indexed at 1 + cnt += 1 + line -= 1 + + return modified_lines + + def fix_e304(self, result): + """Remove blank line following function decorator.""" + line = result['line'] - 2 + if not self.source[line].strip(): + self.source[line] = '' + + def fix_e305(self, result): + """Add missing 2 blank lines after end of function or class.""" + add_delete_linenum = 2 - int(result['info'].split()[-1]) + cnt = 0 + offset = result['line'] - 2 + modified_lines = [] + if add_delete_linenum < 0: + # delete cr + add_delete_linenum = abs(add_delete_linenum) + while cnt < add_delete_linenum and offset >= 0: + if not self.source[offset].strip(): + self.source[offset] = '' + modified_lines.append(1 + offset) # Line indexed at 1 + cnt += 1 + offset -= 1 + else: + # add cr + cr = '\n' + # check comment line + while True: + if offset < 0: + break + line = self.source[offset].lstrip() + if not line: + break + if line[0] != '#': + break + offset -= 1 + offset += 1 + self.source[offset] = cr + self.source[offset] + modified_lines.append(1 + offset) # Line indexed at 1. + return modified_lines + + def fix_e401(self, result): + """Put imports on separate lines.""" + line_index = result['line'] - 1 + target = self.source[line_index] + offset = result['column'] - 1 + + if not target.lstrip().startswith('import'): + return [] + + indentation = re.split(pattern=r'\bimport\b', + string=target, maxsplit=1)[0] + fixed = (target[:offset].rstrip('\t ,') + '\n' + + indentation + 'import ' + target[offset:].lstrip('\t ,')) + self.source[line_index] = fixed + + def fix_e402(self, result): + (line_index, offset, target) = get_index_offset_contents(result, + self.source) + for i in range(1, 100): + line = "".join(self.source[line_index:line_index+i]) + try: + generate_tokens("".join(line)) + except (SyntaxError, tokenize.TokenError): + continue + break + if not (target in self.imports and self.imports[target] != line_index): + mod_offset = get_module_imports_on_top_of_file(self.source, + line_index) + self.source[mod_offset] = line + self.source[mod_offset] + for offset in range(i): + self.source[line_index+offset] = '' + + def fix_long_line_logically(self, result, logical): + """Try to make lines fit within --max-line-length characters.""" + if ( + not logical or + len(logical[2]) == 1 or + self.source[result['line'] - 1].lstrip().startswith('#') + ): + return self.fix_long_line_physically(result) + + start_line_index = logical[0][0] + end_line_index = logical[1][0] + logical_lines = logical[2] + + previous_line = get_item(self.source, start_line_index - 1, default='') + next_line = get_item(self.source, end_line_index + 1, default='') + + single_line = join_logical_line(''.join(logical_lines)) + + try: + fixed = self.fix_long_line( + target=single_line, + previous_line=previous_line, + next_line=next_line, + original=''.join(logical_lines)) + except (SyntaxError, tokenize.TokenError): + return self.fix_long_line_physically(result) + + if fixed: + for line_index in range(start_line_index, end_line_index + 1): + self.source[line_index] = '' + self.source[start_line_index] = fixed + return range(start_line_index + 1, end_line_index + 1) + + return [] + + def fix_long_line_physically(self, result): + """Try to make lines fit within --max-line-length characters.""" + line_index = result['line'] - 1 + target = self.source[line_index] + + previous_line = get_item(self.source, line_index - 1, default='') + next_line = get_item(self.source, line_index + 1, default='') + + try: + fixed = self.fix_long_line( + target=target, + previous_line=previous_line, + next_line=next_line, + original=target) + except (SyntaxError, tokenize.TokenError): + return [] + + if fixed: + self.source[line_index] = fixed + return [line_index + 1] + + return [] + + def fix_long_line(self, target, previous_line, + next_line, original): + cache_entry = (target, previous_line, next_line) + if cache_entry in self.long_line_ignore_cache: + return [] + + if target.lstrip().startswith('#'): + if self.options.aggressive: + # Wrap commented lines. + return shorten_comment( + line=target, + max_line_length=self.options.max_line_length, + last_comment=not next_line.lstrip().startswith('#')) + return [] + + fixed = get_fixed_long_line( + target=target, + previous_line=previous_line, + original=original, + indent_word=self.indent_word, + max_line_length=self.options.max_line_length, + aggressive=self.options.aggressive, + experimental=self.options.experimental, + verbose=self.options.verbose) + + if fixed and not code_almost_equal(original, fixed): + return fixed + + self.long_line_ignore_cache.add(cache_entry) + return None + + def fix_e502(self, result): + """Remove extraneous escape of newline.""" + (line_index, _, target) = get_index_offset_contents(result, + self.source) + self.source[line_index] = target.rstrip('\n\r \t\\') + '\n' + + def fix_e701(self, result): + """Put colon-separated compound statement on separate lines.""" + line_index = result['line'] - 1 + target = self.source[line_index] + c = result['column'] + + fixed_source = (target[:c] + '\n' + + _get_indentation(target) + self.indent_word + + target[c:].lstrip('\n\r \t\\')) + self.source[result['line'] - 1] = fixed_source + return [result['line'], result['line'] + 1] + + def fix_e702(self, result, logical): + """Put semicolon-separated compound statement on separate lines.""" + if not logical: + return [] # pragma: no cover + logical_lines = logical[2] + + # Avoid applying this when indented. + # https://docs.python.org/reference/compound_stmts.html + for line in logical_lines: + if (result['id'] == 'E702' and ':' in line + and STARTSWITH_INDENT_STATEMENT_REGEX.match(line)): + if self.options.verbose: + print( + '---> avoid fixing {error} with ' + 'other compound statements'.format(error=result['id']), + file=sys.stderr + ) + return [] + + line_index = result['line'] - 1 + target = self.source[line_index] + + if target.rstrip().endswith('\\'): + # Normalize '1; \\\n2' into '1; 2'. + self.source[line_index] = target.rstrip('\n \r\t\\') + self.source[line_index + 1] = self.source[line_index + 1].lstrip() + return [line_index + 1, line_index + 2] + + if target.rstrip().endswith(';'): + self.source[line_index] = target.rstrip('\n \r\t;') + '\n' + return [line_index + 1] + + offset = result['column'] - 1 + first = target[:offset].rstrip(';').rstrip() + second = (_get_indentation(logical_lines[0]) + + target[offset:].lstrip(';').lstrip()) + + # Find inline comment. + inline_comment = None + if target[offset:].lstrip(';').lstrip()[:2] == '# ': + inline_comment = target[offset:].lstrip(';') + + if inline_comment: + self.source[line_index] = first + inline_comment + else: + self.source[line_index] = first + '\n' + second + return [line_index + 1] + + def fix_e704(self, result): + """Fix multiple statements on one line def""" + (line_index, _, target) = get_index_offset_contents(result, + self.source) + match = STARTSWITH_DEF_REGEX.match(target) + if match: + self.source[line_index] = '{}\n{}{}'.format( + match.group(0), + _get_indentation(target) + self.indent_word, + target[match.end(0):].lstrip()) + + def fix_e711(self, result): + """Fix comparison with None.""" + (line_index, offset, target) = get_index_offset_contents(result, + self.source) + + right_offset = offset + 2 + if right_offset >= len(target): + return [] + + left = target[:offset].rstrip() + center = target[offset:right_offset] + right = target[right_offset:].lstrip() + + if center.strip() == '==': + new_center = 'is' + elif center.strip() == '!=': + new_center = 'is not' + else: + return [] + + self.source[line_index] = ' '.join([left, new_center, right]) + + def fix_e712(self, result): + """Fix (trivial case of) comparison with boolean.""" + (line_index, offset, target) = get_index_offset_contents(result, + self.source) + + # Handle very easy "not" special cases. + if re.match(r'^\s*if [\w."\'\[\]]+ == False:$', target): + self.source[line_index] = re.sub(r'if ([\w."\'\[\]]+) == False:', + r'if not \1:', target, count=1) + elif re.match(r'^\s*if [\w."\'\[\]]+ != True:$', target): + self.source[line_index] = re.sub(r'if ([\w."\'\[\]]+) != True:', + r'if not \1:', target, count=1) + else: + right_offset = offset + 2 + if right_offset >= len(target): + return [] + + left = target[:offset].rstrip() + center = target[offset:right_offset] + right = target[right_offset:].lstrip() + + # Handle simple cases only. + new_right = None + if center.strip() == '==': + if re.match(r'\bTrue\b', right): + new_right = re.sub(r'\bTrue\b *', '', right, count=1) + elif center.strip() == '!=': + if re.match(r'\bFalse\b', right): + new_right = re.sub(r'\bFalse\b *', '', right, count=1) + + if new_right is None: + return [] + + if new_right[0].isalnum(): + new_right = ' ' + new_right + + self.source[line_index] = left + new_right + + def fix_e713(self, result): + """Fix (trivial case of) non-membership check.""" + (line_index, offset, target) = get_index_offset_contents(result, + self.source) + + # to convert once 'not in' -> 'in' + before_target = target[:offset] + target = target[offset:] + match_notin = COMPARE_NEGATIVE_REGEX_THROUGH.search(target) + notin_pos_start, notin_pos_end = 0, 0 + if match_notin: + notin_pos_start = match_notin.start(1) + notin_pos_end = match_notin.end() + target = '{}{} {}'.format( + target[:notin_pos_start], 'in', target[notin_pos_end:]) + + # fix 'not in' + match = COMPARE_NEGATIVE_REGEX.search(target) + if match: + if match.group(3) == 'in': + pos_start = match.start(1) + new_target = '{5}{0}{1} {2} {3} {4}'.format( + target[:pos_start], match.group(2), match.group(1), + match.group(3), target[match.end():], before_target) + if match_notin: + # revert 'in' -> 'not in' + pos_start = notin_pos_start + offset + pos_end = notin_pos_end + offset - 4 # len('not ') + new_target = '{}{} {}'.format( + new_target[:pos_start], 'not in', new_target[pos_end:]) + self.source[line_index] = new_target + + def fix_e714(self, result): + """Fix object identity should be 'is not' case.""" + (line_index, offset, target) = get_index_offset_contents(result, + self.source) + + # to convert once 'is not' -> 'is' + before_target = target[:offset] + target = target[offset:] + match_isnot = COMPARE_NEGATIVE_REGEX_THROUGH.search(target) + isnot_pos_start, isnot_pos_end = 0, 0 + if match_isnot: + isnot_pos_start = match_isnot.start(1) + isnot_pos_end = match_isnot.end() + target = '{}{} {}'.format( + target[:isnot_pos_start], 'in', target[isnot_pos_end:]) + + match = COMPARE_NEGATIVE_REGEX.search(target) + if match: + if match.group(3).startswith('is'): + pos_start = match.start(1) + new_target = '{5}{0}{1} {2} {3} {4}'.format( + target[:pos_start], match.group(2), match.group(3), + match.group(1), target[match.end():], before_target) + if match_isnot: + # revert 'is' -> 'is not' + pos_start = isnot_pos_start + offset + pos_end = isnot_pos_end + offset - 4 # len('not ') + new_target = '{}{} {}'.format( + new_target[:pos_start], 'is not', new_target[pos_end:]) + self.source[line_index] = new_target + + def fix_e722(self, result): + """fix bare except""" + (line_index, _, target) = get_index_offset_contents(result, + self.source) + match = BARE_EXCEPT_REGEX.search(target) + if match: + self.source[line_index] = '{}{}{}'.format( + target[:result['column'] - 1], "except BaseException:", + target[match.end():]) + + def fix_e731(self, result): + """Fix do not assign a lambda expression check.""" + (line_index, _, target) = get_index_offset_contents(result, + self.source) + match = LAMBDA_REGEX.search(target) + if match: + end = match.end() + self.source[line_index] = '{}def {}({}): return {}'.format( + target[:match.start(0)], match.group(1), match.group(2), + target[end:].lstrip()) + + def fix_w291(self, result): + """Remove trailing whitespace.""" + fixed_line = self.source[result['line'] - 1].rstrip() + self.source[result['line'] - 1] = fixed_line + '\n' + + def fix_w391(self, _): + """Remove trailing blank lines.""" + blank_count = 0 + for line in reversed(self.source): + line = line.rstrip() + if line: + break + else: + blank_count += 1 + + original_length = len(self.source) + self.source = self.source[:original_length - blank_count] + return range(1, 1 + original_length) + + def fix_w503(self, result): + (line_index, _, target) = get_index_offset_contents(result, + self.source) + one_string_token = target.split()[0] + try: + ts = generate_tokens(one_string_token) + except (SyntaxError, tokenize.TokenError): + return + if not _is_binary_operator(ts[0][0], one_string_token): + return + # find comment + comment_index = 0 + found_not_comment_only_line = False + comment_only_linenum = 0 + for i in range(5): + # NOTE: try to parse code in 5 times + if (line_index - i) < 0: + break + from_index = line_index - i - 1 + if from_index < 0 or len(self.source) <= from_index: + break + to_index = line_index + 1 + strip_line = self.source[from_index].lstrip() + if ( + not found_not_comment_only_line and + strip_line and strip_line[0] == '#' + ): + comment_only_linenum += 1 + continue + found_not_comment_only_line = True + try: + ts = generate_tokens("".join(self.source[from_index:to_index])) + except (SyntaxError, tokenize.TokenError): + continue + newline_count = 0 + newline_index = [] + for index, t in enumerate(ts): + if t[0] in (tokenize.NEWLINE, tokenize.NL): + newline_index.append(index) + newline_count += 1 + if newline_count > 2: + tts = ts[newline_index[-3]:] + else: + tts = ts + old = [] + for t in tts: + if t[0] in (tokenize.NEWLINE, tokenize.NL): + newline_count -= 1 + if newline_count <= 1: + break + if tokenize.COMMENT == t[0] and old and old[0] != tokenize.NL: + comment_index = old[3][1] + break + old = t + break + i = target.index(one_string_token) + fix_target_line = line_index - 1 - comment_only_linenum + self.source[line_index] = '{}{}'.format( + target[:i], target[i + len(one_string_token):].lstrip()) + nl = find_newline(self.source[fix_target_line:line_index]) + before_line = self.source[fix_target_line] + bl = before_line.index(nl) + if comment_index: + self.source[fix_target_line] = '{} {} {}'.format( + before_line[:comment_index], one_string_token, + before_line[comment_index + 1:]) + else: + if before_line[:bl].endswith("#"): + # special case + # see: https://github.com/hhatto/autopep8/issues/503 + self.source[fix_target_line] = '{}{} {}'.format( + before_line[:bl-2], one_string_token, before_line[bl-2:]) + else: + self.source[fix_target_line] = '{} {}{}'.format( + before_line[:bl], one_string_token, before_line[bl:]) + + def fix_w504(self, result): + (line_index, _, target) = get_index_offset_contents(result, + self.source) + # NOTE: is not collect pointed out in pycodestyle==2.4.0 + comment_index = 0 + operator_position = None # (start_position, end_position) + for i in range(1, 6): + to_index = line_index + i + try: + ts = generate_tokens("".join(self.source[line_index:to_index])) + except (SyntaxError, tokenize.TokenError): + continue + newline_count = 0 + newline_index = [] + for index, t in enumerate(ts): + if _is_binary_operator(t[0], t[1]): + if t[2][0] == 1 and t[3][0] == 1: + operator_position = (t[2][1], t[3][1]) + elif t[0] == tokenize.NAME and t[1] in ("and", "or"): + if t[2][0] == 1 and t[3][0] == 1: + operator_position = (t[2][1], t[3][1]) + elif t[0] in (tokenize.NEWLINE, tokenize.NL): + newline_index.append(index) + newline_count += 1 + if newline_count > 2: + tts = ts[:newline_index[-3]] + else: + tts = ts + old = [] + for t in tts: + if tokenize.COMMENT == t[0] and old: + comment_row, comment_index = old[3] + break + old = t + break + if not operator_position: + return + target_operator = target[operator_position[0]:operator_position[1]] + + if comment_index and comment_row == 1: + self.source[line_index] = '{}{}'.format( + target[:operator_position[0]].rstrip(), + target[comment_index:]) + else: + self.source[line_index] = '{}{}{}'.format( + target[:operator_position[0]].rstrip(), + target[operator_position[1]:].lstrip(), + target[operator_position[1]:]) + + next_line = self.source[line_index + 1] + next_line_indent = 0 + m = re.match(r'\s*', next_line) + if m: + next_line_indent = m.span()[1] + self.source[line_index + 1] = '{}{} {}'.format( + next_line[:next_line_indent], target_operator, + next_line[next_line_indent:]) + + def fix_w605(self, result): + (line_index, offset, target) = get_index_offset_contents(result, + self.source) + self.source[line_index] = '{}\\{}'.format( + target[:offset + 1], target[offset + 1:]) + + +def get_module_imports_on_top_of_file(source, import_line_index): + """return import or from keyword position + + example: + > 0: import sys + 1: import os + 2: + 3: def function(): + """ + def is_string_literal(line): + if line[0] in 'uUbB': + line = line[1:] + if line and line[0] in 'rR': + line = line[1:] + return line and (line[0] == '"' or line[0] == "'") + + def is_future_import(line): + nodes = ast.parse(line) + for n in nodes.body: + if isinstance(n, ast.ImportFrom) and n.module == '__future__': + return True + return False + + def has_future_import(source): + offset = 0 + line = '' + for _, next_line in source: + for line_part in next_line.strip().splitlines(True): + line = line + line_part + try: + return is_future_import(line), offset + except SyntaxError: + continue + offset += 1 + return False, offset + + allowed_try_keywords = ('try', 'except', 'else', 'finally') + in_docstring = False + docstring_kind = '"""' + source_stream = iter(enumerate(source)) + for cnt, line in source_stream: + if not in_docstring: + m = DOCSTRING_START_REGEX.match(line.lstrip()) + if m is not None: + in_docstring = True + docstring_kind = m.group('kind') + remain = line[m.end(): m.endpos].rstrip() + if remain[-3:] == docstring_kind: # one line doc + in_docstring = False + continue + if in_docstring: + if line.rstrip()[-3:] == docstring_kind: + in_docstring = False + continue + + if not line.rstrip(): + continue + elif line.startswith('#'): + continue + + if line.startswith('import '): + if cnt == import_line_index: + continue + return cnt + elif line.startswith('from '): + if cnt == import_line_index: + continue + hit, offset = has_future_import( + itertools.chain([(cnt, line)], source_stream) + ) + if hit: + # move to the back + return cnt + offset + 1 + return cnt + elif pycodestyle.DUNDER_REGEX.match(line): + return cnt + elif any(line.startswith(kw) for kw in allowed_try_keywords): + continue + elif is_string_literal(line): + return cnt + else: + return cnt + return 0 + + +def get_index_offset_contents(result, source): + """Return (line_index, column_offset, line_contents).""" + line_index = result['line'] - 1 + return (line_index, + result['column'] - 1, + source[line_index]) + + +def get_fixed_long_line(target, previous_line, original, + indent_word=' ', max_line_length=79, + aggressive=False, experimental=False, verbose=False): + """Break up long line and return result. + + Do this by generating multiple reformatted candidates and then + ranking the candidates to heuristically select the best option. + + """ + indent = _get_indentation(target) + source = target[len(indent):] + assert source.lstrip() == source + assert not target.lstrip().startswith('#') + + # Check for partial multiline. + tokens = list(generate_tokens(source)) + + candidates = shorten_line( + tokens, source, indent, + indent_word, + max_line_length, + aggressive=aggressive, + experimental=experimental, + previous_line=previous_line) + + # Also sort alphabetically as a tie breaker (for determinism). + candidates = sorted( + sorted(set(candidates).union([target, original])), + key=lambda x: line_shortening_rank( + x, + indent_word, + max_line_length, + experimental=experimental)) + + if verbose >= 4: + print(('-' * 79 + '\n').join([''] + candidates + ['']), + file=wrap_output(sys.stderr, 'utf-8')) + + if candidates: + best_candidate = candidates[0] + + # Don't allow things to get longer. + if longest_line_length(best_candidate) > longest_line_length(original): + return None + + return best_candidate + + +def longest_line_length(code): + """Return length of longest line.""" + if len(code) == 0: + return 0 + return max(len(line) for line in code.splitlines()) + + +def join_logical_line(logical_line): + """Return single line based on logical line input.""" + indentation = _get_indentation(logical_line) + + return indentation + untokenize_without_newlines( + generate_tokens(logical_line.lstrip())) + '\n' + + +def untokenize_without_newlines(tokens): + """Return source code based on tokens.""" + text = '' + last_row = 0 + last_column = -1 + + for t in tokens: + token_string = t[1] + (start_row, start_column) = t[2] + (end_row, end_column) = t[3] + + if start_row > last_row: + last_column = 0 + if ( + (start_column > last_column or token_string == '\n') and + not text.endswith(' ') + ): + text += ' ' + + if token_string != '\n': + text += token_string + + last_row = end_row + last_column = end_column + + return text.rstrip() + + +def _find_logical(source_lines): + # Make a variable which is the index of all the starts of lines. + logical_start = [] + logical_end = [] + last_newline = True + parens = 0 + for t in generate_tokens(''.join(source_lines)): + if t[0] in [tokenize.COMMENT, tokenize.DEDENT, + tokenize.INDENT, tokenize.NL, + tokenize.ENDMARKER]: + continue + if not parens and t[0] in [tokenize.NEWLINE, tokenize.SEMI]: + last_newline = True + logical_end.append((t[3][0] - 1, t[2][1])) + continue + if last_newline and not parens: + logical_start.append((t[2][0] - 1, t[2][1])) + last_newline = False + if t[0] == tokenize.OP: + if t[1] in '([{': + parens += 1 + elif t[1] in '}])': + parens -= 1 + return (logical_start, logical_end) + + +def _get_logical(source_lines, result, logical_start, logical_end): + """Return the logical line corresponding to the result. + + Assumes input is already E702-clean. + + """ + row = result['line'] - 1 + col = result['column'] - 1 + ls = None + le = None + for i in range(0, len(logical_start), 1): + assert logical_end + x = logical_end[i] + if x[0] > row or (x[0] == row and x[1] > col): + le = x + ls = logical_start[i] + break + if ls is None: + return None + original = source_lines[ls[0]:le[0] + 1] + return ls, le, original + + +def get_item(items, index, default=None): + if 0 <= index < len(items): + return items[index] + + return default + + +def reindent(source, indent_size): + """Reindent all lines.""" + reindenter = Reindenter(source) + return reindenter.run(indent_size) + + +def code_almost_equal(a, b): + """Return True if code is similar. + + Ignore whitespace when comparing specific line. + + """ + split_a = split_and_strip_non_empty_lines(a) + split_b = split_and_strip_non_empty_lines(b) + + if len(split_a) != len(split_b): + return False + + for (index, _) in enumerate(split_a): + if ''.join(split_a[index].split()) != ''.join(split_b[index].split()): + return False + + return True + + +def split_and_strip_non_empty_lines(text): + """Return lines split by newline. + + Ignore empty lines. + + """ + return [line.strip() for line in text.splitlines() if line.strip()] + + +def fix_e265(source, aggressive=False): # pylint: disable=unused-argument + """Format block comments.""" + if '#' not in source: + # Optimization. + return source + + ignored_line_numbers = multiline_string_lines( + source, + include_docstrings=True) | set(commented_out_code_lines(source)) + + fixed_lines = [] + sio = io.StringIO(source) + for (line_number, line) in enumerate(sio.readlines(), start=1): + if ( + line.lstrip().startswith('#') and + line_number not in ignored_line_numbers and + not pycodestyle.noqa(line) + ): + indentation = _get_indentation(line) + line = line.lstrip() + + # Normalize beginning if not a shebang. + if len(line) > 1: + pos = next((index for index, c in enumerate(line) + if c != '#')) + if ( + # Leave multiple spaces like '# ' alone. + (line[:pos].count('#') > 1 or line[1].isalnum() or + not line[1].isspace()) and + line[1] not in ':!' and + # Leave stylistic outlined blocks alone. + not line.rstrip().endswith('#') + ): + line = '# ' + line.lstrip('# \t') + + fixed_lines.append(indentation + line) + else: + fixed_lines.append(line) + + return ''.join(fixed_lines) + + +def refactor(source, fixer_names, ignore=None, filename=''): + """Return refactored code using lib2to3. + + Skip if ignore string is produced in the refactored code. + + """ + from lib2to3 import pgen2 + try: + new_text = refactor_with_2to3(source, + fixer_names=fixer_names, + filename=filename) + except (pgen2.parse.ParseError, + SyntaxError, + UnicodeDecodeError, + UnicodeEncodeError): + return source + + if ignore: + if ignore in new_text and ignore not in source: + return source + + return new_text + + +def code_to_2to3(select, ignore, where='', verbose=False): + fixes = set() + for code, fix in CODE_TO_2TO3.items(): + if code_match(code, select=select, ignore=ignore): + if verbose: + print('---> Applying {} fix for {}'.format(where, + code.upper()), + file=sys.stderr) + fixes |= set(fix) + return fixes + + +def fix_2to3(source, + aggressive=True, select=None, ignore=None, filename='', + where='global', verbose=False): + """Fix various deprecated code (via lib2to3).""" + if not aggressive: + return source + + select = select or [] + ignore = ignore or [] + + return refactor(source, + code_to_2to3(select=select, + ignore=ignore, + where=where, + verbose=verbose), + filename=filename) + + +def fix_w602(source, aggressive=True): + """Fix deprecated form of raising exception.""" + if not aggressive: + return source + + return refactor(source, ['raise'], ignore='with_traceback') + + +def find_newline(source): + """Return type of newline used in source. + + Input is a list of lines. + + """ + assert not isinstance(source, unicode) + + counter = collections.defaultdict(int) + for line in source: + if line.endswith(CRLF): + counter[CRLF] += 1 + elif line.endswith(CR): + counter[CR] += 1 + elif line.endswith(LF): + counter[LF] += 1 + + return (sorted(counter, key=counter.get, reverse=True) or [LF])[0] + + +def _get_indentword(source): + """Return indentation type.""" + indent_word = ' ' # Default in case source has no indentation + try: + for t in generate_tokens(source): + if t[0] == token.INDENT: + indent_word = t[1] + break + except (SyntaxError, tokenize.TokenError): + pass + return indent_word + + +def _get_indentation(line): + """Return leading whitespace.""" + if line.strip(): + non_whitespace_index = len(line) - len(line.lstrip()) + return line[:non_whitespace_index] + + return '' + + +def get_diff_text(old, new, filename): + """Return text of unified diff between old and new.""" + newline = '\n' + diff = difflib.unified_diff( + old, new, + 'original/' + filename, + 'fixed/' + filename, + lineterm=newline) + + text = '' + for line in diff: + text += line + + # Work around missing newline (http://bugs.python.org/issue2142). + if text and not line.endswith(newline): + text += newline + r'\ No newline at end of file' + newline + + return text + + +def _priority_key(pep8_result): + """Key for sorting PEP8 results. + + Global fixes should be done first. This is important for things like + indentation. + + """ + priority = [ + # Fix multiline colon-based before semicolon based. + 'e701', + # Break multiline statements early. + 'e702', + # Things that make lines longer. + 'e225', 'e231', + # Remove extraneous whitespace before breaking lines. + 'e201', + # Shorten whitespace in comment before resorting to wrapping. + 'e262' + ] + middle_index = 10000 + lowest_priority = [ + # We need to shorten lines last since the logical fixer can get in a + # loop, which causes us to exit early. + 'e501', + ] + key = pep8_result['id'].lower() + try: + return priority.index(key) + except ValueError: + try: + return middle_index + lowest_priority.index(key) + 1 + except ValueError: + return middle_index + + +def shorten_line(tokens, source, indentation, indent_word, max_line_length, + aggressive=False, experimental=False, previous_line=''): + """Separate line at OPERATOR. + + Multiple candidates will be yielded. + + """ + for candidate in _shorten_line(tokens=tokens, + source=source, + indentation=indentation, + indent_word=indent_word, + aggressive=aggressive, + previous_line=previous_line): + yield candidate + + if aggressive: + for key_token_strings in SHORTEN_OPERATOR_GROUPS: + shortened = _shorten_line_at_tokens( + tokens=tokens, + source=source, + indentation=indentation, + indent_word=indent_word, + key_token_strings=key_token_strings, + aggressive=aggressive) + + if shortened is not None and shortened != source: + yield shortened + + if experimental: + for shortened in _shorten_line_at_tokens_new( + tokens=tokens, + source=source, + indentation=indentation, + max_line_length=max_line_length): + + yield shortened + + +def _shorten_line(tokens, source, indentation, indent_word, + aggressive=False, previous_line=''): + """Separate line at OPERATOR. + + The input is expected to be free of newlines except for inside multiline + strings and at the end. + + Multiple candidates will be yielded. + + """ + for (token_type, + token_string, + start_offset, + end_offset) in token_offsets(tokens): + + if ( + token_type == tokenize.COMMENT and + not is_probably_part_of_multiline(previous_line) and + not is_probably_part_of_multiline(source) and + not source[start_offset + 1:].strip().lower().startswith( + ('noqa', 'pragma:', 'pylint:')) + ): + # Move inline comments to previous line. + first = source[:start_offset] + second = source[start_offset:] + yield (indentation + second.strip() + '\n' + + indentation + first.strip() + '\n') + elif token_type == token.OP and token_string != '=': + # Don't break on '=' after keyword as this violates PEP 8. + + assert token_type != token.INDENT + + first = source[:end_offset] + + second_indent = indentation + if (first.rstrip().endswith('(') and + source[end_offset:].lstrip().startswith(')')): + pass + elif first.rstrip().endswith('('): + second_indent += indent_word + elif '(' in first: + second_indent += ' ' * (1 + first.find('(')) + else: + second_indent += indent_word + + second = (second_indent + source[end_offset:].lstrip()) + if ( + not second.strip() or + second.lstrip().startswith('#') + ): + continue + + # Do not begin a line with a comma + if second.lstrip().startswith(','): + continue + # Do end a line with a dot + if first.rstrip().endswith('.'): + continue + if token_string in '+-*/': + fixed = first + ' \\' + '\n' + second + else: + fixed = first + '\n' + second + + # Only fix if syntax is okay. + if check_syntax(normalize_multiline(fixed) + if aggressive else fixed): + yield indentation + fixed + + +def _is_binary_operator(token_type, text): + return ((token_type == tokenize.OP or text in ['and', 'or']) and + text not in '()[]{},:.;@=%~') + + +# A convenient way to handle tokens. +Token = collections.namedtuple('Token', ['token_type', 'token_string', + 'spos', 'epos', 'line']) + + +class ReformattedLines(object): + + """The reflowed lines of atoms. + + Each part of the line is represented as an "atom." They can be moved + around when need be to get the optimal formatting. + + """ + + ########################################################################### + # Private Classes + + class _Indent(object): + + """Represent an indentation in the atom stream.""" + + def __init__(self, indent_amt): + self._indent_amt = indent_amt + + def emit(self): + return ' ' * self._indent_amt + + @property + def size(self): + return self._indent_amt + + class _Space(object): + + """Represent a space in the atom stream.""" + + def emit(self): + return ' ' + + @property + def size(self): + return 1 + + class _LineBreak(object): + + """Represent a line break in the atom stream.""" + + def emit(self): + return '\n' + + @property + def size(self): + return 0 + + def __init__(self, max_line_length): + self._max_line_length = max_line_length + self._lines = [] + self._bracket_depth = 0 + self._prev_item = None + self._prev_prev_item = None + + def __repr__(self): + return self.emit() + + ########################################################################### + # Public Methods + + def add(self, obj, indent_amt, break_after_open_bracket): + if isinstance(obj, Atom): + self._add_item(obj, indent_amt) + return + + self._add_container(obj, indent_amt, break_after_open_bracket) + + def add_comment(self, item): + num_spaces = 2 + if len(self._lines) > 1: + if isinstance(self._lines[-1], self._Space): + num_spaces -= 1 + if len(self._lines) > 2: + if isinstance(self._lines[-2], self._Space): + num_spaces -= 1 + + while num_spaces > 0: + self._lines.append(self._Space()) + num_spaces -= 1 + self._lines.append(item) + + def add_indent(self, indent_amt): + self._lines.append(self._Indent(indent_amt)) + + def add_line_break(self, indent): + self._lines.append(self._LineBreak()) + self.add_indent(len(indent)) + + def add_line_break_at(self, index, indent_amt): + self._lines.insert(index, self._LineBreak()) + self._lines.insert(index + 1, self._Indent(indent_amt)) + + def add_space_if_needed(self, curr_text, equal=False): + if ( + not self._lines or isinstance( + self._lines[-1], (self._LineBreak, self._Indent, self._Space)) + ): + return + + prev_text = unicode(self._prev_item) + prev_prev_text = ( + unicode(self._prev_prev_item) if self._prev_prev_item else '') + + if ( + # The previous item was a keyword or identifier and the current + # item isn't an operator that doesn't require a space. + ((self._prev_item.is_keyword or self._prev_item.is_string or + self._prev_item.is_name or self._prev_item.is_number) and + (curr_text[0] not in '([{.,:}])' or + (curr_text[0] == '=' and equal))) or + + # Don't place spaces around a '.', unless it's in an 'import' + # statement. + ((prev_prev_text != 'from' and prev_text[-1] != '.' and + curr_text != 'import') and + + # Don't place a space before a colon. + curr_text[0] != ':' and + + # Don't split up ending brackets by spaces. + ((prev_text[-1] in '}])' and curr_text[0] not in '.,}])') or + + # Put a space after a colon or comma. + prev_text[-1] in ':,' or + + # Put space around '=' if asked to. + (equal and prev_text == '=') or + + # Put spaces around non-unary arithmetic operators. + ((self._prev_prev_item and + (prev_text not in '+-' and + (self._prev_prev_item.is_name or + self._prev_prev_item.is_number or + self._prev_prev_item.is_string)) and + prev_text in ('+', '-', '%', '*', '/', '//', '**', 'in'))))) + ): + self._lines.append(self._Space()) + + def previous_item(self): + """Return the previous non-whitespace item.""" + return self._prev_item + + def fits_on_current_line(self, item_extent): + return self.current_size() + item_extent <= self._max_line_length + + def current_size(self): + """The size of the current line minus the indentation.""" + size = 0 + for item in reversed(self._lines): + size += item.size + if isinstance(item, self._LineBreak): + break + + return size + + def line_empty(self): + return (self._lines and + isinstance(self._lines[-1], + (self._LineBreak, self._Indent))) + + def emit(self): + string = '' + for item in self._lines: + if isinstance(item, self._LineBreak): + string = string.rstrip() + string += item.emit() + + return string.rstrip() + '\n' + + ########################################################################### + # Private Methods + + def _add_item(self, item, indent_amt): + """Add an item to the line. + + Reflow the line to get the best formatting after the item is + inserted. The bracket depth indicates if the item is being + inserted inside of a container or not. + + """ + if self._prev_item and self._prev_item.is_string and item.is_string: + # Place consecutive string literals on separate lines. + self._lines.append(self._LineBreak()) + self._lines.append(self._Indent(indent_amt)) + + item_text = unicode(item) + if self._lines and self._bracket_depth: + # Adding the item into a container. + self._prevent_default_initializer_splitting(item, indent_amt) + + if item_text in '.,)]}': + self._split_after_delimiter(item, indent_amt) + + elif self._lines and not self.line_empty(): + # Adding the item outside of a container. + if self.fits_on_current_line(len(item_text)): + self._enforce_space(item) + + else: + # Line break for the new item. + self._lines.append(self._LineBreak()) + self._lines.append(self._Indent(indent_amt)) + + self._lines.append(item) + self._prev_item, self._prev_prev_item = item, self._prev_item + + if item_text in '([{': + self._bracket_depth += 1 + + elif item_text in '}])': + self._bracket_depth -= 1 + assert self._bracket_depth >= 0 + + def _add_container(self, container, indent_amt, break_after_open_bracket): + actual_indent = indent_amt + 1 + + if ( + unicode(self._prev_item) != '=' and + not self.line_empty() and + not self.fits_on_current_line( + container.size + self._bracket_depth + 2) + ): + + if unicode(container)[0] == '(' and self._prev_item.is_name: + # Don't split before the opening bracket of a call. + break_after_open_bracket = True + actual_indent = indent_amt + 4 + elif ( + break_after_open_bracket or + unicode(self._prev_item) not in '([{' + ): + # If the container doesn't fit on the current line and the + # current line isn't empty, place the container on the next + # line. + self._lines.append(self._LineBreak()) + self._lines.append(self._Indent(indent_amt)) + break_after_open_bracket = False + else: + actual_indent = self.current_size() + 1 + break_after_open_bracket = False + + if isinstance(container, (ListComprehension, IfExpression)): + actual_indent = indent_amt + + # Increase the continued indentation only if recursing on a + # container. + container.reflow(self, ' ' * actual_indent, + break_after_open_bracket=break_after_open_bracket) + + def _prevent_default_initializer_splitting(self, item, indent_amt): + """Prevent splitting between a default initializer. + + When there is a default initializer, it's best to keep it all on + the same line. It's nicer and more readable, even if it goes + over the maximum allowable line length. This goes back along the + current line to determine if we have a default initializer, and, + if so, to remove extraneous whitespaces and add a line + break/indent before it if needed. + + """ + if unicode(item) == '=': + # This is the assignment in the initializer. Just remove spaces for + # now. + self._delete_whitespace() + return + + if (not self._prev_item or not self._prev_prev_item or + unicode(self._prev_item) != '='): + return + + self._delete_whitespace() + prev_prev_index = self._lines.index(self._prev_prev_item) + + if ( + isinstance(self._lines[prev_prev_index - 1], self._Indent) or + self.fits_on_current_line(item.size + 1) + ): + # The default initializer is already the only item on this line. + # Don't insert a newline here. + return + + # Replace the space with a newline/indent combo. + if isinstance(self._lines[prev_prev_index - 1], self._Space): + del self._lines[prev_prev_index - 1] + + self.add_line_break_at(self._lines.index(self._prev_prev_item), + indent_amt) + + def _split_after_delimiter(self, item, indent_amt): + """Split the line only after a delimiter.""" + self._delete_whitespace() + + if self.fits_on_current_line(item.size): + return + + last_space = None + for current_item in reversed(self._lines): + if ( + last_space and + (not isinstance(current_item, Atom) or + not current_item.is_colon) + ): + break + else: + last_space = None + if isinstance(current_item, self._Space): + last_space = current_item + if isinstance(current_item, (self._LineBreak, self._Indent)): + return + + if not last_space: + return + + self.add_line_break_at(self._lines.index(last_space), indent_amt) + + def _enforce_space(self, item): + """Enforce a space in certain situations. + + There are cases where we will want a space where normally we + wouldn't put one. This just enforces the addition of a space. + + """ + if isinstance(self._lines[-1], + (self._Space, self._LineBreak, self._Indent)): + return + + if not self._prev_item: + return + + item_text = unicode(item) + prev_text = unicode(self._prev_item) + + # Prefer a space around a '.' in an import statement, and between the + # 'import' and '('. + if ( + (item_text == '.' and prev_text == 'from') or + (item_text == 'import' and prev_text == '.') or + (item_text == '(' and prev_text == 'import') + ): + self._lines.append(self._Space()) + + def _delete_whitespace(self): + """Delete all whitespace from the end of the line.""" + while isinstance(self._lines[-1], (self._Space, self._LineBreak, + self._Indent)): + del self._lines[-1] + + +class Atom(object): + + """The smallest unbreakable unit that can be reflowed.""" + + def __init__(self, atom): + self._atom = atom + + def __repr__(self): + return self._atom.token_string + + def __len__(self): + return self.size + + def reflow( + self, reflowed_lines, continued_indent, extent, + break_after_open_bracket=False, + is_list_comp_or_if_expr=False, + next_is_dot=False + ): + if self._atom.token_type == tokenize.COMMENT: + reflowed_lines.add_comment(self) + return + + total_size = extent if extent else self.size + + if self._atom.token_string not in ',:([{}])': + # Some atoms will need an extra 1-sized space token after them. + total_size += 1 + + prev_item = reflowed_lines.previous_item() + if ( + not is_list_comp_or_if_expr and + not reflowed_lines.fits_on_current_line(total_size) and + not (next_is_dot and + reflowed_lines.fits_on_current_line(self.size + 1)) and + not reflowed_lines.line_empty() and + not self.is_colon and + not (prev_item and prev_item.is_name and + unicode(self) == '(') + ): + # Start a new line if there is already something on the line and + # adding this atom would make it go over the max line length. + reflowed_lines.add_line_break(continued_indent) + else: + reflowed_lines.add_space_if_needed(unicode(self)) + + reflowed_lines.add(self, len(continued_indent), + break_after_open_bracket) + + def emit(self): + return self.__repr__() + + @property + def is_keyword(self): + return keyword.iskeyword(self._atom.token_string) + + @property + def is_string(self): + return self._atom.token_type == tokenize.STRING + + @property + def is_name(self): + return self._atom.token_type == tokenize.NAME + + @property + def is_number(self): + return self._atom.token_type == tokenize.NUMBER + + @property + def is_comma(self): + return self._atom.token_string == ',' + + @property + def is_colon(self): + return self._atom.token_string == ':' + + @property + def size(self): + return len(self._atom.token_string) + + +class Container(object): + + """Base class for all container types.""" + + def __init__(self, items): + self._items = items + + def __repr__(self): + string = '' + last_was_keyword = False + + for item in self._items: + if item.is_comma: + string += ', ' + elif item.is_colon: + string += ': ' + else: + item_string = unicode(item) + if ( + string and + (last_was_keyword or + (not string.endswith(tuple('([{,.:}]) ')) and + not item_string.startswith(tuple('([{,.:}])')))) + ): + string += ' ' + string += item_string + + last_was_keyword = item.is_keyword + return string + + def __iter__(self): + for element in self._items: + yield element + + def __getitem__(self, idx): + return self._items[idx] + + def reflow(self, reflowed_lines, continued_indent, + break_after_open_bracket=False): + last_was_container = False + for (index, item) in enumerate(self._items): + next_item = get_item(self._items, index + 1) + + if isinstance(item, Atom): + is_list_comp_or_if_expr = ( + isinstance(self, (ListComprehension, IfExpression))) + item.reflow(reflowed_lines, continued_indent, + self._get_extent(index), + is_list_comp_or_if_expr=is_list_comp_or_if_expr, + next_is_dot=(next_item and + unicode(next_item) == '.')) + if last_was_container and item.is_comma: + reflowed_lines.add_line_break(continued_indent) + last_was_container = False + else: # isinstance(item, Container) + reflowed_lines.add(item, len(continued_indent), + break_after_open_bracket) + last_was_container = not isinstance(item, (ListComprehension, + IfExpression)) + + if ( + break_after_open_bracket and index == 0 and + # Prefer to keep empty containers together instead of + # separating them. + unicode(item) == self.open_bracket and + (not next_item or unicode(next_item) != self.close_bracket) and + (len(self._items) != 3 or not isinstance(next_item, Atom)) + ): + reflowed_lines.add_line_break(continued_indent) + break_after_open_bracket = False + else: + next_next_item = get_item(self._items, index + 2) + if ( + unicode(item) not in ['.', '%', 'in'] and + next_item and not isinstance(next_item, Container) and + unicode(next_item) != ':' and + next_next_item and (not isinstance(next_next_item, Atom) or + unicode(next_item) == 'not') and + not reflowed_lines.line_empty() and + not reflowed_lines.fits_on_current_line( + self._get_extent(index + 1) + 2) + ): + reflowed_lines.add_line_break(continued_indent) + + def _get_extent(self, index): + """The extent of the full element. + + E.g., the length of a function call or keyword. + + """ + extent = 0 + prev_item = get_item(self._items, index - 1) + seen_dot = prev_item and unicode(prev_item) == '.' + while index < len(self._items): + item = get_item(self._items, index) + index += 1 + + if isinstance(item, (ListComprehension, IfExpression)): + break + + if isinstance(item, Container): + if prev_item and prev_item.is_name: + if seen_dot: + extent += 1 + else: + extent += item.size + + prev_item = item + continue + elif (unicode(item) not in ['.', '=', ':', 'not'] and + not item.is_name and not item.is_string): + break + + if unicode(item) == '.': + seen_dot = True + + extent += item.size + prev_item = item + + return extent + + @property + def is_string(self): + return False + + @property + def size(self): + return len(self.__repr__()) + + @property + def is_keyword(self): + return False + + @property + def is_name(self): + return False + + @property + def is_comma(self): + return False + + @property + def is_colon(self): + return False + + @property + def open_bracket(self): + return None + + @property + def close_bracket(self): + return None + + +class Tuple(Container): + + """A high-level representation of a tuple.""" + + @property + def open_bracket(self): + return '(' + + @property + def close_bracket(self): + return ')' + + +class List(Container): + + """A high-level representation of a list.""" + + @property + def open_bracket(self): + return '[' + + @property + def close_bracket(self): + return ']' + + +class DictOrSet(Container): + + """A high-level representation of a dictionary or set.""" + + @property + def open_bracket(self): + return '{' + + @property + def close_bracket(self): + return '}' + + +class ListComprehension(Container): + + """A high-level representation of a list comprehension.""" + + @property + def size(self): + length = 0 + for item in self._items: + if isinstance(item, IfExpression): + break + length += item.size + return length + + +class IfExpression(Container): + + """A high-level representation of an if-expression.""" + + +def _parse_container(tokens, index, for_or_if=None): + """Parse a high-level container, such as a list, tuple, etc.""" + + # Store the opening bracket. + items = [Atom(Token(*tokens[index]))] + index += 1 + + num_tokens = len(tokens) + while index < num_tokens: + tok = Token(*tokens[index]) + + if tok.token_string in ',)]}': + # First check if we're at the end of a list comprehension or + # if-expression. Don't add the ending token as part of the list + # comprehension or if-expression, because they aren't part of those + # constructs. + if for_or_if == 'for': + return (ListComprehension(items), index - 1) + + elif for_or_if == 'if': + return (IfExpression(items), index - 1) + + # We've reached the end of a container. + items.append(Atom(tok)) + + # If not, then we are at the end of a container. + if tok.token_string == ')': + # The end of a tuple. + return (Tuple(items), index) + + elif tok.token_string == ']': + # The end of a list. + return (List(items), index) + + elif tok.token_string == '}': + # The end of a dictionary or set. + return (DictOrSet(items), index) + + elif tok.token_string in '([{': + # A sub-container is being defined. + (container, index) = _parse_container(tokens, index) + items.append(container) + + elif tok.token_string == 'for': + (container, index) = _parse_container(tokens, index, 'for') + items.append(container) + + elif tok.token_string == 'if': + (container, index) = _parse_container(tokens, index, 'if') + items.append(container) + + else: + items.append(Atom(tok)) + + index += 1 + + return (None, None) + + +def _parse_tokens(tokens): + """Parse the tokens. + + This converts the tokens into a form where we can manipulate them + more easily. + + """ + + index = 0 + parsed_tokens = [] + + num_tokens = len(tokens) + while index < num_tokens: + tok = Token(*tokens[index]) + + assert tok.token_type != token.INDENT + if tok.token_type == tokenize.NEWLINE: + # There's only one newline and it's at the end. + break + + if tok.token_string in '([{': + (container, index) = _parse_container(tokens, index) + if not container: + return None + parsed_tokens.append(container) + else: + parsed_tokens.append(Atom(tok)) + + index += 1 + + return parsed_tokens + + +def _reflow_lines(parsed_tokens, indentation, max_line_length, + start_on_prefix_line): + """Reflow the lines so that it looks nice.""" + + if unicode(parsed_tokens[0]) == 'def': + # A function definition gets indented a bit more. + continued_indent = indentation + ' ' * 2 * DEFAULT_INDENT_SIZE + else: + continued_indent = indentation + ' ' * DEFAULT_INDENT_SIZE + + break_after_open_bracket = not start_on_prefix_line + + lines = ReformattedLines(max_line_length) + lines.add_indent(len(indentation.lstrip('\r\n'))) + + if not start_on_prefix_line: + # If splitting after the opening bracket will cause the first element + # to be aligned weirdly, don't try it. + first_token = get_item(parsed_tokens, 0) + second_token = get_item(parsed_tokens, 1) + + if ( + first_token and second_token and + unicode(second_token)[0] == '(' and + len(indentation) + len(first_token) + 1 == len(continued_indent) + ): + return None + + for item in parsed_tokens: + lines.add_space_if_needed(unicode(item), equal=True) + + save_continued_indent = continued_indent + if start_on_prefix_line and isinstance(item, Container): + start_on_prefix_line = False + continued_indent = ' ' * (lines.current_size() + 1) + + item.reflow(lines, continued_indent, break_after_open_bracket) + continued_indent = save_continued_indent + + return lines.emit() + + +def _shorten_line_at_tokens_new(tokens, source, indentation, + max_line_length): + """Shorten the line taking its length into account. + + The input is expected to be free of newlines except for inside + multiline strings and at the end. + + """ + # Yield the original source so to see if it's a better choice than the + # shortened candidate lines we generate here. + yield indentation + source + + parsed_tokens = _parse_tokens(tokens) + + if parsed_tokens: + # Perform two reflows. The first one starts on the same line as the + # prefix. The second starts on the line after the prefix. + fixed = _reflow_lines(parsed_tokens, indentation, max_line_length, + start_on_prefix_line=True) + if fixed and check_syntax(normalize_multiline(fixed.lstrip())): + yield fixed + + fixed = _reflow_lines(parsed_tokens, indentation, max_line_length, + start_on_prefix_line=False) + if fixed and check_syntax(normalize_multiline(fixed.lstrip())): + yield fixed + + +def _shorten_line_at_tokens(tokens, source, indentation, indent_word, + key_token_strings, aggressive): + """Separate line by breaking at tokens in key_token_strings. + + The input is expected to be free of newlines except for inside + multiline strings and at the end. + + """ + offsets = [] + for (index, _t) in enumerate(token_offsets(tokens)): + (token_type, + token_string, + start_offset, + end_offset) = _t + + assert token_type != token.INDENT + + if token_string in key_token_strings: + # Do not break in containers with zero or one items. + unwanted_next_token = { + '(': ')', + '[': ']', + '{': '}'}.get(token_string) + if unwanted_next_token: + if ( + get_item(tokens, + index + 1, + default=[None, None])[1] == unwanted_next_token or + get_item(tokens, + index + 2, + default=[None, None])[1] == unwanted_next_token + ): + continue + + if ( + index > 2 and token_string == '(' and + tokens[index - 1][1] in ',(%[' + ): + # Don't split after a tuple start, or before a tuple start if + # the tuple is in a list. + continue + + if end_offset < len(source) - 1: + # Don't split right before newline. + offsets.append(end_offset) + else: + # Break at adjacent strings. These were probably meant to be on + # separate lines in the first place. + previous_token = get_item(tokens, index - 1) + if ( + token_type == tokenize.STRING and + previous_token and previous_token[0] == tokenize.STRING + ): + offsets.append(start_offset) + + current_indent = None + fixed = None + for line in split_at_offsets(source, offsets): + if fixed: + fixed += '\n' + current_indent + line + + for symbol in '([{': + if line.endswith(symbol): + current_indent += indent_word + else: + # First line. + fixed = line + assert not current_indent + current_indent = indent_word + + assert fixed is not None + + if check_syntax(normalize_multiline(fixed) + if aggressive > 1 else fixed): + return indentation + fixed + + return None + + +def token_offsets(tokens): + """Yield tokens and offsets.""" + end_offset = 0 + previous_end_row = 0 + previous_end_column = 0 + for t in tokens: + token_type = t[0] + token_string = t[1] + (start_row, start_column) = t[2] + (end_row, end_column) = t[3] + + # Account for the whitespace between tokens. + end_offset += start_column + if previous_end_row == start_row: + end_offset -= previous_end_column + + # Record the start offset of the token. + start_offset = end_offset + + # Account for the length of the token itself. + end_offset += len(token_string) + + yield (token_type, + token_string, + start_offset, + end_offset) + + previous_end_row = end_row + previous_end_column = end_column + + +def normalize_multiline(line): + """Normalize multiline-related code that will cause syntax error. + + This is for purposes of checking syntax. + + """ + if line.startswith('def ') and line.rstrip().endswith(':'): + return line + ' pass' + elif line.startswith('return '): + return 'def _(): ' + line + elif line.startswith('@'): + return line + 'def _(): pass' + elif line.startswith('class '): + return line + ' pass' + elif line.startswith(('if ', 'elif ', 'for ', 'while ')): + return line + ' pass' + + return line + + +def fix_whitespace(line, offset, replacement): + """Replace whitespace at offset and return fixed line.""" + # Replace escaped newlines too + left = line[:offset].rstrip('\n\r \t\\') + right = line[offset:].lstrip('\n\r \t\\') + if right.startswith('#'): + return line + + return left + replacement + right + + +def _execute_pep8(pep8_options, source): + """Execute pycodestyle via python method calls.""" + class QuietReport(pycodestyle.BaseReport): + + """Version of checker that does not print.""" + + def __init__(self, options): + super(QuietReport, self).__init__(options) + self.__full_error_results = [] + + def error(self, line_number, offset, text, check): + """Collect errors.""" + code = super(QuietReport, self).error(line_number, + offset, + text, + check) + if code: + self.__full_error_results.append( + {'id': code, + 'line': line_number, + 'column': offset + 1, + 'info': text}) + + def full_error_results(self): + """Return error results in detail. + + Results are in the form of a list of dictionaries. Each + dictionary contains 'id', 'line', 'column', and 'info'. + + """ + return self.__full_error_results + + checker = pycodestyle.Checker('', lines=source, reporter=QuietReport, + **pep8_options) + checker.check_all() + return checker.report.full_error_results() + + +def _remove_leading_and_normalize(line): + # ignore FF in first lstrip() + return line.lstrip(' \t\v').rstrip(CR + LF) + '\n' + + +class Reindenter(object): + + """Reindents badly-indented code to uniformly use four-space indentation. + + Released to the public domain, by Tim Peters, 03 October 2000. + + """ + + def __init__(self, input_text): + sio = io.StringIO(input_text) + source_lines = sio.readlines() + + self.string_content_line_numbers = multiline_string_lines(input_text) + + # File lines, rstripped & tab-expanded. Dummy at start is so + # that we can use tokenize's 1-based line numbering easily. + # Note that a line is all-blank iff it is a newline. + self.lines = [] + for line_number, line in enumerate(source_lines, start=1): + # Do not modify if inside a multiline string. + if line_number in self.string_content_line_numbers: + self.lines.append(line) + else: + # Only expand leading tabs. + self.lines.append(_get_indentation(line).expandtabs() + + _remove_leading_and_normalize(line)) + + self.lines.insert(0, None) + self.index = 1 # index into self.lines of next line + self.input_text = input_text + + def run(self, indent_size=DEFAULT_INDENT_SIZE): + """Fix indentation and return modified line numbers. + + Line numbers are indexed at 1. + + """ + if indent_size < 1: + return self.input_text + + try: + stats = _reindent_stats(tokenize.generate_tokens(self.getline)) + except (SyntaxError, tokenize.TokenError): + return self.input_text + # Remove trailing empty lines. + lines = self.lines + # Sentinel. + stats.append((len(lines), 0)) + # Map count of leading spaces to # we want. + have2want = {} + # Program after transformation. + after = [] + # Copy over initial empty lines -- there's nothing to do until + # we see a line with *something* on it. + i = stats[0][0] + after.extend(lines[1:i]) + for i in range(len(stats) - 1): + thisstmt, thislevel = stats[i] + nextstmt = stats[i + 1][0] + have = _leading_space_count(lines[thisstmt]) + want = thislevel * indent_size + if want < 0: + # A comment line. + if have: + # An indented comment line. If we saw the same + # indentation before, reuse what it most recently + # mapped to. + want = have2want.get(have, -1) + if want < 0: + # Then it probably belongs to the next real stmt. + for j in range(i + 1, len(stats) - 1): + jline, jlevel = stats[j] + if jlevel >= 0: + if have == _leading_space_count(lines[jline]): + want = jlevel * indent_size + break + # Maybe it's a hanging comment like this one, + if want < 0: + # in which case we should shift it like its base + # line got shifted. + for j in range(i - 1, -1, -1): + jline, jlevel = stats[j] + if jlevel >= 0: + want = (have + _leading_space_count( + after[jline - 1]) - + _leading_space_count(lines[jline])) + break + if want < 0: + # Still no luck -- leave it alone. + want = have + else: + want = 0 + assert want >= 0 + have2want[have] = want + diff = want - have + if diff == 0 or have == 0: + after.extend(lines[thisstmt:nextstmt]) + else: + for line_number, line in enumerate(lines[thisstmt:nextstmt], + start=thisstmt): + if line_number in self.string_content_line_numbers: + after.append(line) + elif diff > 0: + if line == '\n': + after.append(line) + else: + after.append(' ' * diff + line) + else: + remove = min(_leading_space_count(line), -diff) + after.append(line[remove:]) + + return ''.join(after) + + def getline(self): + """Line-getter for tokenize.""" + if self.index >= len(self.lines): + line = '' + else: + line = self.lines[self.index] + self.index += 1 + return line + + +def _reindent_stats(tokens): + """Return list of (lineno, indentlevel) pairs. + + One for each stmt and comment line. indentlevel is -1 for comment + lines, as a signal that tokenize doesn't know what to do about them; + indeed, they're our headache! + + """ + find_stmt = 1 # Next token begins a fresh stmt? + level = 0 # Current indent level. + stats = [] + + for t in tokens: + token_type = t[0] + sline = t[2][0] + line = t[4] + + if token_type == tokenize.NEWLINE: + # A program statement, or ENDMARKER, will eventually follow, + # after some (possibly empty) run of tokens of the form + # (NL | COMMENT)* (INDENT | DEDENT+)? + find_stmt = 1 + + elif token_type == tokenize.INDENT: + find_stmt = 1 + level += 1 + + elif token_type == tokenize.DEDENT: + find_stmt = 1 + level -= 1 + + elif token_type == tokenize.COMMENT: + if find_stmt: + stats.append((sline, -1)) + # But we're still looking for a new stmt, so leave + # find_stmt alone. + + elif token_type == tokenize.NL: + pass + + elif find_stmt: + # This is the first "real token" following a NEWLINE, so it + # must be the first token of the next program statement, or an + # ENDMARKER. + find_stmt = 0 + if line: # Not endmarker. + stats.append((sline, level)) + + return stats + + +def _leading_space_count(line): + """Return number of leading spaces in line.""" + i = 0 + while i < len(line) and line[i] == ' ': + i += 1 + return i + + +def refactor_with_2to3(source_text, fixer_names, filename=''): + """Use lib2to3 to refactor the source. + + Return the refactored source code. + + """ + from lib2to3.refactor import RefactoringTool + fixers = ['lib2to3.fixes.fix_' + name for name in fixer_names] + tool = RefactoringTool(fixer_names=fixers, explicit=fixers) + + from lib2to3.pgen2 import tokenize as lib2to3_tokenize + try: + # The name parameter is necessary particularly for the "import" fixer. + return unicode(tool.refactor_string(source_text, name=filename)) + except lib2to3_tokenize.TokenError: + return source_text + + +def check_syntax(code): + """Return True if syntax is okay.""" + try: + return compile(code, '', 'exec', dont_inherit=True) + except (SyntaxError, TypeError, ValueError): + return False + + +def find_with_line_numbers(pattern, contents): + """A wrapper around 're.finditer' to find line numbers. + + Returns a list of line numbers where pattern was found in contents. + """ + matches = list(re.finditer(pattern, contents)) + if not matches: + return [] + + end = matches[-1].start() + + # -1 so a failed `rfind` maps to the first line. + newline_offsets = { + -1: 0 + } + for line_num, m in enumerate(re.finditer(r'\n', contents), 1): + offset = m.start() + if offset > end: + break + newline_offsets[offset] = line_num + + def get_line_num(match, contents): + """Get the line number of string in a files contents. + + Failing to find the newline is OK, -1 maps to 0 + + """ + newline_offset = contents.rfind('\n', 0, match.start()) + return newline_offsets[newline_offset] + + return [get_line_num(match, contents) + 1 for match in matches] + + +def get_disabled_ranges(source): + """Returns a list of tuples representing the disabled ranges. + + If disabled and no re-enable will disable for rest of file. + + """ + enable_line_nums = find_with_line_numbers(ENABLE_REGEX, source) + disable_line_nums = find_with_line_numbers(DISABLE_REGEX, source) + total_lines = len(re.findall("\n", source)) + 1 + + enable_commands = {} + for num in enable_line_nums: + enable_commands[num] = True + for num in disable_line_nums: + enable_commands[num] = False + + disabled_ranges = [] + currently_enabled = True + disabled_start = None + + for line, commanded_enabled in sorted(enable_commands.items()): + if currently_enabled is True and commanded_enabled is False: + disabled_start = line + currently_enabled = False + elif currently_enabled is False and commanded_enabled is True: + disabled_ranges.append((disabled_start, line)) + currently_enabled = True + + if currently_enabled is False: + disabled_ranges.append((disabled_start, total_lines)) + + return disabled_ranges + + +def filter_results(source, results, aggressive): + """Filter out spurious reports from pycodestyle. + + If aggressive is True, we allow possibly unsafe fixes (E711, E712). + + """ + non_docstring_string_line_numbers = multiline_string_lines( + source, include_docstrings=False) + all_string_line_numbers = multiline_string_lines( + source, include_docstrings=True) + + commented_out_code_line_numbers = commented_out_code_lines(source) + + # Filter out the disabled ranges + disabled_ranges = get_disabled_ranges(source) + if len(disabled_ranges) > 0: + results = [result for result in results + if any(result['line'] not in range(*disabled_range) + for disabled_range in disabled_ranges) + ] + + has_e901 = any(result['id'].lower() == 'e901' for result in results) + + for r in results: + issue_id = r['id'].lower() + + if r['line'] in non_docstring_string_line_numbers: + if issue_id.startswith(('e1', 'e501', 'w191')): + continue + + if r['line'] in all_string_line_numbers: + if issue_id in ['e501']: + continue + + # We must offset by 1 for lines that contain the trailing contents of + # multiline strings. + if not aggressive and (r['line'] + 1) in all_string_line_numbers: + # Do not modify multiline strings in non-aggressive mode. Remove + # trailing whitespace could break doctests. + if issue_id.startswith(('w29', 'w39')): + continue + + if aggressive <= 0: + if issue_id.startswith(('e711', 'e72', 'w6')): + continue + + if aggressive <= 1: + if issue_id.startswith(('e712', 'e713', 'e714')): + continue + + if aggressive <= 2: + if issue_id.startswith(('e704')): + continue + + if r['line'] in commented_out_code_line_numbers: + if issue_id.startswith(('e26', 'e501')): + continue + + # Do not touch indentation if there is a token error caused by + # incomplete multi-line statement. Otherwise, we risk screwing up the + # indentation. + if has_e901: + if issue_id.startswith(('e1', 'e7')): + continue + + yield r + + +def multiline_string_lines(source, include_docstrings=False): + """Return line numbers that are within multiline strings. + + The line numbers are indexed at 1. + + Docstrings are ignored. + + """ + line_numbers = set() + previous_token_type = '' + try: + for t in generate_tokens(source): + token_type = t[0] + start_row = t[2][0] + end_row = t[3][0] + + if token_type == tokenize.STRING and start_row != end_row: + if ( + include_docstrings or + previous_token_type != tokenize.INDENT + ): + # We increment by one since we want the contents of the + # string. + line_numbers |= set(range(1 + start_row, 1 + end_row)) + + previous_token_type = token_type + except (SyntaxError, tokenize.TokenError): + pass + + return line_numbers + + +def commented_out_code_lines(source): + """Return line numbers of comments that are likely code. + + Commented-out code is bad practice, but modifying it just adds even + more clutter. + + """ + line_numbers = [] + try: + for t in generate_tokens(source): + token_type = t[0] + token_string = t[1] + start_row = t[2][0] + line = t[4] + + # Ignore inline comments. + if not line.lstrip().startswith('#'): + continue + + if token_type == tokenize.COMMENT: + stripped_line = token_string.lstrip('#').strip() + with warnings.catch_warnings(): + # ignore SyntaxWarning in Python3.8+ + # refs: + # https://bugs.python.org/issue15248 + # https://docs.python.org/3.8/whatsnew/3.8.html#other-language-changes + warnings.filterwarnings("ignore", category=SyntaxWarning) + if ( + ' ' in stripped_line and + '#' not in stripped_line and + check_syntax(stripped_line) + ): + line_numbers.append(start_row) + except (SyntaxError, tokenize.TokenError): + pass + + return line_numbers + + +def shorten_comment(line, max_line_length, last_comment=False): + """Return trimmed or split long comment line. + + If there are no comments immediately following it, do a text wrap. + Doing this wrapping on all comments in general would lead to jagged + comment text. + + """ + assert len(line) > max_line_length + line = line.rstrip() + + # PEP 8 recommends 72 characters for comment text. + indentation = _get_indentation(line) + '# ' + max_line_length = min(max_line_length, + len(indentation) + 72) + + MIN_CHARACTER_REPEAT = 5 + if ( + len(line) - len(line.rstrip(line[-1])) >= MIN_CHARACTER_REPEAT and + not line[-1].isalnum() + ): + # Trim comments that end with things like --------- + return line[:max_line_length] + '\n' + elif last_comment and re.match(r'\s*#+\s*\w+', line): + split_lines = textwrap.wrap(line.lstrip(' \t#'), + initial_indent=indentation, + subsequent_indent=indentation, + width=max_line_length, + break_long_words=False, + break_on_hyphens=False) + return '\n'.join(split_lines) + '\n' + + return line + '\n' + + +def normalize_line_endings(lines, newline): + """Return fixed line endings. + + All lines will be modified to use the most common line ending. + + """ + return [line.rstrip('\n\r') + newline for line in lines] + + +def mutual_startswith(a, b): + return b.startswith(a) or a.startswith(b) + + +def code_match(code, select, ignore): + if ignore: + assert not isinstance(ignore, unicode) + for ignored_code in [c.strip() for c in ignore]: + if mutual_startswith(code.lower(), ignored_code.lower()): + return False + + if select: + assert not isinstance(select, unicode) + for selected_code in [c.strip() for c in select]: + if mutual_startswith(code.lower(), selected_code.lower()): + return True + return False + + return True + + +def fix_code(source, options=None, encoding=None, apply_config=False): + """Return fixed source code. + + "encoding" will be used to decode "source" if it is a byte string. + + """ + options = _get_options(options, apply_config) + + if not isinstance(source, unicode): + source = source.decode(encoding or get_encoding()) + + sio = io.StringIO(source) + return fix_lines(sio.readlines(), options=options) + + +def _get_options(raw_options, apply_config): + """Return parsed options.""" + if not raw_options: + return parse_args([''], apply_config=apply_config) + + if isinstance(raw_options, dict): + options = parse_args([''], apply_config=apply_config) + for name, value in raw_options.items(): + if not hasattr(options, name): + raise ValueError("No such option '{}'".format(name)) + + # Check for very basic type errors. + expected_type = type(getattr(options, name)) + if not isinstance(expected_type, (str, unicode)): + if isinstance(value, (str, unicode)): + raise ValueError( + "Option '{}' should not be a string".format(name)) + setattr(options, name, value) + else: + options = raw_options + + return options + + +def fix_lines(source_lines, options, filename=''): + """Return fixed source code.""" + # Transform everything to line feed. Then change them back to original + # before returning fixed source code. + original_newline = find_newline(source_lines) + tmp_source = ''.join(normalize_line_endings(source_lines, '\n')) + + # Keep a history to break out of cycles. + previous_hashes = set() + + if options.line_range: + # Disable "apply_local_fixes()" for now due to issue #175. + fixed_source = tmp_source + else: + pep8_options = { + 'ignore': options.ignore, + 'select': options.select, + 'max_line_length': options.max_line_length, + 'hang_closing': options.hang_closing, + } + sio = io.StringIO(tmp_source) + contents = sio.readlines() + results = _execute_pep8(pep8_options, contents) + codes = {result['id'] for result in results + if result['id'] in SELECTED_GLOBAL_FIXED_METHOD_CODES} + # Apply global fixes only once (for efficiency). + fixed_source = apply_global_fixes(tmp_source, + options, + filename=filename, + codes=codes) + + passes = 0 + long_line_ignore_cache = set() + while hash(fixed_source) not in previous_hashes: + if options.pep8_passes >= 0 and passes > options.pep8_passes: + break + passes += 1 + + previous_hashes.add(hash(fixed_source)) + + tmp_source = copy.copy(fixed_source) + + fix = FixPEP8( + filename, + options, + contents=tmp_source, + long_line_ignore_cache=long_line_ignore_cache) + + fixed_source = fix.fix() + + sio = io.StringIO(fixed_source) + return ''.join(normalize_line_endings(sio.readlines(), original_newline)) + + +def fix_file(filename, options=None, output=None, apply_config=False): + if not options: + options = parse_args([filename], apply_config=apply_config) + + original_source = readlines_from_file(filename) + + fixed_source = original_source + + if options.in_place or options.diff or output: + encoding = detect_encoding(filename) + + if output: + output = LineEndingWrapper(wrap_output(output, encoding=encoding)) + + fixed_source = fix_lines(fixed_source, options, filename=filename) + + if options.diff: + new = io.StringIO(fixed_source) + new = new.readlines() + diff = get_diff_text(original_source, new, filename) + if output: + output.write(diff) + output.flush() + elif options.jobs > 1: + diff = diff.encode(encoding) + return diff + elif options.in_place: + original = "".join(original_source).splitlines() + fixed = fixed_source.splitlines() + original_source_last_line = ( + original_source[-1].split("\n")[-1] if original_source else "" + ) + fixed_source_last_line = fixed_source.split("\n")[-1] + if original != fixed or ( + original_source_last_line != fixed_source_last_line + ): + with open_with_encoding(filename, 'w', encoding=encoding) as fp: + fp.write(fixed_source) + return fixed_source + return None + else: + if output: + output.write(fixed_source) + output.flush() + return fixed_source + + +def global_fixes(): + """Yield multiple (code, function) tuples.""" + for function in list(globals().values()): + if inspect.isfunction(function): + arguments = _get_parameters(function) + if arguments[:1] != ['source']: + continue + + code = extract_code_from_function(function) + if code: + yield (code, function) + + +def _get_parameters(function): + # pylint: disable=deprecated-method + if sys.version_info.major >= 3: + # We need to match "getargspec()", which includes "self" as the first + # value for methods. + # https://bugs.python.org/issue17481#msg209469 + if inspect.ismethod(function): + function = function.__func__ + + return list(inspect.signature(function).parameters) + else: + return inspect.getargspec(function)[0] + + +def apply_global_fixes(source, options, where='global', filename='', + codes=None): + """Run global fixes on source code. + + These are fixes that only need be done once (unlike those in + FixPEP8, which are dependent on pycodestyle). + + """ + if codes is None: + codes = [] + if any(code_match(code, select=options.select, ignore=options.ignore) + for code in ['E101', 'E111']): + source = reindent(source, + indent_size=options.indent_size) + + for (code, function) in global_fixes(): + if code.upper() in SELECTED_GLOBAL_FIXED_METHOD_CODES \ + and code.upper() not in codes: + continue + if code_match(code, select=options.select, ignore=options.ignore): + if options.verbose: + print('---> Applying {} fix for {}'.format(where, + code.upper()), + file=sys.stderr) + source = function(source, + aggressive=options.aggressive) + + source = fix_2to3(source, + aggressive=options.aggressive, + select=options.select, + ignore=options.ignore, + filename=filename, + where=where, + verbose=options.verbose) + + return source + + +def extract_code_from_function(function): + """Return code handled by function.""" + if not function.__name__.startswith('fix_'): + return None + + code = re.sub('^fix_', '', function.__name__) + if not code: + return None + + try: + int(code[1:]) + except ValueError: + return None + + return code + + +def _get_package_version(): + packages = ["pycodestyle: {}".format(pycodestyle.__version__)] + return ", ".join(packages) + + +def create_parser(): + """Return command-line parser.""" + parser = argparse.ArgumentParser(description=docstring_summary(__doc__), + prog='autopep8') + parser.add_argument('--version', action='version', + version='%(prog)s {} ({})'.format( + __version__, _get_package_version())) + parser.add_argument('-v', '--verbose', action='count', + default=0, + help='print verbose messages; ' + 'multiple -v result in more verbose messages') + parser.add_argument('-d', '--diff', action='store_true', + help='print the diff for the fixed source') + parser.add_argument('-i', '--in-place', action='store_true', + help='make changes to files in place') + parser.add_argument('--global-config', metavar='filename', + default=DEFAULT_CONFIG, + help='path to a global pep8 config file; if this file ' + 'does not exist then this is ignored ' + '(default: {})'.format(DEFAULT_CONFIG)) + parser.add_argument('--ignore-local-config', action='store_true', + help="don't look for and apply local config files; " + 'if not passed, defaults are updated with any ' + "config files in the project's root directory") + parser.add_argument('-r', '--recursive', action='store_true', + help='run recursively over directories; ' + 'must be used with --in-place or --diff') + parser.add_argument('-j', '--jobs', type=int, metavar='n', default=1, + help='number of parallel jobs; ' + 'match CPU count if value is less than 1') + parser.add_argument('-p', '--pep8-passes', metavar='n', + default=-1, type=int, + help='maximum number of additional pep8 passes ' + '(default: infinite)') + parser.add_argument('-a', '--aggressive', action='count', default=0, + help='enable non-whitespace changes; ' + 'multiple -a result in more aggressive changes') + parser.add_argument('--experimental', action='store_true', + help='enable experimental fixes') + parser.add_argument('--exclude', metavar='globs', + help='exclude file/directory names that match these ' + 'comma-separated globs') + parser.add_argument('--list-fixes', action='store_true', + help='list codes for fixes; ' + 'used by --ignore and --select') + parser.add_argument('--ignore', metavar='errors', default='', + help='do not fix these errors/warnings ' + '(default: {})'.format(DEFAULT_IGNORE)) + parser.add_argument('--select', metavar='errors', default='', + help='fix only these errors/warnings (e.g. E4,W)') + parser.add_argument('--max-line-length', metavar='n', default=79, type=int, + help='set maximum allowed line length ' + '(default: %(default)s)') + parser.add_argument('--line-range', '--range', metavar='line', + default=None, type=int, nargs=2, + help='only fix errors found within this inclusive ' + 'range of line numbers (e.g. 1 99); ' + 'line numbers are indexed at 1') + parser.add_argument('--indent-size', default=DEFAULT_INDENT_SIZE, + type=int, help=argparse.SUPPRESS) + parser.add_argument('--hang-closing', action='store_true', + help='hang-closing option passed to pycodestyle') + parser.add_argument('--exit-code', action='store_true', + help='change to behavior of exit code.' + ' default behavior of return value, 0 is no ' + 'differences, 1 is error exit. return 2 when' + ' add this option. 2 is exists differences.') + parser.add_argument('files', nargs='*', + help="files to format or '-' for standard in") + + return parser + + +def _expand_codes(codes, ignore_codes): + """expand to individual E/W codes""" + ret = set() + + is_conflict = False + if all( + any( + conflicting_code.startswith(code) + for code in codes + ) + for conflicting_code in CONFLICTING_CODES + ): + is_conflict = True + + is_ignore_w503 = "W503" in ignore_codes + is_ignore_w504 = "W504" in ignore_codes + + for code in codes: + if code == "W": + if is_ignore_w503 and is_ignore_w504: + ret.update({"W1", "W2", "W3", "W505", "W6"}) + elif is_ignore_w503: + ret.update({"W1", "W2", "W3", "W504", "W505", "W6"}) + else: + ret.update({"W1", "W2", "W3", "W503", "W505", "W6"}) + elif code in ("W5", "W50"): + if is_ignore_w503 and is_ignore_w504: + ret.update({"W505"}) + elif is_ignore_w503: + ret.update({"W504", "W505"}) + else: + ret.update({"W503", "W505"}) + elif not (code in ("W503", "W504") and is_conflict): + ret.add(code) + + return ret + + +def parse_args(arguments, apply_config=False): + """Parse command-line options.""" + parser = create_parser() + args = parser.parse_args(arguments) + + if not args.files and not args.list_fixes: + parser.exit(EXIT_CODE_ARGPARSE_ERROR, 'incorrect number of arguments') + + args.files = [decode_filename(name) for name in args.files] + + if apply_config: + parser = read_config(args, parser) + # prioritize settings when exist pyproject.toml's tool.autopep8 section + try: + parser_with_pyproject_toml = read_pyproject_toml(args, parser) + except Exception: + parser_with_pyproject_toml = None + if parser_with_pyproject_toml: + parser = parser_with_pyproject_toml + args = parser.parse_args(arguments) + args.files = [decode_filename(name) for name in args.files] + + if '-' in args.files: + if len(args.files) > 1: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + 'cannot mix stdin and regular files', + ) + + if args.diff: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--diff cannot be used with standard input', + ) + + if args.in_place: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--in-place cannot be used with standard input', + ) + + if args.recursive: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--recursive cannot be used with standard input', + ) + + if len(args.files) > 1 and not (args.in_place or args.diff): + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + 'autopep8 only takes one filename as argument ' + 'unless the "--in-place" or "--diff" args are used', + ) + + if args.recursive and not (args.in_place or args.diff): + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--recursive must be used with --in-place or --diff', + ) + + if args.in_place and args.diff: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--in-place and --diff are mutually exclusive', + ) + + if args.max_line_length <= 0: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--max-line-length must be greater than 0', + ) + + if args.indent_size <= 0: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--indent-size must be greater than 0', + ) + + if args.select: + args.select = _expand_codes( + _split_comma_separated(args.select), + (_split_comma_separated(args.ignore) if args.ignore else []) + ) + + if args.ignore: + args.ignore = _split_comma_separated(args.ignore) + if all( + not any( + conflicting_code.startswith(ignore_code) + for ignore_code in args.ignore + ) + for conflicting_code in CONFLICTING_CODES + ): + args.ignore.update(CONFLICTING_CODES) + elif not args.select: + if args.aggressive: + # Enable everything by default if aggressive. + args.select = {'E', 'W1', 'W2', 'W3', 'W6'} + else: + args.ignore = _split_comma_separated(DEFAULT_IGNORE) + + if args.exclude: + args.exclude = _split_comma_separated(args.exclude) + else: + args.exclude = {} + + if args.jobs < 1: + # Do not import multiprocessing globally in case it is not supported + # on the platform. + import multiprocessing + args.jobs = multiprocessing.cpu_count() + + if args.jobs > 1 and not (args.in_place or args.diff): + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + 'parallel jobs requires --in-place', + ) + + if args.line_range: + if args.line_range[0] <= 0: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + '--range must be positive numbers', + ) + if args.line_range[0] > args.line_range[1]: + parser.exit( + EXIT_CODE_ARGPARSE_ERROR, + 'First value of --range should be less than or equal ' + 'to the second', + ) + + return args + + +def _get_normalize_options(config, section, option_list): + for (k, _) in config.items(section): + norm_opt = k.lstrip('-').replace('-', '_') + if not option_list.get(norm_opt): + continue + opt_type = option_list[norm_opt] + if opt_type is int: + value = config.getint(section, k) + elif opt_type is bool: + value = config.getboolean(section, k) + else: + value = config.get(section, k) + yield norm_opt, k, value + + +def read_config(args, parser): + """Read both user configuration and local configuration.""" + config = SafeConfigParser() + + try: + config.read(args.global_config) + + if not args.ignore_local_config: + parent = tail = args.files and os.path.abspath( + os.path.commonprefix(args.files)) + while tail: + if config.read([os.path.join(parent, fn) + for fn in PROJECT_CONFIG]): + break + (parent, tail) = os.path.split(parent) + + defaults = {} + option_list = {o.dest: o.type or type(o.default) + for o in parser._actions} + + for section in ['pep8', 'pycodestyle', 'flake8']: + if not config.has_section(section): + continue + for norm_opt, k, value in _get_normalize_options(config, section, + option_list): + if args.verbose: + print("enable config: section={}, key={}, value={}".format( + section, k, value)) + defaults[norm_opt] = value + + parser.set_defaults(**defaults) + except Error: + # Ignore for now. + pass + + return parser + + +def read_pyproject_toml(args, parser): + """Read pyproject.toml and load configuration.""" + import toml + + config = None + + if os.path.exists(args.global_config): + with open(args.global_config) as fp: + config = toml.load(fp) + + if not args.ignore_local_config: + parent = tail = args.files and os.path.abspath( + os.path.commonprefix(args.files)) + while tail: + pyproject_toml = os.path.join(parent, "pyproject.toml") + if os.path.exists(pyproject_toml): + with open(pyproject_toml) as fp: + config = toml.load(fp) + break + (parent, tail) = os.path.split(parent) + + if not config: + return None + + if config.get("tool", {}).get("autopep8") is None: + return None + + config = config.get("tool").get("autopep8") + + defaults = {} + option_list = {o.dest: o.type or type(o.default) + for o in parser._actions} + + TUPLED_OPTIONS = ("ignore", "select") + for (k, v) in config.items(): + norm_opt = k.lstrip('-').replace('-', '_') + if not option_list.get(norm_opt): + continue + if type(v) in (list, tuple) and norm_opt in TUPLED_OPTIONS: + value = ",".join(v) + else: + value = v + if args.verbose: + print("enable pyproject.toml config: " + "key={}, value={}".format(k, value)) + defaults[norm_opt] = value + + if defaults: + # set value when exists key-value in defaults dict + parser.set_defaults(**defaults) + + return parser + + +def _split_comma_separated(string): + """Return a set of strings.""" + return {text.strip() for text in string.split(',') if text.strip()} + + +def decode_filename(filename): + """Return Unicode filename.""" + if isinstance(filename, unicode): + return filename + + return filename.decode(sys.getfilesystemencoding()) + + +def supported_fixes(): + """Yield pep8 error codes that autopep8 fixes. + + Each item we yield is a tuple of the code followed by its + description. + + """ + yield ('E101', docstring_summary(reindent.__doc__)) + + instance = FixPEP8(filename=None, options=None, contents='') + for attribute in dir(instance): + code = re.match('fix_([ew][0-9][0-9][0-9])', attribute) + if code: + yield ( + code.group(1).upper(), + re.sub(r'\s+', ' ', + docstring_summary(getattr(instance, attribute).__doc__)) + ) + + for (code, function) in sorted(global_fixes()): + yield (code.upper() + (4 - len(code)) * ' ', + re.sub(r'\s+', ' ', docstring_summary(function.__doc__))) + + for code in sorted(CODE_TO_2TO3): + yield (code.upper() + (4 - len(code)) * ' ', + re.sub(r'\s+', ' ', docstring_summary(fix_2to3.__doc__))) + + +def docstring_summary(docstring): + """Return summary of docstring.""" + return docstring.split('\n')[0] if docstring else '' + + +def line_shortening_rank(candidate, indent_word, max_line_length, + experimental=False): + """Return rank of candidate. + + This is for sorting candidates. + + """ + if not candidate.strip(): + return 0 + + rank = 0 + lines = candidate.rstrip().split('\n') + + offset = 0 + if ( + not lines[0].lstrip().startswith('#') and + lines[0].rstrip()[-1] not in '([{' + ): + for (opening, closing) in ('()', '[]', '{}'): + # Don't penalize empty containers that aren't split up. Things like + # this "foo(\n )" aren't particularly good. + opening_loc = lines[0].find(opening) + closing_loc = lines[0].find(closing) + if opening_loc >= 0: + if closing_loc < 0 or closing_loc != opening_loc + 1: + offset = max(offset, 1 + opening_loc) + + current_longest = max(offset + len(x.strip()) for x in lines) + + rank += 4 * max(0, current_longest - max_line_length) + + rank += len(lines) + + # Too much variation in line length is ugly. + rank += 2 * standard_deviation(len(line) for line in lines) + + bad_staring_symbol = { + '(': ')', + '[': ']', + '{': '}'}.get(lines[0][-1]) + + if len(lines) > 1: + if ( + bad_staring_symbol and + lines[1].lstrip().startswith(bad_staring_symbol) + ): + rank += 20 + + for lineno, current_line in enumerate(lines): + current_line = current_line.strip() + + if current_line.startswith('#'): + continue + + for bad_start in ['.', '%', '+', '-', '/']: + if current_line.startswith(bad_start): + rank += 100 + + # Do not tolerate operators on their own line. + if current_line == bad_start: + rank += 1000 + + if ( + current_line.endswith(('.', '%', '+', '-', '/')) and + "': " in current_line + ): + rank += 1000 + + if current_line.endswith(('(', '[', '{', '.')): + # Avoid lonely opening. They result in longer lines. + if len(current_line) <= len(indent_word): + rank += 100 + + # Avoid the ugliness of ", (\n". + if ( + current_line.endswith('(') and + current_line[:-1].rstrip().endswith(',') + ): + rank += 100 + + # Avoid the ugliness of "something[\n" and something[index][\n. + if ( + current_line.endswith('[') and + len(current_line) > 1 and + (current_line[-2].isalnum() or current_line[-2] in ']') + ): + rank += 300 + + # Also avoid the ugliness of "foo.\nbar" + if current_line.endswith('.'): + rank += 100 + + if has_arithmetic_operator(current_line): + rank += 100 + + # Avoid breaking at unary operators. + if re.match(r'.*[(\[{]\s*[\-\+~]$', current_line.rstrip('\\ ')): + rank += 1000 + + if re.match(r'.*lambda\s*\*$', current_line.rstrip('\\ ')): + rank += 1000 + + if current_line.endswith(('%', '(', '[', '{')): + rank -= 20 + + # Try to break list comprehensions at the "for". + if current_line.startswith('for '): + rank -= 50 + + if current_line.endswith('\\'): + # If a line ends in \-newline, it may be part of a + # multiline string. In that case, we would like to know + # how long that line is without the \-newline. If it's + # longer than the maximum, or has comments, then we assume + # that the \-newline is an okay candidate and only + # penalize it a bit. + total_len = len(current_line) + lineno += 1 + while lineno < len(lines): + total_len += len(lines[lineno]) + + if lines[lineno].lstrip().startswith('#'): + total_len = max_line_length + break + + if not lines[lineno].endswith('\\'): + break + + lineno += 1 + + if total_len < max_line_length: + rank += 10 + else: + rank += 100 if experimental else 1 + + # Prefer breaking at commas rather than colon. + if ',' in current_line and current_line.endswith(':'): + rank += 10 + + # Avoid splitting dictionaries between key and value. + if current_line.endswith(':'): + rank += 100 + + rank += 10 * count_unbalanced_brackets(current_line) + + return max(0, rank) + + +def standard_deviation(numbers): + """Return standard deviation.""" + numbers = list(numbers) + if not numbers: + return 0 + mean = sum(numbers) / len(numbers) + return (sum((n - mean) ** 2 for n in numbers) / + len(numbers)) ** .5 + + +def has_arithmetic_operator(line): + """Return True if line contains any arithmetic operators.""" + for operator in pycodestyle.ARITHMETIC_OP: + if operator in line: + return True + + return False + + +def count_unbalanced_brackets(line): + """Return number of unmatched open/close brackets.""" + count = 0 + for opening, closing in ['()', '[]', '{}']: + count += abs(line.count(opening) - line.count(closing)) + + return count + + +def split_at_offsets(line, offsets): + """Split line at offsets. + + Return list of strings. + + """ + result = [] + + previous_offset = 0 + current_offset = 0 + for current_offset in sorted(offsets): + if current_offset < len(line) and previous_offset != current_offset: + result.append(line[previous_offset:current_offset].strip()) + previous_offset = current_offset + + result.append(line[current_offset:]) + + return result + + +class LineEndingWrapper(object): + + r"""Replace line endings to work with sys.stdout. + + It seems that sys.stdout expects only '\n' as the line ending, no matter + the platform. Otherwise, we get repeated line endings. + + """ + + def __init__(self, output): + self.__output = output + + def write(self, s): + self.__output.write(s.replace('\r\n', '\n').replace('\r', '\n')) + + def flush(self): + self.__output.flush() + + +def match_file(filename, exclude): + """Return True if file is okay for modifying/recursing.""" + base_name = os.path.basename(filename) + + if base_name.startswith('.'): + return False + + for pattern in exclude: + if fnmatch.fnmatch(base_name, pattern): + return False + if fnmatch.fnmatch(filename, pattern): + return False + + if not os.path.isdir(filename) and not is_python_file(filename): + return False + + return True + + +def find_files(filenames, recursive, exclude): + """Yield filenames.""" + while filenames: + name = filenames.pop(0) + if recursive and os.path.isdir(name): + for root, directories, children in os.walk(name): + filenames += [os.path.join(root, f) for f in children + if match_file(os.path.join(root, f), + exclude)] + directories[:] = [d for d in directories + if match_file(os.path.join(root, d), + exclude)] + else: + is_exclude_match = False + for pattern in exclude: + if fnmatch.fnmatch(name, pattern): + is_exclude_match = True + break + if not is_exclude_match: + yield name + + +def _fix_file(parameters): + """Helper function for optionally running fix_file() in parallel.""" + if parameters[1].verbose: + print('[file:{}]'.format(parameters[0]), file=sys.stderr) + try: + return fix_file(*parameters) + except IOError as error: + print(unicode(error), file=sys.stderr) + raise error + + +def fix_multiple_files(filenames, options, output=None): + """Fix list of files. + + Optionally fix files recursively. + + """ + results = [] + filenames = find_files(filenames, options.recursive, options.exclude) + if options.jobs > 1: + import multiprocessing + pool = multiprocessing.Pool(options.jobs) + rets = [] + for name in filenames: + ret = pool.apply_async(_fix_file, ((name, options),)) + rets.append(ret) + pool.close() + pool.join() + if options.diff: + for r in rets: + sys.stdout.write(r.get().decode()) + sys.stdout.flush() + results.extend([x.get() for x in rets if x is not None]) + else: + for name in filenames: + ret = _fix_file((name, options, output)) + if ret is None: + continue + if options.diff: + if ret != '': + results.append(ret) + elif options.in_place: + results.append(ret) + else: + original_source = readlines_from_file(name) + if "".join(original_source).splitlines() != ret.splitlines(): + results.append(ret) + return results + + +def is_python_file(filename): + """Return True if filename is Python file.""" + if filename.endswith('.py'): + return True + + try: + with open_with_encoding( + filename, + limit_byte_check=MAX_PYTHON_FILE_DETECTION_BYTES) as f: + text = f.read(MAX_PYTHON_FILE_DETECTION_BYTES) + if not text: + return False + first_line = text.splitlines()[0] + except (IOError, IndexError): + return False + + if not PYTHON_SHEBANG_REGEX.match(first_line): + return False + + return True + + +def is_probably_part_of_multiline(line): + """Return True if line is likely part of a multiline string. + + When multiline strings are involved, pep8 reports the error as being + at the start of the multiline string, which doesn't work for us. + + """ + return ( + '"""' in line or + "'''" in line or + line.rstrip().endswith('\\') + ) + + +def wrap_output(output, encoding): + """Return output with specified encoding.""" + return codecs.getwriter(encoding)(output.buffer + if hasattr(output, 'buffer') + else output) + + +def get_encoding(): + """Return preferred encoding.""" + return locale.getpreferredencoding() or sys.getdefaultencoding() + + +def main(argv=None, apply_config=True): + """Command-line entry.""" + if argv is None: + argv = sys.argv + + try: + # Exit on broken pipe. + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + except AttributeError: # pragma: no cover + # SIGPIPE is not available on Windows. + pass + + try: + args = parse_args(argv[1:], apply_config=apply_config) + + if args.list_fixes: + for code, description in sorted(supported_fixes()): + print('{code} - {description}'.format( + code=code, description=description)) + return EXIT_CODE_OK + + if args.files == ['-']: + assert not args.in_place + + encoding = sys.stdin.encoding or get_encoding() + read_stdin = sys.stdin.read() + fixed_stdin = fix_code(read_stdin, args, encoding=encoding) + + # LineEndingWrapper is unnecessary here due to the symmetry between + # standard in and standard out. + wrap_output(sys.stdout, encoding=encoding).write(fixed_stdin) + + if hash(read_stdin) != hash(fixed_stdin): + if args.exit_code: + return EXIT_CODE_EXISTS_DIFF + else: + if args.in_place or args.diff: + args.files = list(set(args.files)) + else: + assert len(args.files) == 1 + assert not args.recursive + + results = fix_multiple_files(args.files, args, sys.stdout) + if args.diff: + ret = any([len(ret) != 0 for ret in results]) + else: + # with in-place option + ret = any([ret is not None for ret in results]) + if args.exit_code and ret: + return EXIT_CODE_EXISTS_DIFF + except IOError: + return EXIT_CODE_ERROR + except KeyboardInterrupt: + return EXIT_CODE_ERROR # pragma: no cover + + +class CachedTokenizer(object): + + """A one-element cache around tokenize.generate_tokens(). + + Original code written by Ned Batchelder, in coverage.py. + + """ + + def __init__(self): + self.last_text = None + self.last_tokens = None + + def generate_tokens(self, text): + """A stand-in for tokenize.generate_tokens().""" + if text != self.last_text: + string_io = io.StringIO(text) + self.last_tokens = list( + tokenize.generate_tokens(string_io.readline) + ) + self.last_text = text + return self.last_tokens + + +_cached_tokenizer = CachedTokenizer() +generate_tokens = _cached_tokenizer.generate_tokens + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/INSTALLER b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/LICENSE b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/LICENSE new file mode 100644 index 00000000..802b53ff --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/LICENSE @@ -0,0 +1,21 @@ +This packge contains a modified version of ca-bundle.crt: + +ca-bundle.crt -- Bundle of CA Root Certificates + +Certificate data from Mozilla as of: Thu Nov 3 19:04:19 2011# +This is a bundle of X.509 certificates of public Certificate Authorities +(CA). These were automatically extracted from Mozilla's root certificates +file (certdata.txt). This file can be found in the mozilla source tree: +http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1# +It contains the certificates in PEM format and therefore +can be directly used with curl / libcurl / php_curl, or with +an Apache+mod_ssl webserver for SSL client authentication. +Just configure this file as the SSLCACertificateFile.# + +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. + +***** END LICENSE BLOCK ***** +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $ diff --git a/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/METADATA b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/METADATA new file mode 100644 index 00000000..34cf089c --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/METADATA @@ -0,0 +1,83 @@ +Metadata-Version: 2.1 +Name: certifi +Version: 2020.12.5 +Summary: Python package for providing Mozilla's CA Bundle. +Home-page: https://certifiio.readthedocs.io/en/latest/ +Author: Kenneth Reitz +Author-email: me@kennethreitz.com +License: MPL-2.0 +Project-URL: Documentation, https://certifiio.readthedocs.io/en/latest/ +Project-URL: Source, https://github.com/certifi/python-certifi +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0) +Classifier: Natural Language :: English +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 + +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! + +1024-bit Root Certificates +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Browsers and certificate authorities have concluded that 1024-bit keys are +unacceptably weak for certificates, particularly root certificates. For this +reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its +bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key) +certificate from the same CA. Because Mozilla removed these certificates from +its bundle, ``certifi`` removed them as well. + +In previous versions, ``certifi`` provided the ``certifi.old_where()`` function +to intentionally re-add the 1024-bit roots back into your bundle. This was not +recommended in production and therefore was removed at the end of 2018. + +.. _`Certifi`: https://certifiio.readthedocs.io/en/latest/ +.. _`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/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/RECORD b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/RECORD new file mode 100644 index 00000000..c5eb2318 --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/RECORD @@ -0,0 +1,13 @@ +certifi-2020.12.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +certifi-2020.12.5.dist-info/LICENSE,sha256=anCkv2sBABbVmmS4rkrY3H9e8W8ftFPMLs13HFo0ETE,1048 +certifi-2020.12.5.dist-info/METADATA,sha256=SEw5GGHIeBwGwDJsIUaVfEQAc5Jqs_XofOfTX-_kCE0,2994 +certifi-2020.12.5.dist-info/RECORD,, +certifi-2020.12.5.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110 +certifi-2020.12.5.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 +certifi/__init__.py,sha256=SsmdmFHjHCY4VLtqwpp9P_jsOcAuHj-5c5WqoEz-oFg,62 +certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 +certifi/__pycache__/__init__.cpython-39.pyc,, +certifi/__pycache__/__main__.cpython-39.pyc,, +certifi/__pycache__/core.cpython-39.pyc,, +certifi/cacert.pem,sha256=u3fxPT--yemLvyislQRrRBlsfY9Vq3cgBh6ZmRqCkZc,263774 +certifi/core.py,sha256=V0uyxKOYdz6ulDSusclrLmjbPgOXsD0BnEf0SQ7OnoE,2303 diff --git a/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/WHEEL b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/WHEEL new file mode 100644 index 00000000..6d38aa06 --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.35.1) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/top_level.txt b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/top_level.txt new file mode 100644 index 00000000..963eac53 --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi-2020.12.5.dist-info/top_level.txt @@ -0,0 +1 @@ +certifi diff --git a/venv/lib/python3.9/site-packages/certifi/__init__.py b/venv/lib/python3.9/site-packages/certifi/__init__.py new file mode 100644 index 00000000..17aaf900 --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi/__init__.py @@ -0,0 +1,3 @@ +from .core import contents, where + +__version__ = "2020.12.05" diff --git a/venv/lib/python3.9/site-packages/certifi/__main__.py b/venv/lib/python3.9/site-packages/certifi/__main__.py new file mode 100644 index 00000000..8945b5da --- /dev/null +++ b/venv/lib/python3.9/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/venv/lib/python3.9/site-packages/certifi/__pycache__/__init__.cpython-39.pyc b/venv/lib/python3.9/site-packages/certifi/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..40c78c718b31bbd3e3d29f5b54dff2f0d808a073 GIT binary patch literal 263 zcmYk0K}y6h7=@FxBg4pmORvyH`*$iX1Q|Sm8xf?N7?apgH2p3)`TUTDe z)g(I~{O{-S!Q+YbdPR~JpWlz$^nY^rFP6ehI)9!_5k&_w(w>g2XOt+`7pk};RryO3 zu2@`3YXX|!^HW;8Pl`U$2(*jsbaT!GgC>q*F0u|p3MUC_@OIM+r8 V&YS5Fm)E0JZv$@gWS^&;u_NS9M9%;K literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/certifi/__pycache__/__main__.cpython-39.pyc b/venv/lib/python3.9/site-packages/certifi/__pycache__/__main__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9dd1af69088294aba4ae84915ae0a49d7472c0bb GIT binary patch literal 428 zcmYjLu};G<5Vf5;4N+V18yQj$Oh^d9%7Bm%Qk5l`_-I`cC$in5cJ0i_UPcCf$SV^w z8xwXwh?D&8-n;X=81!aw+ zj|pqBQ8YgKlVMB_G;k94SJ-Vmdd^&JqcC;zGm#kI~c|VXPs`BP+7y)Qb3#c zm*rJ0*&5WE)$)#Y8@p)L(e#)ZX(8`;^}y#~*zbv~EE_IWSx&o+OHP_rtZF#Levb*u P5^_iqe25bg;}Q7=Ce(Tj literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/certifi/__pycache__/core.cpython-39.pyc b/venv/lib/python3.9/site-packages/certifi/__pycache__/core.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ad83f219e24ccf613921e7c176466f148877258 GIT binary patch literal 1154 zcmZuvJ8u**5VpPEyUpGO@sfB5p%tRJBDWw!frt<&iUduB;1J}R#jJffhrRV_>;w`8 znxu`W=#w%9f5j}Buw zH@mS)YIcXnRCe%wD%nfYo8MMxsle%x?oYSU&wnIM2V-rsiIE$X%0RgdsBPxPD$})f zqN;?`rp_u;&I~ikN)dkQPt_zdkZEVL($r4X&i2zESPog~G0&&Mjr|-bAq%HIx-taL zN`%f5ZhH%rLk>0w+;lYXu*(E^oOHY=TUkr-p zPXjl$FjmRlS*4`dvQVa${59>p#e?c4}cN%J*VT+58w>Ug8Vn*vB8n3e<&AV(2zW zl1@sy4Cc}Hv9P7qWgy{1I2z$%L&_o=jySrDgR#RT+mF6n{S@s)2kel%CJgD~xOO9o z)Z8Vuf2SD*N>;-_9MeVNi26j;rIET`>qVZMsj6rBd1y?J`*tzwypJ2sAi(up3MWqa zfi50GfSTjB0VkmsX>(Er=R_zPA=*@M9Suj;=>fL#kbaukd>GPs%Az)`93+B@rUTyfR|9Xff^r$4|*NsvXG`M3b=y4zoaKq z0}dyq56YSiDAlY^Xk)k`4??@46;v}6ooCIHWdH-s-~UIlIBVIX2p`(ZsCX-3jGkwl Na@M`pjnme-)^FS{0Mq~g literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/certifi/cacert.pem b/venv/lib/python3.9/site-packages/certifi/cacert.pem new file mode 100644 index 00000000..c9459dc8 --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi/cacert.pem @@ -0,0 +1,4325 @@ + +# 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=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Label: "GlobalSign Root CA - R2" +# Serial: 4835703278459682885658125 +# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30 +# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe +# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----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 Certification Authority O=QuoVadis Limited OU=Root Certification Authority +# Subject: CN=QuoVadis Root Certification Authority O=QuoVadis Limited OU=Root Certification Authority +# Label: "QuoVadis Root CA" +# Serial: 985026699 +# MD5 Fingerprint: 27:de:36:fe:72:b7:00:03:00:9d:f4:f0:1e:6c:04:24 +# SHA1 Fingerprint: de:3f:40:bd:50:93:d3:9b:6c:60:f6:da:bc:07:62:01:00:89:76:c9 +# SHA256 Fingerprint: a4:5e:de:3b:bb:f0:9c:8a:e1:5c:72:ef:c0:72:68:d6:93:a2:1c:99:6f:d5:1e:67:ca:07:94:60:fd:6d:88:73 +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC +TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz +MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw +IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR +dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp +li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D +rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ +WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug +F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU +xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC +Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv +dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw +ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl +IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh +c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy +ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI +KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T +KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq +y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p +dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD +VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL +MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk +fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 +7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R +cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y +mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW +xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK +SnQ2+Q== +-----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=Sonera Class2 CA O=Sonera +# Subject: CN=Sonera Class2 CA O=Sonera +# Label: "Sonera Class 2 Root CA" +# Serial: 29 +# MD5 Fingerprint: a3:ec:75:0f:2e:88:df:fa:48:01:4e:0b:5c:48:6f:fb +# SHA1 Fingerprint: 37:f7:6d:e6:07:7c:90:c5:b1:3e:93:1a:b7:41:10:b4:f2:e4:9a:27 +# SHA256 Fingerprint: 79:08:b4:03:14:c1:38:10:0b:51:8d:07:35:80:7f:fb:fc:f8:51:8a:00:95:33:71:05:ba:38:6b:15:3d:d9:27 +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP +MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx +MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV +BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o +Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt +5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s +3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej +vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu +8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw +DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG +MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil +zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/ +3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD +FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6 +Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2 +ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M +-----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=DST Root CA X3 O=Digital Signature Trust Co. +# Subject: CN=DST Root CA X3 O=Digital Signature Trust Co. +# Label: "DST Root CA X3" +# Serial: 91299735575339953335919266965803778155 +# MD5 Fingerprint: 41:03:52:dc:0f:f7:50:1b:16:f0:02:8e:ba:6f:45:c5 +# SHA1 Fingerprint: da:c9:02:4f:54:d8:f6:df:94:93:5f:b1:73:26:38:ca:6a:d7:7c:13 +# SHA256 Fingerprint: 06:87:26:03:31:a7:24:03:d9:09:f1:05:e6:9b:cf:0d:32:e1:bd:24:93:ff:c6:d9:20:6d:11:bc:d6:77:07:39 +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow +PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD +Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O +rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq +OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b +xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw +7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD +aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG +SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 +ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr +AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz +R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 +JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo +Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----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----- +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 +-----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=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Label: "Network Solutions Certificate Authority" +# Serial: 116697915152937497490437556386812487904 +# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e +# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce +# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi +MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV +UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO +ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz +c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP +OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl +mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF +BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 +qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw +gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu +bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp +dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 +6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ +h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH +/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN +pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----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: CN=Cybertrust Global Root O=Cybertrust, Inc +# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc +# Label: "Cybertrust Global Root" +# Serial: 4835703278459682877484360 +# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1 +# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6 +# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3 +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG +A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh +bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE +ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS +b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 +7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS +J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y +HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP +t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz +FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY +XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ +MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw +hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js +MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA +A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj +Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx +XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o +omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc +A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----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=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Label: "GeoTrust Primary Certification Authority - G2" +# Serial: 80682863203381065782177908751794619243 +# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a +# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0 +# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66 +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL +MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj +KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 +MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw +NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV +BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH +MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL +So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal +tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG +CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT +qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz +rD6ogRLQy7rQkgu2npaqBA+K +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Universal Root Certification Authority" +# Serial: 85209574734084581917763752644031726877 +# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19 +# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54 +# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB +vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL +ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp +U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W +ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX +MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 +IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y +IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh +bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF +9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH +H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H +LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN +/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT +rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw +WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs +exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 +sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ +seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz +4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ +BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR +lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 +7M2CYfE45k+XmCpajQ== +-----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=Hongkong Post Root CA 1 O=Hongkong Post +# Subject: CN=Hongkong Post Root CA 1 O=Hongkong Post +# Label: "Hongkong Post Root CA 1" +# Serial: 1000 +# MD5 Fingerprint: a8:0d:6f:39:78:b9:43:6d:77:42:6d:98:5a:cc:23:ca +# SHA1 Fingerprint: d6:da:a8:20:8d:09:d2:15:4d:24:b5:2f:cb:34:6e:b2:58:b2:8a:58 +# SHA256 Fingerprint: f9:e6:7d:33:6c:51:00:2a:c0:54:c6:32:02:2d:66:dd:a2:e7:e3:ff:f1:0a:d0:61:ed:31:d8:bb:b4:10:cf:b2 +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx +FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg +Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG +A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr +b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ +jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn +PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh +ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9 +nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h +q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED +MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC +mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3 +7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB +oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs +EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO +fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi +AmvZWg== +-----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----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4 +MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6 +ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD +VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j +b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq +scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO +xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H +LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX +uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD +yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+ +JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q +rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN +BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L +hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB +QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+ +HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu +Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg +QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB +BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA +A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb +laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56 +awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo +JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw +LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT +VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk +LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb +UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/ +QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+ +naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls +QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +# Issuer: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A. +# Subject: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A. +# Label: "Chambers of Commerce Root - 2008" +# Serial: 11806822484801597146 +# MD5 Fingerprint: 5e:80:9e:84:5a:0e:65:0b:17:02:f3:55:18:2a:3e:d7 +# SHA1 Fingerprint: 78:6a:74:ac:76:ab:14:7f:9c:6a:30:50:ba:9e:a8:7e:fe:9a:ce:3c +# SHA256 Fingerprint: 06:3e:4a:fa:c4:91:df:d3:32:f3:08:9b:85:42:e9:46:17:d8:93:d7:fe:94:4e:10:a7:93:7e:e2:9d:96:93:c0 +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD +VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 +IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 +MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz +IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz +MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj +dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw +EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp +MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9 +28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq +VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q +DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR +5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL +ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a +Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl +UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s ++12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5 +Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx +hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV +HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1 ++HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN +YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t +L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy +ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt +IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV +HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w +DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW +PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF +5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1 +glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH +FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2 +pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD +xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG +tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq +jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De +fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ +d0jQ +-----END CERTIFICATE----- + +# Issuer: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A. +# Subject: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A. +# Label: "Global Chambersign Root - 2008" +# Serial: 14541511773111788494 +# MD5 Fingerprint: 9e:80:ff:78:01:0c:2e:c1:36:bd:fe:96:90:6e:08:f3 +# SHA1 Fingerprint: 4a:bd:ee:ec:95:0d:35:9c:89:ae:c7:52:a1:2c:5b:29:f6:d6:aa:0c +# SHA256 Fingerprint: 13:63:35:43:93:34:a7:69:80:16:a0:d3:24:de:72:28:4e:07:9d:7b:52:20:bb:8f:bd:74:78:16:ee:be:ba:ca +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD +VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 +IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 +MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx +MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy +cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG +A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl +BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed +KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7 +G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2 +zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4 +ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG +HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2 +Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V +yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e +beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r +6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog +zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW +BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr +ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp +ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk +cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt +YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC +CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow +KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI +hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ +UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz +X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x +fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz +a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd +Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd +SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O +AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso +M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge +v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----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=EC-ACC O=Agencia Catalana de Certificacio (NIF Q-0801176-I) OU=Serveis Publics de Certificacio/Vegeu https://www.catcert.net/verarrel (c)03/Jerarquia Entitats de Certificacio Catalanes +# Subject: CN=EC-ACC O=Agencia Catalana de Certificacio (NIF Q-0801176-I) OU=Serveis Publics de Certificacio/Vegeu https://www.catcert.net/verarrel (c)03/Jerarquia Entitats de Certificacio Catalanes +# Label: "EC-ACC" +# Serial: -23701579247955709139626555126524820479 +# MD5 Fingerprint: eb:f5:9d:29:0d:61:f9:42:1f:7c:c2:ba:6d:e3:15:09 +# SHA1 Fingerprint: 28:90:3a:63:5b:52:80:fa:e6:77:4c:0b:6d:a7:d6:ba:a6:4a:f2:e8 +# SHA256 Fingerprint: 88:49:7f:01:60:2f:31:54:24:6a:e2:8c:4d:5a:ef:10:f1:d8:7e:bb:76:62:6f:4a:e0:b7:f9:5b:a7:96:87:99 +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB +8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy +dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1 +YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3 +dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh +IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD +LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG +EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g +KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD +ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu +bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg +ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R +85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm +4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV +HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd +QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t +lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB +o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4 +opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo +dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW +ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN +AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y +/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k +SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy +Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS +Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl +nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI= +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions RootCA 2011" +# Serial: 0 +# MD5 Fingerprint: 73:9f:4c:4b:73:5b:79:e9:fa:ba:1c:ef:6e:cb:d5:c9 +# SHA1 Fingerprint: fe:45:65:9b:79:03:5b:98:a1:61:b5:51:2e:ac:da:58:09:48:22:4d +# SHA256 Fingerprint: bc:10:4f:15:a4:8b:e7:09:dc:a5:42:a7:e1:d4:b9:df:6f:05:45:27:e8:02:ea:a9:2d:59:54:44:25:8a:fe:71 +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix +RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 +dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p +YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw +NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK +EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl +cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz +dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ +fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns +bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD +75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP +FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV +HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp +5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu +b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA +A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p +6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 +dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys +Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI +l7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----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: O=Trustis Limited OU=Trustis FPS Root CA +# Subject: O=Trustis Limited OU=Trustis FPS Root CA +# Label: "Trustis FPS Root CA" +# Serial: 36053640375399034304724988975563710553 +# MD5 Fingerprint: 30:c9:e7:1e:6b:e6:14:eb:65:b2:16:69:20:31:67:4d +# SHA1 Fingerprint: 3b:c0:38:0b:33:c3:f6:a6:0c:86:15:22:93:d9:df:f5:4b:81:c0:04 +# SHA256 Fingerprint: c1:b4:82:99:ab:a5:20:8f:e9:63:0a:ce:55:ca:68:a0:3e:da:5a:51:9c:88:02:a0:d3:a6:73:be:8f:8e:55:7d +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF +MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL +ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx +MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc +MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+ +AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH +iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj +vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA +0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB +OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/ +BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E +FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01 +GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW +zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4 +1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE +f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F +jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN +ZetX2fNXlrtIzYE= +-----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=E-Tugra Certification Authority O=E-Tu\u011fra EBG Bili\u015fim Teknolojileri ve Hizmetleri A.\u015e. OU=E-Tugra Sertifikasyon Merkezi +# Subject: CN=E-Tugra Certification Authority O=E-Tu\u011fra EBG Bili\u015fim Teknolojileri ve Hizmetleri A.\u015e. OU=E-Tugra Sertifikasyon Merkezi +# Label: "E-Tugra Certification Authority" +# Serial: 7667447206703254355 +# MD5 Fingerprint: b8:a1:03:63:b0:bd:21:71:70:8a:6f:13:3a:bb:79:49 +# SHA1 Fingerprint: 51:c6:e7:08:49:06:6e:f3:92:d4:5c:a0:0d:6d:a3:62:8f:c3:52:39 +# SHA256 Fingerprint: b0:bf:d5:2b:b0:d7:d9:bd:92:bf:5d:4d:c1:3d:a2:55:c0:2c:54:2f:37:83:65:ea:89:39:11:f5:5e:55:f2:3c +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV +BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC +aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV +BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1 +Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz +MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+ +BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp +em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY +B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH +D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF +Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo +q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D +k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH +fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut +dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM +ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8 +zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX +U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6 +Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5 +XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF +Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR +HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY +GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c +77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3 ++GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK +vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6 +FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl +yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P +AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD +y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d +NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA== +-----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 - R4 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Label: "GlobalSign ECC Root CA - R4" +# Serial: 14367148294922964480859022125800977897474 +# MD5 Fingerprint: 20:f0:27:68:d1:7e:a0:9d:0e:e6:2a:ca:df:5c:89:8e +# SHA1 Fingerprint: 69:69:56:2e:40:80:f4:24:a1:e7:19:9f:14:ba:f3:ee:58:ab:6a:bb +# SHA256 Fingerprint: be:c9:49:11:c2:95:56:76:db:6c:0a:55:09:86:d7:6e:3b:a0:05:66:7c:44:2c:97:62:b4:fb:b7:73:de:22:8c +-----BEGIN CERTIFICATE----- +MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ +FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F +uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX +kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs +ewv4n4Q= +-----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=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden +# Subject: CN=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden +# Label: "Staat der Nederlanden Root CA - G3" +# Serial: 10003001 +# MD5 Fingerprint: 0b:46:67:07:db:10:2f:19:8c:35:50:60:d1:0b:f4:37 +# SHA1 Fingerprint: d8:eb:6b:41:51:92:59:e0:f3:e7:85:00:c0:3d:b6:88:97:c9:ee:fc +# SHA256 Fingerprint: 3c:4f:b0:b9:5a:b8:b3:00:32:f4:32:b8:6f:53:5f:e1:72:c1:85:d0:fd:39:86:58:37:cf:36:18:7f:a6:f4:28 +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO +TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh +dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX +DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl +ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv +b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP +cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW +IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX +xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy +KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR +9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az +5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8 +6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7 +Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP +bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt +BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt +XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF +MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd +INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD +U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp +LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8 +Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp +gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh +/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw +0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A +fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq +4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR +1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/ +QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM +94B7IWcnMFk= +-----END CERTIFICATE----- + +# Issuer: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden +# Subject: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden +# Label: "Staat der Nederlanden EV Root CA" +# Serial: 10000013 +# MD5 Fingerprint: fc:06:af:7b:e8:1a:f1:9a:b4:e8:d2:70:1f:c0:f5:ba +# SHA1 Fingerprint: 76:e2:7e:c1:4f:db:82:c1:c0:a6:75:b5:05:be:3d:29:b4:ed:db:bb +# SHA256 Fingerprint: 4d:24:91:41:4c:fe:95:67:46:ec:4c:ef:a6:cf:6f:72:e2:8a:13:29:43:2f:9d:8a:90:7a:c4:cb:5d:ad:c1:5a +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO +TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh +dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y +MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg +TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS +b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS +M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC +UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d +Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p +rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l +pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb +j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC +KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS +/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X +cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH +1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP +px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7 +MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u +2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS +v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC +wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy +CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e +vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6 +Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa +Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL +eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8 +FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc +7uzXLg== +-----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=TrustCor RootCert CA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Subject: CN=TrustCor RootCert CA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Label: "TrustCor RootCert CA-1" +# Serial: 15752444095811006489 +# MD5 Fingerprint: 6e:85:f1:dc:1a:00:d3:22:d5:b2:b2:ac:6b:37:05:45 +# SHA1 Fingerprint: ff:bd:cd:e7:82:c8:43:5e:3c:6f:26:86:5c:ca:a8:3a:45:5b:c3:0a +# SHA256 Fingerprint: d4:0e:9c:86:cd:8f:e4:68:c1:77:69:59:f4:9e:a7:74:fa:54:86:84:b6:c4:06:f3:90:92:61:f4:dc:e2:57:5c +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYD +VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk +MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U +cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29y +IFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkxMjMxMTcyMzE2WjCB +pDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFuYW1h +IENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUG +A1UECwweVHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZU +cnVzdENvciBSb290Q2VydCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAv463leLCJhJrMxnHQFgKq1mqjQCj/IDHUHuO1CAmujIS2CNUSSUQIpid +RtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4pQa81QBeCQryJ3pS/C3V +seq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0JEsq1pme +9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CV +EY4hgLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorW +hnAbJN7+KIor0Gqw/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/ +DeOxCbeKyKsZn3MzUOcwHwYDVR0jBBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD +ggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5mDo4Nvu7Zp5I +/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf +ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZ +yonnMlo2HD6CqFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djts +L1Ac59v2Z3kf9YKVmgenFK+P3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdN +zl/HHk484IkzlQsPpTLWPFp5LBk= +-----END CERTIFICATE----- + +# Issuer: CN=TrustCor RootCert CA-2 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Subject: CN=TrustCor RootCert CA-2 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Label: "TrustCor RootCert CA-2" +# Serial: 2711694510199101698 +# MD5 Fingerprint: a2:e1:f8:18:0b:ba:45:d5:c7:41:2a:bb:37:52:45:64 +# SHA1 Fingerprint: b8:be:6d:cb:56:f1:55:b9:63:d4:12:ca:4e:06:34:c7:94:b2:1c:c0 +# SHA256 Fingerprint: 07:53:e9:40:37:8c:1b:d5:e3:83:6e:39:5d:ae:a5:cb:83:9e:50:46:f1:bd:0e:ae:19:51:cf:10:fe:c7:c9:65 +-----BEGIN CERTIFICATE----- +MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV +BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw +IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy +dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3Ig +Um9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEyMzExNzI2MzlaMIGk +MQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEg +Q2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYD +VQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRy +dXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+ +QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq +1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp +2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nK +DOObXUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hape +az6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF +3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88 +oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjxklb9tTNM +g9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3 +mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh +8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAd +BgNVHQ4EFgQU2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6U +nrybPZx9mCAZ5YwwYrIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYw +DQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/hOsh80QA9z+LqBrWyOrsGS2h60COX +dKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnpkpfbsEZC89NiqpX+ +MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv2wnL +/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RX +CI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa +ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW +2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7 +N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3 +Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArB +As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp +5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu +1uwJ +-----END CERTIFICATE----- + +# Issuer: CN=TrustCor ECA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Subject: CN=TrustCor ECA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Label: "TrustCor ECA-1" +# Serial: 9548242946988625984 +# MD5 Fingerprint: 27:92:23:1d:0a:f5:40:7c:e9:e6:6b:9d:d8:f5:e7:6c +# SHA1 Fingerprint: 58:d1:df:95:95:67:6b:63:c0:f0:5b:1c:17:4d:8b:84:0b:c8:78:bd +# SHA256 Fingerprint: 5a:88:5d:b1:9c:01:d9:12:c5:75:93:88:93:8c:af:bb:df:03:1a:b2:d4:8e:91:ee:15:58:9b:42:97:1d:03:9c +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD +VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk +MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U +cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDlRydXN0Q29y +IEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3MjgwN1owgZwxCzAJBgNV +BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw +IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy +dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3Ig +RUNBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb +3w9U73NjKYKtR8aja+3+XzP4Q1HpGjORMRegdMTUpwHmspI+ap3tDvl0mEDTPwOA +BoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23xFUfJ3zSCNV2HykVh0A5 +3ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmcp0yJF4Ou +owReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/ +wZ0+fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZF +ZtS6mFjBAgMBAAGjYzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAf +BgNVHSMEGDAWgBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABT41XBVwm8nHc2Fv +civUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u/ukZMjgDfxT2 +AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F +hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50 +soIipX1TH0XsJ5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BI +WJZpTdwHjFGTot+fDz2LYLSCjaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1Wi +tJ/X5g== +-----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=GTS Root R1 O=Google Trust Services LLC +# Subject: CN=GTS Root R1 O=Google Trust Services LLC +# Label: "GTS Root R1" +# Serial: 146587175971765017618439757810265552097 +# MD5 Fingerprint: 82:1a:ef:d4:d2:4a:f2:9f:e2:3d:97:06:14:70:72:85 +# SHA1 Fingerprint: e1:c9:50:e6:ef:22:f8:4c:56:45:72:8b:92:20:60:d7:d5:a7:a3:e8 +# SHA256 Fingerprint: 2a:57:54:71:e3:13:40:bc:21:58:1c:bd:2c:f1:3e:15:84:63:20:3e:ce:94:bc:f9:d3:cc:19:6b:f0:9a:54:72 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM +QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy +MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl +cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX +mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7 +zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P +fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc +vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4 +Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp +zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO +Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW +k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+ +DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF +lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW +Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 +d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z +XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR +gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3 +d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv +J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg +DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM ++SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy +F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9 +SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws +E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkgl +-----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: 146587176055767053814479386953112547951 +# MD5 Fingerprint: 44:ed:9a:0e:a4:09:3b:00:f2:ae:4c:a3:c6:61:b0:8b +# SHA1 Fingerprint: d2:73:96:2a:2a:5e:39:9f:73:3f:e1:c7:1e:64:3f:03:38:34:fc:4d +# SHA256 Fingerprint: c4:5d:7b:b0:8e:6d:67:e6:2e:42:35:11:0b:56:4e:5f:78:fd:92:ef:05:8c:84:0a:ea:4e:64:55:d7:58:5c:60 +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM +QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy +MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl +cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg +GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu +XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd +re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu +PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1 +mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K +8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj +x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR +nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0 +kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok +twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp +8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT +vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT +z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA +pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb +pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB +R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R +RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk +0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC +5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF +izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn +yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkC +-----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: 146587176140553309517047991083707763997 +# MD5 Fingerprint: 1a:79:5b:6b:04:52:9c:5d:c7:74:33:1b:25:9a:f9:25 +# SHA1 Fingerprint: 30:d4:24:6f:07:ff:db:91:89:8a:0b:e9:49:66:11:eb:8c:5e:46:e5 +# SHA256 Fingerprint: 15:d5:b8:77:46:19:ea:7d:54:ce:1c:a6:d0:b0:c4:03:e0:37:a9:17:f1:31:e8:a0:4e:1e:6b:7a:71:ba:bc:e5 +-----BEGIN CERTIFICATE----- +MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A +DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk +fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA +njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd +-----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: 146587176229350439916519468929765261721 +# MD5 Fingerprint: 5d:b6:6a:c4:60:17:24:6a:1a:99:a8:4b:ee:5e:b4:26 +# SHA1 Fingerprint: 2a:1d:60:27:d9:4a:b1:0a:1c:4d:91:5c:cd:33:a0:cb:3e:2d:54:cb +# SHA256 Fingerprint: 71:cc:a5:39:1f:9e:79:4b:04:80:25:30:b3:63:e1:21:da:8a:30:43:bb:26:66:2f:ea:4d:ca:7f:c9:51:a4:bd +-----BEGIN CERTIFICATE----- +MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw +CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU +MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw +MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp +Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l +xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0 +CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx +sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4w== +-----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----- diff --git a/venv/lib/python3.9/site-packages/certifi/core.py b/venv/lib/python3.9/site-packages/certifi/core.py new file mode 100644 index 00000000..5d2b8cd3 --- /dev/null +++ b/venv/lib/python3.9/site-packages/certifi/core.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- + +""" +certifi.py +~~~~~~~~~~ + +This module returns the installation location of cacert.pem or its contents. +""" +import os + +try: + from importlib.resources import path as get_path, read_text + + _CACERT_CTX = None + _CACERT_PATH = None + + def where(): + # 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 + + +except ImportError: + # 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(_module, _path, encoding="ascii"): + with open(where(), "r", 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(): + f = os.path.dirname(__file__) + + return os.path.join(f, "cacert.pem") + + +def contents(): + return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/INSTALLER b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/LICENSE b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/LICENSE new file mode 100644 index 00000000..8add30ad --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/METADATA b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/METADATA new file mode 100644 index 00000000..590bcc32 --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/METADATA @@ -0,0 +1,101 @@ +Metadata-Version: 2.1 +Name: chardet +Version: 4.0.0 +Summary: Universal encoding detector for Python 2 and 3 +Home-page: https://github.com/chardet/chardet +Author: Mark Pilgrim +Author-email: mark@diveintomark.org +Maintainer: Daniel Blanchard +Maintainer-email: dan.blanchard@gmail.com +License: LGPL +Keywords: encoding,i18n,xml +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL) +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Text Processing :: Linguistic +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.* + +Chardet: The Universal Character Encoding Detector +-------------------------------------------------- + +.. image:: https://img.shields.io/travis/chardet/chardet/stable.svg + :alt: Build status + :target: https://travis-ci.org/chardet/chardet + +.. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg + :target: https://coveralls.io/r/chardet/chardet + +.. image:: https://img.shields.io/pypi/v/chardet.svg + :target: https://warehouse.python.org/project/chardet/ + :alt: Latest version on PyPI + +.. image:: https://img.shields.io/pypi/l/chardet.svg + :alt: License + + +Detects + - ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants) + - Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese) + - EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese) + - EUC-KR, ISO-2022-KR (Korean) + - KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic) + - ISO-8859-5, windows-1251 (Bulgarian) + - ISO-8859-1, windows-1252 (Western European languages) + - ISO-8859-7, windows-1253 (Greek) + - ISO-8859-8, windows-1255 (Visual and Logical Hebrew) + - TIS-620 (Thai) + +.. note:: + Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily + disabled until we can retrain the models. + +Requires Python 2.7 or 3.5+. + +Installation +------------ + +Install from `PyPI `_:: + + pip install chardet + +Documentation +------------- + +For users, docs are now available at https://chardet.readthedocs.io/. + +Command-line Tool +----------------- + +chardet comes with a command-line script which reports on the encodings of one +or more files:: + + % chardetect somefile someotherfile + somefile: windows-1252 with confidence 0.5 + someotherfile: ascii with confidence 1.0 + +About +----- + +This is a continuation of Mark Pilgrim's excellent chardet. Previously, two +versions needed to be maintained: one that supported python 2.x and one that +supported python 3.x. We've recently merged with `Ian Cordasco `_'s +`charade `_ fork, so now we have one +coherent version that works for Python 2.7+ and 3.4+. + +:maintainer: Dan Blanchard + + diff --git a/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/RECORD b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/RECORD new file mode 100644 index 00000000..c220c6bb --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/RECORD @@ -0,0 +1,94 @@ +../../../bin/chardetect,sha256=gzLse4muCtcgmzJwC6_U2cOcvI17bQOLE1t5s0Xlk4E,259 +chardet-4.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +chardet-4.0.0.dist-info/LICENSE,sha256=YJXp_6d33SKDn3gBqoRbMcntB_PWv4om3F0t7IzMDvM,26432 +chardet-4.0.0.dist-info/METADATA,sha256=ySYQAE7NPm3LwxgMqFi1zdLQ48mmwMbrJwqAWCtcbH8,3526 +chardet-4.0.0.dist-info/RECORD,, +chardet-4.0.0.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110 +chardet-4.0.0.dist-info/entry_points.txt,sha256=fAMmhu5eJ-zAJ-smfqQwRClQ3-nozOCmvJ6-E8lgGJo,60 +chardet-4.0.0.dist-info/top_level.txt,sha256=AowzBbZy4x8EirABDdJSLJZMkJ_53iIag8xfKR6D7kI,8 +chardet/__init__.py,sha256=mWZaWmvZkhwfBEAT9O1Y6nRTfKzhT7FHhQTTAujbqUA,3271 +chardet/__pycache__/__init__.cpython-39.pyc,, +chardet/__pycache__/big5freq.cpython-39.pyc,, +chardet/__pycache__/big5prober.cpython-39.pyc,, +chardet/__pycache__/chardistribution.cpython-39.pyc,, +chardet/__pycache__/charsetgroupprober.cpython-39.pyc,, +chardet/__pycache__/charsetprober.cpython-39.pyc,, +chardet/__pycache__/codingstatemachine.cpython-39.pyc,, +chardet/__pycache__/compat.cpython-39.pyc,, +chardet/__pycache__/cp949prober.cpython-39.pyc,, +chardet/__pycache__/enums.cpython-39.pyc,, +chardet/__pycache__/escprober.cpython-39.pyc,, +chardet/__pycache__/escsm.cpython-39.pyc,, +chardet/__pycache__/eucjpprober.cpython-39.pyc,, +chardet/__pycache__/euckrfreq.cpython-39.pyc,, +chardet/__pycache__/euckrprober.cpython-39.pyc,, +chardet/__pycache__/euctwfreq.cpython-39.pyc,, +chardet/__pycache__/euctwprober.cpython-39.pyc,, +chardet/__pycache__/gb2312freq.cpython-39.pyc,, +chardet/__pycache__/gb2312prober.cpython-39.pyc,, +chardet/__pycache__/hebrewprober.cpython-39.pyc,, +chardet/__pycache__/jisfreq.cpython-39.pyc,, +chardet/__pycache__/jpcntx.cpython-39.pyc,, +chardet/__pycache__/langbulgarianmodel.cpython-39.pyc,, +chardet/__pycache__/langgreekmodel.cpython-39.pyc,, +chardet/__pycache__/langhebrewmodel.cpython-39.pyc,, +chardet/__pycache__/langhungarianmodel.cpython-39.pyc,, +chardet/__pycache__/langrussianmodel.cpython-39.pyc,, +chardet/__pycache__/langthaimodel.cpython-39.pyc,, +chardet/__pycache__/langturkishmodel.cpython-39.pyc,, +chardet/__pycache__/latin1prober.cpython-39.pyc,, +chardet/__pycache__/mbcharsetprober.cpython-39.pyc,, +chardet/__pycache__/mbcsgroupprober.cpython-39.pyc,, +chardet/__pycache__/mbcssm.cpython-39.pyc,, +chardet/__pycache__/sbcharsetprober.cpython-39.pyc,, +chardet/__pycache__/sbcsgroupprober.cpython-39.pyc,, +chardet/__pycache__/sjisprober.cpython-39.pyc,, +chardet/__pycache__/universaldetector.cpython-39.pyc,, +chardet/__pycache__/utf8prober.cpython-39.pyc,, +chardet/__pycache__/version.cpython-39.pyc,, +chardet/big5freq.py,sha256=D_zK5GyzoVsRes0HkLJziltFQX0bKCLOrFe9_xDvO_8,31254 +chardet/big5prober.py,sha256=kBxHbdetBpPe7xrlb-e990iot64g_eGSLd32lB7_h3M,1757 +chardet/chardistribution.py,sha256=3woWS62KrGooKyqz4zQSnjFbJpa6V7g02daAibTwcl8,9411 +chardet/charsetgroupprober.py,sha256=GZLReHP6FRRn43hvSOoGCxYamErKzyp6RgOQxVeC3kg,3839 +chardet/charsetprober.py,sha256=KSmwJErjypyj0bRZmC5F5eM7c8YQgLYIjZXintZNstg,5110 +chardet/cli/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +chardet/cli/__pycache__/__init__.cpython-39.pyc,, +chardet/cli/__pycache__/chardetect.cpython-39.pyc,, +chardet/cli/chardetect.py,sha256=kUPeQCi-olObXpOq5MtlKuBn1EU19rkeenAMwxl7URY,2711 +chardet/codingstatemachine.py,sha256=VYp_6cyyki5sHgXDSZnXW4q1oelHc3cu9AyQTX7uug8,3590 +chardet/compat.py,sha256=40zr6wICZwknxyuLGGcIOPyve8DTebBCbbvttvnmp5Q,1200 +chardet/cp949prober.py,sha256=TZ434QX8zzBsnUvL_8wm4AQVTZ2ZkqEEQL_lNw9f9ow,1855 +chardet/enums.py,sha256=Aimwdb9as1dJKZaFNUH2OhWIVBVd6ZkJJ_WK5sNY8cU,1661 +chardet/escprober.py,sha256=kkyqVg1Yw3DIOAMJ2bdlyQgUFQhuHAW8dUGskToNWSc,3950 +chardet/escsm.py,sha256=RuXlgNvTIDarndvllNCk5WZBIpdCxQ0kcd9EAuxUh84,10510 +chardet/eucjpprober.py,sha256=iD8Jdp0ISRjgjiVN7f0e8xGeQJ5GM2oeZ1dA8nbSeUw,3749 +chardet/euckrfreq.py,sha256=-7GdmvgWez4-eO4SuXpa7tBiDi5vRXQ8WvdFAzVaSfo,13546 +chardet/euckrprober.py,sha256=MqFMTQXxW4HbzIpZ9lKDHB3GN8SP4yiHenTmf8g_PxY,1748 +chardet/euctwfreq.py,sha256=No1WyduFOgB5VITUA7PLyC5oJRNzRyMbBxaKI1l16MA,31621 +chardet/euctwprober.py,sha256=13p6EP4yRaxqnP4iHtxHOJ6R2zxHq1_m8hTRjzVZ95c,1747 +chardet/gb2312freq.py,sha256=JX8lsweKLmnCwmk8UHEQsLgkr_rP_kEbvivC4qPOrlc,20715 +chardet/gb2312prober.py,sha256=gGvIWi9WhDjE-xQXHvNIyrnLvEbMAYgyUSZ65HUfylw,1754 +chardet/hebrewprober.py,sha256=c3SZ-K7hvyzGY6JRAZxJgwJ_sUS9k0WYkvMY00YBYFo,13838 +chardet/jisfreq.py,sha256=vpmJv2Bu0J8gnMVRPHMFefTRvo_ha1mryLig8CBwgOg,25777 +chardet/jpcntx.py,sha256=PYlNqRUQT8LM3cT5FmHGP0iiscFlTWED92MALvBungo,19643 +chardet/langbulgarianmodel.py,sha256=r6tvOtO8FqhnbWBB5V4czcl1fWM4pB9lGiWQU-8gvsw,105685 +chardet/langgreekmodel.py,sha256=1cMu2wUgPB8bQ2RbVjR4LNwCCETgQ-Dwo0Eg2_uB11s,99559 +chardet/langhebrewmodel.py,sha256=urMmJHHIXtCwaWAqy1zEY_4SmwwNzt730bDOtjXzRjs,98764 +chardet/langhungarianmodel.py,sha256=ODAisvqCfes8B4FeyM_Pg9HY3ZDnEyaCiT4Bxyzoc6w,102486 +chardet/langrussianmodel.py,sha256=sPqkrBbX0QVwwy6oqRl-x7ERv2J4-zaMoCvLpkSsSJI,131168 +chardet/langthaimodel.py,sha256=ppoKOGL9OPdj9A4CUyG8R48zbnXt9MN1WXeCYepa6sc,103300 +chardet/langturkishmodel.py,sha256=H3ldicI_rhlv0r3VFpVWtUL6X30Wy596v7_YHz2sEdg,95934 +chardet/latin1prober.py,sha256=S2IoORhFk39FEFOlSFWtgVybRiP6h7BlLldHVclNkU8,5370 +chardet/mbcharsetprober.py,sha256=AR95eFH9vuqSfvLQZN-L5ijea25NOBCoXqw8s5O9xLQ,3413 +chardet/mbcsgroupprober.py,sha256=h6TRnnYq2OxG1WdD5JOyxcdVpn7dG0q-vB8nWr5mbh4,2012 +chardet/mbcssm.py,sha256=SY32wVIF3HzcjY3BaEspy9metbNSKxIIB0RKPn7tjpI,25481 +chardet/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +chardet/metadata/__pycache__/__init__.cpython-39.pyc,, +chardet/metadata/__pycache__/languages.cpython-39.pyc,, +chardet/metadata/languages.py,sha256=41tLq3eLSrBEbEVVQpVGFq9K7o1ln9b1HpY1l0hCUQo,19474 +chardet/sbcharsetprober.py,sha256=nmyMyuxzG87DN6K3Rk2MUzJLMLR69MrWpdnHzOwVUwQ,6136 +chardet/sbcsgroupprober.py,sha256=hqefQuXmiFyDBArOjujH6hd6WFXlOD1kWCsxDhjx5Vc,4309 +chardet/sjisprober.py,sha256=IIt-lZj0WJqK4rmUZzKZP4GJlE8KUEtFYVuY96ek5MQ,3774 +chardet/universaldetector.py,sha256=DpZTXCX0nUHXxkQ9sr4GZxGB_hveZ6hWt3uM94cgWKs,12503 +chardet/utf8prober.py,sha256=IdD8v3zWOsB8OLiyPi-y_fqwipRFxV9Nc1eKBLSuIEw,2766 +chardet/version.py,sha256=A4CILFAd8MRVG1HoXPp45iK9RLlWyV73a1EtwE8Tvn8,242 diff --git a/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/WHEEL b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/WHEEL new file mode 100644 index 00000000..6d38aa06 --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.35.1) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/entry_points.txt b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/entry_points.txt new file mode 100644 index 00000000..a884269e --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +chardetect = chardet.cli.chardetect:main + diff --git a/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/top_level.txt b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/top_level.txt new file mode 100644 index 00000000..79236f25 --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet-4.0.0.dist-info/top_level.txt @@ -0,0 +1 @@ +chardet diff --git a/venv/lib/python3.9/site-packages/chardet/__init__.py b/venv/lib/python3.9/site-packages/chardet/__init__.py new file mode 100644 index 00000000..80ad2546 --- /dev/null +++ b/venv/lib/python3.9/site-packages/chardet/__init__.py @@ -0,0 +1,83 @@ +######################## BEGIN LICENSE BLOCK ######################## +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + + +from .universaldetector import UniversalDetector +from .enums import InputState +from .version import __version__, VERSION + + +__all__ = ['UniversalDetector', 'detect', 'detect_all', '__version__', 'VERSION'] + + +def detect(byte_str): + """ + Detect the encoding of the given byte string. + + :param byte_str: The byte sequence to examine. + :type byte_str: ``bytes`` or ``bytearray`` + """ + if not isinstance(byte_str, bytearray): + if not isinstance(byte_str, bytes): + raise TypeError('Expected object of type bytes or bytearray, got: ' + '{}'.format(type(byte_str))) + else: + byte_str = bytearray(byte_str) + detector = UniversalDetector() + detector.feed(byte_str) + return detector.close() + + +def detect_all(byte_str): + """ + Detect all the possible encodings of the given byte string. + + :param byte_str: The byte sequence to examine. + :type byte_str: ``bytes`` or ``bytearray`` + """ + if not isinstance(byte_str, bytearray): + if not isinstance(byte_str, bytes): + raise TypeError('Expected object of type bytes or bytearray, got: ' + '{}'.format(type(byte_str))) + else: + byte_str = bytearray(byte_str) + + detector = UniversalDetector() + detector.feed(byte_str) + detector.close() + + if detector._input_state == InputState.HIGH_BYTE: + results = [] + for prober in detector._charset_probers: + if prober.get_confidence() > detector.MINIMUM_THRESHOLD: + charset_name = prober.charset_name + lower_charset_name = prober.charset_name.lower() + # Use Windows encoding name instead of ISO-8859 if we saw any + # extra Windows-specific bytes + if lower_charset_name.startswith('iso-8859'): + if detector._has_win_bytes: + charset_name = detector.ISO_WIN_MAP.get(lower_charset_name, + charset_name) + results.append({ + 'encoding': charset_name, + 'confidence': prober.get_confidence(), + 'language': prober.language, + }) + if len(results) > 0: + return sorted(results, key=lambda result: -result['confidence']) + + return [detector.result] diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/__init__.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f382e8c99285d5ce1a756b76941b60881f3a18e9 GIT binary patch literal 1887 zcmd5-&2Jk;6rb5IuQyJbq@^XmVZ{kcBu1)`(x{5~NJK1=1nQ&|OLV>VPMl5FyY9?5 zsl)n0xN_u%kPRme9QZ5v2YMQD^N~pXy8#f7O4vaK!-kW*v&6}CudlSyidIXyN z{jaUxD}?-s!qsMg@BwtO0VE<3O-PS6DMj8$jGoyvHE$+X&u-d1r|D4AC6VEkcU0J5WvD3y7BkGL7~c?48RlfW#+S|VJ}YE zN?|64{X*x`%5SyMNVHmh#xI1B^KjT|X`2^!H=p+5hFRoi?IU1xY*Rl1jnH13yz6%} zx#oX8s+N@(i#QcBgg8|Bm4>qQW~#gg9yU48xN;6M-V3F&Fu3A%tOLd(Wp|QH;7ht_ zgApsYc&?29LikO1ix-b-`vM-h7Di#M&ohiq)K21vWy=CU!InEoT!TA2sU>l{)*s5l zEWNvOuO?#2miuAnIP5Y}>l}t0JlBFCPGcDaEBzsN!2O%}=8Hf`$)g^1sPob_T^K#8 z*RKHu4NA~8Q2qeszX1vY=BO;aqnTraKkJf_0di%7eD!E#=H_^Ig6ng~7Jrj?m z(((L+jO^SVFGR+K@*hECQPZ2_Te+QE69e>&@oPC~YY*np?a2JWM0h@VEbrvTIgKpv z`Aoi^8$~8YrSFUe?zPmV0ABa(x2xcV{Lz5zXF|m7(u}&16G6vbb-|`hqAUrW^_L9@Y^t>feF>f z;Yq_-Pr_b13fDge=`ZNy?5)cpv~oYmI$}1i zTo;5Zcd)Qs->Gl!ZwGr@4>lWHyPs~T%G4$edra9$cFMT&U;{42X)F)bTyPkQ;51Hy zBFSg!josjj`cAO@;b+Q(4U`l1`z($49gN3JSgIV6ai}eP31+GeUx0yQ#;H;Olp@JFD=8O2JqJ3o?W5y zhW4^k_0+;(`q4~FPf?<5mJWKNxY*LgKXdtms8WDmN)YHWp`Bd`6Dt?L07EZ}1_@io PDUGKJh3!qKGK>EJ$}avH literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/big5freq.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/big5freq.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..85b98d2cc7330800c58a02fc2be829c5455420b0 GIT binary patch literal 27166 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/chardistribution.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/chardistribution.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..575459d62ee3e9fb8aa5b0076d7fbe16b8b01495 GIT binary patch literal 6207 zcmcgwOLH7o74GLe^c+2`hwa$oM=`RmB1LZ+yP_@~mRC&l5Di1ruB@ z*XA`56Y#(@`SFXBOtKbrLwJI$Fe?jv9^xaXM*?W0;qv!{+xVjY-tCi_WzO?NZ{h|i+uYW%OuiEJ6U%tEk zqfu5LzuPdOLxF(VdswH2vnc*$5TVsIH=@uKbwg28QA<&~u04r8)p!V&v|T-$iH9R@ z0h+i$)m@X`1Gg%LC&OMh$gh?>*Duz*@OZGjSuEsBu4qx$m3e3#+ODWpys!`R1B{?3 zAG4LHh_R*Td%>5t3dXt3RL20%13rpIg)^{btk?Xm-x_GWfB_ZXxJU76be)di^`Ol+-HJFQln&Z`ae4| z$;(Ud+i5?@2j0yFmC0sIIgYoSAekgNK|=FH

YiLB5CL$3Qd-x*N4qT{Tz#Tp(2T z9=cNU3MC()QU`)J3^@uUXm$OmzGGG_VeFW7Q?um8ylKj z7QoJZjGELotmY`IIm!|-EIeL2yXJW!olkRH@`b>Y=|{!jUV5WaeN;)8yvllTuR+8% zzQQBZs7ZpjNEl}`c9>lEf(U?-QI2uMC<)DzvE)g-LW|0jB(1Zg`q;W* z%51ZjZTbYMHL9J^cJw;u*sy7~uB#a~tY_3NNH5rum2{z6S;Il76uk6m-iJY}m9+OU z&|R#or$s&hl%PZ=b^x4k?9M`V;m*n(_r~<{w7YyOH@9?a@%D`{zO<5?bF+(*cnuSZ z`*3b4V?>tJ#G~SZMw>0$d{!Ui!V=0p z8`hF0N6-M>cp$=KbJ@j}`CErp)ai(XgX`76^(xh^^?NSuBQW3Ru4!iNLU%3OCl%BL zPQt@FRaJ+ECrDtUGDcROMP1o!&xDE9?Er2vIBZFI4kL>wks@~OYUe1jxIa)IPD34MipjpTI_IzFXG%PuSLq8!T* zdO6kS0ZZss^fMBJiDY6RkxJN-BMK;O4^ILg|2)WEO#D<^(*>O1;{;-(DJ;Y}>r?m< zhsd_WNtLs73U<$cgW_3~_&^JAR6a4D7z|kfT#;)9a6@h^h=V2=#3IlnL)+il^rXCs zxsfrrhmrH3JgIyMw^E%2g(JkIr0W(+dEa;4$VSRC%9a@ECqOh{o&lqFw(BAe;zcWl z_Es`WNes_*m}pYlG2nm=INA%sWNktlWsfzfjcdZ5z>4Thxw1?=t4@03Zb198_>XIW06HSAd{N*@OpuCZm$)uPU!|6`PBQFa2ZaKfma>%ORcU%VTWRA0V9 za)m@0hyug@ru_Sit;R)I;;M5qv;P+^gAT9T@-=*YL*#T}r67JW>a`>0^c3qi&4=>G8%U~wHPN3fu$h+vUq zO*tE0agT<@FEFAV7U#O_-WeA(ACJx~MbU(jmjN{<5yp0y*dZ^4zxfstJd1B6a%fS0 z$Ar(ZI{BOk8}CA11Q3OneU$7*nV9l9^1B!m_WB;O2GP~?{EF%+cWMvoDSgzaoj+ow z&w-!o5cqQn-Nz4GUI>0BW{T_AUIKc!Wf6LMSyN7hDN%%;e%6k3D!;>scJ!R-rulPV z=L1OVik-Vn?7a0Xc0_EPF{>R@abgPBibOM#C8J0d#joFRWpq1@Uy=}Hjq4ySUTB(Z z2QTzTwEMJ?1{g&lY|N;g?Yive01|iMw-mb%B(}U5AT8m0!%G0tEhroTiMQMcNQ0~? zH^l4D(LnkOMjQfCH_bZ(i9yjsq2+uD(iKRT;d(6GmM$LvX2+_$iq;rhQx5MqdUL8b zHi3_D<4BJ%!V*c`l&m@(R?h@l0LWh4Ln|VQI_?gczE+6+1UfW+P4Xv_FG#*5VK9zx zHc$4)WQntkeUL>dk0xi>_3B=K1jbWj&w>0MMdi)JVG0>yN*~7UvJaTFkSTVx-gDrQ zoB3yo-^U|cUI-qUhQD|BB>?g+H2!}88FKw9TC^tLomKCQNTQKtmXesgMuGa zBZMv4%*in6Z54t?{PrddG)Y=Oa+K=Xkg7*zuqt_F-Wv9-ukzcj>Y~Y|N?@3~go#xI zLe-%Hl!{FZOJV$e(O2!t-zZm;VtcH*$`5(!;uzh;n32fqB-{x}C`)SFVkc!Wo~$tO ac68x=hc@*Y`$moC&q^(%M$~UCHTho{IQVS< literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/charsetgroupprober.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/charsetgroupprober.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf1330fb3361d0a87caa31654d84f63325207284 GIT binary patch literal 2248 zcmbtV&2Jk;6rY*>@cJtaA!$PZks?02h{U2Cpi-frmR3~4MNP`V5*i%O#I>`rlbLm- zm<^Xi>IEbYa8Hgo&_8Hzh*MA8xxnwuI^=`gSo^(sZ+3R(ef-{=cD-IAA@Pu;)=C|ntI08xf04dD7QQ(c=G zG2~nxN!c6pQYrJQYUq_@`C+D)Gh2Oloq zYS>rnbn z9*QXWPEoZF!A>H2D2^DSiRel%V}1V~`}VCpo^i8~@yR>HTm~6F?|aJohzYFRUT`rF zUCjNa39;jkn!2-d9P2pwr2v^N!yth_zpY7_zP2T0Ci zmxSBfH#4sv+EohHVWfO$73c7>CX7^9R3=XP^Ihr~CaZi3fMOFxEZe`rCGKFiaPV4ltgBivMYWEq($$ zt`&i$9GL}TuM?woaVC#pGVB7|d7$*#sB5U|9PSMvI}VD{qy*(<*U0G*m$lq?;)S$P z$$SH{?}0HShx!bWKanYk(@0~)uY!smgsQ%NN$SowjTr5uO4kkb3|u!ADL02|l#pDL za(mQHiZ`ykyOx(nXot9|(%r%@a>)>|ips7}?wyWK5-HCB&~;DOIH@uhL9TH|d@8I} yfWQ(_H0SzqGY;}VT1aul54GY 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 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/compat.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/compat.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..926e875a2317e0ce033378655599467d03f2d8c7 GIT binary patch literal 386 zcmYjK%TB{E5OflUCZ!cO4*Wq5ttEOwLWmP5gphbhGJ3A`(uCyx<-DUAn%;)NUMpcFgb^yGS99Oi;6m=<&G&ntQVAb&<-sC$E~Jar z0?U|boB#j- literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/cp949prober.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/cp949prober.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..251a0b8ed60f7e1997683a662a2d007c8fd40234 GIT binary patch literal 1128 zcma)5&2H2%5VrHTY1x)iC<2KSoL120KrfXLf7^;f*;29M5)Q^2yKTTp7Ta5CtKPO! zpMZNg_P`6}%86It#EjFbsSpy5Jee8WGvjYQ^M!?Z0wetPP)OWhCf+9>qrw1x3I%$WJH$;RYIw2yG;ml8C(HW9n{EI@U9lQ+ac%e)mRScyl9URPdZ%QM3M#ylIQ3;9d=Z?G8BIgb zUEQEZrz9XL*4?RZxExK&3@>pxP{#x~%@YuoSb9um-kJBEP-1->%)n-$jb;S?onvwq zd;KaQtJo~*D+&xnOnv*2Gk+?<}!x|GlllhUJ)(a7)Riaq^?6PjkM>q z4vbWL@SkHWQ`{KF&dKkO$p<5~Nx0z2SXZBAW=(RK3t6oiTWPtPsXRH97wNno)1x~r%+@aN z^%r;uU?0yS-2??tyq!99NA(i8bQguwoVW#M-Ni!SwyflZd<-6g$Pn-7UOQ)d)Boj- zwgC!W{yTB3c)33TERt5zYZtxT(2KE|SRZ5cJYz*ACJOZ~V_zp+H7gFfItD0#0(Poz zLs-26qF%V@UM7_SI$Qy;h+7Z^$C!tp7<|Vu?ZzGe?@{MRVlBCLwaC)&XSv~%!S_`( u@5`~RzFCYeAZuEyu_bi`UIW}iF1paITCO@0KWi@d`~en(Jm^yQ`F{We6%395 literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/enums.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/enums.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..994d42f88ae83b1fe62de0ccbc46079a93cfe4af GIT binary patch literal 2635 zcmbtWOK;mo5GM5?DaOvjJ+?p>=mQndNI-k48x+=qb{NZ)A<{*o3q^C+5)+D4c1Z^o z&{Ogk`XhSiy}yOmp7a;`o>@t;6FEkLtT3Y;?r?W@9^Ww7-Zm8&)n9%a{j4dVgC$Poi_iMGzCX0}Hd1lMt*vWh6=(a<>JTpe)d$MG2Tw*9*hogf;s3y$U+KmwVeR>~E%qROWmzQ;@Mq3Q!*Z}-$n$0Axth8JJlMfNE$r@qCj@Xw+06s{vfg<_}k&~_}>@?HDrxM%O% zR=4JD8r-6_%3JL zc;0Pb_khF>FbGKnL$dxEs$Aa)&ifR`)-g{{qh!1+je~b}{j1V|^gCr6<-jpNE}aYI zaIGV2UCXmNp6whI#(w|A>H4-;XinerkF0Cm@iA;mfL_l~eEMNdI10i^l(3}}ocDHu z^ahzOH+d5p-q9CT*J};DqG}BW{XwDGp8GZ@U~1MkoPbX^oPg=QhpJx#yQxf>K{cws zR9>jV+NvyfT=pzyNyvK9Qx->)G^O*OZgx%lN)uZ{KoDVq5Nev7rE#1-hdh%I3wV1T zrMVz!0<8ei_zfp5(C`rRcs+2A)BzG$t5gN>D9v|wIm>dMh+RN*MgYn%9pUsVwuAuV zclLKEYo5rNiynM)YNEQK!!%$rsM%?;BkWc{e$dpWPbs3>a}a5RReIc_5t;~ zh1r8YzYTDHSZMC!qjtYnRJ-;8K$pHc``RF33ATU)#tnj`tzn$wic>e1%|%O3v7gJf lE8(3Zym2gV8B3{s-2sL1VEL8t14dV#Qqk|$?%n|c{y&$udu#vz literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/escprober.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/escprober.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..97d91940fa1d11b58ae5347224f8e811c6ac570e GIT binary patch literal 2620 zcma)7OK%)S5bmCtot=H!S)AY?5{3YWMZ^o?0ti7Od!0Cm*Ou2oFcRvFr+Z(Sowd7X z4PLEJwv-DTkq{?a;^G7O1^kk^Ax=4Q=R{S{t{*W-^r)+As;eJW^;NZBD&+~Z%ul~P zjb;e>6MxP(3x4iGS6>6+gwv4psYfaDMria+&(ypbTK$Zd>D!*&&w5!cvqGnz^K$*X zm+u$6Lci!0DY;L0hTDgP+kzgLUWsR$r0Tq+uzi&#rNxdfn<8G9gDoLJP+1)CZq#nZ zek@k~pwo>+)lABd{ir?k+hVyJ#zH1V)Ss#)#fhR`RJD@A1CKRV+3MO-{c%!RX|CP* z@XnpZ#%0;V^~g}W?s%c0bFitefC%DIPCSEC&*U@DNsDrmTZcK%(mWdNco|{y zEO!pc0rj%L=XhT84lnTHA@Op&#LF<|pA(CC1#r!5GFw-{1-FcT&%4kzJ6+{om~e+m zDA#vy1p_Wz6?8;j+;aWxZ8-qfxvhb8xrjv&gR5K-ffg|81HIdK9U;Zmo-2IS4fk9r zfU3MNtHjO_mg8AcfNIzk+#N)2JkVQpxrpL!YtM~4Lc!|k zK?{1e5g6KODM23HXhK&#Vu5y8d`&d8NLT z*bpKSafwclStJgsIuGxy-$PxQ!(aQ++D83eLt?@vGd@IdSHRvZ7!0F0xx&)W3eEz^ zAtmCZawfv-V!k9cQ6ogUJ98XHW{qh&yE7MOP~!lA$7~()tftN+;G5N)EWxHaz;YfrsFe_r zGzf_qib&3(_$rcXK&pnkjy&qgH;|yI@&*#z;4|o|0))^q%~OjSU~wL7x9RBGC7X4y zE*Ol)V_$@>Y#?9&p!0+_PN=>G4Eh54*weF<;shKl^82EWi*+^{qZ^kFJ+JwH&Xz80 zSEbr~c?G#DGFE4oqIXJQ?36#6a9wv$~>n{c!!{4W}1!mi~E0!=3e~uWg9ef zlW)WDueT|;MGUzUwXj?TViokXBMF4SGDdG*^2bH}3so!wi?Qoy{0hvN0^EMyH}ICg z{jhJ2O<5kBJ%k^ON5Flz_ji#^NkLL#`5OnqZxZ6n1v8k*RRwN18Km#^#Dw5HfAn@x}<&hpxm#u8iEOy*Oc z;WLx&#`@_So+iq>usF?@j0S7sZ0*HR(_)#>AWgC2w1#5UdKFMsO9ZPFK4prKy7O`$)PC(txGu9vQVTgQ@v7MnGPG+)<@j<|t zE?_#369=jq)c$x+zJu0iliow_BOpm>QcwdChOq1`8Ffj})c_w2T&k;qLoK^JTP%PL zCU(cxHK$Q6C#6X~rd3p8+9s9B6OPWAde+2=jEIJPrC%J0@tQVsV}}jk-~SW2vus1&RhQg1ut#` literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/escsm.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/escsm.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..148005d5ce89e07906139b0b343ca911ba092fa3 GIT binary patch literal 7069 zcmeHLOK;Oa5Vlj>d8aQZ98lB)2ZEFu!U+i>+7c1^NUJ1VdbnUmZqL)8S2W1@@UK`DlmLW^pB2ANJnxTti zg{<;gS|WF}WsnZens-g_*zw8#c4dO&#)!uAW5?*|p}nzMZa&ghU=OU)WvHkXx=QYn zHSYHva<3}n?pq@4@tnv~`+DP~)uq*eKA?{Tm^F}NK@$u>fZ28E#%w*9Y52E&aZ7T( zuO-9CiZ~>%zj34^=ou_&BI4StOyfj1>TTM!X{oDsD2uiA?(wO9Y~wOIa=9Bf z!o40`j?O$77k_RfYqtQ-dHu~h!IGpb1 zbW{RY+}L4I)CvO2pt&ph5=t%R0=EmG)@aUWY6*q$Uo_OGyVb&@%9)R50VDr8dgl`1 zcbA1Xh8`&0Ib^XNy|3dT_c}q<2Oij6+#CpH5+DU zqyLG;UUYiov`t?=fJMwN(4`{M!>qV2X2mslvgcABxlp1*K1!^M51_68k&=^S VPy*%P`7Nb_rLrh-A;reIe*vH*ji>+s literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/eucjpprober.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/eucjpprober.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ec48bec31232db2c3b8428efde265605fb22160 GIT binary patch literal 2434 zcma)8OK%%D5GJ_~t>m?=IB{YJMd1R?K|pNC4P&BpGJP^xCfS@J>}MOFX;@|iscjmx-y3|e9Vx;nQt5}E|v&<&ab~e z{jE&MUntCfHVEHB%bo(^gwurdXq)y}n^BZmV)g8{ZFnnjdT!e_yqy$!UfVOglN5WU zcFFK=ve5I}J|zzbFL3XSa8KA1tG&pJO;Rnrpzy`P53X%=TN zdBaR@^;0EYsJZd784sE}!Ore>{YeA|yYg8VQnm+-AZ^M?o4q1OlvB>mytZX{i`&54 z!r=~g&&Y(fUEs~lfiLhPFP)LL#}~K{eeo5sNxKA|Skw!~etxqE-7@=-N8{MCFMueb z=$K5{l${ewl%?zm$bqBW34y+#JkuA)WLm-%oHWU6+NdsQCmRlgltoaYy&#CwSOtM} zK$ISi6(i%$AnQpNZD(e;L-^<8TnB z@UR~??ImH_8N%~maL&wL@%(H-WX^==f)B$EBgx$LOSrZ1Je|OAoBZ_WO9sAYQ)^7e zY>k}Lm(~~}z3ZGX*?<{$THp}%T@PAu%+3LlRH?fF@eg40?C)p3S-l9Wk6^s~-uM!X z`$m7|oV>Khj58SdV+^Uh207Hd#;tqUFHf(dG`7zH{(!qNFN2MI1)Pvus|4vS@-u3f zU;lww*iE^8VT~DUD{#`AC+rt0?;6dw&PmQsSI^P<+KG+w>^?BE0@2|#MxWft*5NPD zhxOxFtwWaf<$9>r4*@k{?hSfeVrad23t#m%WGlRy&{iT+xd`LBlmZ|I86vPmtkF(= ze}8vhyGg&(5mGx`91c737Ajgpf{&@)#%?RvscSdisoh7dCd%ITy9bT!;89CE&DQ<> zmcHJB;EaY+iWGVXRxqqf0pLR}nk>@xkq}%$Wdif&D7v^^Z`HS2j~Wm3Qm3y1k@kn3 zq><3e&4;`Dt*wJr(0aIE2jR(f)sf4n%|l1P8KtH%B+CWPnR4Ud zX#(`a)tr)5*!UH+>>dz8E39I0rS#Tj9(4_m6tSjED|DHyQU-HKU8~H>)TchKWuwY` z65H+Y7p-Yb9{>OV literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/euckrfreq.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/euckrfreq.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5279589893c845005cc3badbc43aaf656383006 GIT binary patch literal 12050 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 Fe*l~I&3*s? literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/euctwprober.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/euctwprober.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da87fb61718b954a742deb356a495a4b606750ac GIT binary patch literal 1129 zcma)5%We}f6t(A-X-G?{3Id4@tcXN93)mnb1f&%kQjpTB(y%bj*lh4vIW)R}q@GocPDF8`QDoE;`k$ozt@J{2@mx1s_a7v~$4FS8n z0Y_&fASveEsBgF!vn(?#Vm=UK0DR43FqT+)LZ;ri_l;0ueH%<+&O#ea349wT&eAS#^x9wCrRmPmW}Hl&E}=49E7c zDxYjTOH6KMXUMb9{6Lx{gKi0F6FJK4F}Q)AZ4AdchO{2SYY-5+LYp+Ell2A8Hs*Ex zMII8^#ecCjL4g!+dlJE~ot-_s3TwKB#vx~J!L)8+CQvRbc_AOcit)e@Z*q4r=;ERO z3S37!JU`~;zXQjLmj@#t1A9FWdacs=fp(1D#QYemn~W8e7%9Xp#=eZWn(a95>KM2L z4cM_>1Gjn|Ouc;BzDz0wdblEB1&<&LPBISw7`(_aZABh!`W|)bsH~gC;F5w_uQZZW zug&yi@QM|)E9TTzue$awh-;>|2)q~&ABxerUdZLDBk}WDfiLc3LMVh5b&vN4dn*rl literal 0 HcmV?d00001 diff --git a/venv/lib/python3.9/site-packages/chardet/__pycache__/gb2312freq.cpython-39.pyc b/venv/lib/python3.9/site-packages/chardet/__pycache__/gb2312freq.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..48db58c1af5810005cec732e7502eecdcbdde7ee GIT binary patch literal 19094 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