From 01c7e9118be098a2b47cc9c85db69bd83806d4bc Mon Sep 17 00:00:00 2001 From: "mula.liu" Date: Wed, 25 Feb 2026 16:52:02 +0800 Subject: [PATCH] update .gitignore --- .gitignore | 1 + backend/venv/bin/Activate.ps1 | 247 - backend/venv/bin/activate | 70 - backend/venv/bin/activate.csh | 27 - backend/venv/bin/activate.fish | 69 - backend/venv/bin/alembic | 8 - backend/venv/bin/dotenv | 8 - backend/venv/bin/fastapi | 8 - backend/venv/bin/httpx | 8 - backend/venv/bin/mako-render | 8 - backend/venv/bin/pip | 8 - backend/venv/bin/pip3 | 8 - backend/venv/bin/pip3.12 | 8 - backend/venv/bin/pyrsa-decrypt | 8 - backend/venv/bin/pyrsa-encrypt | 8 - backend/venv/bin/pyrsa-keygen | 8 - backend/venv/bin/pyrsa-priv2pub | 8 - backend/venv/bin/pyrsa-sign | 8 - backend/venv/bin/pyrsa-verify | 8 - backend/venv/bin/python | 1 - backend/venv/bin/python3 | 1 - backend/venv/bin/python3.12 | 1 - backend/venv/bin/uvicorn | 8 - backend/venv/bin/watchfiles | 8 - backend/venv/bin/websockets | 8 - .../PyMySQL-1.1.1.dist-info/INSTALLER | 1 - .../PyMySQL-1.1.1.dist-info/LICENSE | 19 - .../PyMySQL-1.1.1.dist-info/METADATA | 135 - .../PyMySQL-1.1.1.dist-info/RECORD | 43 - .../PyMySQL-1.1.1.dist-info/REQUESTED | 0 .../PyMySQL-1.1.1.dist-info/WHEEL | 5 - .../PyMySQL-1.1.1.dist-info/top_level.txt | 1 - .../SQLAlchemy-2.0.36.dist-info/INSTALLER | 1 - .../SQLAlchemy-2.0.36.dist-info/LICENSE | 19 - .../SQLAlchemy-2.0.36.dist-info/METADATA | 243 - .../SQLAlchemy-2.0.36.dist-info/RECORD | 530 - .../SQLAlchemy-2.0.36.dist-info/REQUESTED | 0 .../SQLAlchemy-2.0.36.dist-info/WHEEL | 5 - .../SQLAlchemy-2.0.36.dist-info/top_level.txt | 1 - .../_cffi_backend.cpython-312-darwin.so | Bin 213008 -> 0 bytes .../site-packages/_yaml/__init__.py | 33 - .../alembic-1.13.3.dist-info/INSTALLER | 1 - .../alembic-1.13.3.dist-info/LICENSE | 19 - .../alembic-1.13.3.dist-info/METADATA | 142 - .../alembic-1.13.3.dist-info/RECORD | 151 - .../alembic-1.13.3.dist-info/REQUESTED | 0 .../alembic-1.13.3.dist-info/WHEEL | 5 - .../alembic-1.13.3.dist-info/entry_points.txt | 2 - .../alembic-1.13.3.dist-info/top_level.txt | 1 - .../site-packages/alembic/__init__.py | 4 - .../site-packages/alembic/__main__.py | 4 - .../alembic/autogenerate/__init__.py | 10 - .../site-packages/alembic/autogenerate/api.py | 650 -- .../alembic/autogenerate/compare.py | 1329 --- .../alembic/autogenerate/render.py | 1118 --- .../alembic/autogenerate/rewriter.py | 240 - .../site-packages/alembic/command.py | 758 -- .../site-packages/alembic/config.py | 640 -- .../site-packages/alembic/context.py | 5 - .../site-packages/alembic/context.pyi | 853 -- .../site-packages/alembic/ddl/__init__.py | 6 - .../site-packages/alembic/ddl/_autogen.py | 329 - .../site-packages/alembic/ddl/base.py | 336 - .../site-packages/alembic/ddl/impl.py | 849 -- .../site-packages/alembic/ddl/mssql.py | 419 - .../site-packages/alembic/ddl/mysql.py | 492 - .../site-packages/alembic/ddl/oracle.py | 202 - .../site-packages/alembic/ddl/postgresql.py | 849 -- .../site-packages/alembic/ddl/sqlite.py | 225 - .../site-packages/alembic/environment.py | 1 - .../site-packages/alembic/migration.py | 1 - .../python3.12/site-packages/alembic/op.py | 5 - .../python3.12/site-packages/alembic/op.pyi | 1338 --- .../alembic/operations/__init__.py | 15 - .../site-packages/alembic/operations/base.py | 1907 ---- .../site-packages/alembic/operations/batch.py | 717 -- .../site-packages/alembic/operations/ops.py | 2800 ------ .../alembic/operations/schemaobj.py | 290 - .../alembic/operations/toimpl.py | 238 - .../python3.12/site-packages/alembic/py.typed | 0 .../site-packages/alembic/runtime/__init__.py | 0 .../alembic/runtime/environment.py | 1051 -- .../alembic/runtime/migration.py | 1396 --- .../site-packages/alembic/script/__init__.py | 4 - .../site-packages/alembic/script/base.py | 1066 -- .../site-packages/alembic/script/revision.py | 1728 ---- .../alembic/script/write_hooks.py | 179 - .../alembic/templates/async/README | 1 - .../alembic/templates/async/alembic.ini.mako | 115 - .../alembic/templates/async/env.py | 89 - .../alembic/templates/async/script.py.mako | 26 - .../alembic/templates/generic/README | 1 - .../templates/generic/alembic.ini.mako | 117 - .../alembic/templates/generic/env.py | 78 - .../alembic/templates/generic/script.py.mako | 26 - .../alembic/templates/multidb/README | 12 - .../templates/multidb/alembic.ini.mako | 122 - .../alembic/templates/multidb/env.py | 140 - .../alembic/templates/multidb/script.py.mako | 47 - .../site-packages/alembic/testing/__init__.py | 29 - .../alembic/testing/assertions.py | 176 - .../site-packages/alembic/testing/env.py | 518 - .../site-packages/alembic/testing/fixtures.py | 318 - .../alembic/testing/plugin/__init__.py | 0 .../alembic/testing/plugin/bootstrap.py | 4 - .../alembic/testing/requirements.py | 210 - .../alembic/testing/schemacompare.py | 169 - .../alembic/testing/suite/__init__.py | 7 - .../testing/suite/_autogen_fixtures.py | 335 - .../testing/suite/test_autogen_comments.py | 242 - .../testing/suite/test_autogen_computed.py | 204 - .../testing/suite/test_autogen_diffs.py | 273 - .../alembic/testing/suite/test_autogen_fks.py | 1190 --- .../testing/suite/test_autogen_identity.py | 226 - .../alembic/testing/suite/test_environment.py | 364 - .../alembic/testing/suite/test_op.py | 42 - .../site-packages/alembic/testing/util.py | 126 - .../site-packages/alembic/testing/warnings.py | 40 - .../site-packages/alembic/util/__init__.py | 35 - .../site-packages/alembic/util/compat.py | 89 - .../site-packages/alembic/util/editor.py | 81 - .../site-packages/alembic/util/exc.py | 6 - .../site-packages/alembic/util/langhelpers.py | 332 - .../site-packages/alembic/util/messaging.py | 121 - .../site-packages/alembic/util/pyfiles.py | 114 - .../site-packages/alembic/util/sqla_compat.py | 663 -- .../annotated_types-0.7.0.dist-info/INSTALLER | 1 - .../annotated_types-0.7.0.dist-info/METADATA | 295 - .../annotated_types-0.7.0.dist-info/RECORD | 10 - .../annotated_types-0.7.0.dist-info/WHEEL | 4 - .../licenses/LICENSE | 21 - .../site-packages/annotated_types/__init__.py | 432 - .../site-packages/annotated_types/py.typed | 0 .../annotated_types/test_cases.py | 151 - .../anyio-4.12.1.dist-info/INSTALLER | 1 - .../anyio-4.12.1.dist-info/METADATA | 96 - .../anyio-4.12.1.dist-info/RECORD | 92 - .../anyio-4.12.1.dist-info/WHEEL | 5 - .../anyio-4.12.1.dist-info/entry_points.txt | 2 - .../anyio-4.12.1.dist-info/licenses/LICENSE | 20 - .../anyio-4.12.1.dist-info/top_level.txt | 1 - .../site-packages/anyio/__init__.py | 111 - .../site-packages/anyio/_backends/__init__.py | 0 .../site-packages/anyio/_backends/_asyncio.py | 2980 ------ .../site-packages/anyio/_backends/_trio.py | 1346 --- .../site-packages/anyio/_core/__init__.py | 0 .../anyio/_core/_asyncio_selector_thread.py | 167 - .../anyio/_core/_contextmanagers.py | 200 - .../site-packages/anyio/_core/_eventloop.py | 234 - .../site-packages/anyio/_core/_exceptions.py | 156 - .../site-packages/anyio/_core/_fileio.py | 797 -- .../site-packages/anyio/_core/_resources.py | 18 - .../site-packages/anyio/_core/_signals.py | 29 - .../site-packages/anyio/_core/_sockets.py | 1003 -- .../site-packages/anyio/_core/_streams.py | 52 - .../anyio/_core/_subprocesses.py | 202 - .../anyio/_core/_synchronization.py | 753 -- .../site-packages/anyio/_core/_tasks.py | 173 - .../site-packages/anyio/_core/_tempfile.py | 616 -- .../site-packages/anyio/_core/_testing.py | 82 - .../site-packages/anyio/_core/_typedattr.py | 81 - .../site-packages/anyio/abc/__init__.py | 58 - .../site-packages/anyio/abc/_eventloop.py | 414 - .../site-packages/anyio/abc/_resources.py | 33 - .../site-packages/anyio/abc/_sockets.py | 405 - .../site-packages/anyio/abc/_streams.py | 239 - .../site-packages/anyio/abc/_subprocesses.py | 79 - .../site-packages/anyio/abc/_tasks.py | 117 - .../site-packages/anyio/abc/_testing.py | 65 - .../site-packages/anyio/from_thread.py | 578 -- .../site-packages/anyio/functools.py | 375 - .../site-packages/anyio/lowlevel.py | 196 - .../python3.12/site-packages/anyio/py.typed | 0 .../site-packages/anyio/pytest_plugin.py | 302 - .../site-packages/anyio/streams/__init__.py | 0 .../site-packages/anyio/streams/buffered.py | 188 - .../site-packages/anyio/streams/file.py | 154 - .../site-packages/anyio/streams/memory.py | 325 - .../site-packages/anyio/streams/stapled.py | 147 - .../site-packages/anyio/streams/text.py | 176 - .../site-packages/anyio/streams/tls.py | 424 - .../site-packages/anyio/to_interpreter.py | 246 - .../site-packages/anyio/to_process.py | 266 - .../site-packages/anyio/to_thread.py | 78 - .../bcrypt-4.1.3.dist-info/INSTALLER | 1 - .../bcrypt-4.1.3.dist-info/LICENSE | 201 - .../bcrypt-4.1.3.dist-info/METADATA | 308 - .../bcrypt-4.1.3.dist-info/RECORD | 12 - .../bcrypt-4.1.3.dist-info/REQUESTED | 0 .../bcrypt-4.1.3.dist-info/WHEEL | 5 - .../bcrypt-4.1.3.dist-info/top_level.txt | 1 - .../site-packages/bcrypt/__init__.py | 43 - .../site-packages/bcrypt/__init__.pyi | 10 - .../site-packages/bcrypt/_bcrypt.abi3.so | Bin 1249144 -> 0 bytes .../python3.12/site-packages/bcrypt/py.typed | 0 .../certifi-2026.1.4.dist-info/INSTALLER | 1 - .../certifi-2026.1.4.dist-info/METADATA | 78 - .../certifi-2026.1.4.dist-info/RECORD | 14 - .../certifi-2026.1.4.dist-info/WHEEL | 5 - .../licenses/LICENSE | 20 - .../certifi-2026.1.4.dist-info/top_level.txt | 1 - .../site-packages/certifi/__init__.py | 4 - .../site-packages/certifi/__main__.py | 12 - .../site-packages/certifi/cacert.pem | 4468 --------- .../python3.12/site-packages/certifi/core.py | 83 - .../python3.12/site-packages/certifi/py.typed | 0 .../cffi-2.0.0.dist-info/INSTALLER | 1 - .../cffi-2.0.0.dist-info/METADATA | 68 - .../site-packages/cffi-2.0.0.dist-info/RECORD | 49 - .../site-packages/cffi-2.0.0.dist-info/WHEEL | 6 - .../cffi-2.0.0.dist-info/entry_points.txt | 2 - .../cffi-2.0.0.dist-info/licenses/AUTHORS | 8 - .../cffi-2.0.0.dist-info/licenses/LICENSE | 23 - .../cffi-2.0.0.dist-info/top_level.txt | 2 - .../python3.12/site-packages/cffi/__init__.py | 14 - .../site-packages/cffi/_cffi_errors.h | 149 - .../site-packages/cffi/_cffi_include.h | 389 - .../site-packages/cffi/_embedding.h | 550 - .../site-packages/cffi/_imp_emulation.py | 83 - .../site-packages/cffi/_shimmed_dist_utils.py | 45 - .../lib/python3.12/site-packages/cffi/api.py | 967 -- .../site-packages/cffi/backend_ctypes.py | 1121 --- .../site-packages/cffi/cffi_opcode.py | 187 - .../site-packages/cffi/commontypes.py | 82 - .../python3.12/site-packages/cffi/cparser.py | 1015 -- .../python3.12/site-packages/cffi/error.py | 31 - .../site-packages/cffi/ffiplatform.py | 113 - .../lib/python3.12/site-packages/cffi/lock.py | 30 - .../python3.12/site-packages/cffi/model.py | 618 -- .../site-packages/cffi/parse_c_type.h | 181 - .../site-packages/cffi/pkgconfig.py | 121 - .../site-packages/cffi/recompiler.py | 1598 --- .../site-packages/cffi/setuptools_ext.py | 229 - .../site-packages/cffi/vengine_cpy.py | 1087 -- .../site-packages/cffi/vengine_gen.py | 679 -- .../python3.12/site-packages/cffi/verifier.py | 306 - .../click-8.3.1.dist-info/INSTALLER | 1 - .../click-8.3.1.dist-info/METADATA | 84 - .../click-8.3.1.dist-info/RECORD | 40 - .../site-packages/click-8.3.1.dist-info/WHEEL | 4 - .../licenses/LICENSE.txt | 28 - .../site-packages/click/__init__.py | 123 - .../python3.12/site-packages/click/_compat.py | 622 -- .../site-packages/click/_termui_impl.py | 852 -- .../site-packages/click/_textwrap.py | 51 - .../python3.12/site-packages/click/_utils.py | 36 - .../site-packages/click/_winconsole.py | 296 - .../python3.12/site-packages/click/core.py | 3415 ------- .../site-packages/click/decorators.py | 551 - .../site-packages/click/exceptions.py | 308 - .../site-packages/click/formatting.py | 301 - .../python3.12/site-packages/click/globals.py | 67 - .../python3.12/site-packages/click/parser.py | 532 - .../python3.12/site-packages/click/py.typed | 0 .../site-packages/click/shell_completion.py | 667 -- .../python3.12/site-packages/click/termui.py | 883 -- .../python3.12/site-packages/click/testing.py | 577 -- .../python3.12/site-packages/click/types.py | 1209 --- .../python3.12/site-packages/click/utils.py | 627 -- .../cryptography-46.0.5.dist-info/INSTALLER | 1 - .../cryptography-46.0.5.dist-info/METADATA | 139 - .../cryptography-46.0.5.dist-info/RECORD | 180 - .../cryptography-46.0.5.dist-info/WHEEL | 4 - .../licenses/LICENSE | 3 - .../licenses/LICENSE.APACHE | 202 - .../licenses/LICENSE.BSD | 27 - .../site-packages/cryptography/__about__.py | 17 - .../site-packages/cryptography/__init__.py | 13 - .../site-packages/cryptography/exceptions.py | 52 - .../site-packages/cryptography/fernet.py | 224 - .../cryptography/hazmat/__init__.py | 13 - .../site-packages/cryptography/hazmat/_oid.py | 356 - .../cryptography/hazmat/asn1/__init__.py | 10 - .../cryptography/hazmat/asn1/asn1.py | 116 - .../cryptography/hazmat/backends/__init__.py | 13 - .../hazmat/backends/openssl/__init__.py | 9 - .../hazmat/backends/openssl/backend.py | 302 - .../cryptography/hazmat/bindings/__init__.py | 3 - .../hazmat/bindings/_rust.abi3.so | Bin 21013520 -> 0 bytes .../hazmat/bindings/_rust/__init__.pyi | 37 - .../hazmat/bindings/_rust/_openssl.pyi | 8 - .../hazmat/bindings/_rust/asn1.pyi | 7 - .../bindings/_rust/declarative_asn1.pyi | 32 - .../hazmat/bindings/_rust/exceptions.pyi | 17 - .../hazmat/bindings/_rust/ocsp.pyi | 117 - .../bindings/_rust/openssl/__init__.pyi | 75 - .../hazmat/bindings/_rust/openssl/aead.pyi | 107 - .../hazmat/bindings/_rust/openssl/ciphers.pyi | 38 - .../hazmat/bindings/_rust/openssl/cmac.pyi | 18 - .../hazmat/bindings/_rust/openssl/dh.pyi | 51 - .../hazmat/bindings/_rust/openssl/dsa.pyi | 41 - .../hazmat/bindings/_rust/openssl/ec.pyi | 52 - .../hazmat/bindings/_rust/openssl/ed25519.pyi | 13 - .../hazmat/bindings/_rust/openssl/ed448.pyi | 13 - .../hazmat/bindings/_rust/openssl/hashes.pyi | 28 - .../hazmat/bindings/_rust/openssl/hmac.pyi | 22 - .../hazmat/bindings/_rust/openssl/kdf.pyi | 72 - .../hazmat/bindings/_rust/openssl/keys.pyi | 34 - .../bindings/_rust/openssl/poly1305.pyi | 15 - .../hazmat/bindings/_rust/openssl/rsa.pyi | 55 - .../hazmat/bindings/_rust/openssl/x25519.pyi | 13 - .../hazmat/bindings/_rust/openssl/x448.pyi | 13 - .../hazmat/bindings/_rust/pkcs12.pyi | 52 - .../hazmat/bindings/_rust/pkcs7.pyi | 50 - .../hazmat/bindings/_rust/test_support.pyi | 23 - .../hazmat/bindings/_rust/x509.pyi | 301 - .../hazmat/bindings/openssl/__init__.py | 3 - .../hazmat/bindings/openssl/_conditional.py | 207 - .../hazmat/bindings/openssl/binding.py | 137 - .../cryptography/hazmat/decrepit/__init__.py | 5 - .../hazmat/decrepit/ciphers/__init__.py | 5 - .../hazmat/decrepit/ciphers/algorithms.py | 112 - .../hazmat/primitives/__init__.py | 3 - .../hazmat/primitives/_asymmetric.py | 19 - .../hazmat/primitives/_cipheralgorithm.py | 60 - .../hazmat/primitives/_serialization.py | 168 - .../hazmat/primitives/asymmetric/__init__.py | 3 - .../hazmat/primitives/asymmetric/dh.py | 147 - .../hazmat/primitives/asymmetric/dsa.py | 167 - .../hazmat/primitives/asymmetric/ec.py | 470 - .../hazmat/primitives/asymmetric/ed25519.py | 129 - .../hazmat/primitives/asymmetric/ed448.py | 131 - .../hazmat/primitives/asymmetric/padding.py | 111 - .../hazmat/primitives/asymmetric/rsa.py | 285 - .../hazmat/primitives/asymmetric/types.py | 111 - .../hazmat/primitives/asymmetric/utils.py | 24 - .../hazmat/primitives/asymmetric/x25519.py | 122 - .../hazmat/primitives/asymmetric/x448.py | 125 - .../hazmat/primitives/ciphers/__init__.py | 27 - .../hazmat/primitives/ciphers/aead.py | 23 - .../hazmat/primitives/ciphers/algorithms.py | 136 - .../hazmat/primitives/ciphers/base.py | 146 - .../hazmat/primitives/ciphers/modes.py | 268 - .../cryptography/hazmat/primitives/cmac.py | 10 - .../hazmat/primitives/constant_time.py | 14 - .../cryptography/hazmat/primitives/hashes.py | 246 - .../cryptography/hazmat/primitives/hmac.py | 13 - .../hazmat/primitives/kdf/__init__.py | 23 - .../hazmat/primitives/kdf/argon2.py | 13 - .../hazmat/primitives/kdf/concatkdf.py | 125 - .../hazmat/primitives/kdf/hkdf.py | 16 - .../hazmat/primitives/kdf/kbkdf.py | 303 - .../hazmat/primitives/kdf/pbkdf2.py | 62 - .../hazmat/primitives/kdf/scrypt.py | 19 - .../hazmat/primitives/kdf/x963kdf.py | 61 - .../cryptography/hazmat/primitives/keywrap.py | 177 - .../cryptography/hazmat/primitives/padding.py | 69 - .../hazmat/primitives/poly1305.py | 11 - .../primitives/serialization/__init__.py | 65 - .../hazmat/primitives/serialization/base.py | 14 - .../hazmat/primitives/serialization/pkcs12.py | 176 - .../hazmat/primitives/serialization/pkcs7.py | 411 - .../hazmat/primitives/serialization/ssh.py | 1619 --- .../hazmat/primitives/twofactor/__init__.py | 9 - .../hazmat/primitives/twofactor/hotp.py | 101 - .../hazmat/primitives/twofactor/totp.py | 56 - .../site-packages/cryptography/py.typed | 0 .../site-packages/cryptography/utils.py | 138 - .../cryptography/x509/__init__.py | 270 - .../site-packages/cryptography/x509/base.py | 848 -- .../x509/certificate_transparency.py | 35 - .../cryptography/x509/extensions.py | 2528 ----- .../cryptography/x509/general_name.py | 281 - .../site-packages/cryptography/x509/name.py | 476 - .../site-packages/cryptography/x509/ocsp.py | 379 - .../site-packages/cryptography/x509/oid.py | 37 - .../cryptography/x509/verification.py | 34 - .../site-packages/dotenv/__init__.py | 49 - .../site-packages/dotenv/__main__.py | 6 - .../python3.12/site-packages/dotenv/cli.py | 199 - .../site-packages/dotenv/ipython.py | 39 - .../python3.12/site-packages/dotenv/main.py | 392 - .../python3.12/site-packages/dotenv/parser.py | 175 - .../python3.12/site-packages/dotenv/py.typed | 1 - .../site-packages/dotenv/variables.py | 86 - .../site-packages/dotenv/version.py | 1 - .../ecdsa-0.19.1.dist-info/INSTALLER | 1 - .../ecdsa-0.19.1.dist-info/LICENSE | 24 - .../ecdsa-0.19.1.dist-info/METADATA | 671 -- .../ecdsa-0.19.1.dist-info/RECORD | 66 - .../ecdsa-0.19.1.dist-info/WHEEL | 6 - .../ecdsa-0.19.1.dist-info/top_level.txt | 1 - .../site-packages/ecdsa/__init__.py | 104 - .../python3.12/site-packages/ecdsa/_compat.py | 138 - .../python3.12/site-packages/ecdsa/_rwlock.py | 86 - .../python3.12/site-packages/ecdsa/_sha3.py | 181 - .../site-packages/ecdsa/_version.py | 21 - .../python3.12/site-packages/ecdsa/curves.py | 590 -- .../lib/python3.12/site-packages/ecdsa/der.py | 478 - .../python3.12/site-packages/ecdsa/ecdh.py | 336 - .../python3.12/site-packages/ecdsa/ecdsa.py | 1094 -- .../python3.12/site-packages/ecdsa/eddsa.py | 252 - .../site-packages/ecdsa/ellipticcurve.py | 1609 --- .../python3.12/site-packages/ecdsa/errors.py | 4 - .../python3.12/site-packages/ecdsa/keys.py | 1631 --- .../site-packages/ecdsa/numbertheory.py | 835 -- .../python3.12/site-packages/ecdsa/rfc6979.py | 113 - .../lib/python3.12/site-packages/ecdsa/ssh.py | 83 - .../site-packages/ecdsa/test_curves.py | 361 - .../site-packages/ecdsa/test_der.py | 602 -- .../site-packages/ecdsa/test_ecdh.py | 449 - .../site-packages/ecdsa/test_ecdsa.py | 694 -- .../site-packages/ecdsa/test_eddsa.py | 1124 --- .../site-packages/ecdsa/test_ellipticcurve.py | 294 - .../site-packages/ecdsa/test_jacobi.py | 934 -- .../site-packages/ecdsa/test_keys.py | 1138 --- .../ecdsa/test_malformed_sigs.py | 378 - .../site-packages/ecdsa/test_numbertheory.py | 483 - .../site-packages/ecdsa/test_pyecdsa.py | 2564 ----- .../site-packages/ecdsa/test_rw_lock.py | 180 - .../site-packages/ecdsa/test_sha3.py | 111 - .../python3.12/site-packages/ecdsa/util.py | 533 - .../fastapi-0.115.6.dist-info/INSTALLER | 1 - .../fastapi-0.115.6.dist-info/METADATA | 562 -- .../fastapi-0.115.6.dist-info/RECORD | 97 - .../fastapi-0.115.6.dist-info/REQUESTED | 0 .../fastapi-0.115.6.dist-info/WHEEL | 4 - .../entry_points.txt | 5 - .../licenses/LICENSE | 21 - .../site-packages/fastapi/__init__.py | 25 - .../site-packages/fastapi/__main__.py | 3 - .../site-packages/fastapi/_compat.py | 659 -- .../site-packages/fastapi/applications.py | 4585 --------- .../site-packages/fastapi/background.py | 59 - .../python3.12/site-packages/fastapi/cli.py | 13 - .../site-packages/fastapi/concurrency.py | 39 - .../site-packages/fastapi/datastructures.py | 204 - .../fastapi/dependencies/__init__.py | 0 .../fastapi/dependencies/models.py | 37 - .../fastapi/dependencies/utils.py | 972 -- .../site-packages/fastapi/encoders.py | 343 - .../fastapi/exception_handlers.py | 34 - .../site-packages/fastapi/exceptions.py | 176 - .../site-packages/fastapi/logger.py | 3 - .../fastapi/middleware/__init__.py | 1 - .../site-packages/fastapi/middleware/cors.py | 1 - .../site-packages/fastapi/middleware/gzip.py | 1 - .../fastapi/middleware/httpsredirect.py | 3 - .../fastapi/middleware/trustedhost.py | 3 - .../site-packages/fastapi/middleware/wsgi.py | 1 - .../site-packages/fastapi/openapi/__init__.py | 0 .../fastapi/openapi/constants.py | 3 - .../site-packages/fastapi/openapi/docs.py | 344 - .../site-packages/fastapi/openapi/models.py | 445 - .../site-packages/fastapi/openapi/utils.py | 548 - .../site-packages/fastapi/param_functions.py | 2360 ----- .../site-packages/fastapi/params.py | 786 -- .../python3.12/site-packages/fastapi/py.typed | 0 .../site-packages/fastapi/requests.py | 2 - .../site-packages/fastapi/responses.py | 48 - .../site-packages/fastapi/routing.py | 4439 --------- .../fastapi/security/__init__.py | 15 - .../site-packages/fastapi/security/api_key.py | 301 - .../site-packages/fastapi/security/base.py | 6 - .../site-packages/fastapi/security/http.py | 420 - .../site-packages/fastapi/security/oauth2.py | 638 -- .../fastapi/security/open_id_connect_url.py | 84 - .../site-packages/fastapi/security/utils.py | 10 - .../site-packages/fastapi/staticfiles.py | 1 - .../site-packages/fastapi/templating.py | 1 - .../site-packages/fastapi/testclient.py | 1 - .../python3.12/site-packages/fastapi/types.py | 10 - .../python3.12/site-packages/fastapi/utils.py | 220 - .../site-packages/fastapi/websockets.py | 3 - .../h11-0.16.0.dist-info/INSTALLER | 1 - .../h11-0.16.0.dist-info/METADATA | 202 - .../site-packages/h11-0.16.0.dist-info/RECORD | 29 - .../site-packages/h11-0.16.0.dist-info/WHEEL | 5 - .../h11-0.16.0.dist-info/licenses/LICENSE.txt | 22 - .../h11-0.16.0.dist-info/top_level.txt | 1 - .../python3.12/site-packages/h11/__init__.py | 62 - .../lib/python3.12/site-packages/h11/_abnf.py | 132 - .../site-packages/h11/_connection.py | 659 -- .../python3.12/site-packages/h11/_events.py | 369 - .../python3.12/site-packages/h11/_headers.py | 282 - .../python3.12/site-packages/h11/_readers.py | 250 - .../site-packages/h11/_receivebuffer.py | 153 - .../python3.12/site-packages/h11/_state.py | 365 - .../lib/python3.12/site-packages/h11/_util.py | 135 - .../python3.12/site-packages/h11/_version.py | 16 - .../python3.12/site-packages/h11/_writers.py | 145 - .../lib/python3.12/site-packages/h11/py.typed | 1 - .../httpcore-1.0.9.dist-info/INSTALLER | 1 - .../httpcore-1.0.9.dist-info/METADATA | 625 -- .../httpcore-1.0.9.dist-info/RECORD | 68 - .../httpcore-1.0.9.dist-info/WHEEL | 4 - .../licenses/LICENSE.md | 27 - .../site-packages/httpcore/__init__.py | 141 - .../python3.12/site-packages/httpcore/_api.py | 94 - .../site-packages/httpcore/_async/__init__.py | 39 - .../httpcore/_async/connection.py | 222 - .../httpcore/_async/connection_pool.py | 420 - .../site-packages/httpcore/_async/http11.py | 379 - .../site-packages/httpcore/_async/http2.py | 592 -- .../httpcore/_async/http_proxy.py | 367 - .../httpcore/_async/interfaces.py | 137 - .../httpcore/_async/socks_proxy.py | 341 - .../httpcore/_backends/__init__.py | 0 .../site-packages/httpcore/_backends/anyio.py | 146 - .../site-packages/httpcore/_backends/auto.py | 52 - .../site-packages/httpcore/_backends/base.py | 101 - .../site-packages/httpcore/_backends/mock.py | 143 - .../site-packages/httpcore/_backends/sync.py | 241 - .../site-packages/httpcore/_backends/trio.py | 159 - .../site-packages/httpcore/_exceptions.py | 81 - .../site-packages/httpcore/_models.py | 516 - .../python3.12/site-packages/httpcore/_ssl.py | 9 - .../site-packages/httpcore/_sync/__init__.py | 39 - .../httpcore/_sync/connection.py | 222 - .../httpcore/_sync/connection_pool.py | 420 - .../site-packages/httpcore/_sync/http11.py | 379 - .../site-packages/httpcore/_sync/http2.py | 592 -- .../httpcore/_sync/http_proxy.py | 367 - .../httpcore/_sync/interfaces.py | 137 - .../httpcore/_sync/socks_proxy.py | 341 - .../httpcore/_synchronization.py | 318 - .../site-packages/httpcore/_trace.py | 107 - .../site-packages/httpcore/_utils.py | 37 - .../site-packages/httpcore/py.typed | 0 .../httptools-0.7.1.dist-info/INSTALLER | 1 - .../httptools-0.7.1.dist-info/METADATA | 130 - .../httptools-0.7.1.dist-info/RECORD | 25 - .../httptools-0.7.1.dist-info/WHEEL | 6 - .../licenses/LICENSE | 21 - .../httptools-0.7.1.dist-info/top_level.txt | 1 - .../site-packages/httptools/__init__.py | 6 - .../site-packages/httptools/_version.py | 13 - .../httptools/parser/__init__.py | 6 - .../httptools/parser/cparser.pxd | 167 - .../site-packages/httptools/parser/errors.py | 30 - .../parser/parser.cpython-312-darwin.so | Bin 212544 -> 0 bytes .../site-packages/httptools/parser/parser.pyi | 57 - .../site-packages/httptools/parser/parser.pyx | 436 - .../httptools/parser/protocol.py | 15 - .../site-packages/httptools/parser/python.pxd | 6 - .../httptools/parser/url_cparser.pxd | 31 - .../parser/url_parser.cpython-312-darwin.so | Bin 130928 -> 0 bytes .../httptools/parser/url_parser.pyi | 27 - .../httptools/parser/url_parser.pyx | 108 - .../httpx-0.28.1.dist-info/INSTALLER | 1 - .../httpx-0.28.1.dist-info/METADATA | 203 - .../httpx-0.28.1.dist-info/RECORD | 55 - .../httpx-0.28.1.dist-info/REQUESTED | 0 .../httpx-0.28.1.dist-info/WHEEL | 4 - .../httpx-0.28.1.dist-info/entry_points.txt | 2 - .../licenses/LICENSE.md | 12 - .../site-packages/httpx/__init__.py | 105 - .../site-packages/httpx/__version__.py | 3 - .../python3.12/site-packages/httpx/_api.py | 438 - .../python3.12/site-packages/httpx/_auth.py | 348 - .../python3.12/site-packages/httpx/_client.py | 2019 ---- .../python3.12/site-packages/httpx/_config.py | 248 - .../site-packages/httpx/_content.py | 240 - .../site-packages/httpx/_decoders.py | 393 - .../site-packages/httpx/_exceptions.py | 379 - .../python3.12/site-packages/httpx/_main.py | 506 - .../python3.12/site-packages/httpx/_models.py | 1277 --- .../site-packages/httpx/_multipart.py | 300 - .../site-packages/httpx/_status_codes.py | 162 - .../httpx/_transports/__init__.py | 15 - .../site-packages/httpx/_transports/asgi.py | 187 - .../site-packages/httpx/_transports/base.py | 86 - .../httpx/_transports/default.py | 406 - .../site-packages/httpx/_transports/mock.py | 43 - .../site-packages/httpx/_transports/wsgi.py | 149 - .../python3.12/site-packages/httpx/_types.py | 114 - .../site-packages/httpx/_urlparse.py | 527 - .../python3.12/site-packages/httpx/_urls.py | 641 -- .../python3.12/site-packages/httpx/_utils.py | 242 - .../python3.12/site-packages/httpx/py.typed | 0 .../idna-3.11.dist-info/INSTALLER | 1 - .../idna-3.11.dist-info/METADATA | 209 - .../site-packages/idna-3.11.dist-info/RECORD | 22 - .../site-packages/idna-3.11.dist-info/WHEEL | 4 - .../idna-3.11.dist-info/licenses/LICENSE.md | 31 - .../python3.12/site-packages/idna/__init__.py | 45 - .../python3.12/site-packages/idna/codec.py | 122 - .../python3.12/site-packages/idna/compat.py | 15 - .../lib/python3.12/site-packages/idna/core.py | 437 - .../python3.12/site-packages/idna/idnadata.py | 4309 -------- .../site-packages/idna/intranges.py | 57 - .../site-packages/idna/package_data.py | 1 - .../python3.12/site-packages/idna/py.typed | 0 .../site-packages/idna/uts46data.py | 8841 ----------------- .../python3.12/site-packages/jose/__init__.py | 10 - .../site-packages/jose/backends/__init__.py | 32 - .../site-packages/jose/backends/_asn1.py | 83 - .../site-packages/jose/backends/base.py | 89 - .../jose/backends/cryptography_backend.py | 605 -- .../jose/backends/ecdsa_backend.py | 150 - .../site-packages/jose/backends/native.py | 76 - .../jose/backends/rsa_backend.py | 284 - .../site-packages/jose/constants.py | 98 - .../site-packages/jose/exceptions.py | 59 - .../lib/python3.12/site-packages/jose/jwe.py | 607 -- .../lib/python3.12/site-packages/jose/jwk.py | 79 - .../lib/python3.12/site-packages/jose/jws.py | 266 - .../lib/python3.12/site-packages/jose/jwt.py | 496 - .../python3.12/site-packages/jose/utils.py | 108 - .../mako-1.3.10.dist-info/INSTALLER | 1 - .../mako-1.3.10.dist-info/METADATA | 88 - .../mako-1.3.10.dist-info/RECORD | 74 - .../site-packages/mako-1.3.10.dist-info/WHEEL | 5 - .../mako-1.3.10.dist-info/entry_points.txt | 18 - .../mako-1.3.10.dist-info/licenses/LICENSE | 19 - .../mako-1.3.10.dist-info/top_level.txt | 1 - .../python3.12/site-packages/mako/__init__.py | 8 - .../site-packages/mako/_ast_util.py | 713 -- .../lib/python3.12/site-packages/mako/ast.py | 202 - .../python3.12/site-packages/mako/cache.py | 239 - .../lib/python3.12/site-packages/mako/cmd.py | 99 - .../python3.12/site-packages/mako/codegen.py | 1319 --- .../python3.12/site-packages/mako/compat.py | 70 - .../site-packages/mako/exceptions.py | 417 - .../site-packages/mako/ext/__init__.py | 0 .../site-packages/mako/ext/autohandler.py | 70 - .../site-packages/mako/ext/babelplugin.py | 57 - .../site-packages/mako/ext/beaker_cache.py | 82 - .../site-packages/mako/ext/extract.py | 129 - .../site-packages/mako/ext/linguaplugin.py | 57 - .../site-packages/mako/ext/preprocessors.py | 20 - .../site-packages/mako/ext/pygmentplugin.py | 150 - .../site-packages/mako/ext/turbogears.py | 61 - .../python3.12/site-packages/mako/filters.py | 163 - .../python3.12/site-packages/mako/lexer.py | 481 - .../python3.12/site-packages/mako/lookup.py | 361 - .../site-packages/mako/parsetree.py | 656 -- .../python3.12/site-packages/mako/pygen.py | 309 - .../python3.12/site-packages/mako/pyparser.py | 235 - .../python3.12/site-packages/mako/runtime.py | 968 -- .../python3.12/site-packages/mako/template.py | 711 -- .../site-packages/mako/testing/__init__.py | 0 .../site-packages/mako/testing/_config.py | 128 - .../site-packages/mako/testing/assertions.py | 166 - .../site-packages/mako/testing/config.py | 17 - .../site-packages/mako/testing/exclusions.py | 80 - .../site-packages/mako/testing/fixtures.py | 119 - .../site-packages/mako/testing/helpers.py | 71 - .../lib/python3.12/site-packages/mako/util.py | 388 - .../markupsafe-3.0.3.dist-info/INSTALLER | 1 - .../markupsafe-3.0.3.dist-info/METADATA | 74 - .../markupsafe-3.0.3.dist-info/RECORD | 14 - .../markupsafe-3.0.3.dist-info/WHEEL | 6 - .../licenses/LICENSE.txt | 28 - .../markupsafe-3.0.3.dist-info/top_level.txt | 1 - .../site-packages/markupsafe/__init__.py | 396 - .../site-packages/markupsafe/_native.py | 8 - .../site-packages/markupsafe/_speedups.c | 200 - .../_speedups.cpython-312-darwin.so | Bin 50656 -> 0 bytes .../site-packages/markupsafe/_speedups.pyi | 1 - .../site-packages/markupsafe/py.typed | 0 .../site-packages/multipart/__init__.py | 24 - .../site-packages/multipart/decoders.py | 1 - .../site-packages/multipart/exceptions.py | 1 - .../site-packages/multipart/multipart.py | 1 - .../passlib-1.7.4.dist-info/INSTALLER | 1 - .../passlib-1.7.4.dist-info/LICENSE | 116 - .../passlib-1.7.4.dist-info/METADATA | 40 - .../passlib-1.7.4.dist-info/RECORD | 202 - .../passlib-1.7.4.dist-info/REQUESTED | 0 .../passlib-1.7.4.dist-info/WHEEL | 6 - .../passlib-1.7.4.dist-info/top_level.txt | 1 - .../passlib-1.7.4.dist-info/zip-safe | 1 - .../site-packages/passlib/__init__.py | 3 - .../passlib/_data/wordsets/bip39.txt | 2049 ---- .../passlib/_data/wordsets/eff_long.txt | 7776 --------------- .../passlib/_data/wordsets/eff_prefixed.txt | 1296 --- .../passlib/_data/wordsets/eff_short.txt | 1296 --- .../site-packages/passlib/apache.py | 1255 --- .../python3.12/site-packages/passlib/apps.py | 245 - .../site-packages/passlib/context.py | 2637 ----- .../site-packages/passlib/crypto/__init__.py | 1 - .../passlib/crypto/_blowfish/__init__.py | 169 - .../passlib/crypto/_blowfish/_gen_files.py | 204 - .../passlib/crypto/_blowfish/base.py | 441 - .../passlib/crypto/_blowfish/unrolled.py | 771 -- .../site-packages/passlib/crypto/_md4.py | 244 - .../site-packages/passlib/crypto/des.py | 848 -- .../site-packages/passlib/crypto/digest.py | 1057 -- .../passlib/crypto/scrypt/__init__.py | 281 - .../passlib/crypto/scrypt/_builtin.py | 244 - .../passlib/crypto/scrypt/_gen_files.py | 154 - .../passlib/crypto/scrypt/_salsa.py | 170 - .../python3.12/site-packages/passlib/exc.py | 397 - .../site-packages/passlib/ext/__init__.py | 1 - .../passlib/ext/django/__init__.py | 6 - .../passlib/ext/django/models.py | 36 - .../site-packages/passlib/ext/django/utils.py | 1276 --- .../passlib/handlers/__init__.py | 1 - .../site-packages/passlib/handlers/argon2.py | 1009 -- .../site-packages/passlib/handlers/bcrypt.py | 1243 --- .../site-packages/passlib/handlers/cisco.py | 440 - .../passlib/handlers/des_crypt.py | 607 -- .../site-packages/passlib/handlers/digests.py | 168 - .../site-packages/passlib/handlers/django.py | 512 - .../site-packages/passlib/handlers/fshp.py | 214 - .../passlib/handlers/ldap_digests.py | 359 - .../passlib/handlers/md5_crypt.py | 346 - .../site-packages/passlib/handlers/misc.py | 269 - .../site-packages/passlib/handlers/mssql.py | 244 - .../site-packages/passlib/handlers/mysql.py | 128 - .../site-packages/passlib/handlers/oracle.py | 172 - .../site-packages/passlib/handlers/pbkdf2.py | 475 - .../site-packages/passlib/handlers/phpass.py | 135 - .../passlib/handlers/postgres.py | 55 - .../site-packages/passlib/handlers/roundup.py | 29 - .../site-packages/passlib/handlers/scram.py | 582 -- .../site-packages/passlib/handlers/scrypt.py | 383 - .../passlib/handlers/sha1_crypt.py | 158 - .../passlib/handlers/sha2_crypt.py | 534 - .../passlib/handlers/sun_md5_crypt.py | 363 - .../site-packages/passlib/handlers/windows.py | 334 - .../python3.12/site-packages/passlib/hash.py | 68 - .../python3.12/site-packages/passlib/hosts.py | 106 - .../python3.12/site-packages/passlib/ifc.py | 353 - .../python3.12/site-packages/passlib/pwd.py | 809 -- .../site-packages/passlib/registry.py | 547 - .../site-packages/passlib/tests/__init__.py | 1 - .../site-packages/passlib/tests/__main__.py | 6 - .../passlib/tests/_test_bad_register.py | 15 - .../site-packages/passlib/tests/backports.py | 67 - .../site-packages/passlib/tests/sample1.cfg | 9 - .../site-packages/passlib/tests/sample1b.cfg | 9 - .../site-packages/passlib/tests/sample1c.cfg | Bin 490 -> 0 bytes .../passlib/tests/sample_config_1s.cfg | 8 - .../passlib/tests/test_apache.py | 769 -- .../site-packages/passlib/tests/test_apps.py | 139 - .../passlib/tests/test_context.py | 1786 ---- .../passlib/tests/test_context_deprecated.py | 743 -- .../passlib/tests/test_crypto_builtin_md4.py | 160 - .../passlib/tests/test_crypto_des.py | 194 - .../passlib/tests/test_crypto_digest.py | 544 - .../passlib/tests/test_crypto_scrypt.py | 634 -- .../passlib/tests/test_ext_django.py | 1080 -- .../passlib/tests/test_ext_django_source.py | 250 - .../passlib/tests/test_handlers.py | 1819 ---- .../passlib/tests/test_handlers_argon2.py | 507 - .../passlib/tests/test_handlers_bcrypt.py | 688 -- .../passlib/tests/test_handlers_cisco.py | 457 - .../passlib/tests/test_handlers_django.py | 413 - .../passlib/tests/test_handlers_pbkdf2.py | 480 - .../passlib/tests/test_handlers_scrypt.py | 111 - .../site-packages/passlib/tests/test_hosts.py | 97 - .../site-packages/passlib/tests/test_pwd.py | 205 - .../passlib/tests/test_registry.py | 228 - .../site-packages/passlib/tests/test_totp.py | 1604 --- .../site-packages/passlib/tests/test_utils.py | 1171 --- .../passlib/tests/test_utils_handlers.py | 870 -- .../passlib/tests/test_utils_md4.py | 41 - .../passlib/tests/test_utils_pbkdf2.py | 323 - .../site-packages/passlib/tests/test_win32.py | 50 - .../passlib/tests/tox_support.py | 83 - .../site-packages/passlib/tests/utils.py | 3621 ------- .../python3.12/site-packages/passlib/totp.py | 1908 ---- .../site-packages/passlib/utils/__init__.py | 1220 --- .../site-packages/passlib/utils/binary.py | 884 -- .../passlib/utils/compat/__init__.py | 474 - .../passlib/utils/compat/_ordered_dict.py | 242 - .../site-packages/passlib/utils/decor.py | 233 - .../site-packages/passlib/utils/des.py | 46 - .../site-packages/passlib/utils/handlers.py | 2711 ----- .../site-packages/passlib/utils/md4.py | 29 - .../site-packages/passlib/utils/pbkdf2.py | 193 - .../python3.12/site-packages/passlib/win32.py | 68 - .../pip-24.0.dist-info/AUTHORS.txt | 760 -- .../pip-24.0.dist-info/INSTALLER | 1 - .../pip-24.0.dist-info/LICENSE.txt | 20 - .../site-packages/pip-24.0.dist-info/METADATA | 88 - .../site-packages/pip-24.0.dist-info/RECORD | 1024 -- .../pip-24.0.dist-info/REQUESTED | 0 .../site-packages/pip-24.0.dist-info/WHEEL | 5 - .../pip-24.0.dist-info/entry_points.txt | 4 - .../pip-24.0.dist-info/top_level.txt | 1 - .../python3.12/site-packages/pip/__init__.py | 13 - .../python3.12/site-packages/pip/__main__.py | 24 - .../site-packages/pip/__pip-runner__.py | 50 - .../site-packages/pip/_internal/__init__.py | 18 - .../site-packages/pip/_internal/build_env.py | 311 - .../site-packages/pip/_internal/cache.py | 290 - .../pip/_internal/cli/__init__.py | 4 - .../pip/_internal/cli/autocompletion.py | 172 - .../pip/_internal/cli/base_command.py | 236 - .../pip/_internal/cli/cmdoptions.py | 1074 -- .../pip/_internal/cli/command_context.py | 27 - .../site-packages/pip/_internal/cli/main.py | 79 - .../pip/_internal/cli/main_parser.py | 134 - .../site-packages/pip/_internal/cli/parser.py | 294 - .../pip/_internal/cli/progress_bars.py | 68 - .../pip/_internal/cli/req_command.py | 505 - .../pip/_internal/cli/spinners.py | 159 - .../pip/_internal/cli/status_codes.py | 6 - .../pip/_internal/commands/__init__.py | 132 - .../pip/_internal/commands/cache.py | 225 - .../pip/_internal/commands/check.py | 54 - .../pip/_internal/commands/completion.py | 130 - .../pip/_internal/commands/configuration.py | 280 - .../pip/_internal/commands/debug.py | 201 - .../pip/_internal/commands/download.py | 147 - .../pip/_internal/commands/freeze.py | 108 - .../pip/_internal/commands/hash.py | 59 - .../pip/_internal/commands/help.py | 41 - .../pip/_internal/commands/index.py | 139 - .../pip/_internal/commands/inspect.py | 92 - .../pip/_internal/commands/install.py | 774 -- .../pip/_internal/commands/list.py | 368 - .../pip/_internal/commands/search.py | 174 - .../pip/_internal/commands/show.py | 189 - .../pip/_internal/commands/uninstall.py | 113 - .../pip/_internal/commands/wheel.py | 183 - .../pip/_internal/configuration.py | 383 - .../pip/_internal/distributions/__init__.py | 21 - .../pip/_internal/distributions/base.py | 51 - .../pip/_internal/distributions/installed.py | 29 - .../pip/_internal/distributions/sdist.py | 156 - .../pip/_internal/distributions/wheel.py | 40 - .../site-packages/pip/_internal/exceptions.py | 728 -- .../pip/_internal/index/__init__.py | 2 - .../pip/_internal/index/collector.py | 507 - .../pip/_internal/index/package_finder.py | 1027 -- .../pip/_internal/index/sources.py | 285 - .../pip/_internal/locations/__init__.py | 467 - .../pip/_internal/locations/_distutils.py | 172 - .../pip/_internal/locations/_sysconfig.py | 213 - .../pip/_internal/locations/base.py | 81 - .../site-packages/pip/_internal/main.py | 12 - .../pip/_internal/metadata/__init__.py | 128 - .../pip/_internal/metadata/_json.py | 84 - .../pip/_internal/metadata/base.py | 702 -- .../_internal/metadata/importlib/__init__.py | 6 - .../_internal/metadata/importlib/_compat.py | 55 - .../_internal/metadata/importlib/_dists.py | 227 - .../pip/_internal/metadata/importlib/_envs.py | 189 - .../pip/_internal/metadata/pkg_resources.py | 278 - .../pip/_internal/models/__init__.py | 2 - .../pip/_internal/models/candidate.py | 30 - .../pip/_internal/models/direct_url.py | 235 - .../pip/_internal/models/format_control.py | 78 - .../pip/_internal/models/index.py | 28 - .../_internal/models/installation_report.py | 56 - .../pip/_internal/models/link.py | 579 -- .../pip/_internal/models/scheme.py | 31 - .../pip/_internal/models/search_scope.py | 132 - .../pip/_internal/models/selection_prefs.py | 51 - .../pip/_internal/models/target_python.py | 122 - .../pip/_internal/models/wheel.py | 92 - .../pip/_internal/network/__init__.py | 2 - .../pip/_internal/network/auth.py | 561 -- .../pip/_internal/network/cache.py | 106 - .../pip/_internal/network/download.py | 186 - .../pip/_internal/network/lazy_wheel.py | 210 - .../pip/_internal/network/session.py | 520 - .../pip/_internal/network/utils.py | 96 - .../pip/_internal/network/xmlrpc.py | 62 - .../pip/_internal/operations/__init__.py | 0 .../_internal/operations/build/__init__.py | 0 .../operations/build/build_tracker.py | 139 - .../_internal/operations/build/metadata.py | 39 - .../operations/build/metadata_editable.py | 41 - .../operations/build/metadata_legacy.py | 74 - .../pip/_internal/operations/build/wheel.py | 37 - .../operations/build/wheel_editable.py | 46 - .../operations/build/wheel_legacy.py | 102 - .../pip/_internal/operations/check.py | 187 - .../pip/_internal/operations/freeze.py | 255 - .../_internal/operations/install/__init__.py | 2 - .../operations/install/editable_legacy.py | 46 - .../pip/_internal/operations/install/wheel.py | 734 -- .../pip/_internal/operations/prepare.py | 730 -- .../site-packages/pip/_internal/pyproject.py | 179 - .../pip/_internal/req/__init__.py | 92 - .../pip/_internal/req/constructors.py | 576 -- .../pip/_internal/req/req_file.py | 554 -- .../pip/_internal/req/req_install.py | 923 -- .../pip/_internal/req/req_set.py | 119 - .../pip/_internal/req/req_uninstall.py | 649 -- .../pip/_internal/resolution/__init__.py | 0 .../pip/_internal/resolution/base.py | 20 - .../_internal/resolution/legacy/__init__.py | 0 .../_internal/resolution/legacy/resolver.py | 598 -- .../resolution/resolvelib/__init__.py | 0 .../_internal/resolution/resolvelib/base.py | 141 - .../resolution/resolvelib/candidates.py | 597 -- .../resolution/resolvelib/factory.py | 812 -- .../resolution/resolvelib/found_candidates.py | 155 - .../resolution/resolvelib/provider.py | 255 - .../resolution/resolvelib/reporter.py | 80 - .../resolution/resolvelib/requirements.py | 166 - .../resolution/resolvelib/resolver.py | 317 - .../pip/_internal/self_outdated_check.py | 248 - .../pip/_internal/utils/__init__.py | 0 .../pip/_internal/utils/_jaraco_text.py | 109 - .../site-packages/pip/_internal/utils/_log.py | 38 - .../pip/_internal/utils/appdirs.py | 52 - .../pip/_internal/utils/compat.py | 63 - .../pip/_internal/utils/compatibility_tags.py | 165 - .../pip/_internal/utils/datetime.py | 11 - .../pip/_internal/utils/deprecation.py | 120 - .../pip/_internal/utils/direct_url_helpers.py | 87 - .../pip/_internal/utils/egg_link.py | 80 - .../pip/_internal/utils/encoding.py | 36 - .../pip/_internal/utils/entrypoints.py | 84 - .../pip/_internal/utils/filesystem.py | 153 - .../pip/_internal/utils/filetypes.py | 27 - .../pip/_internal/utils/glibc.py | 88 - .../pip/_internal/utils/hashes.py | 151 - .../pip/_internal/utils/logging.py | 348 - .../site-packages/pip/_internal/utils/misc.py | 783 -- .../pip/_internal/utils/models.py | 39 - .../pip/_internal/utils/packaging.py | 57 - .../pip/_internal/utils/setuptools_build.py | 146 - .../pip/_internal/utils/subprocess.py | 260 - .../pip/_internal/utils/temp_dir.py | 296 - .../pip/_internal/utils/unpacking.py | 257 - .../site-packages/pip/_internal/utils/urls.py | 62 - .../pip/_internal/utils/virtualenv.py | 104 - .../pip/_internal/utils/wheel.py | 134 - .../pip/_internal/vcs/__init__.py | 15 - .../site-packages/pip/_internal/vcs/bazaar.py | 112 - .../site-packages/pip/_internal/vcs/git.py | 526 - .../pip/_internal/vcs/mercurial.py | 163 - .../pip/_internal/vcs/subversion.py | 324 - .../pip/_internal/vcs/versioncontrol.py | 705 -- .../pip/_internal/wheel_builder.py | 354 - .../site-packages/pip/_vendor/__init__.py | 121 - .../pip/_vendor/cachecontrol/__init__.py | 28 - .../pip/_vendor/cachecontrol/_cmd.py | 70 - .../pip/_vendor/cachecontrol/adapter.py | 161 - .../pip/_vendor/cachecontrol/cache.py | 74 - .../_vendor/cachecontrol/caches/__init__.py | 8 - .../_vendor/cachecontrol/caches/file_cache.py | 181 - .../cachecontrol/caches/redis_cache.py | 48 - .../pip/_vendor/cachecontrol/controller.py | 494 - .../pip/_vendor/cachecontrol/filewrapper.py | 119 - .../pip/_vendor/cachecontrol/heuristics.py | 154 - .../pip/_vendor/cachecontrol/py.typed | 0 .../pip/_vendor/cachecontrol/serialize.py | 206 - .../pip/_vendor/cachecontrol/wrapper.py | 43 - .../pip/_vendor/certifi/__init__.py | 4 - .../pip/_vendor/certifi/__main__.py | 12 - .../pip/_vendor/certifi/cacert.pem | 4635 --------- .../site-packages/pip/_vendor/certifi/core.py | 108 - .../pip/_vendor/certifi/py.typed | 0 .../pip/_vendor/chardet/__init__.py | 115 - .../pip/_vendor/chardet/big5freq.py | 386 - .../pip/_vendor/chardet/big5prober.py | 47 - .../pip/_vendor/chardet/chardistribution.py | 261 - .../pip/_vendor/chardet/charsetgroupprober.py | 106 - .../pip/_vendor/chardet/charsetprober.py | 147 - .../pip/_vendor/chardet/cli/__init__.py | 0 .../pip/_vendor/chardet/cli/chardetect.py | 112 - .../pip/_vendor/chardet/codingstatemachine.py | 90 - .../_vendor/chardet/codingstatemachinedict.py | 19 - .../pip/_vendor/chardet/cp949prober.py | 49 - .../pip/_vendor/chardet/enums.py | 85 - .../pip/_vendor/chardet/escprober.py | 102 - .../pip/_vendor/chardet/escsm.py | 261 - .../pip/_vendor/chardet/eucjpprober.py | 102 - .../pip/_vendor/chardet/euckrfreq.py | 196 - .../pip/_vendor/chardet/euckrprober.py | 47 - .../pip/_vendor/chardet/euctwfreq.py | 388 - .../pip/_vendor/chardet/euctwprober.py | 47 - .../pip/_vendor/chardet/gb2312freq.py | 284 - .../pip/_vendor/chardet/gb2312prober.py | 47 - .../pip/_vendor/chardet/hebrewprober.py | 316 - .../pip/_vendor/chardet/jisfreq.py | 325 - .../pip/_vendor/chardet/johabfreq.py | 2382 ----- .../pip/_vendor/chardet/johabprober.py | 47 - .../pip/_vendor/chardet/jpcntx.py | 238 - .../pip/_vendor/chardet/langbulgarianmodel.py | 4649 --------- .../pip/_vendor/chardet/langgreekmodel.py | 4397 -------- .../pip/_vendor/chardet/langhebrewmodel.py | 4380 -------- .../pip/_vendor/chardet/langhungarianmodel.py | 4649 --------- .../pip/_vendor/chardet/langrussianmodel.py | 5725 ----------- .../pip/_vendor/chardet/langthaimodel.py | 4380 -------- .../pip/_vendor/chardet/langturkishmodel.py | 4380 -------- .../pip/_vendor/chardet/latin1prober.py | 147 - .../pip/_vendor/chardet/macromanprober.py | 162 - .../pip/_vendor/chardet/mbcharsetprober.py | 95 - .../pip/_vendor/chardet/mbcsgroupprober.py | 57 - .../pip/_vendor/chardet/mbcssm.py | 661 -- .../pip/_vendor/chardet/metadata/__init__.py | 0 .../pip/_vendor/chardet/metadata/languages.py | 352 - .../pip/_vendor/chardet/py.typed | 0 .../pip/_vendor/chardet/resultdict.py | 16 - .../pip/_vendor/chardet/sbcharsetprober.py | 162 - .../pip/_vendor/chardet/sbcsgroupprober.py | 88 - .../pip/_vendor/chardet/sjisprober.py | 105 - .../pip/_vendor/chardet/universaldetector.py | 362 - .../pip/_vendor/chardet/utf1632prober.py | 225 - .../pip/_vendor/chardet/utf8prober.py | 82 - .../pip/_vendor/chardet/version.py | 9 - .../pip/_vendor/colorama/__init__.py | 7 - .../pip/_vendor/colorama/ansi.py | 102 - .../pip/_vendor/colorama/ansitowin32.py | 277 - .../pip/_vendor/colorama/initialise.py | 121 - .../pip/_vendor/colorama/tests/__init__.py | 1 - .../pip/_vendor/colorama/tests/ansi_test.py | 76 - .../colorama/tests/ansitowin32_test.py | 294 - .../_vendor/colorama/tests/initialise_test.py | 189 - .../pip/_vendor/colorama/tests/isatty_test.py | 57 - .../pip/_vendor/colorama/tests/utils.py | 49 - .../_vendor/colorama/tests/winterm_test.py | 131 - .../pip/_vendor/colorama/win32.py | 180 - .../pip/_vendor/colorama/winterm.py | 195 - .../pip/_vendor/distlib/__init__.py | 33 - .../pip/_vendor/distlib/compat.py | 1138 --- .../pip/_vendor/distlib/database.py | 1359 --- .../pip/_vendor/distlib/index.py | 508 - .../pip/_vendor/distlib/locators.py | 1303 --- .../pip/_vendor/distlib/manifest.py | 384 - .../pip/_vendor/distlib/markers.py | 167 - .../pip/_vendor/distlib/metadata.py | 1068 -- .../pip/_vendor/distlib/resources.py | 358 - .../pip/_vendor/distlib/scripts.py | 452 - .../site-packages/pip/_vendor/distlib/t32.exe | Bin 97792 -> 0 bytes .../pip/_vendor/distlib/t64-arm.exe | Bin 182784 -> 0 bytes .../site-packages/pip/_vendor/distlib/t64.exe | Bin 108032 -> 0 bytes .../site-packages/pip/_vendor/distlib/util.py | 2025 ---- .../pip/_vendor/distlib/version.py | 751 -- .../site-packages/pip/_vendor/distlib/w32.exe | Bin 91648 -> 0 bytes .../pip/_vendor/distlib/w64-arm.exe | Bin 168448 -> 0 bytes .../site-packages/pip/_vendor/distlib/w64.exe | Bin 101888 -> 0 bytes .../pip/_vendor/distlib/wheel.py | 1099 -- .../pip/_vendor/distro/__init__.py | 54 - .../pip/_vendor/distro/__main__.py | 4 - .../pip/_vendor/distro/distro.py | 1399 --- .../site-packages/pip/_vendor/distro/py.typed | 0 .../pip/_vendor/idna/__init__.py | 44 - .../site-packages/pip/_vendor/idna/codec.py | 112 - .../site-packages/pip/_vendor/idna/compat.py | 13 - .../site-packages/pip/_vendor/idna/core.py | 400 - .../pip/_vendor/idna/idnadata.py | 2151 ---- .../pip/_vendor/idna/intranges.py | 54 - .../pip/_vendor/idna/package_data.py | 2 - .../site-packages/pip/_vendor/idna/py.typed | 0 .../pip/_vendor/idna/uts46data.py | 8600 ---------------- .../pip/_vendor/msgpack/__init__.py | 57 - .../pip/_vendor/msgpack/exceptions.py | 48 - .../site-packages/pip/_vendor/msgpack/ext.py | 193 - .../pip/_vendor/msgpack/fallback.py | 1010 -- .../pip/_vendor/packaging/__about__.py | 26 - .../pip/_vendor/packaging/__init__.py | 25 - .../pip/_vendor/packaging/_manylinux.py | 301 - .../pip/_vendor/packaging/_musllinux.py | 136 - .../pip/_vendor/packaging/_structures.py | 61 - .../pip/_vendor/packaging/markers.py | 304 - .../pip/_vendor/packaging/py.typed | 0 .../pip/_vendor/packaging/requirements.py | 146 - .../pip/_vendor/packaging/specifiers.py | 802 -- .../pip/_vendor/packaging/tags.py | 487 - .../pip/_vendor/packaging/utils.py | 136 - .../pip/_vendor/packaging/version.py | 504 - .../pip/_vendor/pkg_resources/__init__.py | 3361 ------- .../pip/_vendor/platformdirs/__init__.py | 566 -- .../pip/_vendor/platformdirs/__main__.py | 53 - .../pip/_vendor/platformdirs/android.py | 210 - .../pip/_vendor/platformdirs/api.py | 223 - .../pip/_vendor/platformdirs/macos.py | 91 - .../pip/_vendor/platformdirs/py.typed | 0 .../pip/_vendor/platformdirs/unix.py | 223 - .../pip/_vendor/platformdirs/version.py | 4 - .../pip/_vendor/platformdirs/windows.py | 255 - .../pip/_vendor/pygments/__init__.py | 82 - .../pip/_vendor/pygments/__main__.py | 17 - .../pip/_vendor/pygments/cmdline.py | 668 -- .../pip/_vendor/pygments/console.py | 70 - .../pip/_vendor/pygments/filter.py | 71 - .../pip/_vendor/pygments/filters/__init__.py | 940 -- .../pip/_vendor/pygments/formatter.py | 124 - .../_vendor/pygments/formatters/__init__.py | 158 - .../_vendor/pygments/formatters/_mapping.py | 23 - .../pip/_vendor/pygments/formatters/bbcode.py | 108 - .../pip/_vendor/pygments/formatters/groff.py | 170 - .../pip/_vendor/pygments/formatters/html.py | 989 -- .../pip/_vendor/pygments/formatters/img.py | 645 -- .../pip/_vendor/pygments/formatters/irc.py | 154 - .../pip/_vendor/pygments/formatters/latex.py | 521 - .../pip/_vendor/pygments/formatters/other.py | 161 - .../pygments/formatters/pangomarkup.py | 83 - .../pip/_vendor/pygments/formatters/rtf.py | 146 - .../pip/_vendor/pygments/formatters/svg.py | 188 - .../_vendor/pygments/formatters/terminal.py | 127 - .../pygments/formatters/terminal256.py | 338 - .../pip/_vendor/pygments/lexer.py | 943 -- .../pip/_vendor/pygments/lexers/__init__.py | 362 - .../pip/_vendor/pygments/lexers/_mapping.py | 559 -- .../pip/_vendor/pygments/lexers/python.py | 1198 --- .../pip/_vendor/pygments/modeline.py | 43 - .../pip/_vendor/pygments/plugin.py | 88 - .../pip/_vendor/pygments/regexopt.py | 91 - .../pip/_vendor/pygments/scanner.py | 104 - .../pip/_vendor/pygments/sphinxext.py | 217 - .../pip/_vendor/pygments/style.py | 197 - .../pip/_vendor/pygments/styles/__init__.py | 103 - .../pip/_vendor/pygments/token.py | 213 - .../pip/_vendor/pygments/unistring.py | 153 - .../pip/_vendor/pygments/util.py | 330 - .../pip/_vendor/pyparsing/__init__.py | 322 - .../pip/_vendor/pyparsing/actions.py | 217 - .../pip/_vendor/pyparsing/common.py | 432 - .../pip/_vendor/pyparsing/core.py | 6115 ------------ .../pip/_vendor/pyparsing/diagram/__init__.py | 656 -- .../pip/_vendor/pyparsing/exceptions.py | 299 - .../pip/_vendor/pyparsing/helpers.py | 1100 -- .../pip/_vendor/pyparsing/py.typed | 0 .../pip/_vendor/pyparsing/results.py | 796 -- .../pip/_vendor/pyparsing/testing.py | 331 - .../pip/_vendor/pyparsing/unicode.py | 361 - .../pip/_vendor/pyparsing/util.py | 284 - .../pip/_vendor/pyproject_hooks/__init__.py | 23 - .../pip/_vendor/pyproject_hooks/_compat.py | 8 - .../pip/_vendor/pyproject_hooks/_impl.py | 330 - .../pyproject_hooks/_in_process/__init__.py | 18 - .../_in_process/_in_process.py | 353 - .../pip/_vendor/requests/__init__.py | 182 - .../pip/_vendor/requests/__version__.py | 14 - .../pip/_vendor/requests/_internal_utils.py | 50 - .../pip/_vendor/requests/adapters.py | 538 - .../site-packages/pip/_vendor/requests/api.py | 157 - .../pip/_vendor/requests/auth.py | 315 - .../pip/_vendor/requests/certs.py | 24 - .../pip/_vendor/requests/compat.py | 67 - .../pip/_vendor/requests/cookies.py | 561 -- .../pip/_vendor/requests/exceptions.py | 141 - .../pip/_vendor/requests/help.py | 131 - .../pip/_vendor/requests/hooks.py | 33 - .../pip/_vendor/requests/models.py | 1034 -- .../pip/_vendor/requests/packages.py | 16 - .../pip/_vendor/requests/sessions.py | 833 -- .../pip/_vendor/requests/status_codes.py | 128 - .../pip/_vendor/requests/structures.py | 99 - .../pip/_vendor/requests/utils.py | 1094 -- .../pip/_vendor/resolvelib/__init__.py | 26 - .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../resolvelib/compat/collections_abc.py | 6 - .../pip/_vendor/resolvelib/providers.py | 133 - .../pip/_vendor/resolvelib/py.typed | 0 .../pip/_vendor/resolvelib/reporters.py | 43 - .../pip/_vendor/resolvelib/resolvers.py | 547 - .../pip/_vendor/resolvelib/structs.py | 170 - .../pip/_vendor/rich/__init__.py | 177 - .../pip/_vendor/rich/__main__.py | 274 - .../pip/_vendor/rich/_cell_widths.py | 451 - .../pip/_vendor/rich/_emoji_codes.py | 3610 ------- .../pip/_vendor/rich/_emoji_replace.py | 32 - .../pip/_vendor/rich/_export_format.py | 76 - .../pip/_vendor/rich/_extension.py | 10 - .../site-packages/pip/_vendor/rich/_fileno.py | 24 - .../pip/_vendor/rich/_inspect.py | 270 - .../pip/_vendor/rich/_log_render.py | 94 - .../site-packages/pip/_vendor/rich/_loop.py | 43 - .../pip/_vendor/rich/_null_file.py | 69 - .../pip/_vendor/rich/_palettes.py | 309 - .../site-packages/pip/_vendor/rich/_pick.py | 17 - .../site-packages/pip/_vendor/rich/_ratio.py | 160 - .../pip/_vendor/rich/_spinners.py | 482 - .../site-packages/pip/_vendor/rich/_stack.py | 16 - .../site-packages/pip/_vendor/rich/_timer.py | 19 - .../pip/_vendor/rich/_win32_console.py | 662 -- .../pip/_vendor/rich/_windows.py | 72 - .../pip/_vendor/rich/_windows_renderer.py | 56 - .../site-packages/pip/_vendor/rich/_wrap.py | 56 - .../site-packages/pip/_vendor/rich/abc.py | 33 - .../site-packages/pip/_vendor/rich/align.py | 311 - .../site-packages/pip/_vendor/rich/ansi.py | 240 - .../site-packages/pip/_vendor/rich/bar.py | 94 - .../site-packages/pip/_vendor/rich/box.py | 517 - .../site-packages/pip/_vendor/rich/cells.py | 154 - .../site-packages/pip/_vendor/rich/color.py | 622 -- .../pip/_vendor/rich/color_triplet.py | 38 - .../site-packages/pip/_vendor/rich/columns.py | 187 - .../site-packages/pip/_vendor/rich/console.py | 2633 ----- .../pip/_vendor/rich/constrain.py | 37 - .../pip/_vendor/rich/containers.py | 167 - .../site-packages/pip/_vendor/rich/control.py | 225 - .../pip/_vendor/rich/default_styles.py | 190 - .../pip/_vendor/rich/diagnose.py | 37 - .../site-packages/pip/_vendor/rich/emoji.py | 96 - .../site-packages/pip/_vendor/rich/errors.py | 34 - .../pip/_vendor/rich/file_proxy.py | 57 - .../pip/_vendor/rich/filesize.py | 89 - .../pip/_vendor/rich/highlighter.py | 232 - .../site-packages/pip/_vendor/rich/json.py | 140 - .../site-packages/pip/_vendor/rich/jupyter.py | 101 - .../site-packages/pip/_vendor/rich/layout.py | 443 - .../site-packages/pip/_vendor/rich/live.py | 375 - .../pip/_vendor/rich/live_render.py | 113 - .../site-packages/pip/_vendor/rich/logging.py | 289 - .../site-packages/pip/_vendor/rich/markup.py | 246 - .../site-packages/pip/_vendor/rich/measure.py | 151 - .../site-packages/pip/_vendor/rich/padding.py | 141 - .../site-packages/pip/_vendor/rich/pager.py | 34 - .../site-packages/pip/_vendor/rich/palette.py | 100 - .../site-packages/pip/_vendor/rich/panel.py | 308 - .../site-packages/pip/_vendor/rich/pretty.py | 994 -- .../pip/_vendor/rich/progress.py | 1702 ---- .../pip/_vendor/rich/progress_bar.py | 224 - .../site-packages/pip/_vendor/rich/prompt.py | 376 - .../pip/_vendor/rich/protocol.py | 42 - .../site-packages/pip/_vendor/rich/py.typed | 0 .../site-packages/pip/_vendor/rich/region.py | 10 - .../site-packages/pip/_vendor/rich/repr.py | 149 - .../site-packages/pip/_vendor/rich/rule.py | 130 - .../site-packages/pip/_vendor/rich/scope.py | 86 - .../site-packages/pip/_vendor/rich/screen.py | 54 - .../site-packages/pip/_vendor/rich/segment.py | 739 -- .../site-packages/pip/_vendor/rich/spinner.py | 137 - .../site-packages/pip/_vendor/rich/status.py | 132 - .../site-packages/pip/_vendor/rich/style.py | 796 -- .../site-packages/pip/_vendor/rich/styled.py | 42 - .../site-packages/pip/_vendor/rich/syntax.py | 948 -- .../site-packages/pip/_vendor/rich/table.py | 1002 -- .../pip/_vendor/rich/terminal_theme.py | 153 - .../site-packages/pip/_vendor/rich/text.py | 1307 --- .../site-packages/pip/_vendor/rich/theme.py | 115 - .../site-packages/pip/_vendor/rich/themes.py | 5 - .../pip/_vendor/rich/traceback.py | 756 -- .../site-packages/pip/_vendor/rich/tree.py | 251 - .../site-packages/pip/_vendor/six.py | 998 -- .../pip/_vendor/tenacity/__init__.py | 608 -- .../pip/_vendor/tenacity/_asyncio.py | 94 - .../pip/_vendor/tenacity/_utils.py | 76 - .../pip/_vendor/tenacity/after.py | 51 - .../pip/_vendor/tenacity/before.py | 46 - .../pip/_vendor/tenacity/before_sleep.py | 71 - .../site-packages/pip/_vendor/tenacity/nap.py | 43 - .../pip/_vendor/tenacity/py.typed | 0 .../pip/_vendor/tenacity/retry.py | 272 - .../pip/_vendor/tenacity/stop.py | 103 - .../pip/_vendor/tenacity/tornadoweb.py | 59 - .../pip/_vendor/tenacity/wait.py | 228 - .../pip/_vendor/tomli/__init__.py | 11 - .../pip/_vendor/tomli/_parser.py | 691 -- .../site-packages/pip/_vendor/tomli/_re.py | 107 - .../site-packages/pip/_vendor/tomli/_types.py | 10 - .../site-packages/pip/_vendor/tomli/py.typed | 1 - .../pip/_vendor/truststore/__init__.py | 13 - .../pip/_vendor/truststore/_api.py | 302 - .../pip/_vendor/truststore/_macos.py | 501 - .../pip/_vendor/truststore/_openssl.py | 66 - .../pip/_vendor/truststore/_ssl_constants.py | 31 - .../pip/_vendor/truststore/_windows.py | 554 -- .../pip/_vendor/truststore/py.typed | 0 .../pip/_vendor/typing_extensions.py | 3072 ------ .../pip/_vendor/urllib3/__init__.py | 102 - .../pip/_vendor/urllib3/_collections.py | 337 - .../pip/_vendor/urllib3/_version.py | 2 - .../pip/_vendor/urllib3/connection.py | 572 -- .../pip/_vendor/urllib3/connectionpool.py | 1132 --- .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../urllib3/contrib/_appengine_environ.py | 36 - .../contrib/_securetransport/__init__.py | 0 .../contrib/_securetransport/bindings.py | 519 - .../contrib/_securetransport/low_level.py | 397 - .../pip/_vendor/urllib3/contrib/appengine.py | 314 - .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 - .../pip/_vendor/urllib3/contrib/pyopenssl.py | 518 - .../urllib3/contrib/securetransport.py | 921 -- .../pip/_vendor/urllib3/contrib/socks.py | 216 - .../pip/_vendor/urllib3/exceptions.py | 323 - .../pip/_vendor/urllib3/fields.py | 274 - .../pip/_vendor/urllib3/filepost.py | 98 - .../pip/_vendor/urllib3/packages/__init__.py | 0 .../urllib3/packages/backports/__init__.py | 0 .../urllib3/packages/backports/makefile.py | 51 - .../packages/backports/weakref_finalize.py | 155 - .../pip/_vendor/urllib3/packages/six.py | 1076 -- .../pip/_vendor/urllib3/poolmanager.py | 537 - .../pip/_vendor/urllib3/request.py | 191 - .../pip/_vendor/urllib3/response.py | 879 -- .../pip/_vendor/urllib3/util/__init__.py | 49 - .../pip/_vendor/urllib3/util/connection.py | 149 - .../pip/_vendor/urllib3/util/proxy.py | 57 - .../pip/_vendor/urllib3/util/queue.py | 22 - .../pip/_vendor/urllib3/util/request.py | 137 - .../pip/_vendor/urllib3/util/response.py | 107 - .../pip/_vendor/urllib3/util/retry.py | 620 -- .../pip/_vendor/urllib3/util/ssl_.py | 495 - .../urllib3/util/ssl_match_hostname.py | 159 - .../pip/_vendor/urllib3/util/ssltransport.py | 221 - .../pip/_vendor/urllib3/util/timeout.py | 271 - .../pip/_vendor/urllib3/util/url.py | 435 - .../pip/_vendor/urllib3/util/wait.py | 152 - .../site-packages/pip/_vendor/vendor.txt | 24 - .../pip/_vendor/webencodings/__init__.py | 342 - .../pip/_vendor/webencodings/labels.py | 231 - .../pip/_vendor/webencodings/mklabels.py | 59 - .../pip/_vendor/webencodings/tests.py | 153 - .../_vendor/webencodings/x_user_defined.py | 325 - .../lib/python3.12/site-packages/pip/py.typed | 4 - .../psutil-5.9.8.dist-info/INSTALLER | 1 - .../psutil-5.9.8.dist-info/LICENSE | 29 - .../psutil-5.9.8.dist-info/METADATA | 528 - .../psutil-5.9.8.dist-info/RECORD | 67 - .../psutil-5.9.8.dist-info/REQUESTED | 0 .../psutil-5.9.8.dist-info/WHEEL | 5 - .../psutil-5.9.8.dist-info/top_level.txt | 1 - .../site-packages/psutil/__init__.py | 2492 ----- .../site-packages/psutil/_common.py | 983 -- .../site-packages/psutil/_compat.py | 483 - .../python3.12/site-packages/psutil/_psaix.py | 582 -- .../python3.12/site-packages/psutil/_psbsd.py | 977 -- .../site-packages/psutil/_pslinux.py | 2366 ----- .../python3.12/site-packages/psutil/_psosx.py | 555 -- .../site-packages/psutil/_psposix.py | 243 - .../site-packages/psutil/_pssunos.py | 756 -- .../site-packages/psutil/_psutil_osx.abi3.so | Bin 83632 -> 0 bytes .../psutil/_psutil_posix.abi3.so | Bin 55714 -> 0 bytes .../site-packages/psutil/_pswindows.py | 1170 --- .../site-packages/psutil/tests/__init__.py | 2043 ---- .../site-packages/psutil/tests/__main__.py | 12 - .../site-packages/psutil/tests/runner.py | 385 - .../site-packages/psutil/tests/test_aix.py | 137 - .../site-packages/psutil/tests/test_bsd.py | 632 -- .../psutil/tests/test_connections.py | 576 -- .../psutil/tests/test_contracts.py | 349 - .../site-packages/psutil/tests/test_linux.py | 2350 ----- .../psutil/tests/test_memleaks.py | 496 - .../site-packages/psutil/tests/test_misc.py | 1014 -- .../site-packages/psutil/tests/test_osx.py | 210 - .../site-packages/psutil/tests/test_posix.py | 493 - .../psutil/tests/test_process.py | 1636 --- .../psutil/tests/test_process_all.py | 464 - .../site-packages/psutil/tests/test_sunos.py | 45 - .../site-packages/psutil/tests/test_system.py | 967 -- .../psutil/tests/test_testutils.py | 453 - .../psutil/tests/test_unicode.py | 365 - .../psutil/tests/test_windows.py | 967 -- .../pyasn1-0.6.2.dist-info/INSTALLER | 1 - .../pyasn1-0.6.2.dist-info/METADATA | 228 - .../pyasn1-0.6.2.dist-info/RECORD | 71 - .../pyasn1-0.6.2.dist-info/WHEEL | 5 - .../licenses/LICENSE.rst | 24 - .../pyasn1-0.6.2.dist-info/top_level.txt | 1 - .../pyasn1-0.6.2.dist-info/zip-safe | 1 - .../site-packages/pyasn1/__init__.py | 2 - .../site-packages/pyasn1/codec/__init__.py | 1 - .../pyasn1/codec/ber/__init__.py | 1 - .../site-packages/pyasn1/codec/ber/decoder.py | 2207 ---- .../site-packages/pyasn1/codec/ber/encoder.py | 954 -- .../site-packages/pyasn1/codec/ber/eoo.py | 28 - .../pyasn1/codec/cer/__init__.py | 1 - .../site-packages/pyasn1/codec/cer/decoder.py | 149 - .../site-packages/pyasn1/codec/cer/encoder.py | 331 - .../pyasn1/codec/der/__init__.py | 1 - .../site-packages/pyasn1/codec/der/decoder.py | 120 - .../site-packages/pyasn1/codec/der/encoder.py | 126 - .../pyasn1/codec/native/__init__.py | 1 - .../pyasn1/codec/native/decoder.py | 244 - .../pyasn1/codec/native/encoder.py | 285 - .../site-packages/pyasn1/codec/streaming.py | 234 - .../site-packages/pyasn1/compat/__init__.py | 4 - .../site-packages/pyasn1/compat/integer.py | 13 - .../python3.12/site-packages/pyasn1/debug.py | 146 - .../python3.12/site-packages/pyasn1/error.py | 116 - .../site-packages/pyasn1/type/__init__.py | 1 - .../site-packages/pyasn1/type/base.py | 699 -- .../site-packages/pyasn1/type/char.py | 288 - .../site-packages/pyasn1/type/constraint.py | 751 -- .../site-packages/pyasn1/type/error.py | 11 - .../site-packages/pyasn1/type/namedtype.py | 550 - .../site-packages/pyasn1/type/namedval.py | 192 - .../site-packages/pyasn1/type/opentype.py | 104 - .../site-packages/pyasn1/type/tag.py | 335 - .../site-packages/pyasn1/type/tagmap.py | 96 - .../site-packages/pyasn1/type/univ.py | 3327 ------- .../site-packages/pyasn1/type/useful.py | 189 - .../pycparser-3.0.dist-info/INSTALLER | 1 - .../pycparser-3.0.dist-info/METADATA | 244 - .../pycparser-3.0.dist-info/RECORD | 21 - .../pycparser-3.0.dist-info/WHEEL | 5 - .../pycparser-3.0.dist-info/licenses/LICENSE | 27 - .../pycparser-3.0.dist-info/top_level.txt | 1 - .../site-packages/pycparser/__init__.py | 99 - .../site-packages/pycparser/_ast_gen.py | 355 - .../site-packages/pycparser/_c_ast.cfg | 195 - .../site-packages/pycparser/ast_transforms.py | 174 - .../site-packages/pycparser/c_ast.py | 1341 --- .../site-packages/pycparser/c_generator.py | 573 -- .../site-packages/pycparser/c_lexer.py | 706 -- .../site-packages/pycparser/c_parser.py | 2376 ----- .../pydantic-2.9.2.dist-info/INSTALLER | 1 - .../pydantic-2.9.2.dist-info/METADATA | 1469 --- .../pydantic-2.9.2.dist-info/RECORD | 212 - .../pydantic-2.9.2.dist-info/REQUESTED | 0 .../pydantic-2.9.2.dist-info/WHEEL | 4 - .../pydantic-2.9.2.dist-info/licenses/LICENSE | 21 - .../site-packages/pydantic/__init__.py | 421 - .../pydantic/_internal/__init__.py | 0 .../pydantic/_internal/_config.py | 341 - .../pydantic/_internal/_core_metadata.py | 84 - .../pydantic/_internal/_core_utils.py | 570 -- .../pydantic/_internal/_dataclasses.py | 232 - .../pydantic/_internal/_decorators.py | 827 -- .../pydantic/_internal/_decorators_v1.py | 174 - .../_internal/_discriminated_union.py | 503 - .../pydantic/_internal/_docs_extraction.py | 108 - .../pydantic/_internal/_fields.py | 333 - .../pydantic/_internal/_forward_ref.py | 23 - .../pydantic/_internal/_generate_schema.py | 2596 ----- .../pydantic/_internal/_generics.py | 518 - .../site-packages/pydantic/_internal/_git.py | 27 - .../pydantic/_internal/_import_utils.py | 20 - .../pydantic/_internal/_internal_dataclass.py | 7 - .../_internal/_known_annotated_metadata.py | 397 - .../pydantic/_internal/_mock_val_ser.py | 194 - .../pydantic/_internal/_model_construction.py | 752 -- .../site-packages/pydantic/_internal/_repr.py | 118 - .../_internal/_schema_generation_shared.py | 125 - .../pydantic/_internal/_serializers.py | 51 - .../pydantic/_internal/_signature.py | 164 - .../pydantic/_internal/_std_types_schema.py | 403 - .../pydantic/_internal/_typing_extra.py | 581 -- .../pydantic/_internal/_utils.py | 363 - .../pydantic/_internal/_validate_call.py | 99 - .../pydantic/_internal/_validators.py | 314 - .../site-packages/pydantic/_migration.py | 308 - .../pydantic/alias_generators.py | 62 - .../site-packages/pydantic/aliases.py | 132 - .../pydantic/annotated_handlers.py | 121 - .../pydantic/class_validators.py | 5 - .../site-packages/pydantic/color.py | 604 -- .../site-packages/pydantic/config.py | 1062 -- .../site-packages/pydantic/dataclasses.py | 344 - .../site-packages/pydantic/datetime_parse.py | 5 - .../site-packages/pydantic/decorator.py | 5 - .../pydantic/deprecated/__init__.py | 0 .../pydantic/deprecated/class_validators.py | 256 - .../pydantic/deprecated/config.py | 72 - .../pydantic/deprecated/copy_internals.py | 224 - .../pydantic/deprecated/decorator.py | 279 - .../site-packages/pydantic/deprecated/json.py | 141 - .../pydantic/deprecated/parse.py | 80 - .../pydantic/deprecated/tools.py | 103 - .../site-packages/pydantic/env_settings.py | 5 - .../site-packages/pydantic/error_wrappers.py | 5 - .../site-packages/pydantic/errors.py | 157 - .../pydantic/experimental/__init__.py | 10 - .../pydantic/experimental/pipeline.py | 669 -- .../site-packages/pydantic/fields.py | 1266 --- .../pydantic/functional_serializers.py | 438 - .../pydantic/functional_validators.py | 808 -- .../site-packages/pydantic/generics.py | 5 - .../python3.12/site-packages/pydantic/json.py | 5 - .../site-packages/pydantic/json_schema.py | 2574 ----- .../python3.12/site-packages/pydantic/main.py | 1610 --- .../python3.12/site-packages/pydantic/mypy.py | 1396 --- .../site-packages/pydantic/networks.py | 778 -- .../site-packages/pydantic/parse.py | 5 - .../site-packages/pydantic/plugin/__init__.py | 171 - .../site-packages/pydantic/plugin/_loader.py | 56 - .../pydantic/plugin/_schema_validator.py | 139 - .../site-packages/pydantic/py.typed | 0 .../site-packages/pydantic/root_model.py | 154 - .../site-packages/pydantic/schema.py | 5 - .../site-packages/pydantic/tools.py | 5 - .../site-packages/pydantic/type_adapter.py | 594 -- .../site-packages/pydantic/types.py | 3074 ------ .../site-packages/pydantic/typing.py | 5 - .../site-packages/pydantic/utils.py | 5 - .../site-packages/pydantic/v1/__init__.py | 131 - .../pydantic/v1/_hypothesis_plugin.py | 391 - .../pydantic/v1/annotated_types.py | 72 - .../pydantic/v1/class_validators.py | 361 - .../site-packages/pydantic/v1/color.py | 494 - .../site-packages/pydantic/v1/config.py | 191 - .../site-packages/pydantic/v1/dataclasses.py | 500 - .../pydantic/v1/datetime_parse.py | 248 - .../site-packages/pydantic/v1/decorator.py | 264 - .../site-packages/pydantic/v1/env_settings.py | 350 - .../pydantic/v1/error_wrappers.py | 161 - .../site-packages/pydantic/v1/errors.py | 646 -- .../site-packages/pydantic/v1/fields.py | 1253 --- .../site-packages/pydantic/v1/generics.py | 400 - .../site-packages/pydantic/v1/json.py | 112 - .../site-packages/pydantic/v1/main.py | 1107 --- .../site-packages/pydantic/v1/mypy.py | 949 -- .../site-packages/pydantic/v1/networks.py | 747 -- .../site-packages/pydantic/v1/parse.py | 66 - .../site-packages/pydantic/v1/py.typed | 0 .../site-packages/pydantic/v1/schema.py | 1163 --- .../site-packages/pydantic/v1/tools.py | 92 - .../site-packages/pydantic/v1/types.py | 1205 --- .../site-packages/pydantic/v1/typing.py | 608 -- .../site-packages/pydantic/v1/utils.py | 804 -- .../site-packages/pydantic/v1/validators.py | 765 -- .../site-packages/pydantic/v1/version.py | 38 - .../pydantic/validate_call_decorator.py | 69 - .../site-packages/pydantic/validators.py | 5 - .../site-packages/pydantic/version.py | 78 - .../site-packages/pydantic/warnings.py | 79 - .../pydantic_core-2.23.4.dist-info/INSTALLER | 1 - .../pydantic_core-2.23.4.dist-info/METADATA | 161 - .../pydantic_core-2.23.4.dist-info/RECORD | 12 - .../pydantic_core-2.23.4.dist-info/WHEEL | 4 - .../licenses/LICENSE | 21 - .../site-packages/pydantic_core/__init__.py | 139 - .../_pydantic_core.cpython-312-darwin.so | Bin 3921240 -> 0 bytes .../pydantic_core/_pydantic_core.pyi | 1166 --- .../pydantic_core/core_schema.py | 4138 -------- .../site-packages/pydantic_core/py.typed | 0 .../INSTALLER | 1 - .../METADATA | 63 - .../pydantic_settings-2.6.1.dist-info/RECORD | 17 - .../REQUESTED | 0 .../pydantic_settings-2.6.1.dist-info/WHEEL | 4 - .../licenses/LICENSE | 21 - .../pydantic_settings/__init__.py | 51 - .../site-packages/pydantic_settings/main.py | 539 - .../site-packages/pydantic_settings/py.typed | 0 .../pydantic_settings/sources.py | 2245 ----- .../site-packages/pydantic_settings/utils.py | 24 - .../pydantic_settings/version.py | 1 - .../site-packages/pymysql/__init__.py | 183 - .../python3.12/site-packages/pymysql/_auth.py | 268 - .../site-packages/pymysql/charset.py | 216 - .../site-packages/pymysql/connections.py | 1431 --- .../site-packages/pymysql/constants/CLIENT.py | 38 - .../pymysql/constants/COMMAND.py | 32 - .../site-packages/pymysql/constants/CR.py | 79 - .../site-packages/pymysql/constants/ER.py | 477 - .../pymysql/constants/FIELD_TYPE.py | 31 - .../site-packages/pymysql/constants/FLAG.py | 15 - .../pymysql/constants/SERVER_STATUS.py | 10 - .../pymysql/constants/__init__.py | 0 .../site-packages/pymysql/converters.py | 363 - .../site-packages/pymysql/cursors.py | 531 - .../python3.12/site-packages/pymysql/err.py | 150 - .../site-packages/pymysql/optionfile.py | 21 - .../site-packages/pymysql/protocol.py | 356 - .../python3.12/site-packages/pymysql/times.py | 20 - .../python_dotenv-1.0.1.dist-info/INSTALLER | 1 - .../python_dotenv-1.0.1.dist-info/LICENSE | 27 - .../python_dotenv-1.0.1.dist-info/METADATA | 692 -- .../python_dotenv-1.0.1.dist-info/RECORD | 26 - .../python_dotenv-1.0.1.dist-info/REQUESTED | 0 .../python_dotenv-1.0.1.dist-info/WHEEL | 5 - .../entry_points.txt | 2 - .../top_level.txt | 1 - .../python_jose-3.3.0.dist-info/INSTALLER | 1 - .../python_jose-3.3.0.dist-info/LICENSE | 22 - .../python_jose-3.3.0.dist-info/METADATA | 148 - .../python_jose-3.3.0.dist-info/RECORD | 37 - .../python_jose-3.3.0.dist-info/REQUESTED | 0 .../python_jose-3.3.0.dist-info/WHEEL | 6 - .../python_jose-3.3.0.dist-info/top_level.txt | 2 - .../INSTALLER | 1 - .../METADATA | 40 - .../python_multipart-0.0.22.dist-info/RECORD | 23 - .../REQUESTED | 0 .../python_multipart-0.0.22.dist-info/WHEEL | 4 - .../licenses/LICENSE.txt | 14 - .../python_multipart/__init__.py | 25 - .../python_multipart/decoders.py | 185 - .../python_multipart/exceptions.py | 34 - .../python_multipart/multipart.py | 1874 ---- .../site-packages/python_multipart/py.typed | 0 .../pyyaml-6.0.3.dist-info/INSTALLER | 1 - .../pyyaml-6.0.3.dist-info/METADATA | 59 - .../pyyaml-6.0.3.dist-info/RECORD | 43 - .../pyyaml-6.0.3.dist-info/WHEEL | 6 - .../pyyaml-6.0.3.dist-info/licenses/LICENSE | 20 - .../pyyaml-6.0.3.dist-info/top_level.txt | 2 - .../redis-5.1.1.dist-info/INSTALLER | 1 - .../redis-5.1.1.dist-info/LICENSE | 21 - .../redis-5.1.1.dist-info/METADATA | 213 - .../redis-5.1.1.dist-info/RECORD | 148 - .../redis-5.1.1.dist-info/REQUESTED | 0 .../site-packages/redis-5.1.1.dist-info/WHEEL | 5 - .../redis-5.1.1.dist-info/top_level.txt | 1 - .../site-packages/redis/__init__.py | 89 - .../site-packages/redis/_parsers/__init__.py | 20 - .../site-packages/redis/_parsers/base.py | 225 - .../site-packages/redis/_parsers/commands.py | 281 - .../site-packages/redis/_parsers/encoders.py | 44 - .../site-packages/redis/_parsers/helpers.py | 875 -- .../site-packages/redis/_parsers/hiredis.py | 228 - .../site-packages/redis/_parsers/resp2.py | 132 - .../site-packages/redis/_parsers/resp3.py | 282 - .../site-packages/redis/_parsers/socket.py | 162 - .../site-packages/redis/asyncio/__init__.py | 64 - .../site-packages/redis/asyncio/client.py | 1558 --- .../site-packages/redis/asyncio/cluster.py | 1626 --- .../site-packages/redis/asyncio/connection.py | 1217 --- .../site-packages/redis/asyncio/lock.py | 313 - .../site-packages/redis/asyncio/retry.py | 67 - .../site-packages/redis/asyncio/sentinel.py | 383 - .../site-packages/redis/asyncio/utils.py | 28 - .../python3.12/site-packages/redis/backoff.py | 114 - .../python3.12/site-packages/redis/cache.py | 401 - .../python3.12/site-packages/redis/client.py | 1552 --- .../python3.12/site-packages/redis/cluster.py | 2526 ----- .../site-packages/redis/commands/__init__.py | 18 - .../redis/commands/bf/__init__.py | 253 - .../redis/commands/bf/commands.py | 538 - .../site-packages/redis/commands/bf/info.py | 120 - .../site-packages/redis/commands/cluster.py | 929 -- .../site-packages/redis/commands/core.py | 6660 ------------- .../redis/commands/graph/__init__.py | 263 - .../redis/commands/graph/commands.py | 313 - .../redis/commands/graph/edge.py | 91 - .../redis/commands/graph/exceptions.py | 3 - .../redis/commands/graph/execution_plan.py | 211 - .../redis/commands/graph/node.py | 88 - .../redis/commands/graph/path.py | 78 - .../redis/commands/graph/query_result.py | 588 -- .../site-packages/redis/commands/helpers.py | 175 - .../redis/commands/json/__init__.py | 147 - .../redis/commands/json/_util.py | 3 - .../redis/commands/json/commands.py | 431 - .../redis/commands/json/decoders.py | 60 - .../site-packages/redis/commands/json/path.py | 16 - .../redis/commands/redismodules.py | 103 - .../redis/commands/search/__init__.py | 189 - .../redis/commands/search/_util.py | 7 - .../redis/commands/search/aggregation.py | 383 - .../redis/commands/search/commands.py | 1129 --- .../redis/commands/search/document.py | 17 - .../redis/commands/search/field.py | 210 - .../redis/commands/search/indexDefinition.py | 79 - .../redis/commands/search/query.py | 377 - .../redis/commands/search/querystring.py | 317 - .../redis/commands/search/reducers.py | 182 - .../redis/commands/search/result.py | 87 - .../redis/commands/search/suggestion.py | 55 - .../site-packages/redis/commands/sentinel.py | 99 - .../redis/commands/timeseries/__init__.py | 108 - .../redis/commands/timeseries/commands.py | 1136 --- .../redis/commands/timeseries/info.py | 91 - .../redis/commands/timeseries/utils.py | 44 - .../site-packages/redis/connection.py | 1683 ---- .../lib/python3.12/site-packages/redis/crc.py | 23 - .../site-packages/redis/credentials.py | 26 - .../site-packages/redis/exceptions.py | 220 - .../python3.12/site-packages/redis/lock.py | 323 - .../python3.12/site-packages/redis/ocsp.py | 307 - .../python3.12/site-packages/redis/py.typed | 0 .../python3.12/site-packages/redis/retry.py | 70 - .../site-packages/redis/sentinel.py | 408 - .../python3.12/site-packages/redis/typing.py | 61 - .../python3.12/site-packages/redis/utils.py | 194 - .../rsa-4.9.1.dist-info/INSTALLER | 1 - .../site-packages/rsa-4.9.1.dist-info/LICENSE | 13 - .../rsa-4.9.1.dist-info/METADATA | 140 - .../site-packages/rsa-4.9.1.dist-info/RECORD | 41 - .../site-packages/rsa-4.9.1.dist-info/WHEEL | 4 - .../rsa-4.9.1.dist-info/entry_points.txt | 8 - .../python3.12/site-packages/rsa/__init__.py | 60 - .../lib/python3.12/site-packages/rsa/asn1.py | 52 - .../lib/python3.12/site-packages/rsa/cli.py | 321 - .../python3.12/site-packages/rsa/common.py | 184 - .../lib/python3.12/site-packages/rsa/core.py | 53 - .../lib/python3.12/site-packages/rsa/key.py | 858 -- .../python3.12/site-packages/rsa/parallel.py | 96 - .../lib/python3.12/site-packages/rsa/pem.py | 134 - .../lib/python3.12/site-packages/rsa/pkcs1.py | 485 - .../python3.12/site-packages/rsa/pkcs1_v2.py | 100 - .../lib/python3.12/site-packages/rsa/prime.py | 198 - .../lib/python3.12/site-packages/rsa/py.typed | 1 - .../python3.12/site-packages/rsa/randnum.py | 95 - .../python3.12/site-packages/rsa/transform.py | 72 - .../lib/python3.12/site-packages/rsa/util.py | 97 - .../six-1.17.0.dist-info/INSTALLER | 1 - .../six-1.17.0.dist-info/LICENSE | 18 - .../six-1.17.0.dist-info/METADATA | 43 - .../site-packages/six-1.17.0.dist-info/RECORD | 8 - .../site-packages/six-1.17.0.dist-info/WHEEL | 6 - .../six-1.17.0.dist-info/top_level.txt | 1 - .../venv/lib/python3.12/site-packages/six.py | 1003 -- .../site-packages/sqlalchemy/__init__.py | 294 - .../sqlalchemy/connectors/__init__.py | 18 - .../sqlalchemy/connectors/aioodbc.py | 174 - .../sqlalchemy/connectors/asyncio.py | 213 - .../sqlalchemy/connectors/pyodbc.py | 249 - .../sqlalchemy/cyextension/__init__.py | 6 - .../collections.cpython-312-darwin.so | Bin 247360 -> 0 bytes .../sqlalchemy/cyextension/collections.pyx | 409 - .../immutabledict.cpython-312-darwin.so | Bin 122336 -> 0 bytes .../sqlalchemy/cyextension/immutabledict.pxd | 8 - .../sqlalchemy/cyextension/immutabledict.pyx | 133 - .../processors.cpython-312-darwin.so | Bin 102928 -> 0 bytes .../sqlalchemy/cyextension/processors.pyx | 68 - .../resultproxy.cpython-312-darwin.so | Bin 104864 -> 0 bytes .../sqlalchemy/cyextension/resultproxy.pyx | 102 - .../cyextension/util.cpython-312-darwin.so | Bin 122296 -> 0 bytes .../sqlalchemy/cyextension/util.pyx | 91 - .../sqlalchemy/dialects/__init__.py | 61 - .../sqlalchemy/dialects/_typing.py | 25 - .../sqlalchemy/dialects/mssql/__init__.py | 88 - .../sqlalchemy/dialects/mssql/aioodbc.py | 64 - .../sqlalchemy/dialects/mssql/base.py | 4010 -------- .../dialects/mssql/information_schema.py | 254 - .../sqlalchemy/dialects/mssql/json.py | 133 - .../sqlalchemy/dialects/mssql/provision.py | 162 - .../sqlalchemy/dialects/mssql/pymssql.py | 126 - .../sqlalchemy/dialects/mssql/pyodbc.py | 745 -- .../sqlalchemy/dialects/mysql/__init__.py | 101 - .../sqlalchemy/dialects/mysql/aiomysql.py | 333 - .../sqlalchemy/dialects/mysql/asyncmy.py | 337 - .../sqlalchemy/dialects/mysql/base.py | 3494 ------- .../sqlalchemy/dialects/mysql/cymysql.py | 84 - .../sqlalchemy/dialects/mysql/dml.py | 219 - .../sqlalchemy/dialects/mysql/enumerated.py | 244 - .../sqlalchemy/dialects/mysql/expression.py | 141 - .../sqlalchemy/dialects/mysql/json.py | 81 - .../sqlalchemy/dialects/mysql/mariadb.py | 32 - .../dialects/mysql/mariadbconnector.py | 277 - .../dialects/mysql/mysqlconnector.py | 180 - .../sqlalchemy/dialects/mysql/mysqldb.py | 303 - .../sqlalchemy/dialects/mysql/provision.py | 110 - .../sqlalchemy/dialects/mysql/pymysql.py | 137 - .../sqlalchemy/dialects/mysql/pyodbc.py | 138 - .../sqlalchemy/dialects/mysql/reflection.py | 677 -- .../dialects/mysql/reserved_words.py | 571 -- .../sqlalchemy/dialects/mysql/types.py | 774 -- .../sqlalchemy/dialects/oracle/__init__.py | 67 - .../sqlalchemy/dialects/oracle/base.py | 3271 ------ .../sqlalchemy/dialects/oracle/cx_oracle.py | 1483 --- .../sqlalchemy/dialects/oracle/dictionary.py | 507 - .../sqlalchemy/dialects/oracle/oracledb.py | 431 - .../sqlalchemy/dialects/oracle/provision.py | 220 - .../sqlalchemy/dialects/oracle/types.py | 287 - .../dialects/postgresql/__init__.py | 167 - .../dialects/postgresql/_psycopg_common.py | 187 - .../sqlalchemy/dialects/postgresql/array.py | 425 - .../sqlalchemy/dialects/postgresql/asyncpg.py | 1274 --- .../sqlalchemy/dialects/postgresql/base.py | 5008 ---------- .../sqlalchemy/dialects/postgresql/dml.py | 310 - .../sqlalchemy/dialects/postgresql/ext.py | 496 - .../sqlalchemy/dialects/postgresql/hstore.py | 397 - .../sqlalchemy/dialects/postgresql/json.py | 333 - .../dialects/postgresql/named_types.py | 509 - .../dialects/postgresql/operators.py | 129 - .../sqlalchemy/dialects/postgresql/pg8000.py | 662 -- .../dialects/postgresql/pg_catalog.py | 300 - .../dialects/postgresql/provision.py | 175 - .../sqlalchemy/dialects/postgresql/psycopg.py | 772 -- .../dialects/postgresql/psycopg2.py | 886 -- .../dialects/postgresql/psycopg2cffi.py | 61 - .../sqlalchemy/dialects/postgresql/ranges.py | 1029 -- .../sqlalchemy/dialects/postgresql/types.py | 303 - .../sqlalchemy/dialects/sqlite/__init__.py | 57 - .../sqlalchemy/dialects/sqlite/aiosqlite.py | 396 - .../sqlalchemy/dialects/sqlite/base.py | 2805 ------ .../sqlalchemy/dialects/sqlite/dml.py | 240 - .../sqlalchemy/dialects/sqlite/json.py | 92 - .../sqlalchemy/dialects/sqlite/provision.py | 198 - .../sqlalchemy/dialects/sqlite/pysqlcipher.py | 155 - .../sqlalchemy/dialects/sqlite/pysqlite.py | 756 -- .../dialects/type_migration_guidelines.txt | 145 - .../sqlalchemy/engine/__init__.py | 62 - .../sqlalchemy/engine/_py_processors.py | 136 - .../sqlalchemy/engine/_py_row.py | 128 - .../sqlalchemy/engine/_py_util.py | 74 - .../site-packages/sqlalchemy/engine/base.py | 3375 ------- .../sqlalchemy/engine/characteristics.py | 155 - .../site-packages/sqlalchemy/engine/create.py | 875 -- .../site-packages/sqlalchemy/engine/cursor.py | 2181 ---- .../sqlalchemy/engine/default.py | 2365 ----- .../site-packages/sqlalchemy/engine/events.py | 951 -- .../sqlalchemy/engine/interfaces.py | 3403 ------- .../site-packages/sqlalchemy/engine/mock.py | 131 - .../sqlalchemy/engine/processors.py | 61 - .../sqlalchemy/engine/reflection.py | 2098 ---- .../site-packages/sqlalchemy/engine/result.py | 2382 ----- .../site-packages/sqlalchemy/engine/row.py | 401 - .../sqlalchemy/engine/strategies.py | 19 - .../site-packages/sqlalchemy/engine/url.py | 910 -- .../site-packages/sqlalchemy/engine/util.py | 167 - .../sqlalchemy/event/__init__.py | 25 - .../site-packages/sqlalchemy/event/api.py | 225 - .../site-packages/sqlalchemy/event/attr.py | 655 -- .../site-packages/sqlalchemy/event/base.py | 470 - .../site-packages/sqlalchemy/event/legacy.py | 246 - .../sqlalchemy/event/registry.py | 386 - .../site-packages/sqlalchemy/events.py | 17 - .../site-packages/sqlalchemy/exc.py | 830 -- .../site-packages/sqlalchemy/ext/__init__.py | 11 - .../sqlalchemy/ext/associationproxy.py | 2013 ---- .../sqlalchemy/ext/asyncio/__init__.py | 25 - .../sqlalchemy/ext/asyncio/base.py | 279 - .../sqlalchemy/ext/asyncio/engine.py | 1466 --- .../sqlalchemy/ext/asyncio/exc.py | 21 - .../sqlalchemy/ext/asyncio/result.py | 961 -- .../sqlalchemy/ext/asyncio/scoping.py | 1614 --- .../sqlalchemy/ext/asyncio/session.py | 1936 ---- .../site-packages/sqlalchemy/ext/automap.py | 1691 ---- .../site-packages/sqlalchemy/ext/baked.py | 574 -- .../site-packages/sqlalchemy/ext/compiler.py | 570 -- .../sqlalchemy/ext/declarative/__init__.py | 65 - .../sqlalchemy/ext/declarative/extensions.py | 548 - .../sqlalchemy/ext/horizontal_shard.py | 481 - .../site-packages/sqlalchemy/ext/hybrid.py | 1514 --- .../site-packages/sqlalchemy/ext/indexable.py | 341 - .../sqlalchemy/ext/instrumentation.py | 450 - .../site-packages/sqlalchemy/ext/mutable.py | 1073 -- .../sqlalchemy/ext/mypy/__init__.py | 6 - .../sqlalchemy/ext/mypy/apply.py | 320 - .../sqlalchemy/ext/mypy/decl_class.py | 515 - .../sqlalchemy/ext/mypy/infer.py | 590 -- .../sqlalchemy/ext/mypy/names.py | 335 - .../sqlalchemy/ext/mypy/plugin.py | 303 - .../site-packages/sqlalchemy/ext/mypy/util.py | 357 - .../sqlalchemy/ext/orderinglist.py | 416 - .../sqlalchemy/ext/serializer.py | 181 - .../sqlalchemy/future/__init__.py | 16 - .../site-packages/sqlalchemy/future/engine.py | 15 - .../site-packages/sqlalchemy/inspection.py | 174 - .../site-packages/sqlalchemy/log.py | 288 - .../site-packages/sqlalchemy/orm/__init__.py | 170 - .../sqlalchemy/orm/_orm_constructors.py | 2571 ----- .../site-packages/sqlalchemy/orm/_typing.py | 179 - .../sqlalchemy/orm/attributes.py | 2835 ------ .../site-packages/sqlalchemy/orm/base.py | 973 -- .../sqlalchemy/orm/bulk_persistence.py | 2123 ---- .../sqlalchemy/orm/clsregistry.py | 571 -- .../sqlalchemy/orm/collections.py | 1620 --- .../site-packages/sqlalchemy/orm/context.py | 3268 ------ .../site-packages/sqlalchemy/orm/decl_api.py | 1883 ---- .../site-packages/sqlalchemy/orm/decl_base.py | 2190 ---- .../sqlalchemy/orm/dependency.py | 1304 --- .../sqlalchemy/orm/descriptor_props.py | 1076 -- .../site-packages/sqlalchemy/orm/dynamic.py | 300 - .../site-packages/sqlalchemy/orm/evaluator.py | 379 - .../site-packages/sqlalchemy/orm/events.py | 3261 ------ .../site-packages/sqlalchemy/orm/exc.py | 228 - .../site-packages/sqlalchemy/orm/identity.py | 302 - .../sqlalchemy/orm/instrumentation.py | 754 -- .../sqlalchemy/orm/interfaces.py | 1474 --- .../site-packages/sqlalchemy/orm/loading.py | 1682 ---- .../sqlalchemy/orm/mapped_collection.py | 557 -- .../site-packages/sqlalchemy/orm/mapper.py | 4432 --------- .../sqlalchemy/orm/path_registry.py | 811 -- .../sqlalchemy/orm/persistence.py | 1782 ---- .../sqlalchemy/orm/properties.py | 886 -- .../site-packages/sqlalchemy/orm/query.py | 3396 ------- .../sqlalchemy/orm/relationships.py | 3500 ------- .../site-packages/sqlalchemy/orm/scoping.py | 2165 ---- .../site-packages/sqlalchemy/orm/session.py | 5301 ---------- .../site-packages/sqlalchemy/orm/state.py | 1143 --- .../sqlalchemy/orm/state_changes.py | 198 - .../sqlalchemy/orm/strategies.py | 3473 ------- .../sqlalchemy/orm/strategy_options.py | 2569 ----- .../site-packages/sqlalchemy/orm/sync.py | 164 - .../sqlalchemy/orm/unitofwork.py | 796 -- .../site-packages/sqlalchemy/orm/util.py | 2424 ----- .../site-packages/sqlalchemy/orm/writeonly.py | 678 -- .../site-packages/sqlalchemy/pool/__init__.py | 44 - .../site-packages/sqlalchemy/pool/base.py | 1515 --- .../site-packages/sqlalchemy/pool/events.py | 370 - .../site-packages/sqlalchemy/pool/impl.py | 581 -- .../site-packages/sqlalchemy/py.typed | 0 .../site-packages/sqlalchemy/schema.py | 70 - .../site-packages/sqlalchemy/sql/__init__.py | 145 - .../sqlalchemy/sql/_dml_constructors.py | 140 - .../sqlalchemy/sql/_elements_constructors.py | 1850 ---- .../sqlalchemy/sql/_orm_types.py | 20 - .../site-packages/sqlalchemy/sql/_py_util.py | 75 - .../sql/_selectable_constructors.py | 635 -- .../site-packages/sqlalchemy/sql/_typing.py | 460 - .../sqlalchemy/sql/annotation.py | 585 -- .../site-packages/sqlalchemy/sql/base.py | 2185 ---- .../site-packages/sqlalchemy/sql/cache_key.py | 1057 -- .../site-packages/sqlalchemy/sql/coercions.py | 1405 --- .../site-packages/sqlalchemy/sql/compiler.py | 7818 --------------- .../site-packages/sqlalchemy/sql/crud.py | 1669 ---- .../site-packages/sqlalchemy/sql/ddl.py | 1378 --- .../sqlalchemy/sql/default_comparator.py | 552 - .../site-packages/sqlalchemy/sql/dml.py | 1817 ---- .../site-packages/sqlalchemy/sql/elements.py | 5499 ---------- .../site-packages/sqlalchemy/sql/events.py | 455 - .../sqlalchemy/sql/expression.py | 162 - .../site-packages/sqlalchemy/sql/functions.py | 2055 ---- .../site-packages/sqlalchemy/sql/lambdas.py | 1449 --- .../site-packages/sqlalchemy/sql/naming.py | 212 - .../site-packages/sqlalchemy/sql/operators.py | 2579 ----- .../site-packages/sqlalchemy/sql/roles.py | 323 - .../site-packages/sqlalchemy/sql/schema.py | 6158 ------------ .../sqlalchemy/sql/selectable.py | 7004 ------------- .../site-packages/sqlalchemy/sql/sqltypes.py | 3827 ------- .../sqlalchemy/sql/traversals.py | 1024 -- .../site-packages/sqlalchemy/sql/type_api.py | 2339 ----- .../site-packages/sqlalchemy/sql/util.py | 1486 --- .../site-packages/sqlalchemy/sql/visitors.py | 1165 --- .../sqlalchemy/testing/__init__.py | 96 - .../sqlalchemy/testing/assertions.py | 989 -- .../sqlalchemy/testing/assertsql.py | 516 - .../sqlalchemy/testing/asyncio.py | 135 - .../sqlalchemy/testing/config.py | 427 - .../sqlalchemy/testing/engines.py | 472 - .../sqlalchemy/testing/entities.py | 117 - .../sqlalchemy/testing/exclusions.py | 435 - .../sqlalchemy/testing/fixtures/__init__.py | 28 - .../sqlalchemy/testing/fixtures/base.py | 366 - .../sqlalchemy/testing/fixtures/mypy.py | 312 - .../sqlalchemy/testing/fixtures/orm.py | 227 - .../sqlalchemy/testing/fixtures/sql.py | 503 - .../sqlalchemy/testing/pickleable.py | 155 - .../sqlalchemy/testing/plugin/__init__.py | 6 - .../sqlalchemy/testing/plugin/bootstrap.py | 51 - .../sqlalchemy/testing/plugin/plugin_base.py | 779 -- .../sqlalchemy/testing/plugin/pytestplugin.py | 868 -- .../sqlalchemy/testing/profiling.py | 324 - .../sqlalchemy/testing/provision.py | 496 - .../sqlalchemy/testing/requirements.py | 1818 ---- .../sqlalchemy/testing/schema.py | 224 - .../sqlalchemy/testing/suite/__init__.py | 19 - .../sqlalchemy/testing/suite/test_cte.py | 211 - .../sqlalchemy/testing/suite/test_ddl.py | 389 - .../testing/suite/test_deprecations.py | 153 - .../sqlalchemy/testing/suite/test_dialect.py | 740 -- .../sqlalchemy/testing/suite/test_insert.py | 630 -- .../testing/suite/test_reflection.py | 3225 ------ .../sqlalchemy/testing/suite/test_results.py | 502 - .../sqlalchemy/testing/suite/test_rowcount.py | 258 - .../sqlalchemy/testing/suite/test_select.py | 1999 ---- .../sqlalchemy/testing/suite/test_sequence.py | 317 - .../sqlalchemy/testing/suite/test_types.py | 2141 ---- .../testing/suite/test_unicode_ddl.py | 189 - .../testing/suite/test_update_delete.py | 139 - .../site-packages/sqlalchemy/testing/util.py | 537 - .../sqlalchemy/testing/warnings.py | 52 - .../site-packages/sqlalchemy/types.py | 76 - .../site-packages/sqlalchemy/util/__init__.py | 160 - .../sqlalchemy/util/_collections.py | 715 -- .../sqlalchemy/util/_concurrency_py3k.py | 288 - .../site-packages/sqlalchemy/util/_has_cy.py | 40 - .../sqlalchemy/util/_py_collections.py | 541 - .../site-packages/sqlalchemy/util/compat.py | 301 - .../sqlalchemy/util/concurrency.py | 108 - .../sqlalchemy/util/deprecations.py | 401 - .../sqlalchemy/util/langhelpers.py | 2218 ----- .../sqlalchemy/util/preloaded.py | 150 - .../site-packages/sqlalchemy/util/queue.py | 322 - .../sqlalchemy/util/tool_support.py | 201 - .../sqlalchemy/util/topological.py | 120 - .../site-packages/sqlalchemy/util/typing.py | 629 -- .../starlette-0.41.3.dist-info/INSTALLER | 1 - .../starlette-0.41.3.dist-info/METADATA | 173 - .../starlette-0.41.3.dist-info/RECORD | 76 - .../starlette-0.41.3.dist-info/WHEEL | 4 - .../licenses/LICENSE.md | 27 - .../site-packages/starlette/__init__.py | 1 - .../site-packages/starlette/_compat.py | 26 - .../starlette/_exception_handler.py | 65 - .../site-packages/starlette/_utils.py | 100 - .../site-packages/starlette/applications.py | 250 - .../site-packages/starlette/authentication.py | 147 - .../site-packages/starlette/background.py | 41 - .../site-packages/starlette/concurrency.py | 64 - .../site-packages/starlette/config.py | 138 - .../site-packages/starlette/convertors.py | 89 - .../site-packages/starlette/datastructures.py | 679 -- .../site-packages/starlette/endpoints.py | 122 - .../site-packages/starlette/exceptions.py | 62 - .../site-packages/starlette/formparsers.py | 271 - .../starlette/middleware/__init__.py | 41 - .../starlette/middleware/authentication.py | 52 - .../starlette/middleware/base.py | 228 - .../starlette/middleware/cors.py | 172 - .../starlette/middleware/errors.py | 260 - .../starlette/middleware/exceptions.py | 72 - .../starlette/middleware/gzip.py | 108 - .../starlette/middleware/httpsredirect.py | 19 - .../starlette/middleware/sessions.py | 85 - .../starlette/middleware/trustedhost.py | 60 - .../starlette/middleware/wsgi.py | 152 - .../site-packages/starlette/py.typed | 0 .../site-packages/starlette/requests.py | 309 - .../site-packages/starlette/responses.py | 531 - .../site-packages/starlette/routing.py | 875 -- .../site-packages/starlette/schemas.py | 147 - .../site-packages/starlette/staticfiles.py | 220 - .../site-packages/starlette/status.py | 201 - .../site-packages/starlette/templating.py | 216 - .../site-packages/starlette/testclient.py | 791 -- .../site-packages/starlette/types.py | 24 - .../site-packages/starlette/websockets.py | 195 - .../INSTALLER | 1 - .../METADATA | 72 - .../typing_extensions-4.15.0.dist-info/RECORD | 7 - .../typing_extensions-4.15.0.dist-info/WHEEL | 4 - .../licenses/LICENSE | 279 - .../site-packages/typing_extensions.py | 4317 -------- .../uvicorn-0.30.6.dist-info/INSTALLER | 1 - .../uvicorn-0.30.6.dist-info/METADATA | 186 - .../uvicorn-0.30.6.dist-info/RECORD | 87 - .../uvicorn-0.30.6.dist-info/REQUESTED | 0 .../uvicorn-0.30.6.dist-info/WHEEL | 4 - .../uvicorn-0.30.6.dist-info/entry_points.txt | 2 - .../licenses/LICENSE.md | 27 - .../site-packages/uvicorn/__init__.py | 5 - .../site-packages/uvicorn/__main__.py | 4 - .../site-packages/uvicorn/_subprocess.py | 84 - .../site-packages/uvicorn/_types.py | 293 - .../site-packages/uvicorn/config.py | 529 - .../site-packages/uvicorn/importer.py | 34 - .../uvicorn/lifespan/__init__.py | 0 .../site-packages/uvicorn/lifespan/off.py | 17 - .../site-packages/uvicorn/lifespan/on.py | 137 - .../site-packages/uvicorn/logging.py | 117 - .../site-packages/uvicorn/loops/__init__.py | 0 .../site-packages/uvicorn/loops/asyncio.py | 10 - .../site-packages/uvicorn/loops/auto.py | 11 - .../site-packages/uvicorn/loops/uvloop.py | 7 - .../python3.12/site-packages/uvicorn/main.py | 589 -- .../uvicorn/middleware/__init__.py | 0 .../site-packages/uvicorn/middleware/asgi2.py | 15 - .../uvicorn/middleware/message_logger.py | 87 - .../uvicorn/middleware/proxy_headers.py | 70 - .../site-packages/uvicorn/middleware/wsgi.py | 200 - .../uvicorn/protocols/__init__.py | 0 .../uvicorn/protocols/http/__init__.py | 0 .../uvicorn/protocols/http/auto.py | 15 - .../uvicorn/protocols/http/flow_control.py | 54 - .../uvicorn/protocols/http/h11_impl.py | 546 - .../uvicorn/protocols/http/httptools_impl.py | 562 -- .../site-packages/uvicorn/protocols/utils.py | 56 - .../uvicorn/protocols/websockets/__init__.py | 0 .../uvicorn/protocols/websockets/auto.py | 21 - .../protocols/websockets/websockets_impl.py | 389 - .../protocols/websockets/wsproto_impl.py | 376 - .../python3.12/site-packages/uvicorn/py.typed | 1 - .../site-packages/uvicorn/server.py | 335 - .../uvicorn/supervisors/__init__.py | 23 - .../uvicorn/supervisors/basereload.py | 121 - .../uvicorn/supervisors/multiprocess.py | 222 - .../uvicorn/supervisors/statreload.py | 52 - .../uvicorn/supervisors/watchfilesreload.py | 88 - .../uvicorn/supervisors/watchgodreload.py | 152 - .../site-packages/uvicorn/workers.py | 114 - .../uvloop-0.22.1.dist-info/INSTALLER | 1 - .../uvloop-0.22.1.dist-info/METADATA | 176 - .../uvloop-0.22.1.dist-info/RECORD | 69 - .../uvloop-0.22.1.dist-info/WHEEL | 6 - .../licenses/LICENSE-APACHE | 203 - .../licenses/LICENSE-MIT | 21 - .../uvloop-0.22.1.dist-info/top_level.txt | 1 - .../site-packages/uvloop/__init__.py | 233 - .../python3.12/site-packages/uvloop/_noop.py | 3 - .../site-packages/uvloop/_testbase.py | 552 - .../site-packages/uvloop/_version.py | 13 - .../site-packages/uvloop/cbhandles.pxd | 39 - .../site-packages/uvloop/cbhandles.pyx | 434 - .../python3.12/site-packages/uvloop/dns.pyx | 479 - .../site-packages/uvloop/errors.pyx | 113 - .../site-packages/uvloop/handles/async_.pxd | 11 - .../site-packages/uvloop/handles/async_.pyx | 56 - .../uvloop/handles/basetransport.pxd | 54 - .../uvloop/handles/basetransport.pyx | 293 - .../site-packages/uvloop/handles/check.pxd | 14 - .../site-packages/uvloop/handles/check.pyx | 72 - .../site-packages/uvloop/handles/fsevent.pxd | 12 - .../site-packages/uvloop/handles/fsevent.pyx | 116 - .../site-packages/uvloop/handles/handle.pxd | 48 - .../site-packages/uvloop/handles/handle.pyx | 395 - .../site-packages/uvloop/handles/idle.pxd | 14 - .../site-packages/uvloop/handles/idle.pyx | 72 - .../site-packages/uvloop/handles/pipe.pxd | 33 - .../site-packages/uvloop/handles/pipe.pyx | 247 - .../site-packages/uvloop/handles/poll.pxd | 25 - .../site-packages/uvloop/handles/poll.pyx | 233 - .../site-packages/uvloop/handles/process.pxd | 80 - .../site-packages/uvloop/handles/process.pyx | 792 -- .../site-packages/uvloop/handles/stream.pxd | 50 - .../site-packages/uvloop/handles/stream.pyx | 1016 -- .../uvloop/handles/streamserver.pxd | 26 - .../uvloop/handles/streamserver.pyx | 150 - .../site-packages/uvloop/handles/tcp.pxd | 26 - .../site-packages/uvloop/handles/tcp.pyx | 228 - .../site-packages/uvloop/handles/timer.pxd | 18 - .../site-packages/uvloop/handles/timer.pyx | 89 - .../site-packages/uvloop/handles/udp.pxd | 22 - .../site-packages/uvloop/handles/udp.pyx | 408 - .../site-packages/uvloop/includes/__init__.py | 23 - .../site-packages/uvloop/includes/consts.pxi | 33 - .../site-packages/uvloop/includes/debug.pxd | 3 - .../uvloop/includes/flowcontrol.pxd | 23 - .../site-packages/uvloop/includes/python.pxd | 31 - .../site-packages/uvloop/includes/stdlib.pxi | 176 - .../site-packages/uvloop/includes/system.pxd | 96 - .../site-packages/uvloop/includes/uv.pxd | 506 - .../uvloop/loop.cpython-312-darwin.so | Bin 3883960 -> 0 bytes .../python3.12/site-packages/uvloop/loop.pxd | 230 - .../python3.12/site-packages/uvloop/loop.pyi | 297 - .../python3.12/site-packages/uvloop/loop.pyx | 3424 ------- .../python3.12/site-packages/uvloop/lru.pyx | 79 - .../site-packages/uvloop/pseudosock.pyx | 209 - .../python3.12/site-packages/uvloop/py.typed | 0 .../site-packages/uvloop/request.pxd | 8 - .../site-packages/uvloop/request.pyx | 65 - .../site-packages/uvloop/server.pxd | 19 - .../site-packages/uvloop/server.pyx | 136 - .../site-packages/uvloop/sslproto.pxd | 138 - .../site-packages/uvloop/sslproto.pyx | 950 -- .../watchfiles-1.1.1.dist-info/INSTALLER | 1 - .../watchfiles-1.1.1.dist-info/METADATA | 148 - .../watchfiles-1.1.1.dist-info/RECORD | 24 - .../watchfiles-1.1.1.dist-info/WHEEL | 4 - .../entry_points.txt | 2 - .../licenses/LICENSE | 21 - .../site-packages/watchfiles/__init__.py | 17 - .../site-packages/watchfiles/__main__.py | 4 - .../_rust_notify.cpython-312-darwin.so | Bin 916192 -> 0 bytes .../site-packages/watchfiles/_rust_notify.pyi | 111 - .../site-packages/watchfiles/cli.py | 224 - .../site-packages/watchfiles/filters.py | 149 - .../site-packages/watchfiles/main.py | 373 - .../site-packages/watchfiles/py.typed | 1 - .../site-packages/watchfiles/run.py | 438 - .../site-packages/watchfiles/version.py | 5 - .../websockets-16.0.dist-info/INSTALLER | 1 - .../websockets-16.0.dist-info/METADATA | 179 - .../websockets-16.0.dist-info/RECORD | 108 - .../websockets-16.0.dist-info/WHEEL | 6 - .../entry_points.txt | 2 - .../licenses/LICENSE | 24 - .../websockets-16.0.dist-info/top_level.txt | 1 - .../site-packages/websockets/__init__.py | 236 - .../site-packages/websockets/__main__.py | 5 - .../websockets/asyncio/__init__.py | 0 .../websockets/asyncio/async_timeout.py | 282 - .../websockets/asyncio/client.py | 804 -- .../websockets/asyncio/compatibility.py | 30 - .../websockets/asyncio/connection.py | 1247 --- .../websockets/asyncio/messages.py | 316 - .../websockets/asyncio/router.py | 219 - .../websockets/asyncio/server.py | 997 -- .../site-packages/websockets/auth.py | 18 - .../site-packages/websockets/cli.py | 178 - .../site-packages/websockets/client.py | 391 - .../site-packages/websockets/connection.py | 12 - .../websockets/datastructures.py | 183 - .../site-packages/websockets/exceptions.py | 473 - .../websockets/extensions/__init__.py | 4 - .../websockets/extensions/base.py | 123 - .../extensions/permessage_deflate.py | 699 -- .../site-packages/websockets/frames.py | 431 - .../site-packages/websockets/headers.py | 586 -- .../site-packages/websockets/http.py | 20 - .../site-packages/websockets/http11.py | 438 - .../site-packages/websockets/imports.py | 100 - .../websockets/legacy/__init__.py | 11 - .../site-packages/websockets/legacy/auth.py | 190 - .../site-packages/websockets/legacy/client.py | 703 -- .../websockets/legacy/exceptions.py | 71 - .../websockets/legacy/framing.py | 224 - .../websockets/legacy/handshake.py | 158 - .../site-packages/websockets/legacy/http.py | 201 - .../websockets/legacy/protocol.py | 1635 --- .../site-packages/websockets/legacy/server.py | 1191 --- .../site-packages/websockets/protocol.py | 768 -- .../site-packages/websockets/proxy.py | 150 - .../site-packages/websockets/py.typed | 0 .../site-packages/websockets/server.py | 589 -- .../site-packages/websockets/speedups.c | 229 - .../websockets/speedups.cpython-312-darwin.so | Bin 51392 -> 0 bytes .../site-packages/websockets/speedups.pyi | 3 - .../site-packages/websockets/streams.py | 151 - .../site-packages/websockets/sync/__init__.py | 0 .../site-packages/websockets/sync/client.py | 633 -- .../websockets/sync/connection.py | 1078 -- .../site-packages/websockets/sync/messages.py | 348 - .../site-packages/websockets/sync/router.py | 213 - .../site-packages/websockets/sync/server.py | 765 -- .../site-packages/websockets/sync/utils.py | 45 - .../site-packages/websockets/typing.py | 75 - .../site-packages/websockets/uri.py | 107 - .../site-packages/websockets/utils.py | 53 - .../site-packages/websockets/version.py | 92 - .../python3.12/site-packages/yaml/__init__.py | 390 - .../yaml/_yaml.cpython-312-darwin.so | Bin 381768 -> 0 bytes .../python3.12/site-packages/yaml/composer.py | 139 - .../site-packages/yaml/constructor.py | 748 -- .../python3.12/site-packages/yaml/cyaml.py | 101 - .../python3.12/site-packages/yaml/dumper.py | 62 - .../python3.12/site-packages/yaml/emitter.py | 1137 --- .../python3.12/site-packages/yaml/error.py | 75 - .../python3.12/site-packages/yaml/events.py | 86 - .../python3.12/site-packages/yaml/loader.py | 63 - .../python3.12/site-packages/yaml/nodes.py | 49 - .../python3.12/site-packages/yaml/parser.py | 589 -- .../python3.12/site-packages/yaml/reader.py | 185 - .../site-packages/yaml/representer.py | 389 - .../python3.12/site-packages/yaml/resolver.py | 227 - .../python3.12/site-packages/yaml/scanner.py | 1435 --- .../site-packages/yaml/serializer.py | 111 - .../python3.12/site-packages/yaml/tokens.py | 104 - backend/venv/pyvenv.cfg | 5 - 2189 files changed, 1 insertion(+), 848852 deletions(-) delete mode 100644 backend/venv/bin/Activate.ps1 delete mode 100644 backend/venv/bin/activate delete mode 100644 backend/venv/bin/activate.csh delete mode 100644 backend/venv/bin/activate.fish delete mode 100755 backend/venv/bin/alembic delete mode 100755 backend/venv/bin/dotenv delete mode 100755 backend/venv/bin/fastapi delete mode 100755 backend/venv/bin/httpx delete mode 100755 backend/venv/bin/mako-render delete mode 100755 backend/venv/bin/pip delete mode 100755 backend/venv/bin/pip3 delete mode 100755 backend/venv/bin/pip3.12 delete mode 100755 backend/venv/bin/pyrsa-decrypt delete mode 100755 backend/venv/bin/pyrsa-encrypt delete mode 100755 backend/venv/bin/pyrsa-keygen delete mode 100755 backend/venv/bin/pyrsa-priv2pub delete mode 100755 backend/venv/bin/pyrsa-sign delete mode 100755 backend/venv/bin/pyrsa-verify delete mode 120000 backend/venv/bin/python delete mode 120000 backend/venv/bin/python3 delete mode 120000 backend/venv/bin/python3.12 delete mode 100755 backend/venv/bin/uvicorn delete mode 100755 backend/venv/bin/watchfiles delete mode 100755 backend/venv/bin/websockets delete mode 100644 backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/top_level.txt delete mode 100755 backend/venv/lib/python3.12/site-packages/_cffi_backend.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/_yaml/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/autogenerate/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/autogenerate/api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/autogenerate/compare.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/autogenerate/render.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/autogenerate/rewriter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/command.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/context.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/context.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/_autogen.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/mssql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/mysql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/oracle.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/postgresql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/ddl/sqlite.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/environment.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/migration.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/op.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/op.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/operations/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/operations/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/operations/batch.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/operations/ops.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/operations/schemaobj.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/operations/toimpl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/runtime/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/runtime/environment.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/runtime/migration.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/script/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/script/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/script/revision.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/script/write_hooks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/async/README delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/async/alembic.ini.mako delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/async/env.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/async/script.py.mako delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/generic/README delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/generic/alembic.ini.mako delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/generic/env.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/generic/script.py.mako delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/README delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/alembic.ini.mako delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/env.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/script.py.mako delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/assertions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/env.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/fixtures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/plugin/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/plugin/bootstrap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/requirements.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/schemacompare.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/_autogen_fixtures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_comments.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_computed.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_diffs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_fks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_identity.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_environment.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_op.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/testing/warnings.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/editor.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/exc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/langhelpers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/messaging.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/pyfiles.py delete mode 100644 backend/venv/lib/python3.12/site-packages/alembic/util/sqla_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/annotated_types/test_cases.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_backends/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_backends/_trio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_fileio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_resources.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_signals.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_sockets.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_streams.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_tasks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_testing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/_resources.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/_sockets.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/_streams.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/_tasks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/abc/_testing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/from_thread.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/functools.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/lowlevel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/pytest_plugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/streams/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/streams/buffered.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/streams/file.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/streams/memory.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/streams/stapled.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/streams/text.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/streams/tls.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/to_interpreter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/to_process.py delete mode 100644 backend/venv/lib/python3.12/site-packages/anyio/to_thread.py delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt/__init__.pyi delete mode 100755 backend/venv/lib/python3.12/site-packages/bcrypt/_bcrypt.abi3.so delete mode 100644 backend/venv/lib/python3.12/site-packages/bcrypt/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi/cacert.pem delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/certifi/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/_cffi_errors.h delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/_cffi_include.h delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/_embedding.h delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/_imp_emulation.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/_shimmed_dist_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/backend_ctypes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/cffi_opcode.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/commontypes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/cparser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/error.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/ffiplatform.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/lock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/model.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/parse_c_type.h delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/pkgconfig.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/recompiler.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/setuptools_ext.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/vengine_cpy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/vengine_gen.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cffi/verifier.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/click/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/_termui_impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/_textwrap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/_winconsole.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/decorators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/formatting.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/globals.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/parser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/click/shell_completion.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/termui.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/testing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/click/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.APACHE delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.BSD delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/__about__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/fernet.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/_oid.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/asn1.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/backend.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/__init__.py delete mode 100755 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust.abi3.so delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/cmac.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/dh.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/dsa.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/ec.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/ed448.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/hashes.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/hmac.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/kdf.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/keys.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/rsa.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/x25519.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl/x448.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/pkcs12.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/pkcs7.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/test_support.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/x509.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/openssl/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/openssl/binding.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/decrepit/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/decrepit/ciphers/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/decrepit/ciphers/algorithms.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/_asymmetric.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/_cipheralgorithm.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/_serialization.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/dh.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/dsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/ec.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/ed25519.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/ed448.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/padding.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/x448.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/ciphers/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/ciphers/aead.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/ciphers/algorithms.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/ciphers/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/ciphers/modes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/cmac.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/constant_time.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/hashes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/hmac.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/argon2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/keywrap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/padding.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/poly1305.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/serialization/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/serialization/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/serialization/pkcs12.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/serialization/pkcs7.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/serialization/ssh.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/twofactor/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/twofactor/hotp.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/twofactor/totp.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/certificate_transparency.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/extensions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/general_name.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/name.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/ocsp.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/oid.py delete mode 100644 backend/venv/lib/python3.12/site-packages/cryptography/x509/verification.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/cli.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/ipython.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/parser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/variables.py delete mode 100644 backend/venv/lib/python3.12/site-packages/dotenv/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa-0.19.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa-0.19.1.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa-0.19.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa-0.19.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa-0.19.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa-0.19.1.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/_rwlock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/_sha3.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/_version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/curves.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/der.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/ecdh.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/ecdsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/eddsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/ellipticcurve.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/errors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/keys.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/numbertheory.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/rfc6979.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/ssh.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_curves.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_der.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_ecdh.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_ecdsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_eddsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_ellipticcurve.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_jacobi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_keys.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_malformed_sigs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_numbertheory.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_pyecdsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_rw_lock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/test_sha3.py delete mode 100644 backend/venv/lib/python3.12/site-packages/ecdsa/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi-0.115.6.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi-0.115.6.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi-0.115.6.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi-0.115.6.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi-0.115.6.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi-0.115.6.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi-0.115.6.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/applications.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/background.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/cli.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/concurrency.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/datastructures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/dependencies/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/dependencies/models.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/dependencies/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/encoders.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/exception_handlers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/logger.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/middleware/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/middleware/cors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/middleware/gzip.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/middleware/httpsredirect.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/middleware/trustedhost.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/middleware/wsgi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/openapi/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/openapi/constants.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/openapi/docs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/openapi/models.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/openapi/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/param_functions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/params.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/requests.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/responses.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/routing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/security/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/security/api_key.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/security/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/security/http.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/security/oauth2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/security/open_id_connect_url.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/security/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/staticfiles.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/templating.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/testclient.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/fastapi/websockets.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/licenses/LICENSE.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_abnf.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_events.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_headers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_readers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_receivebuffer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_state.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/_writers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/h11/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/licenses/LICENSE.md delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/http11.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/http2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/http_proxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/interfaces.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_async/socks_proxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_backends/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_backends/auto.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_backends/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_backends/mock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_backends/sync.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_backends/trio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_models.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_ssl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/http11.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/http2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/http_proxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/interfaces.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_sync/socks_proxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_synchronization.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_trace.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpcore/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools-0.7.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools-0.7.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools-0.7.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools-0.7.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools-0.7.1.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools-0.7.1.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/_version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/cparser.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/errors.py delete mode 100755 backend/venv/lib/python3.12/site-packages/httptools/parser/parser.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/parser.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/parser.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/protocol.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/python.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/url_cparser.pxd delete mode 100755 backend/venv/lib/python3.12/site-packages/httptools/parser/url_parser.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/url_parser.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/httptools/parser/url_parser.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/licenses/LICENSE.md delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/__version__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_auth.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_client.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_content.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_decoders.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_models.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_multipart.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_status_codes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_transports/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_transports/asgi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_transports/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_transports/default.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_transports/mock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_transports/wsgi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_urlparse.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_urls.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/httpx/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/idna-3.11.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/idna-3.11.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/idna-3.11.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/idna-3.11.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/idna-3.11.dist-info/licenses/LICENSE.md delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/codec.py delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/idnadata.py delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/intranges.py delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/package_data.py delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/idna/uts46data.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/backends/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/backends/_asn1.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/backends/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/backends/cryptography_backend.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/backends/ecdsa_backend.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/backends/native.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/backends/rsa_backend.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/constants.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/jwe.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/jwk.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/jws.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/jwt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/jose/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako-1.3.10.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/mako-1.3.10.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/mako-1.3.10.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/mako-1.3.10.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/mako-1.3.10.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/mako-1.3.10.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/mako-1.3.10.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/_ast_util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ast.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/cmd.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/codegen.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/autohandler.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/babelplugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/beaker_cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/extract.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/linguaplugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/preprocessors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/pygmentplugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/ext/turbogears.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/filters.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/lexer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/lookup.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/parsetree.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/pygen.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/pyparser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/runtime.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/template.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/testing/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/testing/_config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/testing/assertions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/testing/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/testing/exclusions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/testing/fixtures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/testing/helpers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/mako/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe/_native.py delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe/_speedups.c delete mode 100755 backend/venv/lib/python3.12/site-packages/markupsafe/_speedups.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe/_speedups.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/markupsafe/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/multipart/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/multipart/decoders.py delete mode 100644 backend/venv/lib/python3.12/site-packages/multipart/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/multipart/multipart.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib-1.7.4.dist-info/zip-safe delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/_data/wordsets/bip39.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/_data/wordsets/eff_long.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/_data/wordsets/eff_prefixed.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/_data/wordsets/eff_short.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/apache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/apps.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/context.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/_blowfish/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/_blowfish/_gen_files.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/_blowfish/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/_blowfish/unrolled.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/_md4.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/des.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/digest.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/scrypt/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/scrypt/_builtin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/scrypt/_gen_files.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/crypto/scrypt/_salsa.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/exc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/ext/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/ext/django/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/ext/django/models.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/ext/django/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/argon2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/bcrypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/cisco.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/des_crypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/digests.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/django.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/fshp.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/ldap_digests.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/md5_crypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/misc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/mssql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/mysql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/oracle.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/pbkdf2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/phpass.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/postgres.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/roundup.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/scram.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/scrypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/sha1_crypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/sha2_crypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/sun_md5_crypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/handlers/windows.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/hash.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/hosts.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/ifc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/pwd.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/registry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/_test_bad_register.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/backports.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/sample1.cfg delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/sample1b.cfg delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/sample1c.cfg delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/sample_config_1s.cfg delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_apache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_apps.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_context.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_context_deprecated.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_crypto_builtin_md4.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_crypto_des.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_crypto_digest.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_crypto_scrypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_ext_django.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_ext_django_source.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_handlers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_handlers_argon2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_handlers_bcrypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_handlers_cisco.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_handlers_django.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_handlers_pbkdf2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_handlers_scrypt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_hosts.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_pwd.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_registry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_totp.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_utils_handlers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_utils_md4.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_utils_pbkdf2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/test_win32.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/tox_support.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/tests/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/totp.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/binary.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/compat/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/compat/_ordered_dict.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/decor.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/des.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/handlers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/md4.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/utils/pbkdf2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/passlib/win32.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/AUTHORS.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/LICENSE.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/pip-24.0.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/__pip-runner__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/build_env.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/command_context.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/parser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/req_command.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/spinners.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/cli/status_codes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/check.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/completion.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/configuration.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/debug.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/download.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/freeze.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/hash.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/help.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/index.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/inspect.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/install.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/list.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/search.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/show.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/uninstall.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/commands/wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/configuration.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/distributions/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/distributions/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/distributions/installed.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/index/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/index/collector.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/index/package_finder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/index/sources.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/locations/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/locations/_distutils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/locations/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/_json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/candidate.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/direct_url.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/format_control.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/index.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/installation_report.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/link.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/scheme.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/search_scope.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/selection_prefs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/target_python.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/models/wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/auth.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/download.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/lazy_wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/session.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_editable.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_editable.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_legacy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/check.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/freeze.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/install/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/install/editable_legacy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/pyproject.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/req/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/req/constructors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/req/req_file.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/req/req_install.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/req/req_set.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/req/req_uninstall.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/resolver.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/provider.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/reporter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/requirements.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/self_outdated_check.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/_log.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/appdirs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/compatibility_tags.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/datetime.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/egg_link.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/encoding.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/entrypoints.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/filetypes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/glibc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/logging.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/misc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/models.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/packaging.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/setuptools_build.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/temp_dir.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/urls.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/utils/wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/vcs/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/vcs/git.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/vcs/subversion.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/vcs/versioncontrol.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_internal/wheel_builder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/_cmd.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/filewrapper.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/heuristics.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/wrapper.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/certifi/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/certifi/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/certifi/cacert.pem delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/certifi/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5freq.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5prober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/chardistribution.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetgroupprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/chardetect.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachine.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachinedict.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/cp949prober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/enums.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/escprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/escsm.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/eucjpprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrfreq.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwfreq.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312freq.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312prober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/hebrewprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/jisfreq.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabfreq.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/jpcntx.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/langbulgarianmodel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/langgreekmodel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhebrewmodel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhungarianmodel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/langrussianmodel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/langthaimodel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/langturkishmodel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/latin1prober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/macromanprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcharsetprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcsgroupprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcssm.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/languages.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/resultdict.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcharsetprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcsgroupprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/sjisprober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/universaldetector.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf1632prober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf8prober.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/chardet/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansitowin32.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/initialise.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansi_test.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/initialise_test.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/isatty_test.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/winterm_test.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/win32.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/colorama/winterm.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/database.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/index.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/locators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/manifest.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/markers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/metadata.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/t32.exe delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/t64-arm.exe delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/t64.exe delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/w32.exe delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/w64-arm.exe delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/w64.exe delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distlib/wheel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distro/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distro/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distro/distro.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/distro/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/codec.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/idnadata.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/intranges.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/package_data.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/__about__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/_musllinux.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/_structures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/requirements.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/tags.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/packaging/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/unix.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/cmdline.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/bbcode.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/groff.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/html.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/img.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/irc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/latex.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/other.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/rtf.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/svg.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal256.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/actions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/common.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/helpers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/results.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/testing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/unicode.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/__version__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/adapters.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/auth.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/cookies.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/help.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/status_codes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/structures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/requests/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/providers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/reporters.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_cell_widths.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_codes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_export_format.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_extension.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_fileno.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_loop.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_null_file.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_pick.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_ratio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_spinners.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_stack.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_timer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_win32_console.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows_renderer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/abc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/align.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/ansi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/bar.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/box.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/color.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/color_triplet.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/constrain.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/control.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/default_styles.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/diagnose.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/errors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/file_proxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/filesize.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/highlighter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/live.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/logging.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/measure.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/padding.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/pager.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/palette.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/panel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/pretty.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/progress.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/progress_bar.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/protocol.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/region.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/rule.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/scope.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/segment.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/spinner.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/status.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/style.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/styled.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/syntax.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/table.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/text.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/theme.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/traceback.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/six.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_asyncio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/after.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before_sleep.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/nap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/retry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/stop.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/tornadoweb.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tenacity/wait.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tomli/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tomli/_parser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tomli/_re.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tomli/_types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/tomli/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/truststore/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/truststore/_api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/truststore/_macos.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/truststore/_openssl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/truststore/_windows.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/truststore/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/typing_extensions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_collections.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connectionpool.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/appengine.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/filepost.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/poolmanager.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/request.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/proxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/queue.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/request.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/retry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssltransport.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/timeout.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/vendor.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/webencodings/labels.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/webencodings/mklabels.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/webencodings/tests.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/_vendor/webencodings/x_user_defined.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pip/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil-5.9.8.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil-5.9.8.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil-5.9.8.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil-5.9.8.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil-5.9.8.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil-5.9.8.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil-5.9.8.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_common.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_psaix.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_psbsd.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_pslinux.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_psosx.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_psposix.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_pssunos.py delete mode 100755 backend/venv/lib/python3.12/site-packages/psutil/_psutil_osx.abi3.so delete mode 100755 backend/venv/lib/python3.12/site-packages/psutil/_psutil_posix.abi3.so delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/_pswindows.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/runner.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_aix.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_bsd.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_connections.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_contracts.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_linux.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_memleaks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_misc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_osx.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_posix.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_process.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_process_all.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_sunos.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_system.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_testutils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_unicode.py delete mode 100644 backend/venv/lib/python3.12/site-packages/psutil/tests/test_windows.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1-0.6.2.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1-0.6.2.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1-0.6.2.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1-0.6.2.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1-0.6.2.dist-info/licenses/LICENSE.rst delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1-0.6.2.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1-0.6.2.dist-info/zip-safe delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/ber/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/ber/decoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/ber/encoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/ber/eoo.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/cer/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/cer/decoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/cer/encoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/der/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/der/decoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/der/encoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/native/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/native/decoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/native/encoder.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/codec/streaming.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/compat/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/compat/integer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/debug.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/error.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/char.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/constraint.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/error.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/namedtype.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/namedval.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/opentype.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/tag.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/tagmap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/univ.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pyasn1/type/useful.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/_ast_gen.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/_c_ast.cfg delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/ast_transforms.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/c_ast.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/c_generator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/c_lexer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pycparser/c_parser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic-2.9.2.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic-2.9.2.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic-2.9.2.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic-2.9.2.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic-2.9.2.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic-2.9.2.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_core_metadata.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_core_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_dataclasses.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_decorators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_decorators_v1.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_discriminated_union.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_docs_extraction.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_fields.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_forward_ref.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_generics.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_git.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_import_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_internal_dataclass.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_known_annotated_metadata.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_mock_val_ser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_repr.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_serializers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_signature.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_std_types_schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_typing_extra.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_validate_call.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_internal/_validators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/_migration.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/alias_generators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/aliases.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/annotated_handlers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/class_validators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/color.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/dataclasses.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/datetime_parse.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/decorator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/class_validators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/copy_internals.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/decorator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/parse.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/deprecated/tools.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/env_settings.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/error_wrappers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/errors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/experimental/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/experimental/pipeline.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/fields.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/functional_serializers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/functional_validators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/generics.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/json_schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/mypy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/networks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/parse.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/plugin/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/plugin/_loader.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/plugin/_schema_validator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/root_model.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/tools.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/type_adapter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/_hypothesis_plugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/annotated_types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/class_validators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/color.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/dataclasses.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/datetime_parse.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/decorator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/env_settings.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/error_wrappers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/errors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/fields.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/generics.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/mypy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/networks.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/parse.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/tools.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/validators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/v1/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/validate_call_decorator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/validators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic/warnings.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core-2.23.4.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core-2.23.4.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core-2.23.4.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core-2.23.4.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core-2.23.4.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core/__init__.py delete mode 100755 backend/venv/lib/python3.12/site-packages/pydantic_core/_pydantic_core.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core/_pydantic_core.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core/core_schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_core/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings-2.6.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings-2.6.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings-2.6.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings-2.6.1.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings-2.6.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings-2.6.1.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings/sources.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pydantic_settings/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/_auth.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/charset.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/connections.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/CLIENT.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/COMMAND.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/CR.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/ER.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/FIELD_TYPE.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/FLAG.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/SERVER_STATUS.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/constants/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/converters.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/cursors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/err.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/optionfile.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/protocol.py delete mode 100644 backend/venv/lib/python3.12/site-packages/pymysql/times.py delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/python_dotenv-1.0.1.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/python_jose-3.3.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/python_jose-3.3.0.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/python_jose-3.3.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/python_jose-3.3.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/python_jose-3.3.0.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/python_jose-3.3.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/python_jose-3.3.0.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart-0.0.22.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart-0.0.22.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart-0.0.22.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart-0.0.22.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart-0.0.22.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart-0.0.22.dist-info/licenses/LICENSE.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart/decoders.py delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart/multipart.py delete mode 100644 backend/venv/lib/python3.12/site-packages/python_multipart/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/pyyaml-6.0.3.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/pyyaml-6.0.3.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/pyyaml-6.0.3.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/pyyaml-6.0.3.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/pyyaml-6.0.3.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/pyyaml-6.0.3.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/redis-5.1.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/redis-5.1.1.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/redis-5.1.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/redis-5.1.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/redis-5.1.1.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/redis-5.1.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/redis-5.1.1.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/commands.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/encoders.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/helpers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/hiredis.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/resp2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/resp3.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/_parsers/socket.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/client.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/cluster.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/lock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/retry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/sentinel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/asyncio/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/backoff.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/cache.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/client.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/cluster.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/bf/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/bf/commands.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/bf/info.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/cluster.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/commands.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/edge.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/execution_plan.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/node.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/path.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/graph/query_result.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/helpers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/json/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/json/_util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/json/commands.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/json/decoders.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/json/path.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/redismodules.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/_util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/aggregation.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/commands.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/document.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/field.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/indexDefinition.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/query.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/querystring.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/reducers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/result.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/search/suggestion.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/sentinel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/timeseries/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/timeseries/commands.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/timeseries/info.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/commands/timeseries/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/crc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/credentials.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/lock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/ocsp.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/retry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/sentinel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/redis/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa-4.9.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa-4.9.1.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa-4.9.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa-4.9.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa-4.9.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa-4.9.1.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/asn1.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/cli.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/common.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/core.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/key.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/parallel.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/pem.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/pkcs1.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/pkcs1_v2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/prime.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/randnum.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/transform.py delete mode 100644 backend/venv/lib/python3.12/site-packages/rsa/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/six-1.17.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/six-1.17.0.dist-info/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/six-1.17.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/six-1.17.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/six-1.17.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/six-1.17.0.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/six.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/connectors/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/connectors/aioodbc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/connectors/pyodbc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/__init__.py delete mode 100755 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/collections.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/collections.pyx delete mode 100755 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/immutabledict.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/immutabledict.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/immutabledict.pyx delete mode 100755 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/processors.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/processors.pyx delete mode 100755 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/resultproxy.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/resultproxy.pyx delete mode 100755 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/util.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/cyextension/util.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/_typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/aioodbc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/information_schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/provision.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/pymssql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mssql/pyodbc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/aiomysql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/asyncmy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/cymysql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/dml.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/enumerated.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/expression.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/mariadb.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/mariadbconnector.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/mysqlconnector.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/mysqldb.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/provision.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/pymysql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/pyodbc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/reflection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/reserved_words.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/oracle/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/oracle/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/oracle/cx_oracle.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/oracle/dictionary.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/oracle/oracledb.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/oracle/provision.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/oracle/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/_psycopg_common.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/array.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/dml.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/ext.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/hstore.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/named_types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/operators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/pg8000.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/pg_catalog.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/provision.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/psycopg.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/psycopg2cffi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/ranges.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/dml.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/json.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/provision.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/pysqlcipher.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/dialects/type_migration_guidelines.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/_py_processors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/_py_row.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/_py_util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/characteristics.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/create.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/cursor.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/events.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/interfaces.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/mock.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/processors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/reflection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/result.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/row.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/strategies.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/url.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/engine/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/event/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/event/api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/event/attr.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/event/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/event/legacy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/event/registry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/events.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/exc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/associationproxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/exc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/result.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/scoping.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/automap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/baked.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/compiler.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/declarative/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/declarative/extensions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/horizontal_shard.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/hybrid.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/indexable.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/instrumentation.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mutable.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/apply.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/decl_class.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/infer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/names.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/plugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/mypy/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/orderinglist.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/ext/serializer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/future/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/future/engine.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/inspection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/log.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/_orm_constructors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/_typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/attributes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/bulk_persistence.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/clsregistry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/collections.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/context.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/decl_api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/decl_base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/dependency.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/descriptor_props.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/dynamic.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/evaluator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/events.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/exc.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/identity.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/instrumentation.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/interfaces.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/loading.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/mapped_collection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/mapper.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/path_registry.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/persistence.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/properties.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/query.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/relationships.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/scoping.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/session.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/state.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/strategies.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/strategy_options.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/sync.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/unitofwork.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/orm/writeonly.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/pool/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/pool/events.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/pool/impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/_dml_constructors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/_elements_constructors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/_orm_types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/_py_util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/_selectable_constructors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/_typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/annotation.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/cache_key.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/coercions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/compiler.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/crud.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/default_comparator.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/dml.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/elements.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/events.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/expression.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/functions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/lambdas.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/naming.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/operators.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/roles.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/selectable.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/sqltypes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/traversals.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/type_api.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/assertions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/assertsql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/asyncio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/engines.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/entities.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/exclusions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/mypy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/orm.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/sql.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/pickleable.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/plugin/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/plugin/bootstrap.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/plugin/plugin_base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/plugin/pytestplugin.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/profiling.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/provision.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/requirements.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/schema.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_cte.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_ddl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_deprecations.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_dialect.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_insert.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_reflection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_results.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_rowcount.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_select.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_sequence.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_unicode_ddl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_update_delete.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/util.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/testing/warnings.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/_collections.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/_has_cy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/_py_collections.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/concurrency.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/deprecations.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/preloaded.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/queue.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/tool_support.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/topological.py delete mode 100644 backend/venv/lib/python3.12/site-packages/sqlalchemy/util/typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette-0.41.3.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette-0.41.3.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette-0.41.3.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette-0.41.3.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette-0.41.3.dist-info/licenses/LICENSE.md delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/_compat.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/_exception_handler.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/_utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/applications.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/authentication.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/background.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/concurrency.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/convertors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/datastructures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/endpoints.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/formparsers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/authentication.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/cors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/errors.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/gzip.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/httpsredirect.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/trustedhost.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/middleware/wsgi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/requests.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/responses.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/routing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/schemas.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/staticfiles.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/status.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/templating.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/testclient.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/starlette/websockets.py delete mode 100644 backend/venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/typing_extensions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn-0.30.6.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn-0.30.6.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn-0.30.6.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn-0.30.6.dist-info/REQUESTED delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn-0.30.6.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn-0.30.6.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn-0.30.6.dist-info/licenses/LICENSE.md delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/_subprocess.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/_types.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/config.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/importer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/lifespan/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/lifespan/off.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/lifespan/on.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/logging.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/loops/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/loops/asyncio.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/loops/auto.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/loops/uvloop.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/middleware/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/middleware/asgi2.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/middleware/message_logger.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/middleware/wsgi.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/http/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/http/auto.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/http/flow_control.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/http/httptools_impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/auto.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/protocols/websockets/wsproto_impl.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/server.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/supervisors/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/supervisors/basereload.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/supervisors/multiprocess.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/supervisors/statreload.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/supervisors/watchfilesreload.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/supervisors/watchgodreload.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvicorn/workers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop-0.22.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop-0.22.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop-0.22.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop-0.22.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop-0.22.1.dist-info/licenses/LICENSE-APACHE delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop-0.22.1.dist-info/licenses/LICENSE-MIT delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop-0.22.1.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/_noop.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/_testbase.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/_version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/cbhandles.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/cbhandles.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/dns.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/errors.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/async_.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/async_.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/basetransport.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/basetransport.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/check.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/check.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/fsevent.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/fsevent.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/handle.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/handle.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/idle.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/idle.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/pipe.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/pipe.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/poll.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/poll.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/process.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/process.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/stream.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/stream.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/streamserver.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/streamserver.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/tcp.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/tcp.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/timer.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/timer.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/udp.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/handles/udp.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/consts.pxi delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/debug.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/flowcontrol.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/python.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/stdlib.pxi delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/system.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/includes/uv.pxd delete mode 100755 backend/venv/lib/python3.12/site-packages/uvloop/loop.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/loop.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/loop.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/loop.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/lru.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/pseudosock.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/request.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/request.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/server.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/server.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/sslproto.pxd delete mode 100644 backend/venv/lib/python3.12/site-packages/uvloop/sslproto.pyx delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles-1.1.1.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles-1.1.1.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles-1.1.1.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles-1.1.1.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles-1.1.1.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles-1.1.1.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/__main__.py delete mode 100755 backend/venv/lib/python3.12/site-packages/watchfiles/_rust_notify.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/_rust_notify.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/cli.py delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/filters.py delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/main.py delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/run.py delete mode 100644 backend/venv/lib/python3.12/site-packages/watchfiles/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets-16.0.dist-info/INSTALLER delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets-16.0.dist-info/METADATA delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets-16.0.dist-info/RECORD delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets-16.0.dist-info/WHEEL delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets-16.0.dist-info/entry_points.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets-16.0.dist-info/licenses/LICENSE delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets-16.0.dist-info/top_level.txt delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/__main__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/async_timeout.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/client.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/compatibility.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/messages.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/router.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/asyncio/server.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/auth.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/cli.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/client.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/datastructures.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/extensions/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/extensions/base.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/extensions/permessage_deflate.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/frames.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/headers.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/http.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/http11.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/imports.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/auth.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/client.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/exceptions.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/framing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/handshake.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/http.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/protocol.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/legacy/server.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/protocol.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/proxy.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/py.typed delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/server.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/speedups.c delete mode 100755 backend/venv/lib/python3.12/site-packages/websockets/speedups.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/speedups.pyi delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/streams.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/sync/__init__.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/sync/client.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/sync/connection.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/sync/messages.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/sync/router.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/sync/server.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/sync/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/typing.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/uri.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/utils.py delete mode 100644 backend/venv/lib/python3.12/site-packages/websockets/version.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/__init__.py delete mode 100755 backend/venv/lib/python3.12/site-packages/yaml/_yaml.cpython-312-darwin.so delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/composer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/constructor.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/cyaml.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/dumper.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/emitter.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/error.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/events.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/loader.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/nodes.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/parser.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/reader.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/representer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/resolver.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/scanner.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/serializer.py delete mode 100644 backend/venv/lib/python3.12/site-packages/yaml/tokens.py delete mode 100644 backend/venv/pyvenv.cfg diff --git a/.gitignore b/.gitignore index 3427824..b361a56 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ # env files .env .env.* +venv/ # Python __pycache__/ diff --git a/backend/venv/bin/Activate.ps1 b/backend/venv/bin/Activate.ps1 deleted file mode 100644 index b49d77b..0000000 --- a/backend/venv/bin/Activate.ps1 +++ /dev/null @@ -1,247 +0,0 @@ -<# -.Synopsis -Activate a Python virtual environment for the current PowerShell session. - -.Description -Pushes the python executable for a virtual environment to the front of the -$Env:PATH environment variable and sets the prompt to signify that you are -in a Python virtual environment. Makes use of the command line switches as -well as the `pyvenv.cfg` file values present in the virtual environment. - -.Parameter VenvDir -Path to the directory that contains the virtual environment to activate. The -default value for this is the parent of the directory that the Activate.ps1 -script is located within. - -.Parameter Prompt -The prompt prefix to display when this virtual environment is activated. By -default, this prompt is the name of the virtual environment folder (VenvDir) -surrounded by parentheses and followed by a single space (ie. '(.venv) '). - -.Example -Activate.ps1 -Activates the Python virtual environment that contains the Activate.ps1 script. - -.Example -Activate.ps1 -Verbose -Activates the Python virtual environment that contains the Activate.ps1 script, -and shows extra information about the activation as it executes. - -.Example -Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv -Activates the Python virtual environment located in the specified location. - -.Example -Activate.ps1 -Prompt "MyPython" -Activates the Python virtual environment that contains the Activate.ps1 script, -and prefixes the current prompt with the specified string (surrounded in -parentheses) while the virtual environment is active. - -.Notes -On Windows, it may be required to enable this Activate.ps1 script by setting the -execution policy for the user. You can do this by issuing the following PowerShell -command: - -PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - -For more information on Execution Policies: -https://go.microsoft.com/fwlink/?LinkID=135170 - -#> -Param( - [Parameter(Mandatory = $false)] - [String] - $VenvDir, - [Parameter(Mandatory = $false)] - [String] - $Prompt -) - -<# Function declarations --------------------------------------------------- #> - -<# -.Synopsis -Remove all shell session elements added by the Activate script, including the -addition of the virtual environment's Python executable from the beginning of -the PATH variable. - -.Parameter NonDestructive -If present, do not remove this function from the global namespace for the -session. - -#> -function global:deactivate ([switch]$NonDestructive) { - # Revert to original values - - # The prior prompt: - if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { - Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt - Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT - } - - # The prior PYTHONHOME: - if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { - Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME - Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME - } - - # The prior PATH: - if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { - Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH - Remove-Item -Path Env:_OLD_VIRTUAL_PATH - } - - # Just remove the VIRTUAL_ENV altogether: - if (Test-Path -Path Env:VIRTUAL_ENV) { - Remove-Item -Path env:VIRTUAL_ENV - } - - # Just remove VIRTUAL_ENV_PROMPT altogether. - if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { - Remove-Item -Path env:VIRTUAL_ENV_PROMPT - } - - # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: - if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { - Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force - } - - # Leave deactivate function in the global namespace if requested: - if (-not $NonDestructive) { - Remove-Item -Path function:deactivate - } -} - -<# -.Description -Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the -given folder, and returns them in a map. - -For each line in the pyvenv.cfg file, if that line can be parsed into exactly -two strings separated by `=` (with any amount of whitespace surrounding the =) -then it is considered a `key = value` line. The left hand string is the key, -the right hand is the value. - -If the value starts with a `'` or a `"` then the first and last character is -stripped from the value before being captured. - -.Parameter ConfigDir -Path to the directory that contains the `pyvenv.cfg` file. -#> -function Get-PyVenvConfig( - [String] - $ConfigDir -) { - Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" - - # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). - $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue - - # An empty map will be returned if no config file is found. - $pyvenvConfig = @{ } - - if ($pyvenvConfigPath) { - - Write-Verbose "File exists, parse `key = value` lines" - $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath - - $pyvenvConfigContent | ForEach-Object { - $keyval = $PSItem -split "\s*=\s*", 2 - if ($keyval[0] -and $keyval[1]) { - $val = $keyval[1] - - # Remove extraneous quotations around a string value. - if ("'""".Contains($val.Substring(0, 1))) { - $val = $val.Substring(1, $val.Length - 2) - } - - $pyvenvConfig[$keyval[0]] = $val - Write-Verbose "Adding Key: '$($keyval[0])'='$val'" - } - } - } - return $pyvenvConfig -} - - -<# Begin Activate script --------------------------------------------------- #> - -# Determine the containing directory of this script -$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition -$VenvExecDir = Get-Item -Path $VenvExecPath - -Write-Verbose "Activation script is located in path: '$VenvExecPath'" -Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" -Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" - -# Set values required in priority: CmdLine, ConfigFile, Default -# First, get the location of the virtual environment, it might not be -# VenvExecDir if specified on the command line. -if ($VenvDir) { - Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" -} -else { - Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." - $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") - Write-Verbose "VenvDir=$VenvDir" -} - -# Next, read the `pyvenv.cfg` file to determine any required value such -# as `prompt`. -$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir - -# Next, set the prompt from the command line, or the config file, or -# just use the name of the virtual environment folder. -if ($Prompt) { - Write-Verbose "Prompt specified as argument, using '$Prompt'" -} -else { - Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" - if ($pyvenvCfg -and $pyvenvCfg['prompt']) { - Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" - $Prompt = $pyvenvCfg['prompt']; - } - else { - Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" - Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" - $Prompt = Split-Path -Path $venvDir -Leaf - } -} - -Write-Verbose "Prompt = '$Prompt'" -Write-Verbose "VenvDir='$VenvDir'" - -# Deactivate any currently active virtual environment, but leave the -# deactivate function in place. -deactivate -nondestructive - -# Now set the environment variable VIRTUAL_ENV, used by many tools to determine -# that there is an activated venv. -$env:VIRTUAL_ENV = $VenvDir - -if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { - - Write-Verbose "Setting prompt to '$Prompt'" - - # Set the prompt to include the env name - # Make sure _OLD_VIRTUAL_PROMPT is global - function global:_OLD_VIRTUAL_PROMPT { "" } - Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT - New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt - - function global:prompt { - Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " - _OLD_VIRTUAL_PROMPT - } - $env:VIRTUAL_ENV_PROMPT = $Prompt -} - -# Clear PYTHONHOME -if (Test-Path -Path Env:PYTHONHOME) { - Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME - Remove-Item -Path Env:PYTHONHOME -} - -# Add the venv to the PATH -Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH -$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/backend/venv/bin/activate b/backend/venv/bin/activate deleted file mode 100644 index 9a2348a..0000000 --- a/backend/venv/bin/activate +++ /dev/null @@ -1,70 +0,0 @@ -# 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 - - # Call hash to forget past commands. Without forgetting - # past commands the $PATH changes we made may not be respected - hash -r 2> /dev/null - - if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then - PS1="${_OLD_VIRTUAL_PS1:-}" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - unset VIRTUAL_ENV_PROMPT - if [ ! "${1:-}" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelevant variables -deactivate nondestructive - -# on Windows, a path can contain colons and backslashes and has to be converted: -if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then - # transform D:\path\to\venv to /d/path/to/venv on MSYS - # and to /cygdrive/d/path/to/venv on Cygwin - export VIRTUAL_ENV=$(cygpath "/Users/jiliu/WorkSpace/nex_meeting/backend/venv") -else - # use the path as-is - export VIRTUAL_ENV="/Users/jiliu/WorkSpace/nex_meeting/backend/venv" -fi - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/bin:$PATH" -export PATH - -# unset PYTHONHOME if set -# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) -# could use `if (set -u; : $PYTHONHOME) ;` in bash -if [ -n "${PYTHONHOME:-}" ] ; then - _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" - unset PYTHONHOME -fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then - _OLD_VIRTUAL_PS1="${PS1:-}" - PS1="(venv) ${PS1:-}" - export PS1 - VIRTUAL_ENV_PROMPT="(venv) " - export VIRTUAL_ENV_PROMPT -fi - -# Call hash to forget past commands. Without forgetting -# past commands the $PATH changes we made may not be respected -hash -r 2> /dev/null diff --git a/backend/venv/bin/activate.csh b/backend/venv/bin/activate.csh deleted file mode 100644 index bde8d60..0000000 --- a/backend/venv/bin/activate.csh +++ /dev/null @@ -1,27 +0,0 @@ -# This file must be used with "source bin/activate.csh" *from csh*. -# You cannot run it directly. - -# Created by Davide Di Blasi . -# Ported to Python 3.3 venv by Andrew Svetlov - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV "/Users/jiliu/WorkSpace/nex_meeting/backend/venv" - -set _OLD_VIRTUAL_PATH="$PATH" -setenv PATH "$VIRTUAL_ENV/bin:$PATH" - - -set _OLD_VIRTUAL_PROMPT="$prompt" - -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - set prompt = "(venv) $prompt" - setenv VIRTUAL_ENV_PROMPT "(venv) " -endif - -alias pydoc python -m pydoc - -rehash diff --git a/backend/venv/bin/activate.fish b/backend/venv/bin/activate.fish deleted file mode 100644 index 377dab5..0000000 --- a/backend/venv/bin/activate.fish +++ /dev/null @@ -1,69 +0,0 @@ -# This file must be used with "source /bin/activate.fish" *from fish* -# (https://fishshell.com/). You cannot run it directly. - -function deactivate -d "Exit virtual environment and return to normal shell environment" - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - set -gx PATH $_OLD_VIRTUAL_PATH - set -e _OLD_VIRTUAL_PATH - end - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - set -e _OLD_FISH_PROMPT_OVERRIDE - # prevents error when using nested fish instances (Issue #93858) - if functions -q _old_fish_prompt - functions -e fish_prompt - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end - end - - set -e VIRTUAL_ENV - set -e VIRTUAL_ENV_PROMPT - if test "$argv[1]" != "nondestructive" - # Self-destruct! - functions -e deactivate - end -end - -# Unset irrelevant variables. -deactivate nondestructive - -set -gx VIRTUAL_ENV "/Users/jiliu/WorkSpace/nex_meeting/backend/venv" - -set -gx _OLD_VIRTUAL_PATH $PATH -set -gx PATH "$VIRTUAL_ENV/bin" $PATH - -# Unset PYTHONHOME if set. -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # fish uses a function instead of an env var to generate the prompt. - - # Save the current fish_prompt function as the function _old_fish_prompt. - functions -c fish_prompt _old_fish_prompt - - # With the original prompt function renamed, we can override with our own. - function fish_prompt - # Save the return status of the last command. - set -l old_status $status - - # Output the venv prompt; color taken from the blue of the Python logo. - printf "%s%s%s" (set_color 4B8BBE) "(venv) " (set_color normal) - - # Restore the return status of the previous command. - echo "exit $old_status" | . - # Output the original/"old" prompt. - _old_fish_prompt - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" - set -gx VIRTUAL_ENV_PROMPT "(venv) " -end diff --git a/backend/venv/bin/alembic b/backend/venv/bin/alembic deleted file mode 100755 index fdaa88e..0000000 --- a/backend/venv/bin/alembic +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from alembic.config import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/backend/venv/bin/dotenv b/backend/venv/bin/dotenv deleted file mode 100755 index b4213d3..0000000 --- a/backend/venv/bin/dotenv +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from dotenv.__main__ import cli -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli()) diff --git a/backend/venv/bin/fastapi b/backend/venv/bin/fastapi deleted file mode 100755 index c84d643..0000000 --- a/backend/venv/bin/fastapi +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from fastapi.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/backend/venv/bin/httpx b/backend/venv/bin/httpx deleted file mode 100755 index 7d932a3..0000000 --- a/backend/venv/bin/httpx +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from httpx import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/backend/venv/bin/mako-render b/backend/venv/bin/mako-render deleted file mode 100755 index 40a89a1..0000000 --- a/backend/venv/bin/mako-render +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from mako.cmd import cmdline -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cmdline()) diff --git a/backend/venv/bin/pip b/backend/venv/bin/pip deleted file mode 100755 index 7275a0b..0000000 --- a/backend/venv/bin/pip +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- 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/backend/venv/bin/pip3 b/backend/venv/bin/pip3 deleted file mode 100755 index 7275a0b..0000000 --- a/backend/venv/bin/pip3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- 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/backend/venv/bin/pip3.12 b/backend/venv/bin/pip3.12 deleted file mode 100755 index 7275a0b..0000000 --- a/backend/venv/bin/pip3.12 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- 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/backend/venv/bin/pyrsa-decrypt b/backend/venv/bin/pyrsa-decrypt deleted file mode 100755 index 1d2745c..0000000 --- a/backend/venv/bin/pyrsa-decrypt +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from rsa.cli import decrypt -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(decrypt()) diff --git a/backend/venv/bin/pyrsa-encrypt b/backend/venv/bin/pyrsa-encrypt deleted file mode 100755 index 13c11d1..0000000 --- a/backend/venv/bin/pyrsa-encrypt +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from rsa.cli import encrypt -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(encrypt()) diff --git a/backend/venv/bin/pyrsa-keygen b/backend/venv/bin/pyrsa-keygen deleted file mode 100755 index 069a8ab..0000000 --- a/backend/venv/bin/pyrsa-keygen +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from rsa.cli import keygen -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(keygen()) diff --git a/backend/venv/bin/pyrsa-priv2pub b/backend/venv/bin/pyrsa-priv2pub deleted file mode 100755 index e1ac3ea..0000000 --- a/backend/venv/bin/pyrsa-priv2pub +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from rsa.util import private_to_public -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(private_to_public()) diff --git a/backend/venv/bin/pyrsa-sign b/backend/venv/bin/pyrsa-sign deleted file mode 100755 index 9687925..0000000 --- a/backend/venv/bin/pyrsa-sign +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from rsa.cli import sign -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(sign()) diff --git a/backend/venv/bin/pyrsa-verify b/backend/venv/bin/pyrsa-verify deleted file mode 100755 index 1acdf0b..0000000 --- a/backend/venv/bin/pyrsa-verify +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from rsa.cli import verify -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(verify()) diff --git a/backend/venv/bin/python b/backend/venv/bin/python deleted file mode 120000 index 11b9d88..0000000 --- a/backend/venv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3.12 \ No newline at end of file diff --git a/backend/venv/bin/python3 b/backend/venv/bin/python3 deleted file mode 120000 index 11b9d88..0000000 --- a/backend/venv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -python3.12 \ No newline at end of file diff --git a/backend/venv/bin/python3.12 b/backend/venv/bin/python3.12 deleted file mode 120000 index a7a5fcc..0000000 --- a/backend/venv/bin/python3.12 +++ /dev/null @@ -1 +0,0 @@ -/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12 \ No newline at end of file diff --git a/backend/venv/bin/uvicorn b/backend/venv/bin/uvicorn deleted file mode 100755 index 62bb2e6..0000000 --- a/backend/venv/bin/uvicorn +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from uvicorn.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/backend/venv/bin/watchfiles b/backend/venv/bin/watchfiles deleted file mode 100755 index a64873a..0000000 --- a/backend/venv/bin/watchfiles +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from watchfiles.cli import cli -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli()) diff --git a/backend/venv/bin/websockets b/backend/venv/bin/websockets deleted file mode 100755 index 5d18e34..0000000 --- a/backend/venv/bin/websockets +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/jiliu/WorkSpace/nex_meeting/backend/venv/bin/python3.12 -# -*- coding: utf-8 -*- -import re -import sys -from websockets.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/LICENSE b/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/LICENSE deleted file mode 100644 index 86b18e1..0000000 --- a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010, 2013 PyMySQL contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/METADATA deleted file mode 100644 index 145be39..0000000 --- a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/METADATA +++ /dev/null @@ -1,135 +0,0 @@ -Metadata-Version: 2.1 -Name: PyMySQL -Version: 1.1.1 -Summary: Pure Python MySQL Driver -Author-email: Inada Naoki , Yutaka Matsubara -License: MIT License -Project-URL: Project, https://github.com/PyMySQL/PyMySQL -Project-URL: Documentation, https://pymysql.readthedocs.io/ -Keywords: MySQL -Classifier: Development Status :: 5 - Production/Stable -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Topic :: Database -Requires-Python: >=3.7 -Description-Content-Type: text/markdown -License-File: LICENSE -Provides-Extra: ed25519 -Requires-Dist: PyNaCl >=1.4.0 ; extra == 'ed25519' -Provides-Extra: rsa -Requires-Dist: cryptography ; extra == 'rsa' - -[![Documentation Status](https://readthedocs.org/projects/pymysql/badge/?version=latest)](https://pymysql.readthedocs.io/) -[![codecov](https://codecov.io/gh/PyMySQL/PyMySQL/branch/main/graph/badge.svg?token=ppEuaNXBW4)](https://codecov.io/gh/PyMySQL/PyMySQL) - -# PyMySQL - -This package contains a pure-Python MySQL client library, based on [PEP -249](https://www.python.org/dev/peps/pep-0249/). - -## Requirements - -- Python -- one of the following: - - [CPython](https://www.python.org/) : 3.7 and newer - - [PyPy](https://pypy.org/) : Latest 3.x version -- MySQL Server -- one of the following: - - [MySQL](https://www.mysql.com/) \>= 5.7 - - [MariaDB](https://mariadb.org/) \>= 10.4 - -## Installation - -Package is uploaded on [PyPI](https://pypi.org/project/PyMySQL). - -You can install it with pip: - - $ python3 -m pip install PyMySQL - -To use "sha256_password" or "caching_sha2_password" for authenticate, -you need to install additional dependency: - - $ python3 -m pip install PyMySQL[rsa] - -To use MariaDB's "ed25519" authentication method, you need to install -additional dependency: - - $ python3 -m pip install PyMySQL[ed25519] - -## Documentation - -Documentation is available online: - -For support, please refer to the -[StackOverflow](https://stackoverflow.com/questions/tagged/pymysql). - -## Example - -The following examples make use of a simple table - -``` sql -CREATE TABLE `users` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `email` varchar(255) COLLATE utf8_bin NOT NULL, - `password` varchar(255) COLLATE utf8_bin NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin -AUTO_INCREMENT=1 ; -``` - -``` python -import pymysql.cursors - -# Connect to the database -connection = pymysql.connect(host='localhost', - user='user', - password='passwd', - database='db', - cursorclass=pymysql.cursors.DictCursor) - -with connection: - with connection.cursor() as cursor: - # Create a new record - sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" - cursor.execute(sql, ('webmaster@python.org', 'very-secret')) - - # connection is not autocommit by default. So you must commit to save - # your changes. - connection.commit() - - with connection.cursor() as cursor: - # Read a single record - sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s" - cursor.execute(sql, ('webmaster@python.org',)) - result = cursor.fetchone() - print(result) -``` - -This example will print: - -``` python -{'password': 'very-secret', 'id': 1} -``` - -## Resources - -- DB-API 2.0: -- MySQL Reference Manuals: -- MySQL client/server protocol: - -- "Connector" channel in MySQL Community Slack: - -- PyMySQL mailing list: - - -## License - -PyMySQL is released under the MIT License. See LICENSE for more -information. diff --git a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/RECORD deleted file mode 100644 index 6be5b78..0000000 --- a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/RECORD +++ /dev/null @@ -1,43 +0,0 @@ -PyMySQL-1.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -PyMySQL-1.1.1.dist-info/LICENSE,sha256=MUEg3GXwgA9ziksxQAx27hTezR--d86cNUCkIbhup7Y,1070 -PyMySQL-1.1.1.dist-info/METADATA,sha256=9rEWPHhKScrQDgtyF9-myblwCpZVxwoGCXLJMDtxWGQ,4404 -PyMySQL-1.1.1.dist-info/RECORD,, -PyMySQL-1.1.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -PyMySQL-1.1.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92 -PyMySQL-1.1.1.dist-info/top_level.txt,sha256=IKlV-f4o90sOdnMd6HBvo0l2nqfJOGUzkwZeaEEGuRg,8 -pymysql/__init__.py,sha256=tz3GIFRN1ug3ycSCxhFkPZ_rsVE5IHjuVTpIR8rTJRQ,4265 -pymysql/__pycache__/__init__.cpython-312.pyc,, -pymysql/__pycache__/_auth.cpython-312.pyc,, -pymysql/__pycache__/charset.cpython-312.pyc,, -pymysql/__pycache__/connections.cpython-312.pyc,, -pymysql/__pycache__/converters.cpython-312.pyc,, -pymysql/__pycache__/cursors.cpython-312.pyc,, -pymysql/__pycache__/err.cpython-312.pyc,, -pymysql/__pycache__/optionfile.cpython-312.pyc,, -pymysql/__pycache__/protocol.cpython-312.pyc,, -pymysql/__pycache__/times.cpython-312.pyc,, -pymysql/_auth.py,sha256=ytTe6T4_dRKkT4x1gwXJYBXeUKI50sR7_IZj_oWtYY0,7417 -pymysql/charset.py,sha256=_f1uIga7AaWoeKLXzA-9Xra9jYPqqgDiT78ikqtn5yE,10238 -pymysql/connections.py,sha256=Yvd97VqhGr6QciyZy9lsQeoZFjXdpQ1xaGcWiXMel7c,53684 -pymysql/constants/CLIENT.py,sha256=SSvMFPZCTVMU1UWa4zOrfhYMDdR2wG2mS0E5GzJhDsg,878 -pymysql/constants/COMMAND.py,sha256=TGITAUcNWlq2Gwg2wv5UK2ykdTd4LYTk_EcJJOCpGIc,679 -pymysql/constants/CR.py,sha256=Qk35FWRMxRHd6Sa9CCIATMh7jegR3xnLdrdaBCT0dTQ,2320 -pymysql/constants/ER.py,sha256=nwqX_r0o4mmN4Cxm7NVRyJOTVov_5Gbl5peGe6oz5fk,12357 -pymysql/constants/FIELD_TYPE.py,sha256=ytFzgAnGmb9hvdsBlnK68qdZv_a6jYFIXT6VSAb60z8,370 -pymysql/constants/FLAG.py,sha256=Fy-PrCLnUI7fx_o5WypYnUAzWAM0E9d5yL8fFRVKffY,214 -pymysql/constants/SERVER_STATUS.py,sha256=m28Iq5JGCFCWLhafE73-iOvw_9gDGqnytW3NkHpbugA,333 -pymysql/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -pymysql/constants/__pycache__/CLIENT.cpython-312.pyc,, -pymysql/constants/__pycache__/COMMAND.cpython-312.pyc,, -pymysql/constants/__pycache__/CR.cpython-312.pyc,, -pymysql/constants/__pycache__/ER.cpython-312.pyc,, -pymysql/constants/__pycache__/FIELD_TYPE.cpython-312.pyc,, -pymysql/constants/__pycache__/FLAG.cpython-312.pyc,, -pymysql/constants/__pycache__/SERVER_STATUS.cpython-312.pyc,, -pymysql/constants/__pycache__/__init__.cpython-312.pyc,, -pymysql/converters.py,sha256=8Jl-1K1Nt-ZKAiahBJV4MoSvO1O-PZtu8CfQG9EDftk,9523 -pymysql/cursors.py,sha256=a4-JHYP148kx-9qVNRz8vTtlilGlKDbk_QtFlWph5L4,16535 -pymysql/err.py,sha256=wLe0af6AmK6z7fq_MnYfgYsc6LnUuMj7EliHPZKquBA,4178 -pymysql/optionfile.py,sha256=eQoz6c43yvmHtp5MI9TB2GPRdoggOLemcUWABksfutk,651 -pymysql/protocol.py,sha256=aD-PGPRYcwkSI6ZJoJWZVRKn9H_A0f70KfPDu65tq0o,11812 -pymysql/times.py,sha256=_qXgDaYwsHntvpIKSKXp1rrYIgtq6Z9pLyLnO2XNoL0,360 diff --git a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/REQUESTED b/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/WHEEL deleted file mode 100644 index bab98d6..0000000 --- a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.43.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/top_level.txt b/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/top_level.txt deleted file mode 100644 index d4a7eda..0000000 --- a/backend/venv/lib/python3.12/site-packages/PyMySQL-1.1.1.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -pymysql diff --git a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/LICENSE b/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/LICENSE deleted file mode 100644 index 967cdc5..0000000 --- a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2005-2024 SQLAlchemy authors and contributors . - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/METADATA deleted file mode 100644 index 0c802c4..0000000 --- a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/METADATA +++ /dev/null @@ -1,243 +0,0 @@ -Metadata-Version: 2.1 -Name: SQLAlchemy -Version: 2.0.36 -Summary: Database Abstraction Library -Home-page: https://www.sqlalchemy.org -Author: Mike Bayer -Author-email: mike_mp@zzzcomputing.com -License: MIT -Project-URL: Documentation, https://docs.sqlalchemy.org -Project-URL: Issue Tracker, https://github.com/sqlalchemy/sqlalchemy/ -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Topic :: Database :: Front-Ends -Requires-Python: >=3.7 -Description-Content-Type: text/x-rst -License-File: LICENSE -Requires-Dist: typing-extensions >=4.6.0 -Requires-Dist: greenlet !=0.4.17 ; python_version < "3.13" and (platform_machine == "aarch64" or (platform_machine == "ppc64le" or (platform_machine == "x86_64" or (platform_machine == "amd64" or (platform_machine == "AMD64" or (platform_machine == "win32" or platform_machine == "WIN32")))))) -Requires-Dist: importlib-metadata ; python_version < "3.8" -Provides-Extra: aiomysql -Requires-Dist: greenlet !=0.4.17 ; extra == 'aiomysql' -Requires-Dist: aiomysql >=0.2.0 ; extra == 'aiomysql' -Provides-Extra: aioodbc -Requires-Dist: greenlet !=0.4.17 ; extra == 'aioodbc' -Requires-Dist: aioodbc ; extra == 'aioodbc' -Provides-Extra: aiosqlite -Requires-Dist: greenlet !=0.4.17 ; extra == 'aiosqlite' -Requires-Dist: aiosqlite ; extra == 'aiosqlite' -Requires-Dist: typing-extensions !=3.10.0.1 ; extra == 'aiosqlite' -Provides-Extra: asyncio -Requires-Dist: greenlet !=0.4.17 ; extra == 'asyncio' -Provides-Extra: asyncmy -Requires-Dist: greenlet !=0.4.17 ; extra == 'asyncmy' -Requires-Dist: asyncmy !=0.2.4,!=0.2.6,>=0.2.3 ; extra == 'asyncmy' -Provides-Extra: mariadb_connector -Requires-Dist: mariadb !=1.1.10,!=1.1.2,!=1.1.5,>=1.0.1 ; extra == 'mariadb_connector' -Provides-Extra: mssql -Requires-Dist: pyodbc ; extra == 'mssql' -Provides-Extra: mssql_pymssql -Requires-Dist: pymssql ; extra == 'mssql_pymssql' -Provides-Extra: mssql_pyodbc -Requires-Dist: pyodbc ; extra == 'mssql_pyodbc' -Provides-Extra: mypy -Requires-Dist: mypy >=0.910 ; extra == 'mypy' -Provides-Extra: mysql -Requires-Dist: mysqlclient >=1.4.0 ; extra == 'mysql' -Provides-Extra: mysql_connector -Requires-Dist: mysql-connector-python ; extra == 'mysql_connector' -Provides-Extra: oracle -Requires-Dist: cx-oracle >=8 ; extra == 'oracle' -Provides-Extra: oracle_oracledb -Requires-Dist: oracledb >=1.0.1 ; extra == 'oracle_oracledb' -Provides-Extra: postgresql -Requires-Dist: psycopg2 >=2.7 ; extra == 'postgresql' -Provides-Extra: postgresql_asyncpg -Requires-Dist: greenlet !=0.4.17 ; extra == 'postgresql_asyncpg' -Requires-Dist: asyncpg ; extra == 'postgresql_asyncpg' -Provides-Extra: postgresql_pg8000 -Requires-Dist: pg8000 >=1.29.1 ; extra == 'postgresql_pg8000' -Provides-Extra: postgresql_psycopg -Requires-Dist: psycopg >=3.0.7 ; extra == 'postgresql_psycopg' -Provides-Extra: postgresql_psycopg2binary -Requires-Dist: psycopg2-binary ; extra == 'postgresql_psycopg2binary' -Provides-Extra: postgresql_psycopg2cffi -Requires-Dist: psycopg2cffi ; extra == 'postgresql_psycopg2cffi' -Provides-Extra: postgresql_psycopgbinary -Requires-Dist: psycopg[binary] >=3.0.7 ; extra == 'postgresql_psycopgbinary' -Provides-Extra: pymysql -Requires-Dist: pymysql ; extra == 'pymysql' -Provides-Extra: sqlcipher -Requires-Dist: sqlcipher3-binary ; extra == 'sqlcipher' - -SQLAlchemy -========== - -|PyPI| |Python| |Downloads| - -.. |PyPI| image:: https://img.shields.io/pypi/v/sqlalchemy - :target: https://pypi.org/project/sqlalchemy - :alt: PyPI - -.. |Python| image:: https://img.shields.io/pypi/pyversions/sqlalchemy - :target: https://pypi.org/project/sqlalchemy - :alt: PyPI - Python Version - -.. |Downloads| image:: https://static.pepy.tech/badge/sqlalchemy/month - :target: https://pepy.tech/project/sqlalchemy - :alt: PyPI - Downloads - - -The Python SQL Toolkit and Object Relational Mapper - -Introduction -------------- - -SQLAlchemy is the Python SQL toolkit and Object Relational Mapper -that gives application developers the full power and -flexibility of SQL. SQLAlchemy provides a full suite -of well known enterprise-level persistence patterns, -designed for efficient and high-performing database -access, adapted into a simple and Pythonic domain -language. - -Major SQLAlchemy features include: - -* An industrial strength ORM, built - from the core on the identity map, unit of work, - and data mapper patterns. These patterns - allow transparent persistence of objects - using a declarative configuration system. - Domain models - can be constructed and manipulated naturally, - and changes are synchronized with the - current transaction automatically. -* A relationally-oriented query system, exposing - the full range of SQL's capabilities - explicitly, including joins, subqueries, - correlation, and most everything else, - in terms of the object model. - Writing queries with the ORM uses the same - techniques of relational composition you use - when writing SQL. While you can drop into - literal SQL at any time, it's virtually never - needed. -* A comprehensive and flexible system - of eager loading for related collections and objects. - Collections are cached within a session, - and can be loaded on individual access, all - at once using joins, or by query per collection - across the full result set. -* A Core SQL construction system and DBAPI - interaction layer. The SQLAlchemy Core is - separate from the ORM and is a full database - abstraction layer in its own right, and includes - an extensible Python-based SQL expression - language, schema metadata, connection pooling, - type coercion, and custom types. -* All primary and foreign key constraints are - assumed to be composite and natural. Surrogate - integer primary keys are of course still the - norm, but SQLAlchemy never assumes or hardcodes - to this model. -* Database introspection and generation. Database - schemas can be "reflected" in one step into - Python structures representing database metadata; - those same structures can then generate - CREATE statements right back out - all within - the Core, independent of the ORM. - -SQLAlchemy's philosophy: - -* SQL databases behave less and less like object - collections the more size and performance start to - matter; object collections behave less and less like - tables and rows the more abstraction starts to matter. - SQLAlchemy aims to accommodate both of these - principles. -* An ORM doesn't need to hide the "R". A relational - database provides rich, set-based functionality - that should be fully exposed. SQLAlchemy's - ORM provides an open-ended set of patterns - that allow a developer to construct a custom - mediation layer between a domain model and - a relational schema, turning the so-called - "object relational impedance" issue into - a distant memory. -* The developer, in all cases, makes all decisions - regarding the design, structure, and naming conventions - of both the object model as well as the relational - schema. SQLAlchemy only provides the means - to automate the execution of these decisions. -* With SQLAlchemy, there's no such thing as - "the ORM generated a bad query" - you - retain full control over the structure of - queries, including how joins are organized, - how subqueries and correlation is used, what - columns are requested. Everything SQLAlchemy - does is ultimately the result of a developer-initiated - decision. -* Don't use an ORM if the problem doesn't need one. - SQLAlchemy consists of a Core and separate ORM - component. The Core offers a full SQL expression - language that allows Pythonic construction - of SQL constructs that render directly to SQL - strings for a target database, returning - result sets that are essentially enhanced DBAPI - cursors. -* Transactions should be the norm. With SQLAlchemy's - ORM, nothing goes to permanent storage until - commit() is called. SQLAlchemy encourages applications - to create a consistent means of delineating - the start and end of a series of operations. -* Never render a literal value in a SQL statement. - Bound parameters are used to the greatest degree - possible, allowing query optimizers to cache - query plans effectively and making SQL injection - attacks a non-issue. - -Documentation -------------- - -Latest documentation is at: - -https://www.sqlalchemy.org/docs/ - -Installation / Requirements ---------------------------- - -Full documentation for installation is at -`Installation `_. - -Getting Help / Development / Bug reporting ------------------------------------------- - -Please refer to the `SQLAlchemy Community Guide `_. - -Code of Conduct ---------------- - -Above all, SQLAlchemy places great emphasis on polite, thoughtful, and -constructive communication between users and developers. -Please see our current Code of Conduct at -`Code of Conduct `_. - -License -------- - -SQLAlchemy is distributed under the `MIT license -`_. - diff --git a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/RECORD deleted file mode 100644 index 9e41a32..0000000 --- a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/RECORD +++ /dev/null @@ -1,530 +0,0 @@ -SQLAlchemy-2.0.36.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -SQLAlchemy-2.0.36.dist-info/LICENSE,sha256=PA9Zq4h9BB3mpOUv_j6e212VIt6Qn66abNettue-MpM,1100 -SQLAlchemy-2.0.36.dist-info/METADATA,sha256=EZH514FydYtyOhgoZk_OF1ZQEtI4eTAEddlnUlRjzac,9692 -SQLAlchemy-2.0.36.dist-info/RECORD,, -SQLAlchemy-2.0.36.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -SQLAlchemy-2.0.36.dist-info/WHEEL,sha256=lWey-nzGdePMz7fsIJ1fIMVKiFg5IkOcUVqkuIpdbws,109 -SQLAlchemy-2.0.36.dist-info/top_level.txt,sha256=rp-ZgB7D8G11ivXON5VGPjupT1voYmWqkciDt5Uaw_Q,11 -sqlalchemy/__init__.py,sha256=J2PsdiJiNW93Etxk6YN8o_C3TcpR1_DckU71r4LBcGE,13033 -sqlalchemy/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/__pycache__/events.cpython-312.pyc,, -sqlalchemy/__pycache__/exc.cpython-312.pyc,, -sqlalchemy/__pycache__/inspection.cpython-312.pyc,, -sqlalchemy/__pycache__/log.cpython-312.pyc,, -sqlalchemy/__pycache__/schema.cpython-312.pyc,, -sqlalchemy/__pycache__/types.cpython-312.pyc,, -sqlalchemy/connectors/__init__.py,sha256=PzXPqZqi3BzEnrs1eW0DcsR4lyknAzhhN9rWcQ97hb4,476 -sqlalchemy/connectors/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/connectors/__pycache__/aioodbc.cpython-312.pyc,, -sqlalchemy/connectors/__pycache__/asyncio.cpython-312.pyc,, -sqlalchemy/connectors/__pycache__/pyodbc.cpython-312.pyc,, -sqlalchemy/connectors/aioodbc.py,sha256=GSTiNMO9h0qjPxgqaxDwWZ8HvhWMFNVR6MJQnN1oc40,5288 -sqlalchemy/connectors/asyncio.py,sha256=Hq2bkXmG6-KO_RfCrwMqx4oGH-uH1Z1WWKqPWNjz8p4,6138 -sqlalchemy/connectors/pyodbc.py,sha256=t7AjyxIOnaWg3CrlUEpBs4Y5l0HFdNt3P_cSSKhbi0Y,8501 -sqlalchemy/cyextension/__init__.py,sha256=GzhhN8cjMnDTE0qerlUlpbrNmFPHQWCZ4Gk74OAxl04,244 -sqlalchemy/cyextension/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/cyextension/collections.cpython-312-darwin.so,sha256=nW7Y9IRJzL-VEINp4aianHULAZHiHcRBXdcP7xH0ewE,247360 -sqlalchemy/cyextension/collections.pyx,sha256=L7DZ3DGKpgw2MT2ZZRRxCnrcyE5pU1NAFowWgAzQPEc,12571 -sqlalchemy/cyextension/immutabledict.cpython-312-darwin.so,sha256=rCpXutY-DGPuNmzkvWSqoq2zQMfnsxajfeAsOvbkoVY,122336 -sqlalchemy/cyextension/immutabledict.pxd,sha256=3x3-rXG5eRQ7bBnktZ-OJ9-6ft8zToPmTDOd92iXpB0,291 -sqlalchemy/cyextension/immutabledict.pyx,sha256=KfDTYbTfebstE8xuqAtuXsHNAK0_b5q_ymUiinUe_xs,3535 -sqlalchemy/cyextension/processors.cpython-312-darwin.so,sha256=CqB4a4gnQkjXxQx_gWZT_PvAa7mn6NvgwltpD8drEZk,102928 -sqlalchemy/cyextension/processors.pyx,sha256=R1rHsGLEaGeBq5VeCydjClzYlivERIJ9B-XLOJlf2MQ,1792 -sqlalchemy/cyextension/resultproxy.cpython-312-darwin.so,sha256=_x5qDP5V7hf8nV6NtoJS1W89o_jEcxeFdiVchNoenP8,104864 -sqlalchemy/cyextension/resultproxy.pyx,sha256=eWLdyBXiBy_CLQrF5ScfWJm7X0NeelscSXedtj1zv9Q,2725 -sqlalchemy/cyextension/util.cpython-312-darwin.so,sha256=JXXrpXKMlgPRQ0Tv1eqZn1xdChzcAT0M32Fq1oJNZzI,122296 -sqlalchemy/cyextension/util.pyx,sha256=B85orxa9LddLuQEaDoVSq1XmAXIbLKxrxpvuB8ogV_o,2530 -sqlalchemy/dialects/__init__.py,sha256=Kos9Gf5JZg1Vg6GWaCqEbD6e0r1jCwCmcnJIfcxDdcY,1770 -sqlalchemy/dialects/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/dialects/__pycache__/_typing.cpython-312.pyc,, -sqlalchemy/dialects/_typing.py,sha256=hyv0nKucX2gI8ispB1IsvaUgrEPn9zEcq9hS7kfstEw,888 -sqlalchemy/dialects/mssql/__init__.py,sha256=r5t8wFRNtBQoiUWh0WfIEWzXZW6f3D0uDt6NZTW_7Cc,1880 -sqlalchemy/dialects/mssql/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/dialects/mssql/__pycache__/aioodbc.cpython-312.pyc,, -sqlalchemy/dialects/mssql/__pycache__/base.cpython-312.pyc,, -sqlalchemy/dialects/mssql/__pycache__/information_schema.cpython-312.pyc,, -sqlalchemy/dialects/mssql/__pycache__/json.cpython-312.pyc,, -sqlalchemy/dialects/mssql/__pycache__/provision.cpython-312.pyc,, -sqlalchemy/dialects/mssql/__pycache__/pymssql.cpython-312.pyc,, -sqlalchemy/dialects/mssql/__pycache__/pyodbc.cpython-312.pyc,, -sqlalchemy/dialects/mssql/aioodbc.py,sha256=UQd9ecSMIML713TDnLAviuBVJle7P7i1FtqGZZePk2Y,2022 -sqlalchemy/dialects/mssql/base.py,sha256=msl_N_a_z8ali7Nthx55AGoV7b5wakCWvWu560BvH9o,132423 -sqlalchemy/dialects/mssql/information_schema.py,sha256=HswjDc6y0mPXCf_x6VyylHlBdBa4PSY6Evxmmlch700,8084 -sqlalchemy/dialects/mssql/json.py,sha256=evUACW2O62TAPq8B7QIPagz7jfc664ql9ms68JqiYzg,4816 -sqlalchemy/dialects/mssql/provision.py,sha256=ZAtt6Div9NLIngMs8kyloxfphw0KDNMsnRCAVd7-esE,5593 -sqlalchemy/dialects/mssql/pymssql.py,sha256=LAv43q4vBCB85OsAwHQItaQUYTYIO0QJ-jvzaBrswmY,4097 -sqlalchemy/dialects/mssql/pyodbc.py,sha256=vwM-vBlmRwrqxOc73P0sFOrBSwn24wzc5IkEOpalbXQ,27056 -sqlalchemy/dialects/mysql/__init__.py,sha256=bxbi4hkysUK2OOVvr1F49akUj1cky27kKb07tgFzI9U,2153 -sqlalchemy/dialects/mysql/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/aiomysql.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/asyncmy.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/base.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/cymysql.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/dml.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/enumerated.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/expression.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/json.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/mariadb.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/mariadbconnector.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/mysqlconnector.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/mysqldb.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/provision.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/pymysql.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/pyodbc.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/reflection.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/reserved_words.cpython-312.pyc,, -sqlalchemy/dialects/mysql/__pycache__/types.cpython-312.pyc,, -sqlalchemy/dialects/mysql/aiomysql.py,sha256=-oMZnCqNsSki8mlQRTWIwiQPT1OVdZIuANkb90q8LAs,9999 -sqlalchemy/dialects/mysql/asyncmy.py,sha256=YpuuOh8VknEeqHqUXQGfQ3jhfO3Xb-vZv78Jq5cscJ0,10067 -sqlalchemy/dialects/mysql/base.py,sha256=giGlZNGrKsNMoSkbzY0PGgfamKjA9rOkSq1o5vKvno4,122755 -sqlalchemy/dialects/mysql/cymysql.py,sha256=eXT1ry0w_qRxjiO24M980c-8PZ9qSsbhqBHntjEiKB0,2300 -sqlalchemy/dialects/mysql/dml.py,sha256=HXJMAvimJsqvhj3UZO4vW_6LkF5RqaKbHvklAjor7yU,7645 -sqlalchemy/dialects/mysql/enumerated.py,sha256=ipEPPQqoXfFwcywNdcLlZCEzHBtnitHRah1Gn6nItcg,8448 -sqlalchemy/dialects/mysql/expression.py,sha256=lsmQCHKwfPezUnt27d2kR6ohk4IRFCA64KBS16kx5dc,4097 -sqlalchemy/dialects/mysql/json.py,sha256=l6MEZ0qp8FgiRrIQvOMhyEJq0q6OqiEnvDTx5Cbt9uQ,2269 -sqlalchemy/dialects/mysql/mariadb.py,sha256=kTfBLioLKk4JFFst4TY_iWqPtnvvQXFHknLfm89H2N8,853 -sqlalchemy/dialects/mysql/mariadbconnector.py,sha256=_S1aV93kyP52Nvj7HR9weThML4oUvSLsLqiVFdoLR2o,8623 -sqlalchemy/dialects/mysql/mysqlconnector.py,sha256=oq3mtsNOMldUjs32JbJG2u3Hy3DObyVzUUMYfOkwkHg,5729 -sqlalchemy/dialects/mysql/mysqldb.py,sha256=qUBbA6STeYGozutyTxHCo5p1W3p59QFFS2FwCgPrjBA,9503 -sqlalchemy/dialects/mysql/provision.py,sha256=Jnk8UO9_Apd2odR2IQFLrscCfAmYxuBKcB8giS3bBog,3575 -sqlalchemy/dialects/mysql/pymysql.py,sha256=GUnSHd2M2uKjmN46Hheymtm26g7phEgwYOXrX0zLY8M,4083 -sqlalchemy/dialects/mysql/pyodbc.py,sha256=072crI4qVyPhajYvHnsfFeSrNjLFVPIjBQKo5uyz5yk,4297 -sqlalchemy/dialects/mysql/reflection.py,sha256=3u34YwT1JJh3uThGZJZ3FKdnUcT7v08QB-tAl1r7VRk,22834 -sqlalchemy/dialects/mysql/reserved_words.py,sha256=ucKX2p2c3UnMq2ayZuOHuf73eXhu7SKsOsTlIN1Q83I,9258 -sqlalchemy/dialects/mysql/types.py,sha256=L5cTCsMT1pTedszNEM3jSxFNZEMcHQLprYCZ0vmfsnA,24343 -sqlalchemy/dialects/oracle/__init__.py,sha256=p4-2gw7TT0bX_MoJXTGD4i8WHctYsK9kCRbkpzykBrc,1493 -sqlalchemy/dialects/oracle/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/dialects/oracle/__pycache__/base.cpython-312.pyc,, -sqlalchemy/dialects/oracle/__pycache__/cx_oracle.cpython-312.pyc,, -sqlalchemy/dialects/oracle/__pycache__/dictionary.cpython-312.pyc,, -sqlalchemy/dialects/oracle/__pycache__/oracledb.cpython-312.pyc,, -sqlalchemy/dialects/oracle/__pycache__/provision.cpython-312.pyc,, -sqlalchemy/dialects/oracle/__pycache__/types.cpython-312.pyc,, -sqlalchemy/dialects/oracle/base.py,sha256=zLMZedrr6j1LvJz4qYnoSjikI5RZY92YFeQHiZ_YvW0,119676 -sqlalchemy/dialects/oracle/cx_oracle.py,sha256=q8Nyj15UZCE2TWOmxuWp5ZsxiCiGMzqfd_9UkmjIja0,55235 -sqlalchemy/dialects/oracle/dictionary.py,sha256=7WMrbPkqo8ZdGjaEZyQr-5f2pajSOF1OTGb8P97z8-g,19519 -sqlalchemy/dialects/oracle/oracledb.py,sha256=fZRKGqNIwW9LG4i8yDOXABrucbfzn_yC86Od-BJ3PcM,13619 -sqlalchemy/dialects/oracle/provision.py,sha256=O9ZpF4OG6Cx4mMzLRfZwhs8dZjrJETWR402n9c7726A,8304 -sqlalchemy/dialects/oracle/types.py,sha256=QK3hJvWzKnnCe3oD3rItwEEIwcoBze8qGg7VFOvVlIk,8231 -sqlalchemy/dialects/postgresql/__init__.py,sha256=wwnNAq4wDQzrlPRzDNB06ayuq3L2HNO99nzeEvq-YcU,3892 -sqlalchemy/dialects/postgresql/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/_psycopg_common.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/array.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/asyncpg.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/base.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/dml.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/ext.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/hstore.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/json.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/named_types.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/operators.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/pg8000.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/pg_catalog.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/provision.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/psycopg.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/psycopg2.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/psycopg2cffi.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/ranges.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/__pycache__/types.cpython-312.pyc,, -sqlalchemy/dialects/postgresql/_psycopg_common.py,sha256=7TudtgsPiSB8O5kX8W8KxcNYR8t5h_UHb86b_ChL0P8,5696 -sqlalchemy/dialects/postgresql/array.py,sha256=bWcame7ntmI_Kx6gmBX0-chwADFdLHeCvaDQ4iX8id8,13734 -sqlalchemy/dialects/postgresql/asyncpg.py,sha256=9P0Itn9eeSBu67kGSsHuzx8xd4YYwRKdiZ5m7bF5onU,41074 -sqlalchemy/dialects/postgresql/base.py,sha256=dGPsaV3Esw6-AwE3QcgHF0Fray3Yw5-gLLgCvgdxvS0,179083 -sqlalchemy/dialects/postgresql/dml.py,sha256=Pc69Le6qzmUHHb1FT5zeUSD31dWm6SBgdCAGW89cs3s,11212 -sqlalchemy/dialects/postgresql/ext.py,sha256=1bZ--iNh2O9ym7l2gXZX48yP3yMO4dqb9RpYro2Mj2Q,16262 -sqlalchemy/dialects/postgresql/hstore.py,sha256=otAx-RTDfpi_tcXkMuQV0JOIXtYgevgnsikLKKOkI6U,11541 -sqlalchemy/dialects/postgresql/json.py,sha256=53rQWon9cUXd1yCjIvUpJjWwNyRSy3U7Kz0HV70ftrc,11618 -sqlalchemy/dialects/postgresql/named_types.py,sha256=3IV1ufo7zJjKmX4VtGDEnoXE6xEqLJAtGG82IiqHXwY,17594 -sqlalchemy/dialects/postgresql/operators.py,sha256=NsAaWun_tL3d_be0fs9YL6T4LPKK6crnmFxxIJHgyeY,2808 -sqlalchemy/dialects/postgresql/pg8000.py,sha256=3yoekiWSF-xnaWMqG76XrYPMqerg-42TdmfsW_ivK9E,18640 -sqlalchemy/dialects/postgresql/pg_catalog.py,sha256=hY3NXEUHxTWD4umhd2aowNu3laC-61Q_qQ_pReyXTUM,9254 -sqlalchemy/dialects/postgresql/provision.py,sha256=t6TZj0XaWG9zrpCjNr0oJRjAC_WQzaNdp3kaKJIbS8I,5770 -sqlalchemy/dialects/postgresql/psycopg.py,sha256=Uwf45f9fInOtaExiEdwiP9xzRo7hw0XyZTkRtgdom44,23168 -sqlalchemy/dialects/postgresql/psycopg2.py,sha256=kwEnflz5bAqJcuO_20eYiCtha_a4m_tg5_lppdDnaeU,31998 -sqlalchemy/dialects/postgresql/psycopg2cffi.py,sha256=M7wAYSL6Pvt-4nbfacAHGyyw4XMKJ_bQZ1tc1pBtIdg,1756 -sqlalchemy/dialects/postgresql/ranges.py,sha256=6CgV7qkxEMJ9AQsiibo_XBLJYzGh-2ZxpG83sRaesVY,32949 -sqlalchemy/dialects/postgresql/types.py,sha256=Jfxqw9JaKNOq29JRWBublywgb3lLMyzx8YZI7CXpS2s,7300 -sqlalchemy/dialects/sqlite/__init__.py,sha256=lp9DIggNn349M-7IYhUA8et8--e8FRExWD2V_r1LJk4,1182 -sqlalchemy/dialects/sqlite/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/__pycache__/aiosqlite.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/__pycache__/base.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/__pycache__/dml.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/__pycache__/json.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/__pycache__/provision.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/__pycache__/pysqlcipher.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/__pycache__/pysqlite.cpython-312.pyc,, -sqlalchemy/dialects/sqlite/aiosqlite.py,sha256=g3qGV6jmiXabWyb3282g_Nmxtj1jThxGSe9C9yalb-U,12345 -sqlalchemy/dialects/sqlite/base.py,sha256=LcnW6hzxqTtPlDBOInHumvuDt8a31THA5Jnm4vFvdFI,97811 -sqlalchemy/dialects/sqlite/dml.py,sha256=9GE55WvwoktKy2fHeT-Wbc9xPHgsbh5oBfd_fckMH5Q,8443 -sqlalchemy/dialects/sqlite/json.py,sha256=Eoplbb_4dYlfrtmQaI8Xddd2suAIHA-IdbDQYM-LIhs,2777 -sqlalchemy/dialects/sqlite/provision.py,sha256=UCpmwxf4IWlrpb2eLHGbPTpCFVbdI_KAh2mKtjiLYao,5632 -sqlalchemy/dialects/sqlite/pysqlcipher.py,sha256=OL2S_05DK9kllZj6DOz7QtEl7jI7syxjW6woS725ii4,5356 -sqlalchemy/dialects/sqlite/pysqlite.py,sha256=aDp47n0J509kl2hDchoaBKXEQVZtkux54DwfKytUAe4,28068 -sqlalchemy/dialects/type_migration_guidelines.txt,sha256=-uHNdmYFGB7bzUNT6i8M5nb4j6j9YUKAtW4lcBZqsMg,8239 -sqlalchemy/engine/__init__.py,sha256=Stb2oV6l8w65JvqEo6J4qtKoApcmOpXy3AAxQud4C1o,2818 -sqlalchemy/engine/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/_py_processors.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/_py_row.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/_py_util.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/base.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/characteristics.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/create.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/cursor.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/default.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/events.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/interfaces.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/mock.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/processors.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/reflection.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/result.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/row.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/strategies.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/url.cpython-312.pyc,, -sqlalchemy/engine/__pycache__/util.cpython-312.pyc,, -sqlalchemy/engine/_py_processors.py,sha256=j9i_lcYYQOYJMcsDerPxI0sVFBIlX5sqoYMdMJlgWPI,3744 -sqlalchemy/engine/_py_row.py,sha256=wSqoUFzLOJ1f89kgDb6sJm9LUrF5LMFpXPcK1vUsKcs,3787 -sqlalchemy/engine/_py_util.py,sha256=f2DI3AN1kv6EplelowesCVpwS8hSXNufRkZoQmJtSH8,2484 -sqlalchemy/engine/base.py,sha256=frWSMmt3dlentYH4QNN3cijdGzp8NbunColUZwWsWgI,122958 -sqlalchemy/engine/characteristics.py,sha256=N3kbvw_ApMh86wb5yAGnxtPYD4YRhYMWion1H_aVZBI,4765 -sqlalchemy/engine/create.py,sha256=mYJtOG2ZKM8sgyfjpGpamW15RDU7JXi5s6iibbJHMIs,33206 -sqlalchemy/engine/cursor.py,sha256=cFq61yrw76k-QR_xNUBWuL-Zeyb14ltG-6jo2Q2iuuw,76392 -sqlalchemy/engine/default.py,sha256=2wwKKdsagb3QTajRSEw8Hl-EnQ-LmRxy822xOGyenHc,84648 -sqlalchemy/engine/events.py,sha256=c0unNFFiHzTAvkUtXoJaxzMFMDwurBkHiiUhuN8qluc,37381 -sqlalchemy/engine/interfaces.py,sha256=fcVHOmnMo7JZLHzgSKoK3QsdVHH7kJ_AmrDvwW9Ka3k,112936 -sqlalchemy/engine/mock.py,sha256=yvpxgFmRw5G4QsHeF-ZwQGHKES-HqQOucTxFtN1uzdk,4179 -sqlalchemy/engine/processors.py,sha256=XyfINKbo-2fjN-mW55YybvFyQMOil50_kVqsunahkNs,2379 -sqlalchemy/engine/reflection.py,sha256=gwGs8y7x6py5z-ZWx3hQqQrwpHepMCTJyQcFwWJjPlw,75364 -sqlalchemy/engine/result.py,sha256=NZEskTMAcDzK-vjE96Fw8VvBL58s5Y6rt9vXcmZdM4w,77651 -sqlalchemy/engine/row.py,sha256=9AAQo9zYDL88GcZ3bjcQTwMT-YIcuGTSMAyTfmBJ_yM,12032 -sqlalchemy/engine/strategies.py,sha256=DqFSWaXJPL-29Omot9O0aOcuGL8KmCGyOvnPGDkAJoE,442 -sqlalchemy/engine/url.py,sha256=8eWkUaIUyDExOcJ2D4xJXRcn4OY1GQJ3Q2duSX6UGAg,30784 -sqlalchemy/engine/util.py,sha256=bNirO8k1S8yOW61uNH-a9QrWtAJ9VGFgbiR0lk1lUQU,5682 -sqlalchemy/event/__init__.py,sha256=KBrp622xojnC3FFquxa2JsMamwAbfkvzfv6Op0NKiYc,997 -sqlalchemy/event/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/event/__pycache__/api.cpython-312.pyc,, -sqlalchemy/event/__pycache__/attr.cpython-312.pyc,, -sqlalchemy/event/__pycache__/base.cpython-312.pyc,, -sqlalchemy/event/__pycache__/legacy.cpython-312.pyc,, -sqlalchemy/event/__pycache__/registry.cpython-312.pyc,, -sqlalchemy/event/api.py,sha256=DtDVgjKSorOfp9MGJ7fgMWrj4seC_hkwF4D8CW1RFZU,8226 -sqlalchemy/event/attr.py,sha256=X8QeHGK4ioSYht1vkhc11f606_mq_t91jMNIT314ubs,20751 -sqlalchemy/event/base.py,sha256=270OShTD17-bSFUFnPtKdVnB0NFJZ2AouYPo1wT0aJw,15127 -sqlalchemy/event/legacy.py,sha256=teMPs00fO-4g8a_z2omcVKkYce5wj_1uvJO2n2MIeuo,8227 -sqlalchemy/event/registry.py,sha256=nfTSSyhjZZXc5wseWB4sXn-YibSc0LKX8mg17XlWmAo,10835 -sqlalchemy/events.py,sha256=k-ZD38aSPD29LYhED7CBqttp5MDVVx_YSaWC2-cu9ec,525 -sqlalchemy/exc.py,sha256=M_8-O1hd8i6gbyx-TapV400p_Lxq2QqTGMXUAO-YgCc,23976 -sqlalchemy/ext/__init__.py,sha256=S1fGKAbycnQDV01gs-JWGaFQ9GCD4QHwKcU2wnugg_o,322 -sqlalchemy/ext/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/associationproxy.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/automap.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/baked.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/compiler.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/horizontal_shard.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/hybrid.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/indexable.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/instrumentation.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/mutable.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/orderinglist.cpython-312.pyc,, -sqlalchemy/ext/__pycache__/serializer.cpython-312.pyc,, -sqlalchemy/ext/associationproxy.py,sha256=ZGc_ssGf7FC6eKrja1iTvnWEKLkFZQA8CiVAjR8iVRw,66062 -sqlalchemy/ext/asyncio/__init__.py,sha256=1OqSxEyIUn7RWLGyO12F-jAUIvk1I6DXlVy80-Gvkds,1317 -sqlalchemy/ext/asyncio/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/ext/asyncio/__pycache__/base.cpython-312.pyc,, -sqlalchemy/ext/asyncio/__pycache__/engine.cpython-312.pyc,, -sqlalchemy/ext/asyncio/__pycache__/exc.cpython-312.pyc,, -sqlalchemy/ext/asyncio/__pycache__/result.cpython-312.pyc,, -sqlalchemy/ext/asyncio/__pycache__/scoping.cpython-312.pyc,, -sqlalchemy/ext/asyncio/__pycache__/session.cpython-312.pyc,, -sqlalchemy/ext/asyncio/base.py,sha256=fl7wxZD9KjgFiCtG3WXrYjHEvanamcsodCqq9pH9lOk,8905 -sqlalchemy/ext/asyncio/engine.py,sha256=S_IRWX4QAjj2veLSu4Y3gKBIXkKQt7_2StJAK2_KUDY,48190 -sqlalchemy/ext/asyncio/exc.py,sha256=8sII7VMXzs2TrhizhFQMzSfcroRtiesq8o3UwLfXSgQ,639 -sqlalchemy/ext/asyncio/result.py,sha256=3rbVIY_wySi50JwaK3Kf2qa3c5Fc8W84FtUpt-9i9Vk,30477 -sqlalchemy/ext/asyncio/scoping.py,sha256=UxHAFxtWKqA7TEozyN2h7MJyzSspTCrS-1SlgQLTExo,52608 -sqlalchemy/ext/asyncio/session.py,sha256=QpXnqspwYnT28znD1EdpUIaVjQOO1BirtS0BJeBxeZk,63087 -sqlalchemy/ext/automap.py,sha256=r0mUSyogNyqdBL4m9AA1NXbLiTLQmtvyQymsssNEipo,61581 -sqlalchemy/ext/baked.py,sha256=H6T1il7GY84BhzPFj49UECSpZh_eBuiHomA-QIsYOYQ,17807 -sqlalchemy/ext/compiler.py,sha256=6X6sZCAo9v-PQfLbwBSYQUK0-XH2xTE5Jm0Zg6Ka6eM,20877 -sqlalchemy/ext/declarative/__init__.py,sha256=20psLdFQbbOWfpdXHZ0CTY6I1k4UqXvKemNVu1LvPOI,1818 -sqlalchemy/ext/declarative/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/ext/declarative/__pycache__/extensions.cpython-312.pyc,, -sqlalchemy/ext/declarative/extensions.py,sha256=uCjN1GisQt54AjqYnKYzJdUjnGd2pZBW47WWdPlS7FE,19547 -sqlalchemy/ext/horizontal_shard.py,sha256=wuwAPnHymln0unSBnyx-cpX0AfESKSsypaSQTYCvzDk,16750 -sqlalchemy/ext/hybrid.py,sha256=IYkCaPZ29gm2cPKPg0cWMkLCEqMykD8-JJTvgacGbmc,52458 -sqlalchemy/ext/indexable.py,sha256=UkTelbydKCdKelzbv3HWFFavoET9WocKaGRPGEOVfN8,11032 -sqlalchemy/ext/instrumentation.py,sha256=sg8ghDjdHSODFXh_jAmpgemnNX1rxCeeXEG3-PMdrNk,15707 -sqlalchemy/ext/mutable.py,sha256=L5ZkHBGYhMaqO75Xtyrk2DBR44RDk0g6Rz2HzHH0F8Q,37355 -sqlalchemy/ext/mypy/__init__.py,sha256=0WebDIZmqBD0OTq5JLtd_PmfF9JGxe4d4Qv3Ml3PKUg,241 -sqlalchemy/ext/mypy/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/ext/mypy/__pycache__/apply.cpython-312.pyc,, -sqlalchemy/ext/mypy/__pycache__/decl_class.cpython-312.pyc,, -sqlalchemy/ext/mypy/__pycache__/infer.cpython-312.pyc,, -sqlalchemy/ext/mypy/__pycache__/names.cpython-312.pyc,, -sqlalchemy/ext/mypy/__pycache__/plugin.cpython-312.pyc,, -sqlalchemy/ext/mypy/__pycache__/util.cpython-312.pyc,, -sqlalchemy/ext/mypy/apply.py,sha256=Aek_-XA1eXihT4attxhfE43yBKtCgsxBSb--qgZKUqc,10550 -sqlalchemy/ext/mypy/decl_class.py,sha256=1vVJRII2apnLTUbc5HkJS6Z2GueaUv_eKvhbqh7Wik4,17384 -sqlalchemy/ext/mypy/infer.py,sha256=KVnmLFEVS33Al8pUKI7MJbJQu3KeveBUMl78EluBORw,19369 -sqlalchemy/ext/mypy/names.py,sha256=Q3ef8XQBgVm9WUwlItqlYCXDNi_kbV5DdLEgbtEMEI8,10479 -sqlalchemy/ext/mypy/plugin.py,sha256=74ML8LI9xar0V86oCxnPFv5FQGEEfUzK64vOay4BKFs,9750 -sqlalchemy/ext/mypy/util.py,sha256=DKRaurkXHI2lAMAAcEO5GLXbX_m2Xqy7l_juh8Byf5U,9960 -sqlalchemy/ext/orderinglist.py,sha256=TGYbsGH72wEZcFNQDYDsZg9OSPuzf__P8YX8_2HtYUo,14384 -sqlalchemy/ext/serializer.py,sha256=D0g4jMZkRk0Gjr0L-FZe81SR63h0Zs-9JzuWtT_SD7k,6140 -sqlalchemy/future/__init__.py,sha256=q2mw-gxk_xoxJLEvRoyMha3vO1xSRHrslcExOHZwmPA,512 -sqlalchemy/future/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/future/__pycache__/engine.cpython-312.pyc,, -sqlalchemy/future/engine.py,sha256=AgIw6vMsef8W6tynOTkxsjd6o_OQDwGjLdbpoMD8ue8,495 -sqlalchemy/inspection.py,sha256=MF-LE358wZDUEl1IH8-Uwt2HI65EsQpQW5o5udHkZwA,5063 -sqlalchemy/log.py,sha256=8x9UR3nj0uFm6or6bQF-JWb4fYv2zOeQjG_w-0wOJFA,8607 -sqlalchemy/orm/__init__.py,sha256=ZYys5nL3RFUDCMOLFDBrRI52F6er3S1U1OY9TeORuKs,8463 -sqlalchemy/orm/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/_orm_constructors.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/_typing.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/attributes.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/base.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/bulk_persistence.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/clsregistry.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/collections.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/context.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/decl_api.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/decl_base.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/dependency.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/descriptor_props.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/dynamic.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/evaluator.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/events.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/exc.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/identity.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/instrumentation.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/interfaces.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/loading.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/mapped_collection.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/mapper.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/path_registry.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/persistence.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/properties.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/query.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/relationships.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/scoping.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/session.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/state.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/state_changes.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/strategies.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/strategy_options.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/sync.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/unitofwork.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/util.cpython-312.pyc,, -sqlalchemy/orm/__pycache__/writeonly.cpython-312.pyc,, -sqlalchemy/orm/_orm_constructors.py,sha256=8EQfYsDL2k_ev0eK-wxMl3algouczN38Gu43CrRlAlo,103434 -sqlalchemy/orm/_typing.py,sha256=DVBfpHmDVK4x1zxaGJPY2GoTrAsyR6uexv20Lzf1afc,4973 -sqlalchemy/orm/attributes.py,sha256=lorOHBJvJJYndOuafWJhHBbQ1pR6FAyimhqz-mErBRQ,92534 -sqlalchemy/orm/base.py,sha256=FXkYTSCDUJFQSB5pcyPt2wG-dRctf5P6ySjyjVxQsX0,27502 -sqlalchemy/orm/bulk_persistence.py,sha256=1FC23bRJKjpfbp2D5hYuV1qOVIKGSswu9XPXbbSJ5Mo,72663 -sqlalchemy/orm/clsregistry.py,sha256=IjoDZwWpjG42ji59L4M1EZvjBEoXPZykzENDtKWxU8A,17974 -sqlalchemy/orm/collections.py,sha256=WEKuUCRgLhDhJEIBhZ21UrE0pBOyRm2zxD20GvbgA9g,52243 -sqlalchemy/orm/context.py,sha256=FMPyw07OA9OXWQ32RQx52AEa2xTLSkqdYgx9R_yN1x0,112955 -sqlalchemy/orm/decl_api.py,sha256=_WPKQ_vSE5k2TLtNmkaxxYmvbhZvkRMrrvCeDxdqDQE,63998 -sqlalchemy/orm/decl_base.py,sha256=8R7go5sULTYNRlhYiEjXIJkQ34oPp7DY_fC2nS5D5is,83343 -sqlalchemy/orm/dependency.py,sha256=hgjksUWhgbmgHK5GdJdiDCBgDAIGQXIrY-Tj79tbL2k,47631 -sqlalchemy/orm/descriptor_props.py,sha256=dR_h4Gvdtpcdp4sj_ZOR4P5Nng2J2vhsvFHouRLlntc,37244 -sqlalchemy/orm/dynamic.py,sha256=rWAZ-nfAkREuNjt8e_FRdqYrvHDdbODn1CcfyP8Y18k,9816 -sqlalchemy/orm/evaluator.py,sha256=tRETz4dNZ71VsEA8nG0hpefByB-W0zBt02IxcSR5H2g,12353 -sqlalchemy/orm/events.py,sha256=1PiGT7JMUWTDAb3X1T79P02BMVDmcWEpatz1FwpLqoA,127777 -sqlalchemy/orm/exc.py,sha256=IP40P-wOeXhkYk0YizuTC3wqm6W9cPTaQU08f5MMaQ0,7413 -sqlalchemy/orm/identity.py,sha256=jHdCxCpCyda_8mFOfGmN_Pr0XZdKiU-2hFZshlNxbHs,9249 -sqlalchemy/orm/instrumentation.py,sha256=M-kZmkUvHUxtf-0mCA8RIM5QmMH1hWlYR_pKMwaidjA,24321 -sqlalchemy/orm/interfaces.py,sha256=7Lni4Cue41b1CsmN4VbeUyWwzuNMcKtkrpihc9U-WIw,48690 -sqlalchemy/orm/loading.py,sha256=9RacpzFOWbuKgPRWHFmyIvD4fYCLAnkpwBFASyQ2CoI,58277 -sqlalchemy/orm/mapped_collection.py,sha256=zK3d3iozORzDruBUrAmkVC0RR3Orj5szk-TSQ24xzIU,19682 -sqlalchemy/orm/mapper.py,sha256=W-srpoEc3UIYv_6qTXTd_dG_TVeQcToG77VGrXt85PM,171738 -sqlalchemy/orm/path_registry.py,sha256=sJZMv_WPqUpHfQtKWaX3WYFeKBcNJ8C3wOM2mkBGkTE,25920 -sqlalchemy/orm/persistence.py,sha256=dzyB2JOXNwQgaCbN8kh0sEz00WFePr48qf8NWVCUZH8,61701 -sqlalchemy/orm/properties.py,sha256=eDPFzxYUgdM3uWjHywnb1XW-i0tVKKyx7A2MCD31GQU,29306 -sqlalchemy/orm/query.py,sha256=Cf0e94-u1XyoXJoOAmr4iFvtCwNY98kxUYyMPenaWTE,117708 -sqlalchemy/orm/relationships.py,sha256=dS5SY0v1MiD7iCNnAQlHaI6prUQhL5EkXT7ijc8FR8E,128644 -sqlalchemy/orm/scoping.py,sha256=rJVc7_Lic4V00HZ-UvYFWkVpXqdrMayRmIs4fIwH1UA,78688 -sqlalchemy/orm/session.py,sha256=CZJTQ-wPwIy0c3AMFxgJnBgaft6eEf4JzcCLcaaCSjg,195979 -sqlalchemy/orm/state.py,sha256=327-F4TG29s6mLC8oWRiO2PuvYIUZzY1MqUPjtUy7M4,37670 -sqlalchemy/orm/state_changes.py,sha256=qKYg7NxwrDkuUY3EPygAztym6oAVUFcP2wXn7QD3Mz4,6815 -sqlalchemy/orm/strategies.py,sha256=-tsBRsmEqkaxAAIn4t2F-U5SrRIPoPCyzpqFYGTAwNs,119866 -sqlalchemy/orm/strategy_options.py,sha256=oeDl_rMDNAC_90N7ytsni-psXWAeQMhABQFyKBSmai0,85353 -sqlalchemy/orm/sync.py,sha256=g7iZfSge1HgxMk9SKRgUgtHEbpbZ1kP_CBqOIdTOXqc,5779 -sqlalchemy/orm/unitofwork.py,sha256=fiVaqcymbDDHRa1NjS90N9Z466nd5pkJOEi1dHO6QLY,27033 -sqlalchemy/orm/util.py,sha256=5SC4MOVU0cPObexDjpMvXvetueiU5pze42raL94gj24,81021 -sqlalchemy/orm/writeonly.py,sha256=SYu2sAaHZONk2pW4PmtE871LG-O0P_bjidvKzY1H_zI,22305 -sqlalchemy/pool/__init__.py,sha256=qiDdq4r4FFAoDrK6ncugF_i6usi_X1LeJt-CuBHey0s,1804 -sqlalchemy/pool/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/pool/__pycache__/base.cpython-312.pyc,, -sqlalchemy/pool/__pycache__/events.cpython-312.pyc,, -sqlalchemy/pool/__pycache__/impl.cpython-312.pyc,, -sqlalchemy/pool/base.py,sha256=WF4az4ZKuzQGuKeSJeyexaYjmWZUvYdC6KIi8zTGodw,52236 -sqlalchemy/pool/events.py,sha256=xGjkIUZl490ZDtCHqnQF9ZCwe2Jv93eGXmnQxftB11E,13147 -sqlalchemy/pool/impl.py,sha256=JwpALSkH-pCoO_6oENbkHYY00Jx9nlttyoI61LivRNc,18944 -sqlalchemy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -sqlalchemy/schema.py,sha256=dKiWmgHYjcKQ4TiiD6vD0UMmIsD8u0Fsor1M9AAeGUs,3194 -sqlalchemy/sql/__init__.py,sha256=UNa9EUiYWoPayf-FzNcwVgQvpsBdInPZfpJesAStN9o,5820 -sqlalchemy/sql/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/_dml_constructors.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/_elements_constructors.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/_orm_types.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/_py_util.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/_selectable_constructors.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/_typing.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/annotation.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/base.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/cache_key.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/coercions.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/compiler.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/crud.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/ddl.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/default_comparator.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/dml.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/elements.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/events.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/expression.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/functions.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/lambdas.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/naming.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/operators.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/roles.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/schema.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/selectable.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/sqltypes.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/traversals.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/type_api.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/util.cpython-312.pyc,, -sqlalchemy/sql/__pycache__/visitors.cpython-312.pyc,, -sqlalchemy/sql/_dml_constructors.py,sha256=YdBJex0MCVACv4q2nl_ii3uhxzwU6aDB8zAsratX5UQ,3867 -sqlalchemy/sql/_elements_constructors.py,sha256=833Flez92odZkE2Vy6SXK8LcoO1AwkfVzOnATJLWFsA,63168 -sqlalchemy/sql/_orm_types.py,sha256=T-vjcry4C1y0GToFKVxQCnmly_-Zsq4IO4SHN6bvUF4,625 -sqlalchemy/sql/_py_util.py,sha256=hiM9ePbRSGs60bAMxPFuJCIC_p9SQ1VzqXGiPchiYwE,2173 -sqlalchemy/sql/_selectable_constructors.py,sha256=wjE6HrLm9cR7bxvZXT8sFLUqT6t_J9G1XyQCnYmBDl0,18780 -sqlalchemy/sql/_typing.py,sha256=oqwrYHVMtK-AuKGH9c4SgfiOEJUt5vjkzSEzzscMHkM,12771 -sqlalchemy/sql/annotation.py,sha256=aqbbVz9kfbCT3_66CZ9GEirVN197Cukoqt8rq48FgkQ,18245 -sqlalchemy/sql/base.py,sha256=M1b-Tg49ikUW2mnZv0aI38oASG6dgeo4jBNWDgJgAg8,73925 -sqlalchemy/sql/cache_key.py,sha256=0Db8mR8IrpBgdzXs4TGTt98LOpL3c7KABd72MAPKUQQ,33668 -sqlalchemy/sql/coercions.py,sha256=hAEou9Ycyswzu8yz_Q7QkwL2_c3nctzBJQS2oDEr4iE,40664 -sqlalchemy/sql/compiler.py,sha256=hrTptbOKIgVIHapywj4Lk5OMwpXvHS-KGg3odFwlo-I,274687 -sqlalchemy/sql/crud.py,sha256=HBX4QPtW_PYYJmIKfNr-wE8IdEr963N24WXzFBUZOo0,56514 -sqlalchemy/sql/ddl.py,sha256=lKqvOigbcYrDG0euxd5F4tu9HbBi1kmp3eFPc45HH-8,45636 -sqlalchemy/sql/default_comparator.py,sha256=utXWsZVGEjflhFfCT4ywa6RnhORc1Rryo87Hga71Rps,16707 -sqlalchemy/sql/dml.py,sha256=pn0Lm1ofC5qVZzwGWFW73lPCiNba8OsTeemurJgwRyg,65614 -sqlalchemy/sql/elements.py,sha256=YfccXzQc9DlgF8q15kDf-zKBUY_vpIe0FGaVDBPoic4,176544 -sqlalchemy/sql/events.py,sha256=iC_Q1Htm1Aobt5tOYxWfHHqNpoytrULORmUKcusH_-E,18290 -sqlalchemy/sql/expression.py,sha256=VMX-dLpsZYnVRJpYNDozDUgaj7iQ0HuewUKVefD57PE,7586 -sqlalchemy/sql/functions.py,sha256=kMMYplvuIHFAPwxBI03SizwaLcYEHzysecWk-R1V-JM,63762 -sqlalchemy/sql/lambdas.py,sha256=DP0Qz7Ypo8QhzMwygGHYgRhwJMx-rNezO1euouH3iYU,49292 -sqlalchemy/sql/naming.py,sha256=ZHs1qSV3ou8TYmZ92uvU3sfdklUQlIz4uhe330n05SU,6858 -sqlalchemy/sql/operators.py,sha256=himArRqBzrljob3Zfhi_ZS-Jleg1u6YFp0g3d7Co6IM,76106 -sqlalchemy/sql/roles.py,sha256=pOsVn_OZD7mF2gJByHf24Rjopt0_Hu3dUCEOK5t4KS8,7662 -sqlalchemy/sql/schema.py,sha256=iFleWHkxi-3mKGiK_N1TzUqxnNwOpypB4bWDuAVQe8c,229717 -sqlalchemy/sql/selectable.py,sha256=cgyV0AsPy4CXAFdhMiTCkbgaHiFilW9sclzxlHJKH3o,236460 -sqlalchemy/sql/sqltypes.py,sha256=5_N9MhprQFWYc3yjcXgFC_DmvkQU-Jz-Ok9nIMYp2Q4,127469 -sqlalchemy/sql/traversals.py,sha256=3ScTC1fh1-y8Y478h_2Azmd2xdQdWPWkDve4YgrwMf8,33664 -sqlalchemy/sql/type_api.py,sha256=SN16_oNZG6G65cvG6ABPcptz_YV5vfB2fknwJZxrkOs,84464 -sqlalchemy/sql/util.py,sha256=qGHQF-tPCj-m1FBerzT7weCanGcXU7dK5m-W7NHio-4,48077 -sqlalchemy/sql/visitors.py,sha256=71wdVvhhZL4nJvVwFAs6ssaW-qZgNRSmKjpAcOzF_TA,36317 -sqlalchemy/testing/__init__.py,sha256=zgitAYzsCWT_U48ZiifXHHLJFo8nZBYmI-5TueA4_lE,3160 -sqlalchemy/testing/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/assertions.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/assertsql.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/asyncio.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/config.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/engines.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/entities.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/exclusions.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/pickleable.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/profiling.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/provision.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/requirements.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/schema.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/util.cpython-312.pyc,, -sqlalchemy/testing/__pycache__/warnings.cpython-312.pyc,, -sqlalchemy/testing/assertions.py,sha256=gL0rA7CCZJbcVgvWOPV91tTZTRwQc1_Ta0-ykBn83Ew,31439 -sqlalchemy/testing/assertsql.py,sha256=IgQG7l94WaiRP8nTbilJh1ZHZl125g7GPq-S5kmQZN0,16817 -sqlalchemy/testing/asyncio.py,sha256=kM8uuOqDBagZF0r9xvGmsiirUVLUQ_KBzjUFU67W-b8,3830 -sqlalchemy/testing/config.py,sha256=AqyH1qub_gDqX0BvlL-JBQe7N-t2wo8655FtwblUNOY,12090 -sqlalchemy/testing/engines.py,sha256=HFJceEBD3Q_TTFQMTtIV5wGWO_a7oUgoKtUF_z636SM,13481 -sqlalchemy/testing/entities.py,sha256=IphFegPKbff3Un47jY6bi7_MQXy6qkx_50jX2tHZJR4,3354 -sqlalchemy/testing/exclusions.py,sha256=T8B01hmm8WVs-EKcUOQRzabahPqblWJfOidi6bHJ6GA,12460 -sqlalchemy/testing/fixtures/__init__.py,sha256=dMClrIoxqlYIFpk2ia4RZpkbfxsS_3EBigr9QsPJ66g,1198 -sqlalchemy/testing/fixtures/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/testing/fixtures/__pycache__/base.cpython-312.pyc,, -sqlalchemy/testing/fixtures/__pycache__/mypy.cpython-312.pyc,, -sqlalchemy/testing/fixtures/__pycache__/orm.cpython-312.pyc,, -sqlalchemy/testing/fixtures/__pycache__/sql.cpython-312.pyc,, -sqlalchemy/testing/fixtures/base.py,sha256=9r_J2ksiTzClpUxW0TczICHrWR7Ny8PV8IsBz6TsGFI,12256 -sqlalchemy/testing/fixtures/mypy.py,sha256=gdxiwNFIzDlNGSOdvM3gbwDceVCC9t8oM5kKbwyhGBk,11973 -sqlalchemy/testing/fixtures/orm.py,sha256=8EFbnaBbXX_Bf4FcCzBUaAHgyVpsLGBHX16SGLqE3Fg,6095 -sqlalchemy/testing/fixtures/sql.py,sha256=KZMjco9_3dsuspmkew5Ejp88Wlr9PsSBB1qeJGFxQAk,15900 -sqlalchemy/testing/pickleable.py,sha256=U9mIqk-zaxq9Xfy7HErP7UrKgTov-A3QFnhZh-NiOjI,2833 -sqlalchemy/testing/plugin/__init__.py,sha256=79F--BIY_NTBzVRIlJGgAY5LNJJ3cD19XvrAo4X0W9A,247 -sqlalchemy/testing/plugin/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/testing/plugin/__pycache__/bootstrap.cpython-312.pyc,, -sqlalchemy/testing/plugin/__pycache__/plugin_base.cpython-312.pyc,, -sqlalchemy/testing/plugin/__pycache__/pytestplugin.cpython-312.pyc,, -sqlalchemy/testing/plugin/bootstrap.py,sha256=oYScMbEW4pCnWlPEAq1insFruCXFQeEVBwo__i4McpU,1685 -sqlalchemy/testing/plugin/plugin_base.py,sha256=BgNzWNEmgpK4CwhyblQQKnH-7FDKVi_Uul5vw8fFjBU,21578 -sqlalchemy/testing/plugin/pytestplugin.py,sha256=6jkQHH2VQMD75k2As9CuWXmEy9jrscoFRhCNg6-PaTw,27656 -sqlalchemy/testing/profiling.py,sha256=PbuPhRFbauFilUONeY3tV_Y_5lBkD7iCa8VVyH2Sk9Y,10148 -sqlalchemy/testing/provision.py,sha256=3qFor_sN1FFlS7odUGkKqLUxGmQZC9XM67I9vQ_zeXo,14626 -sqlalchemy/testing/requirements.py,sha256=Z__o-1Rj9B7dI8E_l3qsKTvsg0rK198vB0A1p7A5dcM,52832 -sqlalchemy/testing/schema.py,sha256=lr4GkGrGwagaHMuSGzWdzkMaj3HnS7dgfLLWfxt__-U,6513 -sqlalchemy/testing/suite/__init__.py,sha256=Y5DRNG0Yl1u3ypt9zVF0Z9suPZeuO_UQGLl-wRgvTjU,722 -sqlalchemy/testing/suite/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_cte.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_ddl.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_deprecations.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_dialect.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_insert.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_reflection.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_results.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_rowcount.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_select.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_sequence.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_types.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_unicode_ddl.cpython-312.pyc,, -sqlalchemy/testing/suite/__pycache__/test_update_delete.cpython-312.pyc,, -sqlalchemy/testing/suite/test_cte.py,sha256=6zBC3W2OwX1Xs-HedzchcKN2S7EaLNkgkvV_JSZ_Pq0,6451 -sqlalchemy/testing/suite/test_ddl.py,sha256=1Npkf0C_4UNxphthAGjG078n0vPEgnSIHpDu5MfokxQ,12031 -sqlalchemy/testing/suite/test_deprecations.py,sha256=BcJxZTcjYqeOAENVElCg3hVvU6fkGEW3KGBMfnW8bng,5337 -sqlalchemy/testing/suite/test_dialect.py,sha256=EH4ZQWbnGdtjmx5amZtTyhYmrkXJCvW1SQoLahoE7uk,22923 -sqlalchemy/testing/suite/test_insert.py,sha256=9azifj6-OCD7s8h_tAO1uPw100ibQv8YoKc_VA3hn3c,18824 -sqlalchemy/testing/suite/test_reflection.py,sha256=7sML8-owubSQeEM7Ve6LbnB8uIVlNV00WWepKwII2a8,109648 -sqlalchemy/testing/suite/test_results.py,sha256=X720GafdA4p75SOGS93j-dXkt6QDEnnJbU2bh18VCcg,16914 -sqlalchemy/testing/suite/test_rowcount.py,sha256=3KDTlRgjpQ1OVfp__1cv8Hvq4CsDKzmrhJQ_WIJWoJg,7900 -sqlalchemy/testing/suite/test_select.py,sha256=ulRZQJlzkwwcewEyisuBEXVWFR0Wshz9MEDxYYiYLwQ,61732 -sqlalchemy/testing/suite/test_sequence.py,sha256=66bCoy4xo99GBSaX6Hxb88foANAykLGRz1YEKbvpfuA,9923 -sqlalchemy/testing/suite/test_types.py,sha256=K4MGHvnTtgqeksoQOBCZRVQYC7HoYO6Z6rVt5vj2t9o,67805 -sqlalchemy/testing/suite/test_unicode_ddl.py,sha256=c3_eIxLyORuSOhNDP0jWKxPyUf3SwMFpdalxtquwqlM,6141 -sqlalchemy/testing/suite/test_update_delete.py,sha256=yTiM2unnfOK9rK8ZkqeTTU_MkT-RsKFLmdYliniZfAY,3994 -sqlalchemy/testing/util.py,sha256=qldXKw8gRJ4I2x3uXsBssYMqwatmcMFMTOveRQCmfDU,14469 -sqlalchemy/testing/warnings.py,sha256=fJ-QJUY2zY2PPxZJKv9medW-BKKbCNbA4Ns_V3YwFXM,1546 -sqlalchemy/types.py,sha256=cQFM-hFRmaf1GErun1qqgEs6QxufvzMuwKqj9tuMPpE,3168 -sqlalchemy/util/__init__.py,sha256=5D5Mquvx3SOmud0QErKzzGvBTkqMdhrrd_sXijOILeo,8312 -sqlalchemy/util/__pycache__/__init__.cpython-312.pyc,, -sqlalchemy/util/__pycache__/_collections.cpython-312.pyc,, -sqlalchemy/util/__pycache__/_concurrency_py3k.cpython-312.pyc,, -sqlalchemy/util/__pycache__/_has_cy.cpython-312.pyc,, -sqlalchemy/util/__pycache__/_py_collections.cpython-312.pyc,, -sqlalchemy/util/__pycache__/compat.cpython-312.pyc,, -sqlalchemy/util/__pycache__/concurrency.cpython-312.pyc,, -sqlalchemy/util/__pycache__/deprecations.cpython-312.pyc,, -sqlalchemy/util/__pycache__/langhelpers.cpython-312.pyc,, -sqlalchemy/util/__pycache__/preloaded.cpython-312.pyc,, -sqlalchemy/util/__pycache__/queue.cpython-312.pyc,, -sqlalchemy/util/__pycache__/tool_support.cpython-312.pyc,, -sqlalchemy/util/__pycache__/topological.cpython-312.pyc,, -sqlalchemy/util/__pycache__/typing.cpython-312.pyc,, -sqlalchemy/util/_collections.py,sha256=aZoSAVOXnHBoYEsxDOi0O9odg9wqLbGb7PGjaWQKiyY,20078 -sqlalchemy/util/_concurrency_py3k.py,sha256=zb0Bow2Y_QjTdaACEviBEEaFvqDuVvpJfmwCjaw8xNE,9170 -sqlalchemy/util/_has_cy.py,sha256=wCQmeSjT3jaH_oxfCEtGk-1g0gbSpt5MCK5UcWdMWqk,1247 -sqlalchemy/util/_py_collections.py,sha256=U6L5AoyLdgSv7cdqB4xxQbw1rpeJjyOZVXffgxgga8I,16714 -sqlalchemy/util/compat.py,sha256=cnucBQOKspo58vjRpQXUBrHGguHOSFvftpD-I8vfUy0,8760 -sqlalchemy/util/concurrency.py,sha256=9lT_cMoO1fZNdY8QTUZ22oeSf-L5I-79Ke7chcBNPA0,3304 -sqlalchemy/util/deprecations.py,sha256=YBwvvYhSB8LhasIZRKvg_-WNoVhPUcaYI1ZrnjDn868,11971 -sqlalchemy/util/langhelpers.py,sha256=uIK3szZuq9aMnO-vEpSlNekNWv4I-E391e56bkTnUm0,65090 -sqlalchemy/util/preloaded.py,sha256=az7NmLJLsqs0mtM9uBkIu10-841RYDq8wOyqJ7xXvqE,5904 -sqlalchemy/util/queue.py,sha256=CaeSEaYZ57YwtmLdNdOIjT5PK_LCuwMFiO0mpp39ybM,10185 -sqlalchemy/util/tool_support.py,sha256=9braZyidaiNrZVsWtGmkSmus50-byhuYrlAqvhjcmnA,6135 -sqlalchemy/util/topological.py,sha256=N3M3Le7KzGHCmqPGg0ZBqixTDGwmFLhOZvBtc4rHL_g,3458 -sqlalchemy/util/typing.py,sha256=lFcGo1dJbZIZ9drAnvef-PzP0cX4LMxMSwgk3lJBb0g,18182 diff --git a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/REQUESTED b/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/WHEEL deleted file mode 100644 index b0fbf11..0000000 --- a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (75.1.0) -Root-Is-Purelib: false -Tag: cp312-cp312-macosx_11_0_arm64 - diff --git a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/top_level.txt b/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/top_level.txt deleted file mode 100644 index 39fb2be..0000000 --- a/backend/venv/lib/python3.12/site-packages/SQLAlchemy-2.0.36.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -sqlalchemy diff --git a/backend/venv/lib/python3.12/site-packages/_cffi_backend.cpython-312-darwin.so b/backend/venv/lib/python3.12/site-packages/_cffi_backend.cpython-312-darwin.so deleted file mode 100755 index df8f10e0e5c13afe42d640e2b8d548624ffe607a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213008 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

sOiUjP?awx9I9FKAfzj#Bse(QxRf)$Q&WrQHwG z+KEk$L9F13HO@Yi?A!UBe$cP!{oI@0PqE8-lX~#56^PuF`IJQD}Vmp=Qz zL+rKJVE@lvgLU|xI@j_u4p|!)QSV*aN*v<_)+)zKl^?yK_Z$yRW$yyt{e9#O8yYpL`<6Cl6b>{^9 zwqL2`z08y5Pv*!Ruk;+DaQFNh`ynzvO@8P=T#7xb8c#X7TdZyT;9UEhT7IH%>o!k8 zU`{xhoSlU)nNIJAp|@^7TXp@G`M{57{au`GdQ@&Vb5l_k*o@^v zHpzqkTZ@0WcM7q}HG#)|z}yE?F|aaXaqZ|?Sq~g?m1aA0dmDX`_)Pq!v|Wu?iJP%m zW$x1cgZRAV(}f4@T*v9)y*k5QANC5ZQ+X-y%|N{4UHWTFd)GGbEh`$x06M9o?-oqX{_SUOoZ}xtL z;NJL_Oyy_1T83N|tRZOg1?rOnbfnF}kN6w?=e7;tCvnVzNZ+T) ztx`vD)9=o(*LOk-!B5sCgZLF{Uvys@e*5U_1@P;&*V_9B*4o5}-ej%q;8ji>Q}B8j zxhMj!SPCzR`^Q9goih-R>F^PcnR%VsGLA9G{*2(_%(Kjk?N{VQnwgh-y^_0Dp!bJX zrT9H0^~>ye3`zYmna6_2-%&qK|3Zh@039SwBK~qg7HG-e$bMYYt^z*E9t=}xR^)q8i^cL8(V@!!9tZgL5F#+0z zWbT*`i5=}`ep-nmOAJSzpW#{IQ+NKsAMRpZzGr=LJjtF(JA6<`n-Km+v4=gn^*6>n zOO&Pk4nD)vYr@32UN@Ju%;{wfTZT?*g`PFYzm(yFkkc%2_maqq(g(hA2p?ayRL56c z80g-?8n+*R4?bD^AUx>A^c$YsQo84d+e%+{tkkGdxV zyI9A`ImM-8WkLFtn7)hgqNj+Ji9DA^I7TG7uU)3Qq&>`-0C55K^8=Ku$r`+6_5HOX&=x3qt}Gt2gmWn8jelJ~Jxyto(IuSKT_ zzx*Tb7o^^sj4tjWdK z=gw0Ngr5^~fwv-%N!T&h9NnP%n;_>Tr%)LVupKE=SJ|*Vv>?1hxsdZ7aKqg+j%#jC8F()=o+hnM{*vAGpvBwnkk^!uG-EcL~v z_>b6UkvKIxvfs(^oCQqQn|d!{c z`_PlIgREI!AGG~>?P@M-s);&pb%@`wmUZ{3)$>`CkgH0(UB+8BPF>IhZOTk_K~z37 z)CEhBC4nb<8=5!1=eORyR`$u!o9X2pZrX+`Tv5Wo2gUpT8{qDo&_O^%Xx0jvz zZhwsURRgkJ;a0PBf0b!AYtu$Rpp~45JD@*Ll7I-nV{_o;_ z;*YN#%y)-2@WEjIvXi$QqVLaKXUtaz^q7Gq^C|noweU+T{33QmavweHRb1q)+-|Bs zq8UH61V5D{YyJwi?VG%sEwSg4$Vf8U!`>z94b5W(Q_1ag#){t%Vyq*z@$&8++B|?C zT$)wvzZZQVH2dF-#p4}8_uVpdkGhw6H}_Rp`(zyvuCf~4YK6~e+eY6tWtLig5LyvC zjd-R8=2Yz^uZgli$-)Q9$>$Nh{0sUy$om)g{E~ahB+Yj@wbmY<@nL64ouBeubYx8Y zXJVF)ZV;Pu4)0{m;LTNC(zi)&u7|k(%j9E!j#$wHd4(6f{IEOxGI7C|S7g2MblLtPe8yZ0pZ(RXW=mdYb7^aL=**0;j#X{WyuSu=dL8LQ~?Ug3AUwPF<;3q?+IHSK3SK>|SAUNkNYAg5y|#LCwgz=d-f24J6~-I^N7)B;a!5O`Rr$ih z&hsvwlj~jV&5j|iI2L@M`Dzd6t6bO$VnEpS*kpx%#ul=d#-2NW#0X_huE$rxw~>AL z@VkmnEteg>2Q#e%V~I|ZIQlK|0(|rsF*B3Tmx%!#WKLq!d1lXpxmn>wzQR}A>+dG? z)(`pa&9V1R*>5_U!TT4plr;{1*8Qezq1KIWW?K8H|De1ZqYfk|siP+t-|hG&(r4d? z54};?+#J_<$mcM52*EdURE4)h+; zcO*E!r3szC6BshyQ`Ehen6%85%I%rkG^uqiah*gndds{Py<+5E7{p$z!X}81dfFH( z##+t545i^Kv{?dQ3T?g({L#kwP2P<*&Q{)uk1BI>YV`tmwjSQSoS67!oQtq!N&1X^ zIyfI|ks;~xD04Ad&V=~sl0z69qHiY0E4;E+XRqm>=kSDZ5=90bNwsJnbd@`SJaVF#?@>DnvXuSqZ_V*IxFzva4v1r~McZOy1 zJ;>hvKGC5iXWH@7J!gvTUM}%cO~Vww2gPS4Hul;gTmRcS@k^)a-zE4!FEat>0qd@GCC3p9oHdvt&J3d#s1o~9r6yJr26&&L^`GnU7lvEYYvlIxMdvzPB} z#6%@N7);X*$W^zL=jEyd@x`P4*am#0*ZXc&7S|=@xASfpvFoJ;(2e!F?1S}Sr>k0m z@hi}4Ppb<573A}?&v(Htcu)4T7v=^MPMM3cE6DMe9L+X(HF(12Rgrb$gz##9G+e3dvNryMvKEpj=`*rkt5w879w@uWMD8#0s_-1s z#(x<)SMaZd_cnriHhbUfm9{TLo~xQ?#+@ly#Aw4{WRW^|Ho20nR7N$6HRM{g=g$5J?vK1y6+|B zR+h9&tLI`4oq8})s-Dj({#|qYZ0c%x37xOU{yXsML=JRWk6rerl(A0JWq-8GenXj( zwHy6tf5K<`tH-c~x?cXp)_BGsJfB)a5AiwnV%vu2eK}`OB*#T!PsA5HirdN6biV(+ z_|^H5Zu&MePS^2g3!bB#0c{1B?;ww&3+?=3qT9=VqekWz7k$0iA5!jo7*@|5_L7Yd<7z@7Tz+wzr zegRMWcpq>48G745f2YMp(7(bzbw?f|K5s@Iyb4)neJu8j81MclcNz%aY^B^wxz6`e zgFbFAaw~rNe#VJBYFn!LVL3Wnnf=TaKKWpM>``|w@)yFdE@4c;l&umURdOgJ^b;7X z_T=$h%J8FgOf7_7c4B6A#BHR{^HOyLo@2YgXCOZHIymidv(E)z%emGF&$1o@r!Hq) z5uS%-i;$C>&WY~W5s!qZeX_YTiqQAOf?s28D{>@zV)f_a*O77U}Z3Onamw`N33T4UNtNyFIDEE7u)BoW5p(lFIkaU;rFD@ z$VH)hi1kP*zTVB#i{zY0e+l1fp3Jc_a=&vbhCl&TYWN!}f?@r=-G5YneUY5MD0Px8j>{t4;xW9)rlH}62>d(Ud0H1e5H*cxh zvkP43^^CQyfi&j z{k>yNe{g)U-z-VpN5OeEZem$1nahB+Jf&B=y5xapr zM2Js6Cv;dhj~saH)E{{#-@#X(nF^J&Hbv$tTT*!qEy4SpGgGnotu;%5xzJr<_Yoh< ze4FSdd+)HC{jrBreaiW~4^#c>K8caFEhNrdSnPNDmi5`ssIxYOOUH-Ft@wWZ$iLu_ zUy1)H<2)EoHc0H;&0KK~ku?0)&HLeP=yPP#T+@1%&u7!QwRAz`gDdc30!`CY&coA` zuW8y6>imkbDEHn7je-+${F)~4o2qM?mIH4Ht`*>@Wh%AK_%&_HDU0Q`c1wO$3?1T< z&*`l#?+|zJ5-WazI`|FP;DX3fpr|n;SjlYYkfJoZ2yN_<-bFWrk=Afnvb+}O5m=-UWZce|3F{zK9=0E z7$0w0EBYW+r)39qLh!vZ0;jNdr)*!8H6->V`+aN$uq2mF`Z==D=EF*O@of5!9!>5^ z=Q|&~SIEAJwAnzLb>)G?p^uX6U|$vywh_Y&a=zW;&mw+YXo zPvlG|ywl<1Oy|{hS(m8>{VY?FPYQ1dKU{JpF}nF9pPz8fc8GncX1}B!U7vM*An{A1 z*Z)h`e!uMJFUZL8BjYPtf%h6XuYq?JG}3x;e~uOA9*6K4)~n3RR%A1TJr9zvF8Nwl zBF|eGpX|GD#CKkwRtKM1*Wv2Q20fPr_FU>cD$Y`A*?DBV^>5JCPdlgYoz!1A_HA2d zR!p$_=WOpx>TF?sEq%=-7O)Okvu#Xa#p#GN@?(f>X))H(rL zdC@ar_`c6sD?T#8S_iG(gHP6A8xO+kt!eWi>z8rpZTWO%wCek!WDSRmE?xbS z{*bv{>K&&);q}q_64(M)V36zoqTqZNyyWnS>5QFNyXKR(C!%A`$UMgX4CA+Pllb20 zbS=tYO+3QdQFMTU|8*bu2-0UKJdd0m@!=cK0Ouyw>cZo(d4ZZ<&hNG{E>9*hgN<9b zvx>coto|PG9E>m8``hVj921>5yp6;cP3-dqVk=_z@IgNl#<5h6IP2_0o8%#YMl5=VIoB!sT7ze$T0Ty06@4ObsB^8Ev;S~^=LP+mZe>4EzA0qd75=R+4V8BfsP%DdkRhh zM{tUc0B6+=_L*_u55NO{3SNHXBWX)aV>Fr#-B+=B$b4pAO~{4M3h$V#FNBw5toi5b zT!16KO9F`w;4049=sGDMMDud*Bf*wQst0tb|Pkqik2%pOyi#gtXUF_so|C=Y1U2XH=H$DXq*(>XW z_w-yNH?j}X3(uW4o*8-8eW~$y;J?wv_2X1tVvu>LkK6G~nb(6lo|zZf484ZaL-ur? zyN>FedkU~kVez@UPtPUZd8};C&aq18$4>4~ZWY=BL+_s*%w~-{owIk0KY#c;d<*=2 zeTT*PVefXnT6X`=Jau3m?Zymy*U9{=O?j4{*I1r)J7XB_-T~1)!Z(b=UjU!vu@5kW ze^`@iT?FqKzzLXYcH6M|k23aj|GLR}PWjhS><8}$<{y1FWd5V@kIa8D^TavsSwinA z^wosVYSVu3PJ++Ff5XdaDAPFO2P<^69`~kvYYOnhmO1>yy!x-lcMic%CZ7UF_zC{i zu{txwPXjWPE+6pIyY+exXLBxaPvbY_=MSm(w!94DY|D_?-n_{7;Wy#kHj(?(UQe6I zJ-S%%IS$W`)IOc(YPtVFWU4ktEjOT@3fwxa^VPDS2|oxQtvfuF$DscyhmTeddk3%V zSF;L)SN8kb3asDJe|ld+6Av=xF^a1_*dtkYQMW<0%H11-d~DCJz24H_S!-qFE;wnI z%ld!8$v*f})>s4OJ7xX9;N)7-55Sf)Z&gN4^}za0^aB1Nb2_9ie3AW?%#D}1mbG8X z2jB0TQfM_Y2iSOgn?c+p-jN>P5c)HJ`<=K(i2J{i(^bvj{ClfK50x?2CEyk;CvKnX zx{fvfa)mrVgXML6#>@(Ta2hy(pTtoGk0*h9+x^8>6q&}BEOuqJF7AM)L0e{!f&Utf z>cFEJoPx78=5xa3+zRP$)SUe_Bu*pBErXVpG|7aEgxc!>j$5^%jyElpCo>kPhZWu zl(qEG;JqP2qyMD-2<0u&k;^r_>BQ4CP2VfFo~B+v`1Ai_K81JpxkjJQD1Ncbr;qt; zOUe^z#D8|?6CAq#ujaF<#Ol1<=6%WC(0ssrRx+P*zbo=Tu!eW$QhZ67 zOZsX#25p_WmA*e1VNQfDeIu8*ygPDv_kU3S27D%SHd?&#qtsrr>|;xuyn_2y(227| z4{rHOaw}_u<#Lv-7a5ZLjW&0$KWOgvo1U0IBy#-FWYz}ggg=*BJ6!5$Ik{_&f4Gjl zoAcqvp!RX?I~@exGw^8>^zss~(Yhd|>-D~`Td(Q4x24qb()R5y*M((2^$Pr1$JzS`uxb#zQL{1Dy$ZF+sd`LprX%+#DZa+n^gbmsB5w<_yx(O2M@g}g{Va{o_qBL2f| z5c^NU*Q^{FP(BmMn^AC7d_*3vlC7@WPF^E(I}ji0l> zNtnKr4h zPA#V%bYlO2JE+9IRxuV?LyK+6>Qq*CRC4i3S2Pm-orZcnl*#lQ zZ}b14Z<#Iw{f?~m=2}0$)RBY1x>>e+9OH=f;OxU6TPnZcNZPnyvAWuAvVj55!E0dCgO zhc?g5$Z9{^n9zPs#)S4?!$Ym#2z){x=XGYTz4+HY_1s!LKUw{IS?9inE|>a06`f8l z)A0NT`#v7qHXjHGY#KKd)QoXC!UqMVgdJYW(SBP&aw6qkDp^C;AO}&N zbD*EZ3-ul;yc@o(wWVr4F)Z-N_U+pibI*)a5|ca|e%ZkD+31>0+~t5iU$Hf}{rB;) z8-BmTRovgY>&BDkpfANw`x-F0rAFrhNzR6cXXz8!=n|R+d6xa)PV!BRS%Jg0*pL(y8&z6}F1vY!2%>tuxW1Gv|X!>5;<}+kpIxjMV`&&gO zq;Jjyy)I`8iRZm8IMt{2HAC?1L1bF|*B>wr*-MprQpZdt<&3h91^13{PWlPzlbg^L zlQE{=$AE_{0mJyjepJo--Q$I|<_d zwa{Mb$(=^pcjcZ`=)d2`J*oHdPWW-8-}#VrljLehzLCsza*Yb(W8+WDeTRjSN__ZM z?iGrnFaHht3;%Q?Psh;V>GjBe-J;m1DnNH0=Wa&1lS}As-w7(~fkN_oi^%US*1AIW zG^5a_ld}o>JRGnk*X;DRvi>QeZE<7`;|SRLcDI@GO&Q~E-{WUl<7qGbwQ4v{j`UEP zIp?#47N6W>kgGBBZ=d{mtmKbnMB>oq1hh${Wc3rq-um}}_~m$UWfK2AxWc$?eV2&`#EZPh+EE;4J$-z}Wv5_iNU2 zemj8O?1lEuy)b$nrkrIxJ>TZT#~80(=gN42C*u`(5!S1*vE;OlQ?q_I9(khQifmQW z`_JE4T;WzNGRBhecK^2kW3t?*!k8`w?^4EEBRPYN;~-^+81tmmSWCF0NN}D^AF|In zpSGITslKJnOzLWS9Z&8N+1Kw=b0IV;JdxbBOC91PY9LhlOX zCPCkA^gTf5RNskX$vxTh)6M$|nU55&$-RBwg{JZ@y?_0kITBn%m+I#fox8{bJb~XL zH2MwrnJQoB1Iqn?Hvs>jE5BWAhU~RI$$QbsLO;_eXm6u0@!6$J!=z057)keiat}T+ zd1m6%jCQWUxzoKG8~a<%!xZ3C7Jx&@Rn%@CRL=#+DA{LYAEBtdneSp_Vuv`>rRiw4 zOT1IQ3vDZ<4!8ufkSERs*t*RXDF@dEe8whnDF0&~;{m?t;olL$IN?uZngkmqIa znB+@8ajUX^0`B6=ddQd0Z?25DP2x8#QhmhS=4<$@8%_E!=|k?Zs$W(a-@y2a3{QKR zyRcs&H@?;P$HgzN$1nHg$UNHT7$-AE@lT#&j9!=8BYs;i{3&pxZ5`_fnYZitEi>+} z(S3y2dmN1ppGBj;l@}^8zL4midn+Vnx4W{g!fGTQSDo9ot&-fr+VN^d6Le}qrXPVG zCi!y2FPFAb)O5lB2txr}EQv2D2rLYHp|B<`m?ST6p#I(ilK2)obsS9<37q5JNI z%@ zXFffzTI&D!41VwAp>f-v#V7tT<=;-8=idR2zd~>Kg0sn373~FIJ%)ci$2x<)hQB*b z+$rWx`GC=LE$;|*bo;w1ITv|)d;RVoW?B-zK7oG||8^k$68XSlQxxm8D6)9>Xzl*( zY^(1}oR_s@TDyH+v#rB*TGzb(S$VCZOOU@eoc`X%FP8qqZhPFG_DUbWEknPa^?VlD zIm8KQ-S(uiB#*e!ZPRxO^jS*|UTS^o|2%Y+`H;_w8Qhos(B$nt)|>La4f=}z=HlHv z_VvUce+^taPbT-Q!G_F)?iKFI?Q5p1qwrEgA9h0G!%L4nw7Jrq)!s9~T+~lIb=mlm zc8OOt8MV(g8S9?egx-)?#2R;2f0R1_vbdwdGttvt{S6g|7mn`bo!r|d<7*Qg$Jp8! zo9v&8PM5K6q#V7}zCp?vlaU%zo9KoV{=I4VPXhn%fqTzK*du6S-{n!zFL4vmQPNiw zm`&(Nvk7|&+_Kd*@!*-4giQrqa};aZ*2QMNYAH5V;yd7{aa&^JX7MaB*wOA@Kkgob zzm|#LmVwXaj+{)bvqa9tPm998sy2;nDRuOEgR>CQ&w0QMaW9JGVzdIISLBdbdLDBk{mj<*q++~* zF*-JWE^P*Ld4~RmrrfXWoV7W9PhUk|qOIT*;d2#xJ0RBeG5fBasWT|Y1IQA7nDpC< zJ=6HG=6CR8+yi+rrc&LS4yiR3&k0%6UqxGy2?ypMfZ3$t)!2pCz4Y58d!o=Ulv+zk zyElQCv({~(tE$WM?dzY-nXT-7up3mdmm)4MQp>p^b;h;VeGW+oU`7S-!1T} zvbSacOX`O{9qX5M)sPq|{=ewAPJCkZt8DA{z)IgQ9!^)uS9JEK6tbhl7h-Okxbq(v zv(oz(J=DnLeEVajlf0QaT$yA zJCcWJWA{B+HfkOk^YHhFpgtyaUV9ptyATXS@dk`2)QnI-V7=yAj7*liFnfM&qUbW;{wvErR+L4!K{D$H) zjCm7x13b&;vzIFC$H?xlpUbg6SlhaIH{WyKl6>;w6%$vWBe&fZ1oGNU7+P+MO>^+IC*K51rIBOO(6!~=OIIvCe z7ug5yWsF1G{BfLh*044T`-hyrC@_KnmES`f^))T)T4%h1tuVpG=|k4)BgHMGPr2i^ z3EV}$%e~vZ#Pr?(-pUp5f}^)Z=F!{06dz?MepimSlC|k`J94~0eix}t`(ybL{&Og|4CeCkx3&gN@HnZwr(PYPe#Jjod}-hUUlJwd;e` zhnDdAht!obK*;uPxf4^*CwF3gK>5HNULtd-bKr*3=%2=0FMxmgyerlPF4k0aS|9BV zJ;Xew!>Jev&YTI>QzA&1p@kDF+u(25M!<_%ZSWIKi>2h<+MC*&d7yIbY z$p`Ev=p?imUrYH&a>yKx2=Aqd)}?9i1lRFt@Dg7b3hy+V!dyeMfw&~|B6d&nmSZP& zfzwUEv~{a(C;ox5;jq2~9y(q>3|)=o3m%*xHrYk z?;+{jthBpRxZ8>`csL(*7`;ob^U?roy9Mt1{rlVus?sQ^9El^V5tkY_etwa{raA>ygo}lwYu0on4^MUM&%S1^5yxSdd}g z|0Q+Nt*4^o)jf$^-u7nx;GJ3AU6e1hM0dF916uD^{Fdy$f|HzEl)Ebj`uJ16_0trt z`Pf)lmup*eRe_boc(E59vR-XOSFVKj3v`SrKN6zNG2--$RpxTHx~aelOBrKs6FZpl z*V;tqphLwEjq+aZ!P*DR%C&=eL0;bX^G~Q`un8%9FK#TJmeXZG$G84EjTigPiA~WkSax?Vyw3>a^R8d`LeV>1TLb zDSw3W^!krd|FiEEGY<5Mjbm<1?6&^hDdGD|>uQMO`}MpLhw$=F|2`;pQ)pXoNx4-7 zUkU9z_yu8n)4vj9*#$qz-qge|X!|98e#ek_@2ct6dA!S_t%iNh2(WjTTiMh}&Q}&r ziN23Y*G=P}B{OV#|E;^1+TiWHT#=>8kv?Fyo=U!W7@Y5=oY=sD`>?xGr=%c|ctXw& z8{|i^xAY0?Vp-FAStoywcAebi8DL-R#XnSscd*9pUSAZ?=JyO=T3-^Eb*ilQE8iu) ziTs6rG$-6bOhxjej=QHse&#NYi+zdmUHngpx6eI_-k2QsODya}Ik{QWLo0H;G z{QglDxA*Jp^A9fg?7MCSUFF#x(=N_nM)TwT7r3kPm&l>elCy0MnqOiwv|iHRZ<=A> z`Ig34vQCOWZO4B$&1LS_D~nu#BAJIMf2(8;_$_F`MfL=)0ItNX_Ce#r#ME`(25}0B zNl2_Bz*w`P&7I_KY{FkHN1xou9U>=y`2g^RuO4NbW$r2cS*FR&@RVQamTEySg{9SWW?iI~N#=M+2D>Ky!v18tHe2sDH=moEA*yjCR;N)7$ zt^#fVTX6wA>cuxz?0>yNY#zU_Tkbj(p6lj*(2B|MGJI0NS^L`=o6I>d_p467B{o=c z&4q47_%Ppqj>v7doKcef4T-703;mv<{9*p6&m9kPFGOBs5wLcyzacJXuh~~$LB9>c zV?R4&-_!d7ca)wZyaKGH)Fo#^@9oT3qCmdPy2L-=nK8sEpfgOaymp05tpo_&(wWsyM5m~!%ALk>kEk&$=v49 zZaFd_`blCWr+6>rFWhlo`1klk*Rg*f`(JCp`y^w1j2ue&{i%m|{_Y>`^E-|Y4Lwpm zbYbLdX!OJ%?^&W7S@A~&P;L{LmgE%`j=F;5|N=1;L(Gf+XP;%jQg8>N`D>HQ`nJS z-bv1RC4NVrTlSVstz#agp6F!JIV0gFF_30rGl#)%;ZC1X7YvGyC#RbW?f zrg|wc9r^tc-Pg5sHGTYMFER1Wd5nKHxyygTPY|E0$cGG#;kUq2<2VSf%J0GE@Z9>> zWLGmh8=COjZL%(wm|!z}`^I7;{7$(mEN5CP=LR0j0%kqF)xtXd*h7^ZhI;I45M9s? zyk#X>r{yqglzT9tXN=qqT_$Yh=F`QzOH<3pgXq?d_B^mmOF~S&Me~$Wgcw`s*^z2kSD< z2VYLv=(0GNLnFDcv6MWXV2(B?(@KQSPa zV*AKjhBu{Ns~N8rJtt=sMJ|scm(sQex#V;C649YrE(;<*{yhAST;`K2bC9-rj}Q4& z(5WKO(_->_e*$|XdVG95S)}necVr!>R?s#<<@+fDP zTbcI|__Q+aC;1dz^bGYBYZG+x2=Z7I*+o5(_Yg4BVmKYXo+|4F-XW`#K1)`8%)zMR z`-|k4eRj@8`h6j?R+D@7#K)JrPpYuJpP&c6$K4=}#+3fQ@_jXTgItpPrIRQ5elvH2 zT#|e9$pmv*Gkq@Kzj!iEdGV8OzTb4R2{}d=@EdCIHTq(q$S!v~^%dI0tYeAe>E8m7ecT}W#d$A&jo3-2PLIxOo!sB5Ke@+5e{zqB{^TALv8yR~ zo#;2>g#AtWv$Wrz zCpiK`b3#YTAGY;__@r{zIKQC)-ze6nI$nVeR;&xT>!nn!EF@S4oo9rpLIwmY2#Rx{7iE+l-Dn#T}xEdH11&`#dV90!TJ<}*LygW7g^a8JO= z-IacGQt+gWoYR!GSX&y6;2(V!Tmtu z^!=%9WcGb@;IpiG))?dE_lI_GV%>9l?v*DG^L-&c)a|(oC!O0lqCcf6~ zx%K)yRG9!BuX9tcpbq5~6M(OjKmA37CP0G)qjXCa@ z+dONtwuiA{A(7R=Gb8*aQjs;DdC!8r5#B9?mjj0FbBY}I+4&g!7D}NNt8w^wFsEL8 zQU~|>pG%8n%NW4bi5ZH%t!3>L5FGLSJorSl_bFNxty(#HK`H! zx%_Uq>1~=e94`H}j0BJJ?orA|?4LePjRap}L>ec~PM`xC1UH#iFZI>^OD4FO2d}~J zM7_;fl$*SFtBRcy%!|iOkUJAA46`bo23q#g{J>u_k9L{I_5+{tSpV#l@jL8VFY!C< zJ(LaCX|mRl^=+kkg!NCwQXlhF5g44Oiiv6SwEXmWQbub{x-R-j4LX?nW1{f8?3W$= z-}bp{#@r<~TI)^tO!&G7dn+=Z-d@%)L3fTnl*zeg+EpzTXdPk5eN0=-&0oUB}T#d&nU3r)1y&vszrWwg8$$d=)pGY zXd^h^jZCD&dXRE0W5|(Wd=;s^ZcY0sB~}sj2lqn<;mLS~2QC&F!ybq({TAP~jz(XZ zX?MNuBo|Wj+ZD{?NOVi#JA@WDfS1tG3q5*2{HDzSby=XBj6crG1q{!m z=GD-K?I zH@aQEH-XzB=4K6Rm;m3w;fPwr{HRpCM)a9d-B-bn;?rxJC^~oGyoW22&%DY$3Gs>N zI`RA3@R>wcF5ve=He_g@V(@%@ijHf6;rm&ERSDeV=v)u_-|q_~wz793>lWndh}?Pd zb71%269&1fIK*#;nAa9<--q3F*5v!Jn}uE@T$Urg!|C_r2p>Kmb483o?jSG3{_F$3 z^!3|Mk}vGzUM>%3&cnpj2JQez$MKp%>&pXkJu-YhHa8vT4sdQIXKOTkPUAOhV+7v| ze%tTF)GN|)m{n@cwQ+#Q2W=Jn81dpqH6@cTr~-R0L2Ry!dH7yQ1$?5%c&)9Yyv()8 z+PQ|#qt|;y26G_rCD((4)-8r@waj`<&2BSy&m6Mc*|g2 zUZfJI;e_3gK0V+hd=`X{^1vy;+M|%YIJuisj{z8!z|iN=i=>Tx7lyvC{WI>WyrDl? zbm%tn1?l5@8FwDPcY(}ym*dC56Mes_3(xYEZ0|vz$FSd~$P{^2UTlYcMy}+!6WZDD zxsOKP^V};kf$yZ>V+ZZ}-1o=(owV;2nGhey#hqM?sg`)M!~$i%upU3S7e82jYgcr| zUU0ef;S%ncA}0u5g5Hb22K{^e*u(Kk=cUWuK)pMsx|W!^*js&9kEwOmelrtTf+u*O zr}z7q`ya~O$$1Izs9-;2Z>qmm{D*6S9ZKUpEt~I^SwE#ec_(ZAOQk($3!JstonVxpr2;y5VJcPb?>-&JZ&^xgZ7*?;iqf91P^RpLhilR zcs%a4uBILHH)$l^HK5(!%0V46zGW%6XZx&PbeRQSqn$%f>FI$xNn#UK;?Q(uZB?v) z7^~>(Jn}A%aX+lAXUGHC{J@`WpQdvX=UAZmci}^kiy~hj5&vxkIed{Pw2h@xbi76I315TBX9diFr;tY=j~IhU(?@ced#$k z$L7%?xZW~N-xI$9nh6fe*o$(;bL>a<-kpX&rOev?8Sp>LSCQY+6`u3rmkUjVhh#oP zw?-M`Ta<}z(Phk$#91}I=o#^;z4#Sc7O-;)8PoW5PPWRS)jHZn*%OU1ujy^p0_U_g zU8Oq5{9b9pyu|1`y^ZMP)7qRp*)r*;*OlM@%aPs}PqDrRyy0|rV(4OzJB8<1k2GWF z``q3ETQ9cIgHPS(PU$XqPIy*y%$wX9=$S#@HTEIQ+`Plwyg#h}J@-@WtDdOa9QRa)rE%?8l6p$2pj*D)zch#|Q>|&5pEO3j9mk*W8D0NXw<5j_qs8 zd4m^(pRY%kbAH&&?DfYo_WOfbQUCu#+}p=TRbBi4XOaLj2_TRs2uNlCB?&%&h5#1J z1gwT=wZ>GfZ7)Imwh2)x)CWK<16Vr{v>czs-V&tR%qSKssJU&gp|rgLZ421i_O`tS zu-=4d3kaG}ZGP|1KIbGSA+h)V{`h|XnAgmlvme%8d#$zCT6^uao6*C9!Ei|{?FR;3 z2H%oPl<`!NKTN-$L2kv6$x+rW2hTlz7BBX)8DD>b7~MTqc!q4X7&gzI39Pl)JrRCa zu@0z>IC&ozG9TCd4Zjihst?rOos?;2oz?z96MWg+9s8G)O!;%yV`1{&d+kqwjtlO| zT2;8?-Su znb-xMz9<^^;_?phPWFRWFT~m%X0JME$~$>H`o=^ThoMb$f1N$mx&P+W;0(#^*i)9B ziTsxAI0zh(`c%7s_L1XSue*JWtk;e8lzl0k7$$Pvd$}BkX?28H`BZ4 zhP$~Y+w!@d_S`D4SAeT*qvM?3PJcWjxD8LXoK2pr*nzdc+cMPAVdAd-11{JrwJJ@y zjz!v~ljOx~noPd7xPE_{QtvL9q+F1Y<{6iS{ftf0xk4K;xCq`v&zd z9hS9J{FX|6!BgNn&%MiqXBuVYQ&)Tc!tefkx1LP#XxfASDPXR0V=u2Nk$=#kXFtDa zzqZ=lgZw)3PQN8Xs8^}Gk$|(!pE~aYX!%k z=q=v=ukt@ee-{2YaI`OiKkiT9-osmvHN&h2tN~ibEok2P@8nK*){0!?i>P2y$|ruk-o%GHGGGz7_2z68U$hnmC2wUf<}A>br_@lm%iXiY?Z8=)Ke}$6iz{0&rIb0@S@HH8Gxbs~-Q1 zKdxPSB7PW|uhYi-rS5rh#$k;nru@Rw+uDuoq5G5kum*rtcEO3O(2MUH#65Na;$Q>j z42F2Vev!3*3$&v=UX$qOeRIw~EBU>we8Mtc0QKkEWV9u*0q%Y@UUu*$08!v2(pRxvb=2<|h~V zEqU|??}t{%&pcS^?3nsNglp}u>i~SaL2732< z-l^SjzIHj2Q}Q0P>i2&czCku*)JGGt$+V~B@RGA9C4Y#{uqw8*#)_4s!*7>!PPLY} zo?7l+D#sq!8|Zjx9Xg-#fTc%>|AkKFV=3ad_Ss}#Nrw(m*V|_*zbEvhv4N(z^L*2V z_RYZR$+b`Lp=~d8eQ1&)8snEga^mLrZ~SN>@EsyIto&)tn&sf^?cewIsg3-oEB6{` zrm7#GS{3>}bK&SW!~!r^y>zX<^ZYB?sn+~~!{$K4jDkVYlG|t_#u~yL8lG(|U2WhE1Q(|(rQ=V^YH|6|H!CKH17e@P?PQgi4bdt*7#}Xs-lbXxw8p%vcwQmWaQ?;DoW7ctN6E<;N!m zDkZ5{)hctg(Ou8*Y4%;C<!Kg}TrGZ-zUw6Io3+5x*B3J1xs1i(KS%z5 ziD#m53%(Km=3DF)Q!fDh7KV9dh3Y~ftMi86Id^pRw+2c)%{mpqTQ`8sxmB6L4%};H<+)v>CqiXyx4$YsA=w$`$DGrmR9v+cz#Irb4`;~M_Yef-np zCkrOWf}5scR&m=KrJQ36B@_5gC()3E&6m^>nFNsIl5?3dT<6lq6bf&fq&8MckxG)OHQJj zX29#WN4V33cenF@HhoRkbM(^7(M#)SXDDShQ09?)GM+T$26w!?C)n|__8vT4XO2(T znS`#h3m=el<2K+~jBYId{S=>WTqwChKk4W?>4VvKq(AAwD(CGfgwTUu#jkt|_U}n> ziXC@!Q5JN))v~c)DpJDaeukDCpn>2l$G4*M%!)I6iMbCGFMAT4Yp?{oJYxLGDH;d&dK-9FJ9MT!yoR-Q zkXdVArk-McB#%8A8G*j!HzC(-`!C^L*;!T~P!|C&(reC`YJ7(Vg*BYr548thShp$4c@Aw~$;aaQyY_kUID6m;Z;!M)z z^bm4cKJ1&oZ42?IlBtm(v7NvZCYDum>&#K_m@Cnt;tZ7EfpyZ*fa0WTzTup=@pLFp zkL)$CJuxTSBdwn@IO(B<-u(!kYdoAycjSV>+2gbAZ9E^SUVrKEL@B`tbZ`hbKDv z1F}N;i8*_Im>fRd`@uYK<-hiOB8<6hBKHOalml+_rrM&?!~(`TA35R4iz-)M96e8V zTW|Qf`Q1NPX&2jbKLO6J-6`bT7=kg>BF_qzWy9^oc+(Xjj%^foEWAGQEzX9Pv z=KX;(w2fTozddgbojJ}|=;9r7L56W`4} zsK=U-i^|#GhHmK1`w`BGdUA0KWA2uVZ}9te^E*4a zkKZTE@2uo6`JDzmY^6W78P|Ommktcq6N0OJ;Peg9_AUgM}TW2O-?V6G3>I#xe z!oq)vUh{dy%ct0_lLvDLv%Uu<+UDsyEs>a*vcGk5Y9f)U@03Kt;lTdH*1-Pc?!f+M z*9P`uR~(%?I*YRcfdn?k_C>K#b~}DzhpxFZ4*asV7RR57n)8Hx_~K}!I?I0dTu(k! zFpjGk&*vD|RgCXSbj!~ochZb*Ss?lJj5X`!t;-Y0`4?C}Dxpo5zgWdF_^K`cn-7LK zH#jFS^aak9Ix-S}m~5B?=bGERShEq?_73{gy*XXP<<%ieKKRGnH=4+G8iszG3b_M* zlyz(^e8G9eW6k$%-jpQY0C6YD%Q=%!duH&OD+cjRZq~XpZ+-EKP;^$^naf`+9~Pap zIFOz!;tamZmvjF?lH3SEV>djr#uMo5p-x`cSZQ z)q}ynn7Z8e?ta6ZO#;TMvz&e9&N&wPA9~37nh)&h_wx+c*P*KhZSn@D z=65W($69*Hn9El#WZ%qdXEgXM6HSprE50_LyLLv)->@-qGjf%A7z=!NrsmbPq|3G) zoqT~Ypo4VY#CMo;!is(T8NW{=BOV=Zb+!V3{6=uX8U7$KrUoa#jvZH-pJ^TYDc_ty zG&wrM)WOa@Fqv=Nk-@p#1Hd3L2@dR)AF^9Z$>+6WzSL$AL@Q$tj)a}LGl0xR|TKU%}ys@Z*Fn}V~yrIbEx^d z9sHOwUkpB}91c@B$Dr|PJn7UO`o;7oH8XP2E72j zrVS6(g^~FwX{Cv))2#gy!_me?!KND~eIfnHwLzPH#MdO0kob_;Y*4A+&Ex zu+=yRKFGi)V{z}u>gw^=k{|6{VXC5XYIIKU%Z6A){a~L;w7f9wB%g+ znMgkqto)7$ZCGK;o<^HhL#8`gE zz2l+}ZoULv518g|?7!_&==Mc;Jbpu3;_UEx#TR>98DB$5-X*B zPtDO#@t9~3{#P!A|AeBn3^m;_e{KFN_z9ffyYpYk-D26-!8dC2UudH> z#j1n%?XqtLI&|+;e(IR^UBL8ck=6P5V&J(9c!=o`Jh^{!c-{h*Cih&YU}@vOU}+cq z0n45VEafB!x~@Nw2y;Fr%|`b<4=%%oh4;Nf1Ns+81iRVgXks)olduA0mK z#hUo+sx|9ouOdEaRl3!=s=`{~_YX@)2bS*rSzwV*rLxCw*%SMrdaD?3fA18J-?3m2 zYtCTSo*}HELE>Yjw+FO#9_`5qG>&-o#)+ge;a)^E%n_TO5~ncN59=ZAm*6=+YA3Nf;BcJQ7xF*gKuTMZFSbO z?UC?E+X9zE;6($oUpGBE$j;)O;&$ZEF>SBz@#jR&k}qES1!au?GVpLIYwu^!4IEv+ zbvLx1ft)^!Z_(>77&N}zq2MBle%FFd{a5;szG31-^O3p0Eq&*uDUN@uMX}R7*E8wq zOVZuvZ1CJ^V(dIr!zCZ_Ve1gTxdfSJh|Ga%eIISwj8B zU%>M(BKN;ePHovYiYbzfBfn&RXzViC4yWO1<6xUR^SFwSy!#qoCh2cyEvG_y7D=zvBr!g zZ&`@{g;xEtU|?OI_gwk7gMo|-y#EPu%1%P0Ttz#A@cR;Ju!+xVzqU@|NAtcyFV< zI4}=9<}5Sj4947Yr2jFm8(_?O?jN)Mdt+YL&zMj6#(WE7uKI88jAqPtus8H5evE6O zRnZgU-|mm$RP0I)G#FPE>{ekwX}{t@j(_@)>psF+1}yS%&F(;T<;wAwVnb#zpwE~5oa2-2268oml|@$ zyRvs<TKJJEJvoZfw4ci$lCAj z4{e{j<8194ZCuo%7+1$Hv5`5f0&j_l-$)!G22J}*I$pz z85w^7UG2bFU=<9aC2!wVv=lS=(4K$q__Uriy7zPO)&qu~POmf2xIxlU<8;RKnfajT4cqVd%MJd&~|#3&5wjOTysuKMH&5 zd-$vdpOl5Zdd>hTMou&#xT6Mdr@!kPKcrX&!K{76BlCnOb6#S55s`gP=5kw@>_Bi2RsacHQXdC=LX zEb_N!5l@sq#xgp_Bj7{No&1Jb$+LmcqU>b8CCep`vXMuEw~=;Qu5rgS^diQTo%|v7 z9T-pd0T1*%23`4MR3{)Wf~*Vu`H=_0aktO&LisL($>;KrWzftaU=}V9pTU^`VE*)2 zS5E@x;egJcogSlPct-CzJ07%<<-Yix)xg%IaraYC^U(WDm?JN`GOf<8e5yDgg zTZLK`OTTrN#x*gp6kq6*(vs@HTmD1*U)2jveH$eKjT6ZejO4%G%zfxeDjnd6bpRh#?Pg#GR(&#C|-JwPQ0rChdTDXPajhU+q(+=E+dHWj zA8hSMb`_sMj*0JE1q*wB*0Hx{zT~#s;A_{SUDaWaXS!3CJTD0+zNdyWWV5mdU4w74 z0_TFs--ZvSLjV6@Su=J(WBIoPmWJ?^k&|KNDfWKnq!ORb`{2mUo7C^v(u?ZuH1|8_ zCO@Koou^)yYSl^ZoR|!4v3^MJ&%qCMBlm8}Cn;acFDYBi|2^Cj8V-!DJIHqm_djXP z)$=#_{{`(Q(|2`_H8U^Gn(nQI%J=XS%B>)Fu0Zb>7th=RpQvr@-2-Rx&gcWI`$6A1 zn=NMD&Q4y(d*Qf8|LNJ2?^tjN^fV7&I5CZ>j$MAkM_t81?za;hei*((J7YfTntl)& zA-$+$K?*dO3Jvz0Z}4c)qrGnZ@Aod{(*^cn>ZpwxSaXtpp`L8~ z55Yw%Wg0?GUb9xpl;XFQZ}3l)xs18qOj{N?Ouxo|(MA(z$h>h*0JgbRQ_Xm7N;-KAnm5B%2K9~8{+&x1ZYP;IkMs@d? zGLzf&{#e(}VZhwrqg~li(xDo7FW-~u$6YzA`si#vf1IP+`p;lUKg}5d+&@Z6Q0Id8iKBnVSE8>U6Eu z8j=Rj4`K}&4F3*+fALG+MO?wW6!K}ibg){ogf{c7&fJ@0jbm<-EXz&KrQH_vse0Eo zRv#DZ8MYr|*dhMavzdA}*6M6=bG)$^w)9!%)XU}Fd>(p7&GL>91t(<`k6^91s6%-t zMzd~pk$d7Ga(&Ja>|6GlkkJRmVI%#0t+N-koIDjbY<2dcV(1OOKb!isD?5U$Q~5UM z=ak=`wz08H9*iLSM&PQExQ%5&{9EzV_@=7b>JG`~bjo>oG0NP$Z>`YSL3AdKc?k2R ze9+=O_8GGDtvES-YmY+T4We(+FaJ;c&N*vP#k_8zZQ<0scj>pGoBp$tM|mIj@kYG+ zU6zqQ)xLMt-S0A!hp5+z&lCH5UmK_tYL;ZjrNoC+1)l_!x1^nPdK36Yj_&i@K66>W zz$dm3`?PDFy9wf=`ChSMA^Ypp70vm}sm)>iJU`uL>h@#on}ROtty{fyCU@-NQQd3T zLdGw>#IG~mo$Bzg)`lCUYY~I_?CAfY-MYJf{aUh{!R<4?hP7vQoPeha!Drj~*ibJz zbJeyR8)~a>u3j1H${gj0c5JBWf|vQ)iT?Tly0_w&f0j~t3f-l$<@{J<<5{9p{4dwZ z{}QWsAKXRZ9q}`A>8RCG*vt3wW6BFQ(XJ<#MZ4(g@Qm!p)Ad&~cRe~UcQFpL)99y1 zFFC!A){x1-K2V!|<0lmR*Nk13J?%2r*PLz#sjqP`U#Hm+kB~=Ne$r~+Isu!PC%t_#3p$o{*?eZm~5Z}lUbKSMp@t&R~mrCk`JwXOo0S#pfP7diq)`8@++{mFvm1(KiNrZ1jz? z-DRV**S}Hc(-fyIx(EWBo-2;80NYz}>FLCz-@JM-?PRoHJ}7V0B=T`853zi_lko9s z-z_;PM!pd8qY-1iXHam)`OMuR=4BOg7DfjWFL?J~v0hhJcju_cOn%{Y_CSz*RTG$N z;+6gD_y+LGKCg)fFXWt%*7IP5wTyUhf4Mc36Z{tbCZB(Jd*u4z_ULZB^^OgV(4PDY zg}_|H8O<>N!{l1CXy4yj?`d^NJ|WbZpRBxeA)yRlox|7f^b z8}h_6!^szdPdAJHl{=>m9i~9I4q2lz0>efv0Jl}(wu-e|dpKo*9@q^ug6|oPp;HQ&@DdC|7_tC+zGCOlAE;i zNP5T1>^)Z~SHhKyJ7{IT248dEb$ruR!21(7ms1rvZsJApZ*xp*{%UZf@_(Uxgf@f9H%2T;6Xy=_@tYX)&xbl*KFJ&b%YjF* z52{x#TwWHkiX+(Lucidrx$6TTaduL79s~nU{jgUbdJQo4DC6KjUlwp~_k34zY+YBc z+!%TI4ErA7>yg(zdbfu|>DM!WQ}{RdKGCxeQ+mSLhk4PAyZI-oN6#SAF@(=L7ejDARwg5$@)p++F0eL$^2UX3$4}ap4Nj+af&*{-}XZ6h~lDwm&)V!SnZt&>(%}0MEl0#2SAKJ-)c|wvIROkwBZq{(cIY zgf<(c55Ei?t!H1^n7`$Wr5TQF-!3}0p!0>utjI@2_TOkzF>&B@Wb4_(!G&|rjdMRr zR&v#^yB<>;yuVuSE#kREL(TN9*y0H7HUNY2#~JzBXT5%LWwF^u5&i!Ny3sm}-m)X^ zE2lXC{?6w2d-jtTzAu{0Ob$0RseO!|HPOSzKg+Aw?Fa2GANMV?Cfkd{-STnc+?gYc zd^`Yr#LpS|=szbQ-RTgr=SK8t(QO1i&SE`?BZr#PMwG-SfD8DZm@i@ttYa~KcgrH_ zc`3yzjIa_BR6puCgt3i4u8%I=4yn!nRh)r-aB^V)K@RTjzDJ4bLlAAx*ya%bl>T8?W&Zh=@oUoeh??4!GlQW}ofXJ`vz~iHzD-|8X^-D4Ht<_H7x>+{ zj^FYx)C0$T{Qhs}_pG)2mYvD-6)}Fx&&Kb@d-(ldZh4jYqx0M3C%%;b^4U}F<9Yo4 z4ZnX(yW+3UF`jzjRN{SjAnR5qPpj^bYDmFeW)C?Ef0cD~O^<;?>t^ud%B~6ErstW- zF|*xT?t2do%zN|9YTQYi!msBqLPog0w#?*o-~mtF^d=e!B4d1K05?W{Gtz#00=6aX zNbbJNm^8m%=D%ahq$Ho-Ji{kEqaelHD>JH#xY~5+r#!IvhOP<3Kk|EVV0~VG z;LK$+`L3mWE52cJJs*3D@m5P8d||w8{7ZqyXL#>^3SF9a)AH?LD7S9(t_81riMseM zM%}>oa@tkjvY$_VHH3Ygj-8!>Ex=ueu08FYfnI~3xf=N%Ew_UMU(lH-SA+ClpM!uUpsPuM6)@u){{FL+D$$QA}ecm3FQ%1UO`6&y% zsYd!Yv0aO`PW@NVA#-rh?cn*0_1@mr{~4fxLk_P2n2Sm6FmapBgrJI!1mm)eMTYo8HF9J$c6 zeN=I7m(pe~>xbfD?_|AA;rm1Sk`G9}g%ej@!8~8ie3#=-ncwY`_}xz}WJ_jpCbTO2 ze29%6e3ZDZdBiYozqjHk!HgfR1>G_j=J{R3LGDJ5{E^teuEB|xRl!8dqJTYa5asw@ zFc{y?U5f2UTZ%4$tmm7xp>5)&i6iGjOM%d9W^P{?X_q}6NDKqcGwDNj#}mYw4C9CD zz&Dih#T6Zo!XM2p|F6N1*324MMERC)U6N3q-gv5D(>|H?@Gk2A8~7`m{K;$iM-h0E zvRcc_CTlIvg%)&w$!P968yY-!;kz3EQKLw8A{po6}j62C5rX8oR_E;r_CtadzVU2I&qrd) z5>p{PP-D7}a*BPjBBcr8v2Xc*re}SKuHl_g)O~MS55CB}g|YWUU+)u#lgr%y=mPQ= z;WwUwjV8bDIM$IDkxk|<7sm6ctxx8C=lf6OZB89qn+{*ymO3s2*|;?R%)@zO?g?ZT zth(!=m5Zy?xMjE}z-T*_qAh*0krC`yXEr?L5Icb~ka=T@MD3H!eN& z=)c<|RqUZNcKHnA_y&z$18nkzH=Y;mJT=%F`OqTEzH8<34(x{=RqP*0|M*83oU@0c zyEXOy5b(U*#oauViHe8ewS(|nm++4rheMBGZ$QJ zEiGUzxSX}B_7A7u+2ru|nB>#@x*ih`p1NjkLUD`w9dz}OQ@}R?d$j@CFr&{q$qYSL znW^qO{XUo9TaXbcAD0n}pPgKT-p~X;h$bv}Sa$j?=$=});#tIuGfuDn8257Ox#}q% z^Lw;q=sDuhv-Wokj;e;*uRzo4&!Lyxq-@P}%KM+K;hFZe{m)X+BPKIf>Qgk7O{{O! zoqO3u8<~IUJ`Fy7igCL76zebWe*OKfk|*f@edLROtd}v?D&(ZbD)}XvyD1qxl{WI4 zQ}U@CVr;_mA$U3p?4|gGC0~CGJc<*F9o2an<#QjMRIJ_GJpYOdzrXx;o`;F=RX>fu z`95>M=pSWoRNsBiLnZ95JR0m-e-3F6mU+@xS*Lr=%~;^o^QL#5wc>r?tA}1Ja=b~7 z2}f1XeY}q@+wA+Vws#Qs`s$S_37&Tf*VQMxW?bK=FN?lnZB9QeHaliF*hxSx2 z=vz~Sqf%_da@uGRJm@3AwE_DBV)B@OVsp~%nc!dgT$p#QzqS&{BF)jhh?QYaV-CeT zYA2UAcJMsz+RF0p#-)S0vZ7Qn9b0*lOHY10Ukjc+I%ztrxsm?G87LR-U@CC`)maOJ z^uOgj*)*e**Mqyow3iJWBly;u9XIy3>TAs&ldQ-0A(*sY>s@_|gPR6$kslb--h`~s z+$bNu+FawqRrL|y`g=ru<|IEwpP!|#>hG34ROqhps&ChSy5ivTRywBUZ33>lG@;qPh5LoXY(PBi5cVs1xJ+P4sHjdy81A*TA*x8jog? zBMwdeY^c3~^3HnQv)|GeUhM^Z;=R`Fe{`@OE1$T0EryO)LxTZ)tZVZ+d*`TQ$5a_+yMm^7|lkIto2W@(_Dz zNA(bEWE<-uI^)Qqd+vFtsCMy8)|q4Sa~?_kR1xP5GYa+mV#~hby}KXW2!6dgnUURg zNnq$}(10DJ46w}1r!I3~_L)c0FSK-^8ahd#eZipqkN<~r|K29n)25ZPJM=ynvPODs ze8l>!c1pp$&K=dK&fZp^`q=D)@KOD|l>L&ghbiOc=B$`Ue%TiEx<>Bo6+gFvp8~}a zeIZ~!!W^}rQ%IlBA8mE2J4%qXjqZt89*2HmS01%z&APFKI6zC;1dOboli2_~HI+8!sP(bYXAp z{55S?0dI4kb+W3r@G+Bw2I0tBz5;uCp$&{Y={ zPgrtc@x&#?#gmpyFFtF@p?8K{^|N~?T=^G1IrmMtat5DyZ(CO_=lu%a-%(t$4)SB797`1lxfjx4#oc)Ee*M&RET?9kCBX8T|3`R=gQs;qJgo;$b-|NjZDzH+9u&7-GV z#{{-52n;$_kFEL4_;O&n{Qnw`77k0$km_}t2;5?-@QrY(7} z^*jd~Q znQkrJKkfd!{BH!Noqxf%^Ug=Ua8Cc&F4mLJhb$X?WR~Q7fV$GJ-a-C0XP{FqE?zEq zZG4emeAUtW{}iz=I@4Jz8;Ggty9Vt7u2my_x8Re~o-d-(sVWaAmQcvq)klbg~s|(>fO#z>wGov$$1_iEOK#uOi^ilN9z}4m0 z_4>a^|M`76cwLokE!_$Z7p!JaU*E*vRng{xdjd;$ao)9tv4z4`V=!o$*d?`%-e$AU z-K+9NOH+%C4;_VN`Oc6&$Hh$~jqEcfmJWt@#i zE{|6nd2ib?){%1dNN24dMyxl#bth)^hh5W~ft`KNtU1}%v3l;RRGYddk@c>zX6XGD zg;zYkjD4%x0MA+}+pMx<&_l_=sP@;tdw)gp%IBQ+L(vuMw{7TY{{;S|NUY*VszbX6 zu`|_f;`RG063=fl?aKD7rpymr78;dVt-9>J5X)`qF2r9e93_8se?^gR4)*%ypsXDnu{XHP zt=pu2!PRPPP2peZ|Q$*W$$1kGB)`KOxg3m!|M(`(e8?8 zH*8=(Dx(~{7uDbo4gsHd!IXXAfr|3y-F7Lvc*6tTv=Ki{yOb@aUFlYdU)_J8=Dcmk z+g|_W@x+FAk3)0q3lBjXl$qj|0T&0>o%`JJb?5!^__}RQnbL!txuDDh7rrCybrp*@ zxO6iu`pWv}Ht>HNXT2SoZ+;7!r+kjvW?OCiK-;!$$3qX$@6f-Qez*J=xM$4L_Zdeg zZ5~+s!1Kq~-~9UVq7CmIXRLdJk#1hv3oj*uf9~4ZO1nYEE?KkA#d9He4o(UrG#{4- z#$K@MU|=b9QaPXJMm{h%mot~-SeS+kt}I7Zl%EOzkFlmL`p>S)Lcbi*oV)M!Ty^F? zap^@V$dYEx`WA8)MY#9+6dZ*v9KpK-3H|Rsw!^{(lD{=G`64;M?wk;9>^hr08QSf- zHf?E?Z+tuz*gF;1O5c4d!{o~$4sWFDJmc1By(sPKd}Jkl7Uf|Wv3GIx%)(H5T^M=w zTkODBS)Udmw$Yp zP4&$3P)1!8xCd-&PnNAUdBFFpGwt9fz5i{d+1ql~t?%)N+Q!+S;I!y0XuG^&q*Wpqg5;-}9*9+B|9Sa~*ehAn zSwE&TC+hnw`ffBQ0?4!FD_N zyppy|+x4_<-B)pizi;|1mzp^fZ&mcLl?N$qUO zwG{)ForzHZcZx~q@eApW!&6`Vx$$ew z8EqX)y+CIt0(GH-3uewik6t~E|Hl^0%-d%V??tm#dxF$PE1v;RIGUANLY7LM>e ziSbW#+6bXH&VS%Jr;VxTaOa?(zV7ODz+5naF{Zlh6q5%{IftfFpLUqXPH=u;-Cv(Y zM|}Nw;mv@{=m#P&x*>% zqmOuFpx&-C2dFpvfr|B4y1Fm*;^V-x*PrNPoKvrD$%cy1x$am+AJ`S$^pR&xw|qEW znCH|nG&TJBZXB<_@`3I;Wn--AVP8MHM*Hggs)r8O`{=MCmoa($0GoV7;){d$)cky5 zaKfDKz3;y6{+hFa(br$8M?Xt|>9ap@U}Rj$p*`a&$b#;@I?P*?JbrV|Vg8s$|NQMa z=k?F#JJ`6)g)ZdCu5G-){9XqFh|MR6MEgXKDJ~wA3_9AwY z`eCjQ!0*S~>d^hqdDo$nAUqEJ75(BF&AFi!&Zg`PyZseFTXASB4s8`cTgU|b^1;37 zQ==X2b@v~5_MGRA*FNy8<5Pa|&T;Iby|j@efN94-1ow=a@cI>(g?7C;M>-_CDuwS6HQS=jYans~}$6UI!T>M(@cq|u=sQWzX z$pGZf7If`i^z@of?l6z*|5|rouRD*6nQw0%TmRm*v&w4+x?D&cQm=OUq07aW_RwW( zC-q%;<^ab+d_e=&ci~tM?u%~z)$#Si|GOKGh7Y@Tw)prlLd-NEgpQhvQckQhAaKTu@>0X#@5I3-hAeXyth(vYxgpa)|8wK z;;ydACSK9eaUI>~`(w~^(R~^ge|=^d-Gwd

^YTF`A6=nhI(DJP=LHE@YyyisJCiC+R_u83(UV78{R!5Iz#3$nAwJ((nSae631V|d}&_bsZRNQ%y>A{I2XN9_wQXxj^Y30 zT@kP@X1+pG%o($ht;7qHBe>#b>f8?w76gX1&qd$6nL3+S6m?ud`I{-fzOZ8k`z0ff z5No|E5Uj=LR5^?P!h1e2RuP}4G3IB3Uu^ty|BmfX8|ibRV}f>q!};|Sp=Sv8&f zc^cE1_%gud{C_R$rmJFNJJSC!tHZR*n8Uo6U#f^X(fInlUk$CQ-`6`GUqdH!3kGW&Yzdhj4s%wX*i&o*u37i2Ej&oNOb`&sAvcu(@ zk)Nerd@vF|K`(xb{AtME#wx|K>~_xSS8z7Hjkv#R?yyK_A6@M&L_bx0!W)!leQ3;I z2keX|dq~Gi&(rP)U$YV?GQbJ6l85j23l{ij$VWsWEIH@B4}y8M-#Qg7G*$B!sk!f>rnk{-~1SQVm`OPFK-SXYv}DvZ=R7;_1bHJ9(13SbyKO}oxBq>w zwuVLQX_TuG-_S2HP^bBkLbO%rE7OFm>Gn09t#!qPt8KhJ-Un9!9K)CF`2;Gq&bho&V{Jt9%09z6(BHl{%(29hNBKNKE*kPVJF)1>ihFF<)>Gi6 z`*z+vito7|8C;D{99)X8GM#mpJw{}UIr|bKM|zmE?bRvHIok=)c6Ex?h#bo*#eW(h z?m+zi6W|ED`8o20kICfe1ZTp5=JK~Z^XBmge)k4wS@8?J7ali8I?lG!Y2%adJfAi) zp$+xd_r97_U%iw#I&yjMcFutgH0GJK@j;do$FBR)|5*+@#diiTDP>=Uv&O=adv3+c zd0=2qE3iKUK0e@H@ss#ly>lUo3x0yW>e;)xo4Vimy7HWiYnPs(Ien0K$dlq~VjIV> z=TJaS?GS6Y&I9J{TDM6y!$IO3*HEsB*h|H9F*JP` z`e4ub;VR~~gPb7mlLxd)_)aUbPl97JCf1lTVlL4Wj|G{7gUAxaQXkbENJja_8ixiI z7t7v^Ggl86*r7gU8v2%*T4+BC+&%O4$vNJFz(d}=Zg>>4DtKN8p1(0qedGSv;MAGr z9TxGtKN61JvwM$VYivostn;AG5%AkOT4dKz_8_>cPao15g+@g`ms3Z)*hD;^_AC0v z#azMr7US6CFLZ?`fIyuckeu1PAs{VEC@$C^Ut)7 zor5edAh&Zvplrr&&Jcq48Eq4w3(g}mrpi_Dw+D|0H*MPA`w#XG;7RfEW@4^m(iQaI zrCIp(Xk>Jet+7K}#NRlvK&mU>3ePI~KJ)sypIGB6=11eX3wgl$^FkHvw-DQYaH43E zykXGp$2-X_(oZ}2^hwSM?thLwsCamt*Awsc%^4}4@y5_PF*RY%C8ASl4M~7EtsxCt zt^MnuPn}oQI%38(;v9RTXo6fFTT<^y9L|`Rm;@X_^yVrz|Hi?s=wtW_ZdEzxMY1U- z8VRSHx?$+a$YI|@#32p7b=Gr(nHWEB! zvqzhmTtpxBoToEmnMS-hx~YNl=Bf5%@s3YkBTwD6guD;bGj-1N)%n~x_J3ts4;NBT z{i=_-l#?z|!~7OTlrI+^b?@mj{e0)T=tO(g5Vx+}8q9P0 zZ%Y#)&b1c}vpVO8tj_#<0*T+EXQ<9d%8Q<`TOMx61J)JeMm6LqH%NA}gJ(JmgA5-K zM!{sAby+8Qlphu>O+}Y=zDk?ottxozJ)SdOqqi^*+yfi3B^z6KC%q+~IG3!-6o-dz zy%7G9UXzpT80E}OvyV@jyXi0|c`0rDj+p;P|?^LozQ zV$UASV6I!w*P37z-;NyHbfaZ&0XLe%%2$wa;5hm%t7GQ`%YKs&c_EGk@Y#sxS5p2v zl+PZ`{WaX9QOa7Y^+kFlXNDIurb@Llmv+L)vKZ~CjT|b=J?b4le7X9G7fPDxXVnOP-_AoeEsk!n!U&H^liJvj|VJfF0 zzNusDQrB%df^D&Y-|JJ?Z#uFHJA{1iIv@EV$4qWyV{dC_mC+iyd|e_;+MxMTH?^9cDXUW2FNwAbp% zSK3?6_)n#dL$}XMejEH=L%Uj!SP$)khsi^*n;dGN(AQ`FtLw3YYv&~np=%pBCY9LO z90vyR`84l7Nw5Ao{jvD#Oh$L^Jn>r8==wbK<$j9rOuX?G>S+CGIiGo#WQwDzjdA$d3VRGxJe(R~8Gc~J;rTr}L4}dGtX*s{Efv@@RT_qpibvgW1 z4xi13-^$>-%h3HVC0{V-)mRt$t|KTrM`LGSX5{1R;86Kf8i2V5yQct|7(ynl`bHoj z`YYo(F%X?9zn8L(9B}SeS~iNjWb;zdL5AFN>Z?Ke4go_tu)ybck!yqgJs)_r*4EYX zNzfPP&w}t<=xj%atAciFCSXUCS0{$vOq}b{Srf@!XN_rpoZq9ja@Wa->rbIb9sO_u zx$8z;cM92Ra?GTSxb~EE+?`L6yKcniPq8*u#u-O&OLT?TzGztYH8nFoWh-;^Vt|?w;>hFdw=p;||EnZedRCV=r~(rdM*$`{0%ti--Px zM#H$rXACsHFKB$+yP$s0()g4|gYlu0l3&otLD)n*iTO_sK&``3??3te^uOsGjXS$N z#0)mg9kU#an*qjUCIN#c?!rYIi+`gVlakk9h2YKplB^1+LlgVvPMGs-eP=fK*> zHiZX|MzUtu*_2zyJkG(^D`o!HO^7xYjZC>_K?q;!1Y(f!*_ZOYZbHF~b?6S@Z5C%9 zvt;*SgdV*?v>C{2H*_l69QlP)hE69cucD#TeIG(sX(J7t9(_}^Ir3VQ^Cgb{qIM~So6>3@Y}hdaLa!J+g8jd3Bgo2BtjB2NHiMB6%lw~H8n_!{(gVC&*JGH&~# z<)ckr;}eUpKllh&De1)LF+XPReE2xw*$LZc+WV=WZSt_`Jom+R5#_bkHibFI3A}>U zTbCc=?)c5tJeU`n!7M- zulNsH&G+c`dh?yzUS+;>+E?@4K!4)1>bw!ydE9k70{+UdK5mfQb!B@4>jHdUsrP?j zo?0`aA6p~7G2V()jo0(1sZ*5$?;_tU?g*Su8R3@pw@1J=vGNaBWuK1c*i)AMP>P%T z6xf5KN6c6_H`-{GR*nB7^syOyh+ZZ#&ZC`<#@%0@o}sbC!INm^ zHp*0Eo5=>2EY_XpZK-B`+87y^1MY&!&-R1s80(yHEqhk9*>ncD7M(Hf?_(bb*HzGJ z@NMgSelHb1_3muOUl6St-*U#lczX;Se35eDVdC-3WGC}!=#O*6>Qm!xIV1XUfU%b< zZvybSvf&7Jch3D-55G^Wlfd$-=)JA=AQT1i4GlBIsdVr9huVt?DFsE z?j`9(rO<3-#7q+xYStF)%3km8o?+($|1982kpIt>87rg@wYmSXt+LiLr*(&v`!#P_ z4SAj-^L&N&XZm^GSVVrNw$xBjeqivjFl|(mzb)Ugjw#+bKQL@rwzW<%$%fXR z2PQwQeUJYZvbnksPy1=@MsO_~;OSp-aiAo1-(!{9CuCWb*6WV(SzhS z8hA~SF4Dk!LU#l5kYt@`V7W^J_2lIg4YWc(qBr?e8eZsn>@8sG4-WC11&qWag!vm`w9%$fBC#_ey3%SAi{fx3e%M993?pW==;{Kib* z^M%k)d;L9M*oGmiTmUV za?h13S;=4XPOt#eDD8DLKvQm;hQ?am|Dv&V(Aaut3>mkqjC%#uuV}2F=Z41mdERIR z7LA8zJ`RI}2JZ8z0bc+4?JeN=VfOd0CVne0dPWhxpCi~9^XDTM z;S=C4o?ja6R7`?&t|@_yGx*;)C*tgrBfFOd&s;Ted@L>e z_T!|LT%GwAcY^@~G`lf!3Aue3U)1PPnaOSVcf`BZ&;;>K#?GpS21p3csOiay+xn;Jb|Q ze=2j^s=COQHb*Dg7rFH!`!~G9-YjNDWdrRC?!3qr{tr%O{?n{wysK0jXMhjc{`x(P zI(HZwRr&pU@)~&OIZxpC(Aj*`-&S9L`!2EtTRm&HaxNO*6naPcAacn<8=k+qpvRxN zFOu~sd(Cj?z7dVBzy2at{sjk_6T$Wu+V|i*OuY|Ib?y8!&rJJgIXJ9g-q8h|^{#%l z(FJNKJ5c*Ni}L}t4DCuzZnw_Kw*QaD0iM3hw{X2#zMKKzGku?H^b*;}`ywYkWh=jC ze?COvPWc|p7@)PQX}^i}NV>>bz!-zScbU!Y< z8grlZ=hGxNMZftioLuGOmesR{C?{TlWGVUZ%F@C!tABr_258qO^}GvbNG~K-CK#*u!7ziP;<#)`+IaNrXlF?px%4KW=g1bqE_@BXoGw}Cqd70X zwBi5OPuYK=9qsM;%b2@~t@<=^An{V~~Fu(hh-5z;-w*6P0Pos?V()0+v zC~TSldRh?N37!u)8!niNcxLpwiyi%LJv!NutyTg$b!et_j@?9CS{DVsSHEP~UVL57 z{kslLjIjR-PNK+l(M;S&2XW}2n)%$pU1YD`kdkOb00qUMSk{aTWf}ww;wzn)jdbo&~6oe7vZ<$54sUGz2=Dv{~0l$OtmciqdtrhGCr;s;QbmPkSFgnr646E}nx`6n> z*`Loz{)yaFRl_=FoW!?_&-1|xf#G)A-ihxgmvuwWEcT>iuLTENGn{>hO!gtNlGuPo zpN+A9b*vsXV#X;8NO4>Bf+_kV(db~p~M?w@4BlP#Wd6sGw70@njAus>`E1%PbmlUm`MT}X_NQpCg!X0t zzeSw2U@tp0q~u1m5B&&s-fQ1mvNEYM#N>Or`MyYfs{Iq%XhMcn`{=S7x_pTEgU!(7 zb?kc*Gtk*goAKeNkGq9=ke)0bQ5pFxb-%6Tz@jGhAGvEZ4t+NeM~E$d40`WWOrLau zA;8_tJ5SCvcgwPz6^72o zh3quiufmShd+FcM~g}LbdZ)6W`8rg$i<;5Fy4~CR-T3qC8lyApuX^}n z-*h--%P1S{*^}KD*_UCjaLe=u^LK%vKN+cWah^<-eDmksP~LU}6EY>Up)|1oJ@E+p z6&c&-CRXvgJ+*GrkskyS@bb~}TiD|#p6>{H{So2~6WsfoSle^QG5)K4b7LWUEi|&o zcTdoDz*P@lci;01{+6}j!(<+}aDVS1C)1GYZG@jKnp1#lLy6{B#4g#MCv$roC1h!c&jHWNAI-4KnmwComgfr&3XDlaaS9AD2-vi<7UEXP4y>Y7?a(7yaIcFnX zv!^}Dz0e@moN2Mfg6v>jXhf_rIMU>J(S5m{Rw!!nG5GN$S{O$k)fXYZSQo0;6Qr*l z@9<1(n(!C*?LDz}RaOz_pyy@o8o=BtCaCfi>I{OPUs7GS3^5`lRqXxrZ3ld?X7tc1 z>w8uM_59C{@~jKK^ZWqHD|mw`V{C+d)+IUim-sInP|oa64YY=MxuE5Pn#g=;+%3d0 zY2DJgngX5u5nk2vCf3$!$EL(yoM!yXF~(h;(j#lDQ#@YleeT4QKf34gVa{w_LtjRo z_u*l!-C4}#ZNQ(!{AzzpbSgXjYdiyA+;OWuvXgUY;{-4*WIi0*`}97O+nsaoqo}Jf zXy4E9@pJOSW+r#@96PhvJbT@F_V0Se{k-PcQRi7B&#H*?iAV;x@rOHj7Uh{KSDb6w z`vK3IpcnJ3%6XR5vooye@1(QG3ZLpuT=G`tLRZ_fh)2XH(|Lrkv^eWFcY=+eE#g8b zuUNL{DEm8p%P*P>9cMwudLMS@D|Vu5$7ara)DfSoc<4vJ5qpMEfBH;GMdCAK>Mo19l*zdrw8-Ma!)7IgfEHmm;8wG&#;`Zu@F9Qw?i7H#|< z|Aj;ASl5m&`b$Eq-vqWdY4=0gjUMGLY}V7=v{6sosF`20c4j9xP*-R5!A&=9eFnPH zvnpfHXBv8Ym~t)b{Wj2!cMo9$>#}nXA^v~bmi>y(=HT*5bRPbHoBuIr>v7%-kHEjr z8l7uz;=kXv@UMl!)fQsQMF)zrQ;y$X(GKSnN}%aZ?vL;G3GIT;<)ac@-r6g;78-ud zPQFS%s^iIoYTi}xPV+Y#_|(Tsl+l0X${mOwy?l#ChlM9U4LqX#7K1m%;5t0{L964t zih<|%(VOFa__BNL!hev-`q999bN|Ai@CiC}UB^(Codrb`^b|&AUgy z=OgfHHU9-qtPiis7my7(@{z+w`LyAzucz138XN~c<(`beCpkU!4L>P&Oy77;$EFM5FM_7Q zwFMsKE3HbI^JYCf?8PN|x!mi)2RP_1V{va%J!AGigLg3Rdtw^By8ZcEye)I=Npj^$6tQ9%KyWme~->Z%MP7qCI^96(eOa+^<6_1D+?WT^F`2tFSJ$yf8Xa( zo;&S2Yxjle?Ck)LSC;%mB^}J;+dT7^E2LcCJ1wQt$?iNf&$16+XxYzk=F9@G;w9#5 zqZOWN@1Y&xJIeFh(9zld>ii7jtHSncJp&tm0_zMmbQ8WztD|Wd+S8b8aV60zR1k+_B!e{L6a>* zI9K!|>B>E8yQe?-*Lr_0SG89rTVgdhmn>i}rWM?*lP%X1&$=(NVZ8k{`q6s$zHEN{ z5QWIm!n4?~=DU2l_VUIqD`n3^_@4`%pZx#W`x^K-t19pNOwy8u0tE^!Sn0I1CaGx% z(1jWbrcFN~v?UE6(!z9-nIzLrW`>zbn__{0#kXk1hOJtW)$pOFUBoIC3Zg`1wJ5t= zq`FnR8eMj`V08@oynw>ciny0-!B8rJ?DPkbI(2Z+;cx3)MWttSV=U! zec)0vuIJJ++)*oAj<=VPp6nN6fLGxRSebX%+1CFqv-qMi@5Bo%zQZiO_*v|y#-`Tu znE~QAd~2M;e{(wI{|E4WRFrou$_t<`sLix*!fO|_s|xKRTh#qXXXT33Io6;}#2@w> zl|+yJbItRIU_0q=;B&qCbU1iU?@XlW!QKRYzm;hRy`1({Ry%6~4`p_bk#pVy-qFWO z01rY=b9~s+48o^??o)P8>OB!*(ogtql=2J4-aUQzX6$<(r~b_O7oOGT{Ln_~J37bA z{M&a?@BN_18K~zV_?P$?-KKtvxf3@l(hhL3-bJS7dx1X2Lelx!LjJ#ie65k^OzZIu({yFYb ziN?d&DTeTK<>X$R1?6wY{s#GjM%ep(FP9raJ{Vu5KW&{dr-J>ihhHCfe*$c*q({>l z7rOs=!Y2g!(o|oHLt`7ZhEvbP{_Sd74}nJXzWZ}1i)1{F^QW;6fBM#v9Zz3lo_IPv zY7gm=IIo1cs^^~msiiv}2VE-B_Wm{Ad-`D0dK&g1d29U4o$o{$yKfZT)AAU-eeCKK z#Ak)yL@j9lt|_U>y&prFeK@O4?Wg+BI7a>N)B1z=iq`)>%5wED8;80dqYa0VSFR1Y zv&EJtiMC>69U4a8CVAui_)d070R7_aWSYSS0Qa>1Z@qKR(+%%D+W#oV)wvi~51Qw9 z{574OFWJ%m0l=*U2X=s$_mwTdyBZCMSAlc&=bGnZ=qpDK?V7TCa_^O>XOL_LCAaN( z05*b$PI-UTXB%$VQ-gi!H{QP(_6)gmBV#IulYQfj_m9HcpsqbAG!)=A! z=r5Ukl;jM{n_}&KIM{nC$}-wsoZ;l}Cf|TL%asd-@}sc4W0tW$*o%(hIfQ8X%l~|f zyuX!yU!)RiXxmS;m)L{3n%kG#3*9y4Xt4MB6Re!emk)d=?~}OmjXNbXU_ZaYD=TmG zPCM;3+~e-SH&DZn+iTa%eb3)wZx%MFHDo*8=~c3gbq(f`!uZfpn&~?_WpsB5=Kx-Y zT!tJWo04gWc&^E{bN>l!-`iJpzTAzV^DD$pT>kb^y~$z9cjx{p(3$yDzv;Uf za?pO$mtma6p}qAF!{2_>SNw;5)AvI-7jdj_`UY_>@A6T(Z~DgYP2XzJkjuyTp!u{% z<~#om+FbDFlmk+Lm%VT1Y0z5tzM%)?zR%2c zbom?KXFkiXo9q__MZfiJ&1F~z`Fly258rryDdeTdqNf|q+0&na9D)qsJ4KKQc1-zl zCqA|JWE!WC1$`$#_BGtN=fPI<{K@|cJqv3O(s>5KQ}whK+cUNI9K@x$$m%*GBXT%> zQ{=bTmg2lHWa9fr?|9<_QkO#yLcfGwMR%QS9cJK6$IE)x$*<3IQ+r=Vn+H*!LpbM6 z`{q?-t3L_0dho`hxT6%qen?eG@Zur#ns{z6or{q=<-W5)-vS|hxgb8~`xAPv7kB_R_cJ~mgAEGy(eq)0ZjNEid3sR3@92Jy#FjhU+b1** zXv*zc<F58r{e|6YZkq?@p_1#tfdR+6r~&pl)GbI7)*dCtmT zPun;2s2_@@!y32wW5|={+QKs`tm}XdG}jT2S>E#bY1g^E*B~u)nOW4A{n*Dl6sXMO zo&MZj;;tzJ_`Vx>BDdzu?UC7e_gG=C;VwuIUQGPb4}R%d z>g~7W6C^NZ!C}Y_v^QpC)(3<)X%ISLj&5LLaPWX$!Plqi) z=#wAcolA)q`%j17g>?C`GQOy6ysl8t<@aOv8DeKhT1!20o@Y^cTjQxkiyFYq6t!xO)%U4rHH`fqHbm9Pwjo}L9+w$MaK0*(|WffKFz;>Px{8HxjPOmh5qiDblKThbDY)FROxNL zcZ|8SseDoo${O>_dEeN4Zy0o&(pTME0h$`TxBq+O0r>=57VKBB*U9&$dhl%0?Q>3l zJ+On;yJeH$ZvtPKT#N6^-3t2`(vS@8gWcy5l)X{$)wpla1$pw7snZ}=&)7-hWf0$2 zq`AKdaiAyc9t;dzI&gB&rGp==|H3csp8JJwo?P;Ufzg3449t_VUx)3Y=cAkF4BTymjNr2XLoV+O zUI=>@%78uRmD027|1gNVBu|u_ebm5j5c@)u_IlK70QVGrkNCEoUxy#vpWICK^Co=Q z;7;8j^kdSCY`b8z-S$Vs37`&mzvcV=CD$LNyXO@D9f)6vwARL5iF$>h3s8Ez^|fs! z?wQuZHZ$4az7+gP*E)*)day6p0e`d$Hj5d&2TJFm%1TfN*z$ij)%5n@+$YB5Rs;JL z)f4tq-U}oBVHffqGv4$<-`i#NJPOZRn1u0e)0J^S(}nx5@>I{h;E=!z+( z_m>F29A`doSNNtG_(uC;uk1vF__UuxcZG)Dv#RuOZ2BVuH~FSefXR}S<5-5Z0=-g%k5~3w4wezV@mOEHnmad#Cg>Z%<<~K zF$Z(czNvQ(Tsmd`0||!j!kz-b(@@@~`#2Zua4{2)5spbue*T=jy@SZWZ;0)m{W8Oi2!BIW@#_PZ092Ci; z7L-3P_%4h;>>q*lt)Mx*qx2QL$(|RdHa`x%`|&X16x!}-ZfJZ$&QDD4x$u|ZnPz-c zo$PRsRkWVS*^j6`uOe&^VOZ0gRxF(4JM{2vw7*39^0W_zfQ>TDm?*K;4OJVu+EkE2b2VcK+wZIf3ugzqjmMw`-avrRYKJ{pidsyIe_ zg2&OGe?XjK}|G(`sjIWQ`zgQU+BQNe--%;CmVi=u(y&8 zpB$!5--kcThFgZV>DgnnY0NR&bmpEnCr}&u;6nHIZ4-l-&mez#ulPLKGji+Wq2o@@ zEmK@N4{|E*y$(P(7{t6-C>QBYMOgrM@#)+E?(Ot@xTBBxSMKGXzH`LdPtheE$X8wts4?17y|=cP9Pxa;U%*sA+*M(FR5FUg11I3q&u>rR92)N_5; z(SL?N`5h`bV@3>h3*s%{Gq7(ko#*bHe7E+D4#%cKG8p~YoU>o$+cKyfJJ7D-!d;s8 z{burPoVj|Q`r~xe$))?+C-VEJ?^~1i+>do;58~23FO7XSewp3t(RT$z*Ohx?4Cid; zI7=?JbBQCi^V`uTI@?11wAhThcqQ)jm+|?UdY*@A&0DxfN_4*i``|2t%kW-5@;HxZ zi*?mZxaiy6xS#pTAnpm+a~Hq87Q6-9I?bCjFa8+u2LJRX+oQniJTIQ%;rtWYS4s2Y z*J=vn(-}L30ea_4t#*x1v*v2h0g!Wdc0N8dKlkXf?bZz zR*^2hl;QxVclcyYFp!nOzWuiaA|G#D*Twncgotl zA2ftL`>M-9_sf4C>|OG{*ipSBi1#+Dd*6#X-H$V9MAxx^&p}?ajPurDPW$k zbs;$idJb7D{43fr5xg*5+i5&LNN1x^PdW=l>!7cI=2YjuL!C2dH^n&}eKOo0zTHEr z;{9HGFDNJ9`u=5d_x&fD=j%}hjh{`(&mBMRT7vpN3!T!w1+xTkJ4g>h8}PlW-_yHV zJ8+&ThB#GtXKM!bSIVb*I~LRWbPU$UcoSv;(ugi7=c4`t<0(jdhWFN>;~kmu%z3>J za2=k;UX$rXzxekV5x#Xw^PJwbXnW8E_osl5L-{5!`G*XnPkb0W>BB@r8wcm!e3;Jo zS$~{~_F>$=_Ti}x{4NKc;lMQxe1QXBJokzQ%#Cci0 z)`9=vz<+Y!z}y_Kj&|U32R_+>Pjlci9r$bqKF5KlI`F$3c!mSlIPe7ye31j!Iq+o; zJkNm_I`HKVywri49QYaszTSavbl?^TZgb!@4xDh{v;(hm;F}%zRtLVrfj{WLA9CQk z9rzvx{%gCO;0GM|a}K=Ifgf?;FFWvK4*aA8f8Bw<>A>H1;O{!{KREFB9r%Y1 z{9_0HsRRGQf&a~cUv}VMJMgOx{96b9g9HD`fdlg#{&(PV2R_+>Pjlci9r$bqKF5Kl zI`F$3c!mSlIPe7ye31j!Iq+o;JkNm_I`HKVywri49QYaszTSavbl?^TZgb!@4xDh{ zv;(hm;F}%zRtLVrfj{WLA9CQk9rzvx{%gCO;0GM|a}K=Ifgf?;FFWvK4*aA8 zf8Bw<>A>H1;O`226LgI8Th8n~vgqj@uyb!6r}GrxiS#WGgCD_kev1%->22Oxh3TyR zl?wj~a8zM>7xaS)(|b9eQkd?8JgV@|0so`IKLz}v!ao6wH3XM+0Pr~q{{Zj>3e&rP z(6u-Yy)S}w3&YO=zDeO{0dH0K+khWZ_*;M(SNL(jXF;K+ zw(kZ!Q{gWGo~!U9fLAO0w}7(>_XEC5;m-noNZ|(ne^uen06wVjeSm+X@FxLdP0!_i z9Pl)S{~BPcFlM1&1-luRY;D1qgHQ+xgd;{Q9v528^ zuLt~Yg|7uXU*TrJ*vI8KR{`Fl@KV4y$H4wq0REc7iveQ~pZymA#vL?<=K&s%2c4*_ z_X3`+Fx~%Iq40YEw<&xP;P)$hA>dCbTnqRyg=Yf(M}=nqep%rPzy=q~sjO*$rz$)J z@N9+80epkP?*P0};fa887LU`O0hlhRQ$D8wen#O_0K<;M{$l}~GJ(ec4k|nv@Ou?5 z0ero}u&GVRDEtQAh`LMRKLGxW!oLIjRfS&z{DQ)-0Dei~UjrVEg(%hSmw+o2J_LB7 z!v6{wdvzS=7l1b?{4>B?6{c^N_AC4&z|ScBL%=^*_yxd!RCpiYv#_yA<^Db3ixvJZ z;A<5A4&a*u?VW&ehmzqt0RLLy+W?<@lK5`~T&wT~zzY;!2Y8Lb z8NeS=I0g7~3U>njrow9g;~fAls~zy`3P%8+g$wi47TmF!FjL_h0WVf~CE(QxUk5m) z@YR4npl}o5Pb$0&@Rt>C1U#TH-Ws0p4+<{?{LczE0RE-I^??7V@TGuH#Kl3XTOHuD z6}}j7rNXlS&rRG!o?y5vsM1Wi>0LM7bkn;}G9{zOjO9P4oOZ^zu(&81XW5%pA<_@YRwy@2;J1&L$dov1Uo6<4oo_n%cx^iV} z`^uGTlXpD7a^=d?PFwjwv&dYr%9tfrTycdl_}`pirkcmit==>EcQO9``TlD_ZdYlJ zFPK4wZsflyb33~q#oxcdzn!o?eeR#`cq8T+5{A?qWq!AH5y#PNmG zCZ02GM(stHHY{0o^~!L2XJ*4~cYe6Htu0p5($&@$O;@%?!rAc3>R`);Y&4XK-5kB4 zs;;~#n(ay_g5h8~8jj3dpN?gtL5UwswycS^W`o&|a2BD+A)087W`IY7>G1ksLy+<- zPbFiCY%~(gCXq1*w#U{*6Tu2DuA(LwY(@gbf}LHNY_KJY@+4h4m`n%5iSlqd9o~Sr z4dDa@r^1torD zy7KZMeu%oV?goP7*B;FxgVtnfLonGEjAer{X?;7Arh}Pm8YNK1e&Sf9+fN?OAZ-RQ z;?ZDhM>rjB%|>%EQOu>mnwpyYr0f->=!y0y6R0%_iY2n9G1dukM}pCtx?=0Xad;6G ziM|!@st6`i(R4VA7NUX;Xw3OFLF&wKB$AG1GRd~eIZWYT1?t?@nw^`!EJvyDKdP!ABAkAvtkPdHDs!%ekyN*cOY%BUDZ-5s7xAp}B&n(pobj zYq*@_a_3Udg3i%SG$a#?2nmEor0}kE)Q?z=s<(EfGhiWfDO%nd&LFfcn22VGRDOz# zpCp4iUpS=B@mNbboZf(1Pfdh7qf>{iD%G4~M9M9zQO@o0WJ@?6To+Eq!Y%P=jnQ!; zu|Zq}hU2mJL?`tc4JPU)8d<1V8~0&2-QGo^HRVgPXa@5&n1>mRN)%3R2xd2=qRh!* zf0Tew*)RrMjhP#aL|c>02N)f5v)OQKhmJuF08y52$aW+XLBIaWL=E8bNVL2?njl6( zyf!q9xhvWYwoL@5O2VlXxujb63<$zhsVQ#=$KzC0O4yK#xIPw-lV1YuUYA@ey;@Ka zbj-384PGLaQX^9rtRQk%1i^elO%$cY=JKx&#@fmwF_K$E;I?$KlVcZ@a0z5bBv=tm zr<3Ulfs<%0VdWTa5e(DyB)*cZ#8k+$SSFBWu?&ccE{b-yM!Cl2m6@otDUxi>Fy$iA zY&aIrRQbGs!3Em1gj?5IQ3?8na~&4!46h~1Wx85BXe8!Gt|^C1jJC!rL?#kV5Gh9i zUqBLns1)_H5SlXq%QFy*F$_1*A;pXkqG-gm6~W5&9WfN%i4jOrHJx0C0SJKu@fgjC zPB47=x>(q)dlgDt(wR!8!H3y8rkY>4&I?wQL+*B=zzyYVK{^@~>!M6A$jW$=O#oBct`&BzF)JVyNfd*Ni5?IDsDLlfh~H#zSf=5@8*C^iIw3HYjiC-Vqm?uX zaLsi>$|Sqetx-E82?j1KrxFmoC7N9yWq!^^+oRwX^rlWyJf_15OmEZ|rXik$PzncC z#-R7X83|h=3F$~2(mPQ}RGiy}v4(1Z-H8O%!Eh^PQP3pm3mh)WiW)GRrHIX+$66bh zFIbsMW-_ss_y%cQxI7bWCm9o_Q5I|qcg3^d&&Fgp!h=DmM*X^h1Wv18V{kztD@=n) zTLz@^7!fxTPDjcc{MahI;>echw1KB*;_RguY#8KAlTaFXim@Vy1`|{QP%A^@0o`e- zQ$geb6JeW#Y-?T3^&*f(CO2E4va@nMhSIv!Syk8Ats{u|ch4zVwNuF=?eykaUnU z%;JS&kHb6H!$zqoo>hh({u|B-53mk;Um$*CHJ%-4=$( z4}z+eoXj=gP|zsY8O2DX(lC&_NI61>Qwv(UV(~0yWTiId7h+sY<}CaxHzd2jcbI$- z4H80|0Lo)lW}PY?YmGsDszMCNNg^OJmP%u2KvMy0Q(vPGp}ySIg<4>U$uvi5AU7Pv zXOcuomMfTNI>Xs&?y>R;QSJCIl$vxf(bWmvODce|guw>}tyq_gMS?Rbf-Fv%5meMm zRX~<2RdwXX&!C#lP#RdJCZl3Pm^2YxACftsvI?UP{HTcv1XHvdOj0g-l8QDNH$$_b zIV+Q;nNP%AB{h0IL}@e_jc1~yuTYmj&bFt+oizFvV$_m;gBG1S^33+QXG@%%49qeVgiJuNDNJ`8d!~FRy2Y^-i(GN?QC8_8c#)#7+vN~Pz7D? zPvjI_Eo=%o2bHHC5|wGAHGyivH6gLpnI!t5dg(YV0ak!i5dX}I)Ys*RvV6mG3W6e) zjm9y0iOP$hI?>!tu-{=yvbE7@3KgTds63tQYVQDBYn^=^O_U%Aht4Q!u)*m8)zQ$p zoZ`c?i_X~oV3uh$md!-tr1NSz)&l0VQi{uTBvIYlf)(j#DvmK8qM3;mAeI!+b+SUr za?~juMjN|%q=!?OL?XdTWQa*G3W-4)9Fwax*_pz~WwlOJ$PAdAMP#_#P9?0tv1(a? zkp&jywGT@~(1YkENufCKA}&2Mo17_1NsXbIG?auAT4{xPbub%lufkm1mD4pVtI$y_ zwXURIOhJ2xE*0MZ{<6tP(Cg$!G9IOhm}Sump-qZbnA?vC-=SELn~VrvkHeryZEWxk?u4}n*Zv8?u)on$sd&1}o4mT_J3 zf*CQkK`$uY zpH_5jBDo&IktS+XVd26hG@N9C1+fM%VKuZUnC+teb*4S)>L{w6$+8ki%4Vjnyppwv zXj_Q!YAGj_Yzv7<%{V^1tj<&!qBmH!Gr2BWNuswpm`S%HUKL79(R}JGA4MXGB8XU2 zbxMM6Ya}Izy4P7K*jyn1C`1!Ox57k6$~H<&$HS>h%EP2vS@jZ<6Jn<&N+hR#DVlF< zY6Fy5a0_ZtA$kP$&jy{KQlf0|TrNvk1nIn;XGFqchZ=BPSp>-lMa!4`oK%s*U};7p zdBqK~kR7KQ3Ty=i2nqc4q}4!G%3!odXneA`M+>e_a1%vA>5O8*96>KJLtqG6m5j28 z=a-92TH{?2jIwgdOBe9O{iF(KqoT;noH>)&6ciQxAd;jW1=Fgo2Nf=X*%uNrM3P_9-*ITY64K$giB86#DsK3TjiA|-efXuV$#Ilw^g(>WEP1k-!4RCeA z)vKXCR90LERjg|DYN7_$j+z_1j@z6YD>`XV9b?&Q8O2~Zo5jk+4MX!_YLR3>b``8U z*mh76Vg^LR#MsD^Eo&FC>yzoV=-Xrl+N$uY-v*ue(A^E-*7vE(8;)m0%J?<90c?_> zcA?6)Y1A^mR$<#uEGC06$+cq*nE?L~)9J_pqq)mW(d)Rg5Jwa{G*Fg3mJF#(+76xs>48|IiI!DA{K5Bz>jL-yz zH3LG@LG%(PMv5eif>BtIX9su$@)&Elj#vsAms4bawsQ3>WFu0_SALnfK`B}cQ7Kma z3$HKdb%;xVJT)I_bT$E$GgJtLd1%mJZHbmM?MThS@*dU;nn zm1TPsV>;Pb6$8EOn6(;m78a>xu4uAcFfS({r7u=Y9?g6 z@N>xx7l>4KH>@&GU z(0^c5mfaR~L!9(b%*Ipzd}*aXY7`LIGBB;N2~3wPS2@KqtMa3o9+VNo2X-@`zn9>F^{4qHuNJjJcdl0kLek zH31Mcl2|&%$bKxNm)Df6!T3vi^ehQ{9>cWk15s$zM~RPXO+Upn$rczF*VabeB65=-8^{1|%xzPsMCG-SFM6uW32bkrm0_B9tSCGr3J+UEn+vJrkgrT4mGKzTDy&)agiTY&9~dj&yhKt2{Vy{P3m@XINR(Fl zShTVgWC<*OvGxw$ENzQ*bCwWiyoyy~K-jefTd7hm3;*}+Md>&R+p(+W4iY+QZdB#C z%C0f|eP0&8wBZ4h6ZB>}3)e6J7E6Oo&lzp79z`s({>y zr+ksA6(a*r0?J5kAcE9(|e8;WJHqBGnLr4Q>AySdATW{7g9>Q+rfg|Je! zDO8oij7#b;R#dDz>O|nAwtEVB4PQ^?g|H^HjSUx&v^-zSWRnG}nnemI+@GeBcN0@5&I!hpA1XHz@cBG0GnBVLcEK5wsfbMsz-BUv6k&%o#PztUw zS0_@m#plaO3_3abV5bSGn)G+I3JlTvRpLm6&r`CVN5+JqMD_UsRbVqc)+#w}aF(9D zpPXA?W|Nrm#N;D(H5wy4B0yC9pJ&RcW8ti_n3)nwCuYFr5LYLos@C%s#VA- z6_Obbad#DN(`GIKX{lBu`>6Z#q}8#B0<8g}8+}Wrc9%9pPxM83u5cVSpmEE#9TWzg znYQ@Sg|t}7OniZM-DwQNRn1xFk7Z`LO%;dq)l4T*rTawAR3C*Lw!~Jrc zP0B1bq!URf*q8^;10^Yt_BCNDwCU+Q79G{1Gg3kNQ-y)pOaFJ_&be;?9 zLk6}*b79T-7u1|zYh->)MzF&WT#w;Lrs5cE_}ob4$my;0p9#_I5h8sHg0jX`OwWjL zhA9GambP(_jCDWKOY)3lHtj*i-5vCm4 zN_({-Bsa^ZWa{!0+8jtgT4RPk9Wig{p(E^O9#>WKZVjwqzG3b}*4! z*}CBLjB!0!=dg-<3vD=a6(d}~{HEA89ZwNbUE71AkQ=IVILNF@!b%p|)6p0?ONGv@ zrM91MpvaqioB`M8H&WWyk(BRCU$e~|VWD`(K)BNJm)r47RB=$48KWVT%N zUu@OT7A*|kw4kCnfyWh}Ex}wsRx9MO0c&(n(QfEc3lW`cGZ{=`XyUSERVLgLqfJk2 zRs^TB$==3~Mof~4B*KJr0F%L)BIL+$7uFm(42#Kh7IacSL19D4c@aWJi<}Q*dcTnyBE=bi$AuTD2Ltf9XqI{~01p_7)kh%w zrNce&BhDa4UBnGh2l!>?Fh9sIU&3rH1oP|SpngifUJ__)7ozFGHqu8Z6$Rvq^D!Hg zD~y6{>p4}fC+M5Jx0ODebpBz0(%JI&$xvuvaV zAJbxbN9h_AioNX#+RGHumNHjhel5Q_@fR#6TO>TKj zlC~=$vWW6jQM&R5vvPVo-gSdUdT$Yc8m*#Uw3; zC7Rk{x1!@hvR5+nkt2$H37b3zx$WC507g5>2S_ED^msh1$X za&bU!c@Dur05oqlvDpO%9k*fT!TB)%q@_(uh1XPKOBqWa-_A~+GDN^!G%refF5$ggNEM*G zPr*GxWq}tlgMtQh;D`2Au|{jnRuxo;E5U0XsuHR^9Dvges?L)e4I?=;R+T(Deh>aT2c7UI5Z021LjRD4R67MY#tg^0IAB*7L2~AjYE)90mA1wZ4 zK}w8jHM{~wb-jg!)WdQDM31FgFk6CJt9J)6_uno(koy&dyjj&E#DvXQsidjWXmM4$jB8644ne)Dp0V z&Kyz&92(=3Y@)`dX?v(MmcjYM){dDoAzf+m)b$%(6>2|L-gdJl%=5i7NOUujnkuq5 z$E3xADCGvS9QyM?1lkJkXXa%AI#fEJHE| zIxmJn3lUKSB6k!Y^5uo9wNi){A%;XT06_ngiz!CM5s{emV(4+a1fkQ%q|X!tv%*?y zmazSfFS3wTEdO-(R8;GdsX0awGZ%F|3tAk1f$*m@NwV2N8!a?~(0i=u@hF0gkaxRT zIMeB4XdE~_v!RpD%?Q=R(2()#Qb88lXassOo9eKOj=eZK{qHIg@i5qu)HzX9_!uk= zVWFa*mt-Ny{gI6UBztN~a(^J|TBT^}upH=68N|Znt+H`QP7IY>388y1{{7m*PH{D9 z^rDRMtXvpZ^sc;J?FyLVu+I^}W^?=m3+Fu?@itA1beX=CYshW`|oyq zuu~e6%|WPnk|D?|cV1v}4-{Z zd{X9Eo)yp;0^W&Rq|?w<)5#dUf^Go`bN$8j8g-eKVk(f`b0`oNGQs$}dUTLDUjj|X z#joiZ`VTrht)_V41*(d$pvymOrq&f1k-G*w)J^*Z=rh`D72#s<6UDK-&}mm!rJOBs z6w1J?h1*wHn<5T40as?Crr08$#(*QTwS%}s8ec)~TbO2-P1zVr)Un<{R~eBP?S^Ak ztg+J5;erAK05kxyfhOf_0aegiLGyC~S7W-0W!YEALc@smel;y(_$L7is^E`Ya69W% zxeaE{RLV5IMDy#8JpHstST{X_iC%;q-G+`4U68oTEniD&9I=i zw&Hjg89cPFrA~fL&}Zo=bu?ckK}|^-aCtaZzAi@MpGl+i%qFv#_*s`nhv%A$I@%G- z7uTSNkS@YWL1A1ZBKsogA}EkFUg;jm4imB5>2yam+U9g=E{YiZ3zU_XWIHPAM?&i& zu%r7H59xB+CgE-}P-H^v$6F`)8z6P0<~X61WB|cl2kDYxG?2AOG0!3^9zU90*%YMC z^FCJk+=?expPb*2RghnljIZ4bLC*Sn4?&%#Go+B z+MyCxQZijFR85&!Nqo?uO?$4NgQ$Na#<`TxMieGb(&=0Ui=Ox5{Fr2*)^i@5dD=%zt`P1Y6av zbYXd>`BAILm{OQ!t_0haOaO|CIZJNq!dS^S9I$wkYppD|*C$1B0$12w_%IfVdaXsJ zJKxpkdZ6o|+T|-XG%3;oR>T(%`?rWA(J6Cu5ht_fu0UqUG^RObUOJ&{mt(nU&W7Tc z!*GGj5ZK^PAkOR!XyZ*rAFYV!ncz>kP^SZDNL48{I&M(S2c@F{~F!4`VrnCi%;P zTwC(u_{zdCk!^a;Oy4X~mBn9J@tqqYB9C`A(t?$&Mip66lIaeo7_md`c9b5D z3}>;)fQ=AUSaKaQYJqBHmIr9-My}Y9X@T>7TUoN2 zP>?4nl=cEQs(2YjBnfG(Ht@Cw1ixEA;j$jf2Rgr`kJIAlt5nm~Nq)M(&a zNJ3tv+B0XxPtWq!37wwBM1?&)-g&TRXQ_Y5leV3}=yWp&mv^gBC`lZ!7TW4Odr(2c zpaQoYWE^N>dy=-wEToM?8Zms}nq&)Q-rgECI2@Fj-h`zs14HI_nc$bLPhfrrCkiwA z)4a~bG^yn@fg!UllOi`QLjh>uy{5v+y<6zOS^=ImaC(w1k?{5)1~OaFq4wpSXA1fC zT+|@FEGgPsLlHW>k!;nz=giR@Ve}Wde22ZrTvsRItzE6p6%BxkRBwuYEU1C!qZ83S0reIcREyn(yH)2p6+L2HrM8nK%i|RHTrN-#B z#DMmg+o#q2Cbhonb`Hx=!|D}`3W++Ur>}Svt2fQsPQ7JsolY3=>X?PNOqOD<$BhvZ z#x$BGcR4l>lLFBh>T)Y&Z{AB>sH0`alrWU&mS$6okH#8~UM1c^;s)6^9c+Wm#P&2xc3pHmw{maQ!#xze^{h)Fx zJh}UTVlfDA;1v=uQHyd-f?T%BhObDR@9P{cr^=ivOG}xf&l8T7F@8Kz&$HT+Cc&~9 zWaEhzCRv#8&=<}FU4$|%=ur_XQux>=*~97OEZ^6k=Jh4E>RdvMtb&KK^v+B!N20fs zAsadFGJxz%^pXxUu&RZ8ZpIYmYV)%PUoh8^N+#SoyqtQ+!e8*^!F zBl86ysJL=B()yxC6?8rV$4A-GXc{b@a)3gD(O!G@!T5_@JOe^!D)}jz3R?r(NR>@E zC~_@yxrB_r%BvZc9&EzkRygkM#Xa^XMAAn*tfz3^Yb|SX;Swb2AEO{=eJNm^` zC3ZI0DbFC}M`QT_US;x7i?yJru{s zKF`0%$YBkl!-W^H9~?P_NPZX1Vm~-Q5S!165{yHRaUIaujKh-W>KnFW!Do( zLhOpFUaMdJ$w*EsXGU|N=FZ-lJ;Pd6su8u`aj)IvcO%zMfsXS^`>d>WYo{X5DS16Iyg zWOM`A@&KlIyeF1_fYe5IYIOtEN^N+|;MyCpEN!0R04gozNc6!RhBX80MznE3J0#4T zcA4y)JNNgGF{Z_kDl>N8C_vryAbY+Eik2#Np9F@}TtV=cc~dk_+fJ=g?$m3s3fWfx zR3ei8W2aP@JZK8gy6DU-yE(@?z?suzu-?D{23oBd77i>%46Mp@IofQ*DREPYKR7GC z>}J5ExaAU8lI(`khEtdoq8Jr>xRI&OJO5IG4s*1^PHnQ6Wra8NLrWgg^dO}9$qkta z@{Y$0AB`7v71|8!8c{E)mP@Vi^*2$MN#$_u5`3LlkEy6X8`{a9p2BmOyJxNcgkd2*A(80iv=ItAt7r?40O2%t$J$0@< zphwdtP%X$RG>8n6K~~UpOzeJPaOVyWu?9qm_*o(tE%0;&^g>NS@&@=!N(XB!(M?`p zLN_I#sv5!Y?j>O%y3HTDndb2*bYR4;3)?;Pj_+HcmfI0p!O6ZuBBrT8-KJyfC`PbNC{Bd-~|bsHS}K_g(4gD z$B|*Cg_eZo5X0ItyCRrm;p&9sylFo(hvg-gQE8vRI7U1+QaYLFbaNh0!>BMl!3;s4 z?=4i}gPnRfbJ-L_oI@?P{ZAF=%TODa#pE8AhL|}t>@UMWF7UUHXwsPytg2~B0aNgd z0+#k)Bak(kNS}P_z?Q6ekgi*0qS?YCl*Du`Y-mMQ(&z$RkEDi3Y>=oV!4s<+vI^A& zH=E?B_v}CfZ(GG1JdnHItE#t?56k;%yd#YWf2hAVQ_TR>I9}A|1NI^>k-~eCy=!AtF+oha1%fL~Cg25i()=m*%vlWQ^se+9sU!h?jJdl3dE z9@t#bhrD9efnhgulnQyfA;*fZ{NfCI8{4NIFL2ox2BK)x$fcQ~ud$E<7UR1d9GTTL zk`;8!8>3bsKR7iaz>8$ zpcL>86m5&vfy!1g2c7L1tK}lQM4cL^{CGL-76O4)T4%KSH>tI72pG!*Zha(AzdkHh za>I|dk%w+=L*-2*4gb{>c>eCI(fh=#z}oA=M(uPVv1ni~LY4?2UNr!vRW2M_m{3B1 zdLJocHf9o;bLs4s{8vW?M{Nn`a%AUf z5|sYUCAs#*Uh;lu&VxBBhthq#9Hu=;UB*^c?n()kr6qlzf-N1PWLi3!DsqTsckz<6F2%&hp&4=a z#$}0EELJxx`8Whe0x$xq27vJ!D+`r{r&LU0G|uUnPSkz`z&iPdpmajz|# z65E*TIqEa0wRk9o)mL|HLs#Kl_QLUvnKn2*RU>;Jnn0F^dY*!peYodFW*93JNX%1F z&{{;bfXZthsl|-X6DS>ButzUJT}XJOFc^6%7;)&I5S-0~8cd^-)N9e~>zwr*F8k5V zb)=*w09$rwSThL`4{=23g!i0c!3|RU|ulH6MQR;?wvw5u|bGd zBq)#WMequ=9+h$}8&&*5fp1*Ot%oXAo0NT{_g0x9DgFDcB*~#F>9Gra_m|E?akkK^ zV7VH$m`q1kHiEq^aC4?BigF4JETF6IdZ0TnMMzV*ngO@c}aOtx7*!FE+U}HBfn>!!oPhO*jux%gWeLA|(tIMkV zbuJxn)^)Bfa|@QYyfd#)#NjdmuZU@Gz=o!3I^aQciDn|&B6ShOBJ5Ifu97#$b%zsz zE=jg)KHEocmQ2Dw`qtDO{G%Va^o9w-=-HCe68ys(B?Jd1!^J1JN>9O8n-1X{bF1M= z|AMzuP69Kae~{LUHQzSVN(eHg$fRU`iSafAJy>E!??)c-a^r2scjNY*Y|3_@X1r;q z;}c7#o50@j#v6Zz8MXavGrImArexP7Gipw)F?-K9f!Py6jbZAu0=81J?B8`HPZ1bS}8$3ky2qh8x&N)~^}jN1DVW3qRfz(XH3 zr4N79c=z37%zupD^CTpFn=w&8TgkG9_E?GlAfzP08W=LDvV2*Z6=5jDOIS zy!MdsCVdw9eirFJk9fz;3LM=f6;iAyG-EdE@S3@ z$&_ZlWX#}~jJN8`CQ!fIjCuVr^u^=GYku66ZiHLA#{|Ybfw)haz>%+-l1X1TrL(^d z+CFUps|L)d((f44{~c4Z{O`dp&znHm_l;?O0rlUHGJar2Z8~5|Hva^?bI^=h{8Qu2 z`I#~Me`W&RzW_~sfw(V%CjV|qQZJcNn}20SSH5Bb2VOO!8s9L1ffCOwF7--Rjqyr0 zp5l!Tj`K=4PxM9~I?Edsd6yTct?7bwkmUUkMRt%bV^?o$~r z5YKugtJZnmed|0ke!b_R`K4g_QZtT+9gUNb-+zGuWvfVffnRSBw{L;Ci$mfbS}pG8 z7I7;h;_i)#Tfa!$j&^a&V&e9%5qEK1+`=k;@v9;OzoPDw>V8|@{p$W$-Ivt;mAZdW z_f2(AdP?$}pzaKHYt_A2-3E29P`63l>(y;hcdfb^bvLTJN!^dA`*C&q)ZMA>m(+bi z-EXVAU)^7*`--}6s(bR+q#cvgeYd(7t2h`Pqb#;HB z?oZXV{Xw;$e>9QN&-MrPCjFCI8e{u~CqKvE_7BaK^v}k({Z#00``?yp<6C~P{+638 zU)cIsf6E`XKGxszi7nUqTYf3@xBO%Cp>Xf^4zc}Y+pE!y?KdYrQW|5&SB`E{Q_J_(-_qHR1M6?;W5u=-R@nq|1IT)VR(H0#^VMCh?kaUV z)Xl2fqwW@Ux2yY*y1UeUO5MHc?pJqE-NWi0Rk!rRQqOVfPExm0-C63^tJ|pVb?Qdc zO{u$4-OcK5Q@2muht=Jq?lbD{Q}>{{htz#dU9&~%Iab|?>P}O)R^2)3E>^c$-PP*G z)$LYyle$~gy-(eKb$6>fpzd?(9#Hp1b&sg~y1Hc_(f(IAsBX2ov(=ri?s9cksoSA$ zR^1+Tx2U^a-G|iOrS4Pe?p1fcx`XN-R`;m7rFU!pt2;^EN_A(cTd!`Ty4R^2Q8%UT zMs+uK;<}HFeELwg1(fsO~g%Yt@~j?qYSD)m^P_T-|PU zH>tZ--TTz-S9iC%1L{7f?g4dQRQHIwud7?ORr_Dvpt{xS&Q^E6y35sFrEZ71S#^8V z-JyI0-)>JF-VSly%QmiB7@t2;^EN_A(cTd!`Ty4R^2Q8%UTMs+u< zyG`9bbstuDkGjvOyHDMN>K;<}HFd3smfBh@=U%*DLhw{k-tXX@dFWpp(szZuq5hXq z_2K%b=BLH`XYk3tjCR>tR)5t(f0^#j_DDbUjF79tT^?N~U)FY|hZu&A!Klb+gQmw!BJxSyB6~sH;mah@dR=mF;-sFOK7b{+R zhb=+e%L?MHP`slc-t`6XZc=>j2lDe)%F%r9IJZ|X4dVj2%m?D22fF!9v;EuAf&lqlQOeai&HL^ycwFadAjz3IOE z2m_za$Nzt0wf9R6wyA3#&>AU!m3~q1(t?UM{X}}WdzkPWHGDkY@}pm2`VI}hPs0oO zMN$p_*Vg;MZjGb$esQ39n#1Zp=Nl3pQFr1ui^sRVHoxj;#OJ`@iCenY#t?VMptNA? z^Mc#ogDf#eL}*&s^O~+h(EtP3Gi7B|F(uV|0qBF#!pK6f7I|T zKbCM?{!{k~v|qzZ@!lc*Z1|0z66m0YA1Mg`lZO9`&HtdJxAj}_HLfGAKvhQ_@AobsejE6|Ko!a zK3T)3{hNeaeth*I37?_iwTJT4|Mh1j`~sW)rTp-npO^59H2kT8@UQ)?gwNOT*It(N zmOg*=h=ecG@c1t!Tzrk0`9*=Q)9}@Y^V8SulJM0Uey||?$d@F%UBl=6I=}u`e_6s4 z8s70re*WLsE#X}ne%){K(>H!a!o_#^zxTc-@dmFFx3Wpx9)165_>{#%hAXx9R}xaV zj_Ix&E=BSDM|}Tl6!^i*Lhl9tA?^xwZLT)_g;(wm9?ZwwVrzf;3|Ru>O{Lc>>ui-&(- z!%a)^@E0}wnR!AJiItnDll&JUmReolk=o6ffV-*Na;v+{$ZP11oQLM~a7A zd1~5@OZ3v{f5&QZ24B-$gU}#ez^JCrmwU0E6_J=_;B;74Zlp&AJp;-+rLD^ z$F7z76}Eq+hMRct`bRZ0+nWVp8T^rx}@A-{{ z7y8@vxb?qN3$A-MAzsjov*6X<3o^?{<^7Z0Q>lXJlb@y%% zeEZGf#@{b)O5NaUDW+TT`_!%7DDn3Ht%R37Ebd|T-(wf_%f)||hL68R(oIx%zPb;o zyBF`a)34(iahq?I`15j|;E!6j|f6tQq{uwC1 zZM^?&uBCfny^{MSq;ULHey}iRaeTAJ+uE2Eer{@~q$cib8?-f_pOmzcJH4nHn<{hs5_p=d<= zy@;ZL{|h{a>z~{ISwdzP)bW|)q(>#b2lHqB)k|)+f1c9(U;8hX^Orh)&iJYHkCMeF z^|=2}`_NuN|8)PE>hZs&e>UM8NX34`jh`#Ee+uQ>s{hA*_a2>h_Px#d=a7xB{Zqb8 zYP?tL@w&S6pOV%U>NCaK{O9ni{Q93Gm$%Mixc>Qs?sN1PWD(q3;PF3&&d)Ds_p|x< zTVY3SKWoH^O>a+6ng8AV5)SXn$N#&q;ri#c|CEsWf`aEX50@f8;-TY=m!Asj->W76 z{_6_LDX7RKwKo^09}Yj%{Pz08=3~tR7XP1i3#i~1KU3|dh4QUuOf7C&l&VdYr8aw4 zYaY$>nj4zuHqBk}w*E^6o0p(AhXN~*lqx{(b#qZ6$@ahUcM;`?|K=f2{G-3k3sG3* z>UT8238M0;y+n&(>bj=+XbflrgqqMa4^SEY)9`Vr*{Q{;T@rcuibX@f?xw}59xqji zWVKBTQf19orn&*MR~fv^7!4w@0T|_am2~iB^`Ye(<|UKyQ1gaV)LeCw*~&f}veCKe zba;b!vtPr)u0(4#mP|N)3%XlFbF1?5AA`QuFgc$*M`%HSfV}G&TGQ)uEL1dN7Kpqv30Qw$mQg*FrEx&9r88CGA?>$GSU@~ zI^oM&)P52(N}-suP0xTmHtG!o%C>HG^Xk$P#ua)FDS%=Q zDS$kWUBJ3zEMj^N9PvB+G|*Oi2%{z1m~0Ibb+-F;L`_1W){eEA?AlNyoL(PGn4U`Z z%w)r@Ybhwy-W5(qxSPt2 zm2*R{&E_h)SzLfPo$1j=gB)MSH2XdZhqn{N84LU(dnajxgkn4?X z;;3a_x+A#=%UWBz(&;FMkVzlSc{fEf*<_kouqVKTr?!E3#0UTr%=4S`f=EbGHe2(2 zWf~#>?Row=g7)S7Y0g{FO_BQ@&vYysy*iN&$1=q46uL`8*M;LDt!i^eIvVC?>~R8D zgx5uLAp;U3v*X;%e38efg)HB-VP8cK>xZj2wbzL+6W=_vk6wNN;XMoQRI!X3tQ{@he5 znqaDIc6{wvalFvAJo!=v+tnW;4?@98zP=&8Hl#l|r`7#=LAD*c#8_~oCz9x&bM~j7Hl(43Y@SaiJb4ni!KMKeRwataW^H^n|T5T;1!nDH#-JTb)IGo{0 zp)b#ONg~EP(4X&{S;FkmD$+48EXP-S^8A~kDK2#&-#6CUL0UjqWZd520%<8njoFtM zLFtnt!-4!@8MTArDa!ub$eON9c1a=v&7V8}kQ;h+BBgzKM7=j;NVCat{890Dq;75s z?itN}nlKr&3V2jJ?K*94=IVwOvnY1Y3EVkOK=Z=c+%fq9^P{xD zYYb;&iSxO4@`Fk2FZ7kA?Lz~vfNBqodVV+?rsRD?W8~Pif4D$LCEt}F2Yt~PO|)lu ztnSGVgWQg$6I8=o5d+1dEJ-Ynhh^~Y%@4OdC%z;k)6us45pWf&lCF3B>TS)B0@<&0*|-U*c_jny#spLk_bSQKX4Xt~Q>rM~_WxGfxGQGA2~TC&OYT<%fEZian`J7NsN zu)ek$2BYz$tU|XE7Kyi7e7oR&)%pZaLY1Vv`UTBw;Kkf7#=5ZVhDJbeo1f1BqY+9s zZT{S*YnLnyEx4|E#Zrp8cZ^y_s8Zyy&-Xwzpkasn${r{T;e|Ys4B7xF!l_VejG6vW zp=W5Fu)~r304+rca+Iqogr?f`lv7K{U;tz@Ay`If+^vj8J6k(s*0yLT)1c3yvI6c` zv@^Mm^V+3&My8rQgr>5*b_umdvzb&B?TB#?4!B`!qZ>l4tj;m@+#qD-Cfi40@N4N} zdK_Rh*RnyzvuR9Al+z)LO6`wWRBC@z(TMbK&xw?EHXRp6*sN%xRT6JiJe%yIE|s4b zGW@1ji8*{aUfDSWB(Qt~sWGtakkP6I^AN33#t7O8!lLk#HTj{_O9w{JZ$5hBsyWqL zN;U_!1{xQ?ctR?*JJ7i4#D4Ecpl|%))3%fx3G6Q09=PtvsJ){HN;jAG1fD9{J2tp= z^mC=J2X=b{CGmaUzLMP~`%517`U2Oz7iFvA%Nth@mTV2YSia?iy(K*-JnZcXlJ!IH}Cecop8kT>qIwUwv@i+ZKr_O zyp4l_hesbN*MwcD1HDRX zH+h>%x1O-7@6^MALnVWyhk;gZ8}(f2fVcRtw|I|N`LI{J^@P^~8xMKi1772{z{B1i zZ&To)_mHNdqxkuXKgG;s%mT&jJ?^U%xA(QLSKPjv7+2iBlX$D*_FcqY#qB$YpHV!e2h+c# zxV^{zjNlVxq_c?n$#~oPw+Dpx9_1;D874vgx4wl z`eMPCDn925!9$AAzf$mZ7GEm(Cloi!1%Fua#d^;{|kzDzfa;HR{WWjf|r0V zh@a|j5d0mAzovMd;=4lp4|%`+nyI ziraTO=PGXB<7`sgzPs6~xP4zUt+;(h^8X55$#sg`cP4LF+`b#RRq;*tN%~JIZr_9KSA5lHB>bz2*WNGqvx;w1{Ktyh_ZnYP zeB);&{%;k}eopX{@!l-)cUiySQx&)GdCXJXz87+hjj!*5v@34k3E8ap>l*$E#ScCr z`9G|deeC-bxA(HYq`1A8{2j&Z{o@}iZtn}fqPV>` zJnAed&)%Dzpt!xiIzw^$zVoGu+xL^NRNUU{e4pa>er22D_MT-*@%eh+vPW@yAM$R+ zUmOtneNu7zZsr4u&-sRgKdg8}@h23w?`eKV@uT0A_&-wIzN7i?ire=zf3LWGSF`kN zp^v>6d8*>}e&S@s?ft=O#Sib3@@6Y;-{V}QxP5=KS#kT`W<+uOzGhl+`<~`T#qIl< zcPVb)%lw#)e^AQ*oZ|L9%&#bJ-@klHar@rocNMqqTmDFK`<~??#qIl*M-}(qt9*yh zYuZav{#eEBdz6zEx9?A$r?`D@@>0d^`;v?dD{kM9yisxcUgR3Z?fZ~f#Z$kN z`rM}YxIYTMP4R)(1%E{Grvey+_vU@4=esB#hc3{{G>@jkN%Sc z4=P?ugB-tV#pj$GzE<(nRKYhYUU{zIA5nat;-6C7zL)iw;t$nG z{1+5&tQGua#V4LG_=(U{sjBvUx(SNg_p@phUp-6W&sF?I#jjNS&_xp7rnr3v^A^ST z*Gc#X70)&Z-mm!Je8In__}+zre^>F!C4wJReEj8tA5nZ_qu`^VS5tfH6+d0^{Yxdh zT5wAb_RNTIg__*Tsy~A%RZr?Y2PI3F5;SUwJ?-%}?;`Y75 z-zxrpOFI`RDT=fGuZT(vC@RTE6ciN|6&4l{5lIAgK~Pu;3jq}!W_Mk6-jdOh0fF<#eu9rJpI*9~4T^?JJ3cYA%l z*IT{5((6us{<@`J_xJj*UQhJ;A+I&x-Sb{+-n)0b*8F#yz1BQ<-+8V1@Y)>|9WTv` z*V${$kJrO%&6D?QuQg9zmDidtug+`Dn>X8Q&6jtj*P0*iMz1wb-WsnpU*4-;Yu>yK zUTeO*Zxr9pm$%o!(f(-uyd%Ay>-~eh-tKjpx^+p3=GBp{my{_nije1$*5dn@vqAFs35njf#sYyJP6!Cq_LxG`R9 z-nfLn!}n%PU-Qb`=(XmJ`J308U*r+5HNVIUUf28iM*ih>8$aL0 zcCWj6z0YA$dV{<^((4IcmwR3B^?0u@^!g01mwG+h>y2Jt;-~9|=cUC@4AQrL@_OIS_wP(!TKvF(w|??^KmS|LON;Lw z@YYXW@ALV7pXp1BpT`v}{HYB5b^^?l(A&r35t(;o@rBHsGR>w5&hPcVIH@xvp$z*|3geZRQF^U~r!2+F_plh^kS ze*a+l(&C$f^sS$~zK`&Gi97yyZsYP(yyDYOUf)yreTBTV_`Y1h!k@~(PhQ_&_&tWa zG~@r+@wa~R`d-8DH{_+o&ke3W>nA^(iD2RP9`e%SS4Qqa{;i+9z6bI95P50wOw6QwKarPaeDV#xex)XF{p9t1ir=fqOEW(C z@cOlW^7@{|?_1=h#fSTE{p9uii{Hb@ON;N@8kxXC&HP(G`LTnYyM*7*$V+3@<-a3W zu<(bx^^nE@8iTu7uURt~ZaSW*|1Ha?_ z_eXw@biCK%S91kRfj55g`d-QJm*l0n%JVmTSNy>u-ulVw`zF74l9v|W#nDCH`pN5i zD8G-AmloeXIDghpUf)moJ(aw)_>sZ+vwrgW-pcQ<f`va!-}=exdp*D3lb2?ErXOBE)=ysF_xZh_ zytMecxq^j1OyBxl`o2E^`vEhJV4)^&{p8hOg8e7ROEW(C@c3IldG)Vge+%-`;=6MN3xAlt^^;eB4EE0;FU|N& zKYV_&e)8(S!TucNrNz64ZIizBlUIKa_WvL+Eq)qUF4WAw^^-4|4a36zBIKpH%KV4r z$NI^uKMDJnke3#}0Nda~&GfCG{L(qjUBdn->op3TKpugVBt??;3u#CGwe@8UYhZF{KMx*>nE@N zHtc^xURwMlY=a9m)3<)|O>>>Qg#C5MOEW&x5AVO$PhS0b*uRIowD?KU<_qatKY8{4 zVSga<(&9%4y!De;ehHwN+i?IzZ)J)&{$*aE{`_GY=W_+d}wx6w^e6K$t5*GHiBQGsJ5xEQLTR(aA z$7BCI^3vkN`qTQ!tN$MR^O2VpKO-o=)=ysj{n-DHytMeQgZx`RdG!xue?jun;umlQ z3x6sDKY8^hWdB0)(u~jJzm_Xl_(R_M$*cb%`y-NnV zaG_@U)=ysl7mfWLUH<(AFTT5@i@f5~PhR~Y**}uJwD_k2-ulU_|0MfUl9v|0o-0`R z!~9!6dG)ts|4Z`HjL+lO4aS9nE@NtL)E8URr$E{hH?_ujHl0FAvhUe)8%c+spIP z;#UT|^^;eBTK2DH`qJXV^Kbp+)&G|Lamh=IeYKM z4^3WLe0{)MKY8_+X8&pO(m%ypKY8`9W`Aq)(&9%3>03W}^~YxaZ1U3Ldj-7plUM(3 z_U9%qExsY(t)IO5d!OuiY4PFx&-%%$e>nS#Gkt0C!-Mp#pS=2$vwt~xY4IO$1q**F z13!87KWBe*^3sgY^1C{?|64!#57r_Q7WQ8!FD<@J+C^QZNb zSATf+k7xSQ;=2XuTR(aApJ#u1^3vk(4tVP)um1M;dtO@n`hd57^6H<@{`yQ`T6|xw zVBt??;3u#C{BL?*n(=x5Zs7_R{*bqR^6LN3@c>L;n(@hZ56-{!lh=5GZ#*w8KCFMN zpS;EwaJ&K2mlhwkf32Uq#v^ci0(oiimt!BeP*(!XKt@{p2)s{cHW?H6DlKbI41J51(JHpM0;4*hws3dtO@n*2rBre%9~O z|0s&EGseHT^t~3pDBv|dh<@@KAH?xOUcpS;E&aXb=v zY4PFyTR(Y?SK|03^3vjG1p9COkn!NRs*Z3@s*CH>?_~e%c z`L}-Z8qdY?UF4<3-_8{*{9*dmPhR7{I3A3=G~+Y%UrFD?E)>;o6-%D_)v)0qvQ+uw|?>(Z^-e7OkY}jhamsfPhR5_IbM;xwD`3_`L}-Z z8qdh_jpU`phu;sZpS;FDay%q?Y4Ohn`)~c^HC~eAC&^2TZ^IQV{HYB5+cr9t_% ze)1Zx%JHk@rNuXJ1q*+ezV(yW_*Ra0B`?kROn)O+u<(bx^^@0lSdNb+FU|PmCk4mf z`pIkjEXUK5mlhvBKUhC`jko3aTk_K4!}D+bYg;6hy)_{nQLFUR+i zmu7tK|AJuut)INc|8hJqd1>(@1K#?{YrHVW50jS`zZQAmLe2bJKY5KW=6GZB(u~ji z4~KD~CU5=ZH6EGclgUdnKKUKa-xzwL?UC2`WsYYiFD*Vy-}=dGyfeo?lb04B-hZs$ zr9YN2OG-Fi+NJNc`0)I9Fn;nHPtEbwQ1u@*1zr z@!RC3#fSBm^^@25ZjSdRFD*XL6)gOz4E*FZ9-QOD$xAan&;JY<7i#j>PhR84Ii8%n zG~<)s2;)Lc-ulUFygA38lb2?E^5OHB^^@25bdFaiFD-s8w!wv(>03W}jc4chcJk7U z&-6#axKNX~e)1as&hhZ%r5T@m2d-e@4|(e+ukrF6KTlqo@yUnf&-%%0d_Bk8lb04B zUO(1PUgPmOKA*g__|{y(!XM_}`pIkjKF9Numu7tC{~Z_?YVy`kUgQ0zcwSokaz__= z>nE@I0XSa()0Y+>mS5{9Kf})_!1)E-{(CLHDM(-O=_jxG2RI)Ad1>)s`@#CjYrX=` zUqD`3e0cx2e)5{%fb$)Ymli*gD_Hnb8TiR-J_OE>Kwg@wJb&|GT&T%gKY7ic@S5kP z#m^;-MZEQs*L(|{e}U;six00K>nE@I8NTwowD{p%G3i@BdClk0s!NoZf@^z-~byyi>c z{3)*d`T0r2?@<1XpS~byyo-a{66HR#lOhRW1(jLt)IN+|KWT<(!{4GulbRBcwU-*mYuNvvVQWKPwCg5mlhwEKkFy2`Ik5!6OW&?_yx!V7i#9; z`pIj)raI3{i(l>NB5(cVHNO+*dt&<1;=}9L`pIiPD9#T>URr#3{H>q7=8wA3^U~tO z_Jj44*L+iJJTEPNQn3HlPhRs=z3O>s@wW%O^^@0pRvSDoEk68yY5gw$vl+9bg!5tX z_*Hlrl+?Vdv|jw)1sS+xfbv?R;I-cD^oZ zJ6{*Iov(}9&euh4=j)=j^L0_%`MRj>d|lLbzAkDzUl+BVuZ!Bw*G1jN&!5Hlx~RK( z&H1{h?R;I-cD^p^dLN(jbx~jFHRtQ1w)1sSZ}fi7*F|mT>vFuAuZ!Bw*F|mT>!Q|t zU7U~W&|p3;YC9hnwVjWP`lsgOYK3}lPgEkB?~3hkYR#X8!&L(Ly{{fijt+E1pvMO~ z9q8GC<}f?E{aXY5P@ta=^!h-573f{Cal8Hf0^KLjg9BX|=+gt84)g_qUJ&S|fxb1+ zYXkjapg#=s7lAIp2}Mxhe02=;A%X4_Xinp2`SF21GthGa&3ObYzdX=)1^Tf-zZ&TG z1O08F+wa^my@LaNOrS>w`t(4j13f3uivxXgpw|X^U7$Av`s+ad9QOiy{5l7^U!aEv zdSal@2=vTAFAntWfqpX3uLb(^K<|WpI5z+70=<8rj|}vHK#vM^EYN2K`kFxB9O%`7 zeksuZ4)phd-VgnR?Edu(^s#{+5$NhbPYLvefxbG>HwSuEpkEF22Z3(2Tg&|K8|cFW zJs{Ad0$m;Gvje>#(6rMLrP};=40N|Z|2oho1-dcP zxT{6WoWQ>#&<_Us%|LGrbSu1=wfXH5=z)Q*40KJPvw^-W&?^FcXP_Sq^y`7%80fD9 zy*Jvjc7G0vbm92*3G~1~4-fSCK&JvdBhVKF`szUcG0-aleQTia4)mHpKN0BX1N~~C z-wO1<0=+HLIE2x%(;n`47IcR|9~$VsfgTpKu-*GBGA(VeMz8~1^O?6zAMlV1p3iH z|2@#J1p4hje-P-+fo6NDGi-m@0k8vM2gAC;4uKsCI}Fwhb~x+^*paaAupY2d7~5FA zU}do0us*Q9u%lr8U`NCH!;XOsfUylW5cX@>Z(zs42EhiyhQP{U6|kYOv9NKl@vsT7 zlVPX8PK8Z`od!D{7K6oMY`@jO60jt!7FGwVhoxX=z$U{QV2!XeECXwToe9gq@~~zY z+kR7F(_qtKXTi>f&4A5>&4Qf+n+=--I~R5yY%c8gu=8OTz}RNI2zD`S9_&)sWw6U( zSHR}Ou7oXsT?JbRW4m$@>>Aj$u1MEiFO4v=XzrffY zy#@AH*ln;oVRym)2D=A#FYG?p{jgQA2VkpVYhVw;*1{f!Jpp?X_7v=C*mJPwVK2a5 zguMiN8TJZn9qd)uYp~a0Z@}J!y#;$4_73b_*vGI>V4Gl@VV}bO1N#iN1@<}Y3)oiJ zm$0v3+hAYAzJYxU`!8%e>^oQ|SQpqquwk&{VZ&h~U?;#%gpGuaf>pv!f{lj#7B&V} z1^XRr5-bb51a>{_Pq15Ix5Ms$-3@yP_6Y1z*kiEAVb8$+4to#w57>IxN3ic<`@uTH z_J|g!O`z!Ft2`!1}_Dg7t$P4eJj( z1~ve8ENmd`*RbEfj)M(?4TcSYmBT7vLt$fK<6z@q6JRI9PJx{Yn+Q7%b~-Eui^Hm6 zHLwIM39E(G!Rlct*cq_Num)HoEDg)RnqX(ba@!Y+ed4!Z(2A9f{d0qiQ+LfF-?MX+mN z*TSxYEr$IOwgk2mwhZ=X*mBqk*bT57VJl%b!Ttif8FmZoudv%-cf#(1{S9^x>|WS? zu=`=FU=P4n!`8qagsp`=40{6hB!M4G^hJ6G37WQA*cG!0? zE?r9S@56uOzXkh$9_;^HFyai!WEx`pSL^%-vE0r=76{!sVtFlBzvSCC%*;vp>`p5M6RKDK*GxI`3{O5Rgl-wqL*8KXk zd?8j+;lq-U zB8FwMjrgzDo=5HqR3R)gD%qIHx&uMHl0*X%-67^lH8suIY%(EoOfr|xWDA)?_Ib>) zjkGIF+!(?tGx*Q#K7GjO-`<;m;_ea{AJ3+TPLq3lHkD6~OK0P$9Lt9bo)T|}`IMvo zS6>LNicd+JplLO+!TEePRo$FVV$&IS-mz1$5sgimY`$esI+2{#A_Ql(g^mtVi=fI( z9-C@NHYU^gWTJ)Zq^g#3N-|s9keS*da7;6BdhZ9d@?pP z&3{49gIx&1B{H@?m5YwKi`Bwy>Wk=*`y)Rplfbpjs3UmTi&y;!9LFsFaXtPn)q+gCH=+bTqs&q4XGNpSr?!kVBLp(RuyPu5LA^zp^rt0Ma;N#E>)LK zCKxe@9J)rubFSj@oBv%Vl^C6OCC-J|O1MQpi_J1tm}-AMJk4}RbUdSN;cF6 zx$=9t!#*K^pu6x;hR$ft<#9>lDs-nJ3Rc;O)VOq$KkBIJczchs!>yQVqgNhEQVjVrI}8-$D<*58IyBpG#NJfBLJ*>Kh`#nywi$j}p0=>(d074dvL1d1iZ z0#T@G5z2|9H!_*7%ex}4KzA2NGoc-~7Wqb`M>oWyYe0}c$dWn`tQoS&+Li@PfnZQ; za2MDJPDb}$-$)yp#!+#1SX3OY*@oM7awJL%?_5Ao55-2uv$>=@ci1;H7^Y^jiCl~) zb?lGCF^*#MIoa5hpB~GhnZmm{wu_r}ENJ$O%0(`B6azk0u4<^=<89 zw!9BjpgU?vv_;78*g`G_DvrGp$EDHWteKolxQh>QV?&x#4GGr_F`2-j^EVns85VEI zC2>ldc|(r^^6>`OIN=UNVXXfOEq+E~^U*>r8(r2jHrrf`8LO$EoXby+CF0qsDITy` zGHL?GVvV>}XK^wam}|m;&(|`xlX+a86tUWP3UwkP6hi8n<5@I47?i-any{L0m=deb zWb!zDap>xNW-4~0`Yg1)N@6G}s8#UWkl`~^qM@+jbCPJtpfy8JZaONEL^C!~>m$`B z=<8ZBc+B__m9e1{##U9rS(|cO^=sHJ8e}n_jC1-RR$oyhG^UzjH7OKw`lVu1c#4Z5 z9&_1cXr2{N!Z#8N0cgPTNur>eGB|X+c@;u(2q^0p1oY`01oT6N)B-_uRM5@gCK%9S z6AWmv2?p3rOhMZVTa3;uR@}kBBaPd=#$;nnJ@U-oMjUYd@*xnvjhQJpYFNqfj?$E` zM>8i8t4ro{O-UTW6wajrCnu-JYFsO*7zU~s5u&;oN8Oh%tmLz}(L}#YmzwF~*PVF$ zHn1?@H|;Wpm3*eTp(HWAA%W25>R2_ZT^{Zf+61v0cf=ZSpKT#yXJs0zQ`ij`$~XEnZpkUir!C6kkYH>mG(b9#uq0@dT8QL|hn8baJ&qI)I(^M)>@kk0xEgmM;DU}to5n8tn3-%8*>0{S6+;vr#8^6mR~*%> z9gDl;x63_^yO$`u;INOyO$6x_^HkT6sm22^ioA)RjyD3Yc84yRZf-Q&*NHSig`?`j zP{O%4XEx*E$K|7jKM6L?-4-)xoHrENSS?>H#FEo+(WjAz9rCENT#K_)IM1lUCsYhA zA2W0qszP53qMdFLEuWpvEu%@Ek0sDjtI5}*f9D4#VbR!B7nDeK1v!!Wc@Z-y$WKOQZ1tC-D}rLzF}dqE>w z&arA#=B_woYGb^Iunf7ECoKyluNZhs#7f@xEDk=0v{##(uiTv=_wu$7UN>Y?CMX{3#^-?^?LV! z7_GC3p>SkAjwe($JlrO52Wp}55L?eO=$-wVEz&3yC$X^I zX53Gr&~zs4n>sE>F>uQ2hSP0%>3y5kiRqkXVuC7)F zvR*->DA=q*%~ll@Y*fK^n>;QpcatFj$Z{UUazSa_aM0kZF8Z)uWFdS~SZi_luD zPEd)u4X8XLVpPFk#g|&Fu{alkUD@^pI=Z38bAEGfQ|4@Vv}Fj2xocUnZCBWH*BC6+ zmQZMAxh5d0<4CxiG8!&M6#iVsKN6sP)ukm8cv6mT?~Zd9O|^SrL6VKKD7^42!(cte zaGj^9urt+>tdFM?d}gkW;nYMt_QBPkk#bGdOq$R0+y<%<)=5gMf$x1;*`l(nE;iE{ zv#?L@UKYK|;hRM7iz#L5Ol>V{MD8fgW%MQ|ikQRo6$PuxV{|4Mg*N*aR)t3tG>KjN z#K+NQ(aw(UfHCYZjujq|W2}IqRH8Fo*fsZ#wMgJeAYYGW78`54gx!N-)Z9Xuh)+(& ze6!Czx4E2Dqmj-`;`xIwA!1Qm)gAE?9GGcrYft6_g?GEQF<+h)TfM}2cf^79fqeOk z2j*zY(T$U}Eo!VrHUeF8MV|Kwuu%fJB-)RBV&>5+mLsgzWU|o%hpJ@WwOFcfrfV~? zJl~OlV?u1oWt)%-w6yUSkyW9;Ik|!rJvuN2ZGvaBxbD)Hv?-_3Q*ba$%(_$qZgbK1 zj5@w(b4}_Xl79fKiKpXeoEEM%JXl0mf_nuLt9IW#YuVg)Usv2cHlK3eSE72_zg!ud zi{7)My2%tS8kPaK*KAO`^6U#&iz^AI74IVp*NJ}x>0^SzW#t}kdEBPr`=k^v26s?+ zfrJj8C?0fo3-s4QQQ~T~0@scrvV0bvRP5sj_oZ-@D55HzYuHwFEl~KDNeLeoO?6A< zZj;<5ZvRdENLSoob@X70SXrD7o_Ow5_$=c?qc;=2#71HEK`RR3dx92Gbf0(SJc{EU z2@8>;TlbESfyzzru;n&^bHg&q>I`=R)wbBdLcLS0YoayPC^&%esiwMihtaoZqfHlT zIA7I9cO@p|&K@`CYE7riRU8H4dwo8taS)$^IN{t66}T2rH$a# zabdl;S?^=k`;RTA59*%%)dn6D+eS^1VSJ$ugT}8Qvrn zJvIluZ4P?d9Q3w1=&c;^pu0P@+niT1Hqiac8`LAQ6qAeI*^?<)J8sgJ4%_zu`!*4qQMfw|} zb`AA+bgknp;bixMsI(^2kSN7@=BA@73wg!;nYwUUnxN>~E(X}Upt$1QsThLxO<}vf zWn}~SBDko{eIW>pT06x+HsF;A&Y^2?6+?!cW~*!U`j`8TD-0M^5WjZpY| z5e{jK;4p(~k`-g=6I%g`D#>DmsEJn8QH5F5QDZIAIQ;BwQ_M|t=AtJ)m%@*AqAF!^ zQ^olsZ|zEpcbuq!wBuc<)Z@Ow^>0EI$kJoVbZMjexZ~dPV$)M_3onV44|DHq#=09( zc?F)GM(`0P(zyFJCed6>pcZ#0HF{I`V_`V$xY;sZ^p*jq4xi_t-8S)D59hy+gQvqA=lwM+plVBZiA`m-g$AJC3Wr_+}!Z_E#9v6N2PQv7#%z^on%hvR) z>FKk|hCL2NY0duubT15h;)PsOX=A)5lbhC~tgN(Gk9fARU*8`7nW#sfvfe$T6ry9H z1aKcMwo~%>5K>&eeXs4>l9JupBSd32Iv@<=7IxiU(h7qzTX7_?n-+9}r}~!cd`wA~ zRwWow^M6=&n%ZBnT4u^*x<~Zou{4({>C{$W!)~i^r()>%(c75u8j?;YPWsBCs%HH<)WJ3jTv8l-2BIm%rCp>tb6C4 z|H#VA_B(sp$YnhbXg_~L_iYD$a^J;cHoW-e&vVDFT(EZX3v(~7o-t_O2iKRS2d+B! z(Y-I8wfUBBcb;|Glmnmp$0zMx-}mCx=Ori2?Aq$#-_3jU?^S>8*82X_-}?8BE3Uff z!4VUup8NRgf0(mj)|Hpswe-3t_gm1g_RX)~`t!H#9_qa1u<7qSvijz+i5H&zL#yWw zIcM*ZDf|BSv&VLCxaZmvFFJFVXE%K~YQXceQrVx6-{-e?zA>f4_U;dyvGstFeYQUK z^QQO9I~@M;t@*l5ub+3q#vbz*J1yF8SmSlsJNIAl#zm{s*}EV5cy_x! zt)H3MG~~UVUpx7O^5OSa9Jusn^B0!C|K%I=j{k7-3G=_acUDuo`uw7Kx%FLAA744= zH$#s&;Gkbzb;gaK?R3KK`3rjfd+X}Wdvx6Ctp(RFzVKH)|JkS8f>pgT)Jsd*P(MV(>i_MdBbCkYj6AIz-^C@ zSp87fvjfYW^^N$nBpmerDR>(T8p8&|^aqy{Er@X2!(nH}BP@5^FErnS7Z0xpFg#3 z%fFskQ!;JIC5Mi{3_>4{HOtX;CK^7qTPoc`QBtL}g2(P_J$u<($(S8V>{ z#;eX4{mp=LugjlM{{0E3)Nh;lOElcK0Ui#H2haf{&R5eUDrI&{7$#d2lcCc`_mLHzG{`2zo2RwF4r%An@ZvM-ci%vUy{TYjfKhtsXtg(B} z`Si{G5Bb~Y9p;bhv0%X4Q|=#Dam61iTHQAMnQvE@Zs__#;~@vOZ93`nA;bRXFMq1; zviyfRtE!Kxu55d8rvckHF1dZ@SJs~2Ztzb^m2Y&Uz$P zdh2grJmQO;7GJmVn=e27?DbpEx#i9YnI}G~UEBKgmtLCO>ZA#~{4nG08E5_etu+@9 z|3mj1|9}0P@7Vrw?+rb!|7PE3c6(@1b?x?tJGJWFwC&;D>+kEmebFf^`)&Vq&(n5$ z>bs6lEZMW?g#(Wr@lBhly{@QUxUKzjC;j)8We@)Mfv>t;@j}%bPki;y%OWId|{u8TXdW{I+@BF;7;dhkP<;;r5m9 zT=49^FYoh@87Ck8@D&SJ4cq758&aJI{cMlvRrjwst$Nb4_0{_<-2cO+dwm?6|4C_M z{e=VGExq-wudcpv*4R_eS@>Z32#JXpd`;>UsXhIfkU9fv~@BjH>=7J$7evr6)e|tMyx+TQg= (3, 6) else ImportError - raise exc("No module named '_yaml'") -else: - from yaml._yaml import * - import warnings - warnings.warn( - 'The _yaml extension module is now located at yaml._yaml' - ' and its location is subject to change. To use the' - ' LibYAML-based parser and emitter, import from `yaml`:' - ' `from yaml import CLoader as Loader, CDumper as Dumper`.', - DeprecationWarning - ) - del warnings - # Don't `del yaml` here because yaml is actually an existing - # namespace member of _yaml. - -__name__ = '_yaml' -# If the module is top-level (i.e. not a part of any specific package) -# then the attribute should be set to ''. -# https://docs.python.org/3.8/library/types.html -__package__ = '' diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/LICENSE b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/LICENSE deleted file mode 100644 index be8de00..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright 2009-2024 Michael Bayer. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/METADATA deleted file mode 100644 index 2754bc0..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/METADATA +++ /dev/null @@ -1,142 +0,0 @@ -Metadata-Version: 2.1 -Name: alembic -Version: 1.13.3 -Summary: A database migration tool for SQLAlchemy. -Home-page: https://alembic.sqlalchemy.org -Author: Mike Bayer -Author-email: mike_mp@zzzcomputing.com -License: MIT -Project-URL: Documentation, https://alembic.sqlalchemy.org/en/latest/ -Project-URL: Changelog, https://alembic.sqlalchemy.org/en/latest/changelog.html -Project-URL: Source, https://github.com/sqlalchemy/alembic/ -Project-URL: Issue Tracker, https://github.com/sqlalchemy/alembic/issues/ -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Environment :: Console -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Topic :: Database :: Front-Ends -Requires-Python: >=3.8 -Description-Content-Type: text/x-rst -License-File: LICENSE -Requires-Dist: SQLAlchemy >=1.3.0 -Requires-Dist: Mako -Requires-Dist: typing-extensions >=4 -Requires-Dist: importlib-metadata ; python_version < "3.9" -Requires-Dist: importlib-resources ; python_version < "3.9" -Provides-Extra: tz -Requires-Dist: backports.zoneinfo ; (python_version < "3.9") and extra == 'tz' - -Alembic is a database migrations tool written by the author -of `SQLAlchemy `_. A migrations tool -offers the following functionality: - -* Can emit ALTER statements to a database in order to change - the structure of tables and other constructs -* Provides a system whereby "migration scripts" may be constructed; - each script indicates a particular series of steps that can "upgrade" a - target database to a new version, and optionally a series of steps that can - "downgrade" similarly, doing the same steps in reverse. -* Allows the scripts to execute in some sequential manner. - -The goals of Alembic are: - -* Very open ended and transparent configuration and operation. A new - Alembic environment is generated from a set of templates which is selected - among a set of options when setup first occurs. The templates then deposit a - series of scripts that define fully how database connectivity is established - and how migration scripts are invoked; the migration scripts themselves are - generated from a template within that series of scripts. The scripts can - then be further customized to define exactly how databases will be - interacted with and what structure new migration files should take. -* Full support for transactional DDL. The default scripts ensure that all - migrations occur within a transaction - for those databases which support - this (Postgresql, Microsoft SQL Server), migrations can be tested with no - need to manually undo changes upon failure. -* Minimalist script construction. Basic operations like renaming - tables/columns, adding/removing columns, changing column attributes can be - performed through one line commands like alter_column(), rename_table(), - add_constraint(). There is no need to recreate full SQLAlchemy Table - structures for simple operations like these - the functions themselves - generate minimalist schema structures behind the scenes to achieve the given - DDL sequence. -* "auto generation" of migrations. While real world migrations are far more - complex than what can be automatically determined, Alembic can still - eliminate the initial grunt work in generating new migration directives - from an altered schema. The ``--autogenerate`` feature will inspect the - current status of a database using SQLAlchemy's schema inspection - capabilities, compare it to the current state of the database model as - specified in Python, and generate a series of "candidate" migrations, - rendering them into a new migration script as Python directives. The - developer then edits the new file, adding additional directives and data - migrations as needed, to produce a finished migration. Table and column - level changes can be detected, with constraints and indexes to follow as - well. -* Full support for migrations generated as SQL scripts. Those of us who - work in corporate environments know that direct access to DDL commands on a - production database is a rare privilege, and DBAs want textual SQL scripts. - Alembic's usage model and commands are oriented towards being able to run a - series of migrations into a textual output file as easily as it runs them - directly to a database. Care must be taken in this mode to not invoke other - operations that rely upon in-memory SELECTs of rows - Alembic tries to - provide helper constructs like bulk_insert() to help with data-oriented - operations that are compatible with script-based DDL. -* Non-linear, dependency-graph versioning. Scripts are given UUID - identifiers similarly to a DVCS, and the linkage of one script to the next - is achieved via human-editable markers within the scripts themselves. - The structure of a set of migration files is considered as a - directed-acyclic graph, meaning any migration file can be dependent - on any other arbitrary set of migration files, or none at - all. Through this open-ended system, migration files can be organized - into branches, multiple roots, and mergepoints, without restriction. - Commands are provided to produce new branches, roots, and merges of - branches automatically. -* Provide a library of ALTER constructs that can be used by any SQLAlchemy - application. The DDL constructs build upon SQLAlchemy's own DDLElement base - and can be used standalone by any application or script. -* At long last, bring SQLite and its inability to ALTER things into the fold, - but in such a way that SQLite's very special workflow needs are accommodated - in an explicit way that makes the most of a bad situation, through the - concept of a "batch" migration, where multiple changes to a table can - be batched together to form a series of instructions for a single, subsequent - "move-and-copy" workflow. You can even use "move-and-copy" workflow for - other databases, if you want to recreate a table in the background - on a busy system. - -Documentation and status of Alembic is at https://alembic.sqlalchemy.org/ - -The SQLAlchemy Project -====================== - -Alembic is part of the `SQLAlchemy Project `_ and -adheres to the same standards and conventions as the core project. - -Development / Bug reporting / Pull requests -___________________________________________ - -Please refer to the -`SQLAlchemy Community Guide `_ for -guidelines on coding and participating in this project. - -Code of Conduct -_______________ - -Above all, SQLAlchemy places great emphasis on polite, thoughtful, and -constructive communication between users and developers. -Please see our current Code of Conduct at -`Code of Conduct `_. - -License -======= - -Alembic is distributed under the `MIT license -`_. diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/RECORD deleted file mode 100644 index 7741e49..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/RECORD +++ /dev/null @@ -1,151 +0,0 @@ -../../../bin/alembic,sha256=CxLHrlo8NX4Gw0Z024qzeMgDVa3BSXQMB2-MLx7PFh4,259 -alembic-1.13.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -alembic-1.13.3.dist-info/LICENSE,sha256=zhnnuit3ylhLgqZ5KFbhOOswsxHIlrB2wJpAXuRfvuk,1059 -alembic-1.13.3.dist-info/METADATA,sha256=6CGNPkq-FufkoGWO6PUhx64LztmqCUAyhbObbop42yQ,7390 -alembic-1.13.3.dist-info/RECORD,, -alembic-1.13.3.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -alembic-1.13.3.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91 -alembic-1.13.3.dist-info/entry_points.txt,sha256=aykM30soxwGN0pB7etLc1q0cHJbL9dy46RnK9VX4LLw,48 -alembic-1.13.3.dist-info/top_level.txt,sha256=FwKWd5VsPFC8iQjpu1u9Cn-JnK3-V1RhUCmWqz1cl-s,8 -alembic/__init__.py,sha256=IZLF4dqHa7mXm10zXXAxFsXBP7yE27ZxghGv3BhN-Jw,63 -alembic/__main__.py,sha256=373m7-TBh72JqrSMYviGrxCHZo-cnweM8AGF8A22PmY,78 -alembic/__pycache__/__init__.cpython-312.pyc,, -alembic/__pycache__/__main__.cpython-312.pyc,, -alembic/__pycache__/command.cpython-312.pyc,, -alembic/__pycache__/config.cpython-312.pyc,, -alembic/__pycache__/context.cpython-312.pyc,, -alembic/__pycache__/environment.cpython-312.pyc,, -alembic/__pycache__/migration.cpython-312.pyc,, -alembic/__pycache__/op.cpython-312.pyc,, -alembic/autogenerate/__init__.py,sha256=ntmUTXhjLm4_zmqIwyVaECdpPDn6_u1yM9vYk6-553E,543 -alembic/autogenerate/__pycache__/__init__.cpython-312.pyc,, -alembic/autogenerate/__pycache__/api.cpython-312.pyc,, -alembic/autogenerate/__pycache__/compare.cpython-312.pyc,, -alembic/autogenerate/__pycache__/render.cpython-312.pyc,, -alembic/autogenerate/__pycache__/rewriter.cpython-312.pyc,, -alembic/autogenerate/api.py,sha256=Bh-37G0PSFeT9WSfEQ-3TZoainXGLL2nsl4okv_xYc0,22173 -alembic/autogenerate/compare.py,sha256=cdUBH6qsedaJsnToSOu4MfcJaI4bjUJ4VWqtBlqsSr8,44944 -alembic/autogenerate/render.py,sha256=YB3C90rq7XDhjTia9GAnK6yfnVVzCROziZrbArmG9SE,35481 -alembic/autogenerate/rewriter.py,sha256=uZWRkTYJoncoEJ5WY1QBRiozjyChqZDJPy4LtcRibjM,7846 -alembic/command.py,sha256=2tkKrIoEgPfXrGgvMRGrUXH4l-7z466DOxd7Q2XOfL8,22169 -alembic/config.py,sha256=BZ7mwFRk2gq8GFNxxy9qvMUFx43YbDbQTC99OnjqiKY,22216 -alembic/context.py,sha256=hK1AJOQXJ29Bhn276GYcosxeG7pC5aZRT5E8c4bMJ4Q,195 -alembic/context.pyi,sha256=hUHbSnbSeEEMVkk0gDSXOq4_9edSjYzsjmmf-mL9Iao,31737 -alembic/ddl/__init__.py,sha256=Df8fy4Vn_abP8B7q3x8gyFwEwnLw6hs2Ljt_bV3EZWE,152 -alembic/ddl/__pycache__/__init__.cpython-312.pyc,, -alembic/ddl/__pycache__/_autogen.cpython-312.pyc,, -alembic/ddl/__pycache__/base.cpython-312.pyc,, -alembic/ddl/__pycache__/impl.cpython-312.pyc,, -alembic/ddl/__pycache__/mssql.cpython-312.pyc,, -alembic/ddl/__pycache__/mysql.cpython-312.pyc,, -alembic/ddl/__pycache__/oracle.cpython-312.pyc,, -alembic/ddl/__pycache__/postgresql.cpython-312.pyc,, -alembic/ddl/__pycache__/sqlite.cpython-312.pyc,, -alembic/ddl/_autogen.py,sha256=Blv2RrHNyF4cE6znCQXNXG5T9aO-YmiwD4Fz-qfoaWA,9275 -alembic/ddl/base.py,sha256=fzGvWyvpSluIOKDQ7Ajc-i_jlDpH4j-JZFOOPxxYS-s,9986 -alembic/ddl/impl.py,sha256=VggQMr6aqeVw12Cj4EqJpiETMhbrwIiG22HEJtPcR4s,29067 -alembic/ddl/mssql.py,sha256=ydvgBSaftKYjaBaMyqius66Ta4CICQSj79Og3Ed2atY,14219 -alembic/ddl/mysql.py,sha256=kXOGYmpnL_9WL3ijXNsG4aAwy3m1HWJOoLZSePzmJF0,17316 -alembic/ddl/oracle.py,sha256=669YlkcZihlXFbnXhH2krdrvDry8q5pcUGfoqkg_R6Y,6243 -alembic/ddl/postgresql.py,sha256=GNCnx-N8UsCIstfW49J8ivYcKgRB8KFNPRgNtORC_AM,29883 -alembic/ddl/sqlite.py,sha256=wLXhb8bJWRspKQTb-iVfepR4LXYgOuEbUWKX5qwDhIQ,7570 -alembic/environment.py,sha256=MM5lPayGT04H3aeng1H7GQ8HEAs3VGX5yy6mDLCPLT4,43 -alembic/migration.py,sha256=MV6Fju6rZtn2fTREKzXrCZM6aIBGII4OMZFix0X-GLs,41 -alembic/op.py,sha256=flHtcsVqOD-ZgZKK2pv-CJ5Cwh-KJ7puMUNXzishxLw,167 -alembic/op.pyi,sha256=QZ1ERetxIrpZNTyg48Btn5OJhhpMId-_MLMP36RauOw,50168 -alembic/operations/__init__.py,sha256=e0KQSZAgLpTWvyvreB7DWg7RJV_MWSOPVDgCqsd2FzY,318 -alembic/operations/__pycache__/__init__.cpython-312.pyc,, -alembic/operations/__pycache__/base.cpython-312.pyc,, -alembic/operations/__pycache__/batch.cpython-312.pyc,, -alembic/operations/__pycache__/ops.cpython-312.pyc,, -alembic/operations/__pycache__/schemaobj.cpython-312.pyc,, -alembic/operations/__pycache__/toimpl.cpython-312.pyc,, -alembic/operations/base.py,sha256=JRaOtPqyqfaPjzGHxuP9VMcO1KsJNmbbLOvwG82qxGA,74474 -alembic/operations/batch.py,sha256=YqtD4hJ3_RkFxvI7zbmBwxcLEyLHYyWQpsz4l5L85yI,26943 -alembic/operations/ops.py,sha256=guIpLQzlqgkdP2LGDW8vWg_DXeAouEldiVZDgRas7YI,94953 -alembic/operations/schemaobj.py,sha256=Wp-bBe4a8lXPTvIHJttBY0ejtpVR5Jvtb2kI-U2PztQ,9468 -alembic/operations/toimpl.py,sha256=Fx-UKcq6S8pVtsEwPFjTKtEcAVKjfptn-BfpE1k3_ck,7517 -alembic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -alembic/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -alembic/runtime/__pycache__/__init__.cpython-312.pyc,, -alembic/runtime/__pycache__/environment.cpython-312.pyc,, -alembic/runtime/__pycache__/migration.cpython-312.pyc,, -alembic/runtime/environment.py,sha256=SkYB_am1h3FSG8IsExAQxGP_7WwzOVigqjlO747Aokc,41497 -alembic/runtime/migration.py,sha256=sku7-2_TralZQnNeoDaEFlydTStL-SJechbr9K8AHJs,50093 -alembic/script/__init__.py,sha256=lSj06O391Iy5avWAiq8SPs6N8RBgxkSPjP8wpXcNDGg,100 -alembic/script/__pycache__/__init__.cpython-312.pyc,, -alembic/script/__pycache__/base.cpython-312.pyc,, -alembic/script/__pycache__/revision.cpython-312.pyc,, -alembic/script/__pycache__/write_hooks.cpython-312.pyc,, -alembic/script/base.py,sha256=XLNpdsLnBBSz4ZKMFUArFUdtL1HcjtuUDHNbA-5VlZA,37809 -alembic/script/revision.py,sha256=NTu-eu5Y78u4NoVXpT0alpD2oL40SGATA2sEMEf1el4,62306 -alembic/script/write_hooks.py,sha256=NGB6NGgfdf7HK6XNNpSKqUCfzxazj-NRUePgFx7MJSM,5036 -alembic/templates/async/README,sha256=ISVtAOvqvKk_5ThM5ioJE-lMkvf9IbknFUFVU_vPma4,58 -alembic/templates/async/__pycache__/env.cpython-312.pyc,, -alembic/templates/async/alembic.ini.mako,sha256=7VfUJqH9tEsydKOOmpnGFTsERHWhs7ghORuASnJb_Co,3632 -alembic/templates/async/env.py,sha256=zbOCf3Y7w2lg92hxSwmG1MM_7y56i_oRH4AKp0pQBYo,2389 -alembic/templates/async/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635 -alembic/templates/generic/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38 -alembic/templates/generic/__pycache__/env.cpython-312.pyc,, -alembic/templates/generic/alembic.ini.mako,sha256=5wy1rOdDJjHbeEnieycSaZ9tz6AM6hONYk4RiOVXnmk,3740 -alembic/templates/generic/env.py,sha256=TLRWOVW3Xpt_Tpf8JFzlnoPn_qoUu8UV77Y4o9XD6yI,2103 -alembic/templates/generic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635 -alembic/templates/multidb/README,sha256=dWLDhnBgphA4Nzb7sNlMfCS3_06YqVbHhz-9O5JNqyI,606 -alembic/templates/multidb/__pycache__/env.cpython-312.pyc,, -alembic/templates/multidb/alembic.ini.mako,sha256=oThPQgzkg-NOcbsSXIemi-Lg4nib3G6hDHKdejjtJIM,3834 -alembic/templates/multidb/env.py,sha256=6zNjnW8mXGUk7erTsAvrfhvqoczJ-gagjVq1Ypg2YIQ,4230 -alembic/templates/multidb/script.py.mako,sha256=N06nMtNSwHkgl0EBXDyMt8njp9tlOesR583gfq21nbY,1090 -alembic/testing/__init__.py,sha256=kOxOh5nwmui9d-_CCq9WA4Udwy7ITjm453w74CTLZDo,1159 -alembic/testing/__pycache__/__init__.cpython-312.pyc,, -alembic/testing/__pycache__/assertions.cpython-312.pyc,, -alembic/testing/__pycache__/env.cpython-312.pyc,, -alembic/testing/__pycache__/fixtures.cpython-312.pyc,, -alembic/testing/__pycache__/requirements.cpython-312.pyc,, -alembic/testing/__pycache__/schemacompare.cpython-312.pyc,, -alembic/testing/__pycache__/util.cpython-312.pyc,, -alembic/testing/__pycache__/warnings.cpython-312.pyc,, -alembic/testing/assertions.py,sha256=ScUb1sVopIl70BirfHUJDvwswC70Q93CiIWwkiZbhHg,5207 -alembic/testing/env.py,sha256=zJacVb_z6uLs2U1TtkmnFH9P3_F-3IfYbVv4UEPOvfo,10754 -alembic/testing/fixtures.py,sha256=nBntOynOmVCFc7IYiN3DIQ3TBNTfiGCvL_1-FyCry8o,9462 -alembic/testing/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -alembic/testing/plugin/__pycache__/__init__.cpython-312.pyc,, -alembic/testing/plugin/__pycache__/bootstrap.cpython-312.pyc,, -alembic/testing/plugin/bootstrap.py,sha256=9C6wtjGrIVztZ928w27hsQE0KcjDLIUtUN3dvZKsMVk,50 -alembic/testing/requirements.py,sha256=dKeAO1l5TwBqXarJN-IPORlCqCJv-41Dj6oXoEikxHQ,5133 -alembic/testing/schemacompare.py,sha256=N5UqSNCOJetIKC4vKhpYzQEpj08XkdgIoqBmEPQ3tlc,4838 -alembic/testing/suite/__init__.py,sha256=MvE7-hwbaVN1q3NM-ztGxORU9dnIelUCINKqNxewn7Y,288 -alembic/testing/suite/__pycache__/__init__.cpython-312.pyc,, -alembic/testing/suite/__pycache__/_autogen_fixtures.cpython-312.pyc,, -alembic/testing/suite/__pycache__/test_autogen_comments.cpython-312.pyc,, -alembic/testing/suite/__pycache__/test_autogen_computed.cpython-312.pyc,, -alembic/testing/suite/__pycache__/test_autogen_diffs.cpython-312.pyc,, -alembic/testing/suite/__pycache__/test_autogen_fks.cpython-312.pyc,, -alembic/testing/suite/__pycache__/test_autogen_identity.cpython-312.pyc,, -alembic/testing/suite/__pycache__/test_environment.cpython-312.pyc,, -alembic/testing/suite/__pycache__/test_op.cpython-312.pyc,, -alembic/testing/suite/_autogen_fixtures.py,sha256=cDq1pmzHe15S6dZPGNC6sqFaCQ3hLT_oPV2IDigUGQ0,9880 -alembic/testing/suite/test_autogen_comments.py,sha256=aEGqKUDw4kHjnDk298aoGcQvXJWmZXcIX_2FxH4cJK8,6283 -alembic/testing/suite/test_autogen_computed.py,sha256=CXAeF-5Wr2cmW8PB7ztHG_4ZQsn1gSWrHWfxi72grNU,6147 -alembic/testing/suite/test_autogen_diffs.py,sha256=T4SR1n_kmcOKYhR4W1-dA0e5sddJ69DSVL2HW96kAkE,8394 -alembic/testing/suite/test_autogen_fks.py,sha256=AqFmb26Buex167HYa9dZWOk8x-JlB1OK3bwcvvjDFaU,32927 -alembic/testing/suite/test_autogen_identity.py,sha256=kcuqngG7qXAKPJDX4U8sRzPKHEJECHuZ0DtuaS6tVkk,5824 -alembic/testing/suite/test_environment.py,sha256=OwD-kpESdLoc4byBrGrXbZHvqtPbzhFCG4W9hJOJXPQ,11877 -alembic/testing/suite/test_op.py,sha256=2XQCdm_NmnPxHGuGj7hmxMzIhKxXNotUsKdACXzE1mM,1343 -alembic/testing/util.py,sha256=CQrcQDA8fs_7ME85z5ydb-Bt70soIIID-qNY1vbR2dg,3350 -alembic/testing/warnings.py,sha256=RxA7x_8GseANgw07Us8JN_1iGbANxaw6_VitX2ZGQH4,1078 -alembic/util/__init__.py,sha256=KSZ7UT2YzH6CietgUtljVoE3QnGjoFKOi7RL5sgUxrk,1688 -alembic/util/__pycache__/__init__.cpython-312.pyc,, -alembic/util/__pycache__/compat.cpython-312.pyc,, -alembic/util/__pycache__/editor.cpython-312.pyc,, -alembic/util/__pycache__/exc.cpython-312.pyc,, -alembic/util/__pycache__/langhelpers.cpython-312.pyc,, -alembic/util/__pycache__/messaging.cpython-312.pyc,, -alembic/util/__pycache__/pyfiles.cpython-312.pyc,, -alembic/util/__pycache__/sqla_compat.cpython-312.pyc,, -alembic/util/compat.py,sha256=RjHdQa1NomU3Zlvgfvza0OMiSRQSLRL3xVl3OdUy2UE,2594 -alembic/util/editor.py,sha256=JIz6_BdgV8_oKtnheR6DZoB7qnrHrlRgWjx09AsTsUw,2546 -alembic/util/exc.py,sha256=KQTru4zcgAmN4IxLMwLFS56XToUewaXB7oOLcPNjPwg,98 -alembic/util/langhelpers.py,sha256=LpOcovnhMnP45kTt8zNJ4BHpyQrlF40OL6yDXjqKtsE,10026 -alembic/util/messaging.py,sha256=BxAHiJsYHBPb2m8zv4yaueSRAlVuYXWkRCeN02JXhqw,3250 -alembic/util/pyfiles.py,sha256=zltVdcwEJJCPS2gHsQvkHkQakuF6wXiZ6zfwHbGNT0g,3489 -alembic/util/sqla_compat.py,sha256=XMfZaLdbVbJoniNUyI3RUUXu4gCWljjVBbJ7db6vCgc,19526 diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/REQUESTED b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/WHEEL deleted file mode 100644 index dcfdc6e..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (75.1.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/entry_points.txt b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/entry_points.txt deleted file mode 100644 index 5945268..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[console_scripts] -alembic = alembic.config:main diff --git a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/top_level.txt b/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/top_level.txt deleted file mode 100644 index b5bd98d..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic-1.13.3.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -alembic diff --git a/backend/venv/lib/python3.12/site-packages/alembic/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/__init__.py deleted file mode 100644 index acf69a6..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from . import context -from . import op - -__version__ = "1.13.3" diff --git a/backend/venv/lib/python3.12/site-packages/alembic/__main__.py b/backend/venv/lib/python3.12/site-packages/alembic/__main__.py deleted file mode 100644 index af1b8e8..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .config import main - -if __name__ == "__main__": - main(prog="alembic") diff --git a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/__init__.py deleted file mode 100644 index 445ddb2..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from .api import _render_migration_diffs as _render_migration_diffs -from .api import compare_metadata as compare_metadata -from .api import produce_migrations as produce_migrations -from .api import render_python_code as render_python_code -from .api import RevisionContext as RevisionContext -from .compare import _produce_net_changes as _produce_net_changes -from .compare import comparators as comparators -from .render import render_op_text as render_op_text -from .render import renderers as renderers -from .rewriter import Rewriter as Rewriter diff --git a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/api.py b/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/api.py deleted file mode 100644 index 4c03916..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/api.py +++ /dev/null @@ -1,650 +0,0 @@ -from __future__ import annotations - -import contextlib -from typing import Any -from typing import Dict -from typing import Iterator -from typing import List -from typing import Optional -from typing import Sequence -from typing import Set -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import inspect - -from . import compare -from . import render -from .. import util -from ..operations import ops -from ..util import sqla_compat - -"""Provide the 'autogenerate' feature which can produce migration operations -automatically.""" - -if TYPE_CHECKING: - from sqlalchemy.engine import Connection - from sqlalchemy.engine import Dialect - from sqlalchemy.engine import Inspector - from sqlalchemy.sql.schema import MetaData - from sqlalchemy.sql.schema import SchemaItem - from sqlalchemy.sql.schema import Table - - from ..config import Config - from ..operations.ops import DowngradeOps - from ..operations.ops import MigrationScript - from ..operations.ops import UpgradeOps - from ..runtime.environment import NameFilterParentNames - from ..runtime.environment import NameFilterType - from ..runtime.environment import ProcessRevisionDirectiveFn - from ..runtime.environment import RenderItemFn - from ..runtime.migration import MigrationContext - from ..script.base import Script - from ..script.base import ScriptDirectory - from ..script.revision import _GetRevArg - - -def compare_metadata(context: MigrationContext, metadata: MetaData) -> Any: - """Compare a database schema to that given in a - :class:`~sqlalchemy.schema.MetaData` instance. - - The database connection is presented in the context - of a :class:`.MigrationContext` object, which - provides database connectivity as well as optional - comparison functions to use for datatypes and - server defaults - see the "autogenerate" arguments - at :meth:`.EnvironmentContext.configure` - for details on these. - - The return format is a list of "diff" directives, - each representing individual differences:: - - from alembic.migration import MigrationContext - from alembic.autogenerate import compare_metadata - from sqlalchemy import ( - create_engine, - MetaData, - Column, - Integer, - String, - Table, - text, - ) - import pprint - - engine = create_engine("sqlite://") - - with engine.begin() as conn: - conn.execute( - text( - ''' - create table foo ( - id integer not null primary key, - old_data varchar, - x integer - ) - ''' - ) - ) - conn.execute(text("create table bar (data varchar)")) - - metadata = MetaData() - Table( - "foo", - metadata, - Column("id", Integer, primary_key=True), - Column("data", Integer), - Column("x", Integer, nullable=False), - ) - Table("bat", metadata, Column("info", String)) - - mc = MigrationContext.configure(engine.connect()) - - diff = compare_metadata(mc, metadata) - pprint.pprint(diff, indent=2, width=20) - - Output:: - - [ - ( - "add_table", - Table( - "bat", - MetaData(), - Column("info", String(), table=), - schema=None, - ), - ), - ( - "remove_table", - Table( - "bar", - MetaData(), - Column("data", VARCHAR(), table=), - schema=None, - ), - ), - ( - "add_column", - None, - "foo", - Column("data", Integer(), table=), - ), - [ - ( - "modify_nullable", - None, - "foo", - "x", - { - "existing_comment": None, - "existing_server_default": False, - "existing_type": INTEGER(), - }, - True, - False, - ) - ], - ( - "remove_column", - None, - "foo", - Column("old_data", VARCHAR(), table=), - ), - ] - - :param context: a :class:`.MigrationContext` - instance. - :param metadata: a :class:`~sqlalchemy.schema.MetaData` - instance. - - .. seealso:: - - :func:`.produce_migrations` - produces a :class:`.MigrationScript` - structure based on metadata comparison. - - """ - - migration_script = produce_migrations(context, metadata) - assert migration_script.upgrade_ops is not None - return migration_script.upgrade_ops.as_diffs() - - -def produce_migrations( - context: MigrationContext, metadata: MetaData -) -> MigrationScript: - """Produce a :class:`.MigrationScript` structure based on schema - comparison. - - This function does essentially what :func:`.compare_metadata` does, - but then runs the resulting list of diffs to produce the full - :class:`.MigrationScript` object. For an example of what this looks like, - see the example in :ref:`customizing_revision`. - - .. seealso:: - - :func:`.compare_metadata` - returns more fundamental "diff" - data from comparing a schema. - - """ - - autogen_context = AutogenContext(context, metadata=metadata) - - migration_script = ops.MigrationScript( - rev_id=None, - upgrade_ops=ops.UpgradeOps([]), - downgrade_ops=ops.DowngradeOps([]), - ) - - compare._populate_migration_script(autogen_context, migration_script) - - return migration_script - - -def render_python_code( - up_or_down_op: Union[UpgradeOps, DowngradeOps], - sqlalchemy_module_prefix: str = "sa.", - alembic_module_prefix: str = "op.", - render_as_batch: bool = False, - imports: Sequence[str] = (), - render_item: Optional[RenderItemFn] = None, - migration_context: Optional[MigrationContext] = None, - user_module_prefix: Optional[str] = None, -) -> str: - """Render Python code given an :class:`.UpgradeOps` or - :class:`.DowngradeOps` object. - - This is a convenience function that can be used to test the - autogenerate output of a user-defined :class:`.MigrationScript` structure. - - :param up_or_down_op: :class:`.UpgradeOps` or :class:`.DowngradeOps` object - :param sqlalchemy_module_prefix: module prefix for SQLAlchemy objects - :param alembic_module_prefix: module prefix for Alembic constructs - :param render_as_batch: use "batch operations" style for rendering - :param imports: sequence of import symbols to add - :param render_item: callable to render items - :param migration_context: optional :class:`.MigrationContext` - :param user_module_prefix: optional string prefix for user-defined types - - .. versionadded:: 1.11.0 - - """ - opts = { - "sqlalchemy_module_prefix": sqlalchemy_module_prefix, - "alembic_module_prefix": alembic_module_prefix, - "render_item": render_item, - "render_as_batch": render_as_batch, - "user_module_prefix": user_module_prefix, - } - - if migration_context is None: - from ..runtime.migration import MigrationContext - from sqlalchemy.engine.default import DefaultDialect - - migration_context = MigrationContext.configure( - dialect=DefaultDialect() - ) - - autogen_context = AutogenContext(migration_context, opts=opts) - autogen_context.imports = set(imports) - return render._indent( - render._render_cmd_body(up_or_down_op, autogen_context) - ) - - -def _render_migration_diffs( - context: MigrationContext, template_args: Dict[Any, Any] -) -> None: - """legacy, used by test_autogen_composition at the moment""" - - autogen_context = AutogenContext(context) - - upgrade_ops = ops.UpgradeOps([]) - compare._produce_net_changes(autogen_context, upgrade_ops) - - migration_script = ops.MigrationScript( - rev_id=None, - upgrade_ops=upgrade_ops, - downgrade_ops=upgrade_ops.reverse(), - ) - - render._render_python_into_templatevars( - autogen_context, migration_script, template_args - ) - - -class AutogenContext: - """Maintains configuration and state that's specific to an - autogenerate operation.""" - - metadata: Optional[MetaData] = None - """The :class:`~sqlalchemy.schema.MetaData` object - representing the destination. - - This object is the one that is passed within ``env.py`` - to the :paramref:`.EnvironmentContext.configure.target_metadata` - parameter. It represents the structure of :class:`.Table` and other - objects as stated in the current database model, and represents the - destination structure for the database being examined. - - While the :class:`~sqlalchemy.schema.MetaData` object is primarily - known as a collection of :class:`~sqlalchemy.schema.Table` objects, - it also has an :attr:`~sqlalchemy.schema.MetaData.info` dictionary - that may be used by end-user schemes to store additional schema-level - objects that are to be compared in custom autogeneration schemes. - - """ - - connection: Optional[Connection] = None - """The :class:`~sqlalchemy.engine.base.Connection` object currently - connected to the database backend being compared. - - This is obtained from the :attr:`.MigrationContext.bind` and is - ultimately set up in the ``env.py`` script. - - """ - - dialect: Optional[Dialect] = None - """The :class:`~sqlalchemy.engine.Dialect` object currently in use. - - This is normally obtained from the - :attr:`~sqlalchemy.engine.base.Connection.dialect` attribute. - - """ - - imports: Set[str] = None # type: ignore[assignment] - """A ``set()`` which contains string Python import directives. - - The directives are to be rendered into the ``${imports}`` section - of a script template. The set is normally empty and can be modified - within hooks such as the - :paramref:`.EnvironmentContext.configure.render_item` hook. - - .. seealso:: - - :ref:`autogen_render_types` - - """ - - migration_context: MigrationContext = None # type: ignore[assignment] - """The :class:`.MigrationContext` established by the ``env.py`` script.""" - - def __init__( - self, - migration_context: MigrationContext, - metadata: Optional[MetaData] = None, - opts: Optional[Dict[str, Any]] = None, - autogenerate: bool = True, - ) -> None: - if ( - autogenerate - and migration_context is not None - and migration_context.as_sql - ): - raise util.CommandError( - "autogenerate can't use as_sql=True as it prevents querying " - "the database for schema information" - ) - - if opts is None: - opts = migration_context.opts - - self.metadata = metadata = ( - opts.get("target_metadata", None) if metadata is None else metadata - ) - - if ( - autogenerate - and metadata is None - and migration_context is not None - and migration_context.script is not None - ): - raise util.CommandError( - "Can't proceed with --autogenerate option; environment " - "script %s does not provide " - "a MetaData object or sequence of objects to the context." - % (migration_context.script.env_py_location) - ) - - include_object = opts.get("include_object", None) - include_name = opts.get("include_name", None) - - object_filters = [] - name_filters = [] - if include_object: - object_filters.append(include_object) - if include_name: - name_filters.append(include_name) - - self._object_filters = object_filters - self._name_filters = name_filters - - self.migration_context = migration_context - if self.migration_context is not None: - self.connection = self.migration_context.bind - self.dialect = self.migration_context.dialect - - self.imports = set() - self.opts: Dict[str, Any] = opts - self._has_batch: bool = False - - @util.memoized_property - def inspector(self) -> Inspector: - if self.connection is None: - raise TypeError( - "can't return inspector as this " - "AutogenContext has no database connection" - ) - return inspect(self.connection) - - @contextlib.contextmanager - def _within_batch(self) -> Iterator[None]: - self._has_batch = True - yield - self._has_batch = False - - def run_name_filters( - self, - name: Optional[str], - type_: NameFilterType, - parent_names: NameFilterParentNames, - ) -> bool: - """Run the context's name filters and return True if the targets - should be part of the autogenerate operation. - - This method should be run for every kind of name encountered within the - reflection side of an autogenerate operation, giving the environment - the chance to filter what names should be reflected as database - objects. The filters here are produced directly via the - :paramref:`.EnvironmentContext.configure.include_name` parameter. - - """ - if "schema_name" in parent_names: - if type_ == "table": - table_name = name - else: - table_name = parent_names.get("table_name", None) - if table_name: - schema_name = parent_names["schema_name"] - if schema_name: - parent_names["schema_qualified_table_name"] = "%s.%s" % ( - schema_name, - table_name, - ) - else: - parent_names["schema_qualified_table_name"] = table_name - - for fn in self._name_filters: - if not fn(name, type_, parent_names): - return False - else: - return True - - def run_object_filters( - self, - object_: SchemaItem, - name: sqla_compat._ConstraintName, - type_: NameFilterType, - reflected: bool, - compare_to: Optional[SchemaItem], - ) -> bool: - """Run the context's object filters and return True if the targets - should be part of the autogenerate operation. - - This method should be run for every kind of object encountered within - an autogenerate operation, giving the environment the chance - to filter what objects should be included in the comparison. - The filters here are produced directly via the - :paramref:`.EnvironmentContext.configure.include_object` parameter. - - """ - for fn in self._object_filters: - if not fn(object_, name, type_, reflected, compare_to): - return False - else: - return True - - run_filters = run_object_filters - - @util.memoized_property - def sorted_tables(self) -> List[Table]: - """Return an aggregate of the :attr:`.MetaData.sorted_tables` - collection(s). - - For a sequence of :class:`.MetaData` objects, this - concatenates the :attr:`.MetaData.sorted_tables` collection - for each individual :class:`.MetaData` in the order of the - sequence. It does **not** collate the sorted tables collections. - - """ - result = [] - for m in util.to_list(self.metadata): - result.extend(m.sorted_tables) - return result - - @util.memoized_property - def table_key_to_table(self) -> Dict[str, Table]: - """Return an aggregate of the :attr:`.MetaData.tables` dictionaries. - - The :attr:`.MetaData.tables` collection is a dictionary of table key - to :class:`.Table`; this method aggregates the dictionary across - multiple :class:`.MetaData` objects into one dictionary. - - Duplicate table keys are **not** supported; if two :class:`.MetaData` - objects contain the same table key, an exception is raised. - - """ - result: Dict[str, Table] = {} - for m in util.to_list(self.metadata): - intersect = set(result).intersection(set(m.tables)) - if intersect: - raise ValueError( - "Duplicate table keys across multiple " - "MetaData objects: %s" - % (", ".join('"%s"' % key for key in sorted(intersect))) - ) - - result.update(m.tables) - return result - - -class RevisionContext: - """Maintains configuration and state that's specific to a revision - file generation operation.""" - - generated_revisions: List[MigrationScript] - process_revision_directives: Optional[ProcessRevisionDirectiveFn] - - def __init__( - self, - config: Config, - script_directory: ScriptDirectory, - command_args: Dict[str, Any], - process_revision_directives: Optional[ - ProcessRevisionDirectiveFn - ] = None, - ) -> None: - self.config = config - self.script_directory = script_directory - self.command_args = command_args - self.process_revision_directives = process_revision_directives - self.template_args = { - "config": config # Let templates use config for - # e.g. multiple databases - } - self.generated_revisions = [self._default_revision()] - - def _to_script( - self, migration_script: MigrationScript - ) -> Optional[Script]: - template_args: Dict[str, Any] = self.template_args.copy() - - if getattr(migration_script, "_needs_render", False): - autogen_context = self._last_autogen_context - - # clear out existing imports if we are doing multiple - # renders - autogen_context.imports = set() - if migration_script.imports: - autogen_context.imports.update(migration_script.imports) - render._render_python_into_templatevars( - autogen_context, migration_script, template_args - ) - - assert migration_script.rev_id is not None - return self.script_directory.generate_revision( - migration_script.rev_id, - migration_script.message, - refresh=True, - head=migration_script.head, - splice=migration_script.splice, - branch_labels=migration_script.branch_label, - version_path=migration_script.version_path, - depends_on=migration_script.depends_on, - **template_args, - ) - - def run_autogenerate( - self, rev: _GetRevArg, migration_context: MigrationContext - ) -> None: - self._run_environment(rev, migration_context, True) - - def run_no_autogenerate( - self, rev: _GetRevArg, migration_context: MigrationContext - ) -> None: - self._run_environment(rev, migration_context, False) - - def _run_environment( - self, - rev: _GetRevArg, - migration_context: MigrationContext, - autogenerate: bool, - ) -> None: - if autogenerate: - if self.command_args["sql"]: - raise util.CommandError( - "Using --sql with --autogenerate does not make any sense" - ) - if set(self.script_directory.get_revisions(rev)) != set( - self.script_directory.get_revisions("heads") - ): - raise util.CommandError("Target database is not up to date.") - - upgrade_token = migration_context.opts["upgrade_token"] - downgrade_token = migration_context.opts["downgrade_token"] - - migration_script = self.generated_revisions[-1] - if not getattr(migration_script, "_needs_render", False): - migration_script.upgrade_ops_list[-1].upgrade_token = upgrade_token - migration_script.downgrade_ops_list[-1].downgrade_token = ( - downgrade_token - ) - migration_script._needs_render = True - else: - migration_script._upgrade_ops.append( - ops.UpgradeOps([], upgrade_token=upgrade_token) - ) - migration_script._downgrade_ops.append( - ops.DowngradeOps([], downgrade_token=downgrade_token) - ) - - autogen_context = AutogenContext( - migration_context, autogenerate=autogenerate - ) - self._last_autogen_context: AutogenContext = autogen_context - - if autogenerate: - compare._populate_migration_script( - autogen_context, migration_script - ) - - if self.process_revision_directives: - self.process_revision_directives( - migration_context, rev, self.generated_revisions - ) - - hook = migration_context.opts["process_revision_directives"] - if hook: - hook(migration_context, rev, self.generated_revisions) - - for migration_script in self.generated_revisions: - migration_script._needs_render = True - - def _default_revision(self) -> MigrationScript: - command_args: Dict[str, Any] = self.command_args - op = ops.MigrationScript( - rev_id=command_args["rev_id"] or util.rev_id(), - message=command_args["message"], - upgrade_ops=ops.UpgradeOps([]), - downgrade_ops=ops.DowngradeOps([]), - head=command_args["head"], - splice=command_args["splice"], - branch_label=command_args["branch_label"], - version_path=command_args["version_path"], - depends_on=command_args["depends_on"], - ) - return op - - def generate_scripts(self) -> Iterator[Optional[Script]]: - for generated_revision in self.generated_revisions: - yield self._to_script(generated_revision) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/compare.py b/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/compare.py deleted file mode 100644 index 0d98519..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/compare.py +++ /dev/null @@ -1,1329 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import contextlib -import logging -import re -from typing import Any -from typing import cast -from typing import Dict -from typing import Iterator -from typing import Mapping -from typing import Optional -from typing import Set -from typing import Tuple -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union - -from sqlalchemy import event -from sqlalchemy import inspect -from sqlalchemy import schema as sa_schema -from sqlalchemy import text -from sqlalchemy import types as sqltypes -from sqlalchemy.sql import expression -from sqlalchemy.sql.schema import ForeignKeyConstraint -from sqlalchemy.sql.schema import Index -from sqlalchemy.sql.schema import UniqueConstraint -from sqlalchemy.util import OrderedSet - -from .. import util -from ..ddl._autogen import is_index_sig -from ..ddl._autogen import is_uq_sig -from ..operations import ops -from ..util import sqla_compat - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy.engine.reflection import Inspector - from sqlalchemy.sql.elements import quoted_name - from sqlalchemy.sql.elements import TextClause - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import Table - - from alembic.autogenerate.api import AutogenContext - from alembic.ddl.impl import DefaultImpl - from alembic.operations.ops import AlterColumnOp - from alembic.operations.ops import MigrationScript - from alembic.operations.ops import ModifyTableOps - from alembic.operations.ops import UpgradeOps - from ..ddl._autogen import _constraint_sig - - -log = logging.getLogger(__name__) - - -def _populate_migration_script( - autogen_context: AutogenContext, migration_script: MigrationScript -) -> None: - upgrade_ops = migration_script.upgrade_ops_list[-1] - downgrade_ops = migration_script.downgrade_ops_list[-1] - - _produce_net_changes(autogen_context, upgrade_ops) - upgrade_ops.reverse_into(downgrade_ops) - - -comparators = util.Dispatcher(uselist=True) - - -def _produce_net_changes( - autogen_context: AutogenContext, upgrade_ops: UpgradeOps -) -> None: - connection = autogen_context.connection - assert connection is not None - include_schemas = autogen_context.opts.get("include_schemas", False) - - inspector: Inspector = inspect(connection) - - default_schema = connection.dialect.default_schema_name - schemas: Set[Optional[str]] - if include_schemas: - schemas = set(inspector.get_schema_names()) - # replace default schema name with None - schemas.discard("information_schema") - # replace the "default" schema with None - schemas.discard(default_schema) - schemas.add(None) - else: - schemas = {None} - - schemas = { - s for s in schemas if autogen_context.run_name_filters(s, "schema", {}) - } - - assert autogen_context.dialect is not None - comparators.dispatch("schema", autogen_context.dialect.name)( - autogen_context, upgrade_ops, schemas - ) - - -@comparators.dispatch_for("schema") -def _autogen_for_tables( - autogen_context: AutogenContext, - upgrade_ops: UpgradeOps, - schemas: Union[Set[None], Set[Optional[str]]], -) -> None: - inspector = autogen_context.inspector - - conn_table_names: Set[Tuple[Optional[str], str]] = set() - - version_table_schema = ( - autogen_context.migration_context.version_table_schema - ) - version_table = autogen_context.migration_context.version_table - - for schema_name in schemas: - tables = set(inspector.get_table_names(schema=schema_name)) - if schema_name == version_table_schema: - tables = tables.difference( - [autogen_context.migration_context.version_table] - ) - - conn_table_names.update( - (schema_name, tname) - for tname in tables - if autogen_context.run_name_filters( - tname, "table", {"schema_name": schema_name} - ) - ) - - metadata_table_names = OrderedSet( - [(table.schema, table.name) for table in autogen_context.sorted_tables] - ).difference([(version_table_schema, version_table)]) - - _compare_tables( - conn_table_names, - metadata_table_names, - inspector, - upgrade_ops, - autogen_context, - ) - - -def _compare_tables( - conn_table_names: set, - metadata_table_names: set, - inspector: Inspector, - upgrade_ops: UpgradeOps, - autogen_context: AutogenContext, -) -> None: - default_schema = inspector.bind.dialect.default_schema_name - - # tables coming from the connection will not have "schema" - # set if it matches default_schema_name; so we need a list - # of table names from local metadata that also have "None" if schema - # == default_schema_name. Most setups will be like this anyway but - # some are not (see #170) - metadata_table_names_no_dflt_schema = OrderedSet( - [ - (schema if schema != default_schema else None, tname) - for schema, tname in metadata_table_names - ] - ) - - # to adjust for the MetaData collection storing the tables either - # as "schemaname.tablename" or just "tablename", create a new lookup - # which will match the "non-default-schema" keys to the Table object. - tname_to_table = { - no_dflt_schema: autogen_context.table_key_to_table[ - sa_schema._get_table_key(tname, schema) - ] - for no_dflt_schema, (schema, tname) in zip( - metadata_table_names_no_dflt_schema, metadata_table_names - ) - } - metadata_table_names = metadata_table_names_no_dflt_schema - - for s, tname in metadata_table_names.difference(conn_table_names): - name = "%s.%s" % (s, tname) if s else tname - metadata_table = tname_to_table[(s, tname)] - if autogen_context.run_object_filters( - metadata_table, tname, "table", False, None - ): - upgrade_ops.ops.append( - ops.CreateTableOp.from_table(metadata_table) - ) - log.info("Detected added table %r", name) - modify_table_ops = ops.ModifyTableOps(tname, [], schema=s) - - comparators.dispatch("table")( - autogen_context, - modify_table_ops, - s, - tname, - None, - metadata_table, - ) - if not modify_table_ops.is_empty(): - upgrade_ops.ops.append(modify_table_ops) - - removal_metadata = sa_schema.MetaData() - for s, tname in conn_table_names.difference(metadata_table_names): - name = sa_schema._get_table_key(tname, s) - exists = name in removal_metadata.tables - t = sa_schema.Table(tname, removal_metadata, schema=s) - - if not exists: - event.listen( - t, - "column_reflect", - # fmt: off - autogen_context.migration_context.impl. - _compat_autogen_column_reflect - (inspector), - # fmt: on - ) - sqla_compat._reflect_table(inspector, t) - if autogen_context.run_object_filters(t, tname, "table", True, None): - modify_table_ops = ops.ModifyTableOps(tname, [], schema=s) - - comparators.dispatch("table")( - autogen_context, modify_table_ops, s, tname, t, None - ) - if not modify_table_ops.is_empty(): - upgrade_ops.ops.append(modify_table_ops) - - upgrade_ops.ops.append(ops.DropTableOp.from_table(t)) - log.info("Detected removed table %r", name) - - existing_tables = conn_table_names.intersection(metadata_table_names) - - existing_metadata = sa_schema.MetaData() - conn_column_info = {} - for s, tname in existing_tables: - name = sa_schema._get_table_key(tname, s) - exists = name in existing_metadata.tables - t = sa_schema.Table(tname, existing_metadata, schema=s) - if not exists: - event.listen( - t, - "column_reflect", - # fmt: off - autogen_context.migration_context.impl. - _compat_autogen_column_reflect(inspector), - # fmt: on - ) - sqla_compat._reflect_table(inspector, t) - conn_column_info[(s, tname)] = t - - for s, tname in sorted(existing_tables, key=lambda x: (x[0] or "", x[1])): - s = s or None - name = "%s.%s" % (s, tname) if s else tname - metadata_table = tname_to_table[(s, tname)] - conn_table = existing_metadata.tables[name] - - if autogen_context.run_object_filters( - metadata_table, tname, "table", False, conn_table - ): - modify_table_ops = ops.ModifyTableOps(tname, [], schema=s) - with _compare_columns( - s, - tname, - conn_table, - metadata_table, - modify_table_ops, - autogen_context, - inspector, - ): - comparators.dispatch("table")( - autogen_context, - modify_table_ops, - s, - tname, - conn_table, - metadata_table, - ) - - if not modify_table_ops.is_empty(): - upgrade_ops.ops.append(modify_table_ops) - - -_IndexColumnSortingOps: Mapping[str, Any] = util.immutabledict( - { - "asc": expression.asc, - "desc": expression.desc, - "nulls_first": expression.nullsfirst, - "nulls_last": expression.nullslast, - "nullsfirst": expression.nullsfirst, # 1_3 name - "nullslast": expression.nullslast, # 1_3 name - } -) - - -def _make_index( - impl: DefaultImpl, params: Dict[str, Any], conn_table: Table -) -> Optional[Index]: - exprs: list[Union[Column[Any], TextClause]] = [] - sorting = params.get("column_sorting") - - for num, col_name in enumerate(params["column_names"]): - item: Union[Column[Any], TextClause] - if col_name is None: - assert "expressions" in params - name = params["expressions"][num] - item = text(name) - else: - name = col_name - item = conn_table.c[col_name] - if sorting and name in sorting: - for operator in sorting[name]: - if operator in _IndexColumnSortingOps: - item = _IndexColumnSortingOps[operator](item) - exprs.append(item) - ix = sa_schema.Index( - params["name"], - *exprs, - unique=params["unique"], - _table=conn_table, - **impl.adjust_reflected_dialect_options(params, "index"), - ) - if "duplicates_constraint" in params: - ix.info["duplicates_constraint"] = params["duplicates_constraint"] - return ix - - -def _make_unique_constraint( - impl: DefaultImpl, params: Dict[str, Any], conn_table: Table -) -> UniqueConstraint: - uq = sa_schema.UniqueConstraint( - *[conn_table.c[cname] for cname in params["column_names"]], - name=params["name"], - **impl.adjust_reflected_dialect_options(params, "unique_constraint"), - ) - if "duplicates_index" in params: - uq.info["duplicates_index"] = params["duplicates_index"] - - return uq - - -def _make_foreign_key( - params: Dict[str, Any], conn_table: Table -) -> ForeignKeyConstraint: - tname = params["referred_table"] - if params["referred_schema"]: - tname = "%s.%s" % (params["referred_schema"], tname) - - options = params.get("options", {}) - - const = sa_schema.ForeignKeyConstraint( - [conn_table.c[cname] for cname in params["constrained_columns"]], - ["%s.%s" % (tname, n) for n in params["referred_columns"]], - onupdate=options.get("onupdate"), - ondelete=options.get("ondelete"), - deferrable=options.get("deferrable"), - initially=options.get("initially"), - name=params["name"], - ) - # needed by 0.7 - conn_table.append_constraint(const) - return const - - -@contextlib.contextmanager -def _compare_columns( - schema: Optional[str], - tname: Union[quoted_name, str], - conn_table: Table, - metadata_table: Table, - modify_table_ops: ModifyTableOps, - autogen_context: AutogenContext, - inspector: Inspector, -) -> Iterator[None]: - name = "%s.%s" % (schema, tname) if schema else tname - metadata_col_names = OrderedSet( - c.name for c in metadata_table.c if not c.system - ) - metadata_cols_by_name = { - c.name: c for c in metadata_table.c if not c.system - } - - conn_col_names = { - c.name: c - for c in conn_table.c - if autogen_context.run_name_filters( - c.name, "column", {"table_name": tname, "schema_name": schema} - ) - } - - for cname in metadata_col_names.difference(conn_col_names): - if autogen_context.run_object_filters( - metadata_cols_by_name[cname], cname, "column", False, None - ): - modify_table_ops.ops.append( - ops.AddColumnOp.from_column_and_tablename( - schema, tname, metadata_cols_by_name[cname] - ) - ) - log.info("Detected added column '%s.%s'", name, cname) - - for colname in metadata_col_names.intersection(conn_col_names): - metadata_col = metadata_cols_by_name[colname] - conn_col = conn_table.c[colname] - if not autogen_context.run_object_filters( - metadata_col, colname, "column", False, conn_col - ): - continue - alter_column_op = ops.AlterColumnOp(tname, colname, schema=schema) - - comparators.dispatch("column")( - autogen_context, - alter_column_op, - schema, - tname, - colname, - conn_col, - metadata_col, - ) - - if alter_column_op.has_changes(): - modify_table_ops.ops.append(alter_column_op) - - yield - - for cname in set(conn_col_names).difference(metadata_col_names): - if autogen_context.run_object_filters( - conn_table.c[cname], cname, "column", True, None - ): - modify_table_ops.ops.append( - ops.DropColumnOp.from_column_and_tablename( - schema, tname, conn_table.c[cname] - ) - ) - log.info("Detected removed column '%s.%s'", name, cname) - - -_C = TypeVar("_C", bound=Union[UniqueConstraint, ForeignKeyConstraint, Index]) - - -@comparators.dispatch_for("table") -def _compare_indexes_and_uniques( - autogen_context: AutogenContext, - modify_ops: ModifyTableOps, - schema: Optional[str], - tname: Union[quoted_name, str], - conn_table: Optional[Table], - metadata_table: Optional[Table], -) -> None: - inspector = autogen_context.inspector - is_create_table = conn_table is None - is_drop_table = metadata_table is None - impl = autogen_context.migration_context.impl - - # 1a. get raw indexes and unique constraints from metadata ... - if metadata_table is not None: - metadata_unique_constraints = { - uq - for uq in metadata_table.constraints - if isinstance(uq, sa_schema.UniqueConstraint) - } - metadata_indexes = set(metadata_table.indexes) - else: - metadata_unique_constraints = set() - metadata_indexes = set() - - conn_uniques = conn_indexes = frozenset() # type:ignore[var-annotated] - - supports_unique_constraints = False - - unique_constraints_duplicate_unique_indexes = False - - if conn_table is not None: - # 1b. ... and from connection, if the table exists - try: - conn_uniques = inspector.get_unique_constraints( # type:ignore[assignment] # noqa - tname, schema=schema - ) - supports_unique_constraints = True - except NotImplementedError: - pass - except TypeError: - # number of arguments is off for the base - # method in SQLAlchemy due to the cache decorator - # not being present - pass - else: - conn_uniques = [ # type:ignore[assignment] - uq - for uq in conn_uniques - if autogen_context.run_name_filters( - uq["name"], - "unique_constraint", - {"table_name": tname, "schema_name": schema}, - ) - ] - for uq in conn_uniques: - if uq.get("duplicates_index"): - unique_constraints_duplicate_unique_indexes = True - try: - conn_indexes = inspector.get_indexes( # type:ignore[assignment] - tname, schema=schema - ) - except NotImplementedError: - pass - else: - conn_indexes = [ # type:ignore[assignment] - ix - for ix in conn_indexes - if autogen_context.run_name_filters( - ix["name"], - "index", - {"table_name": tname, "schema_name": schema}, - ) - ] - - # 2. convert conn-level objects from raw inspector records - # into schema objects - if is_drop_table: - # for DROP TABLE uniques are inline, don't need them - conn_uniques = set() # type:ignore[assignment] - else: - conn_uniques = { # type:ignore[assignment] - _make_unique_constraint(impl, uq_def, conn_table) - for uq_def in conn_uniques - } - - conn_indexes = { # type:ignore[assignment] - index - for index in ( - _make_index(impl, ix, conn_table) for ix in conn_indexes - ) - if index is not None - } - - # 2a. if the dialect dupes unique indexes as unique constraints - # (mysql and oracle), correct for that - - if unique_constraints_duplicate_unique_indexes: - _correct_for_uq_duplicates_uix( - conn_uniques, - conn_indexes, - metadata_unique_constraints, - metadata_indexes, - autogen_context.dialect, - impl, - ) - - # 3. give the dialect a chance to omit indexes and constraints that - # we know are either added implicitly by the DB or that the DB - # can't accurately report on - impl.correct_for_autogen_constraints( - conn_uniques, # type: ignore[arg-type] - conn_indexes, # type: ignore[arg-type] - metadata_unique_constraints, - metadata_indexes, - ) - - # 4. organize the constraints into "signature" collections, the - # _constraint_sig() objects provide a consistent facade over both - # Index and UniqueConstraint so we can easily work with them - # interchangeably - metadata_unique_constraints_sig = { - impl._create_metadata_constraint_sig(uq) - for uq in metadata_unique_constraints - } - - metadata_indexes_sig = { - impl._create_metadata_constraint_sig(ix) for ix in metadata_indexes - } - - conn_unique_constraints = { - impl._create_reflected_constraint_sig(uq) for uq in conn_uniques - } - - conn_indexes_sig = { - impl._create_reflected_constraint_sig(ix) for ix in conn_indexes - } - - # 5. index things by name, for those objects that have names - metadata_names = { - cast(str, c.md_name_to_sql_name(autogen_context)): c - for c in metadata_unique_constraints_sig.union(metadata_indexes_sig) - if c.is_named - } - - conn_uniques_by_name: Dict[sqla_compat._ConstraintName, _constraint_sig] - conn_indexes_by_name: Dict[sqla_compat._ConstraintName, _constraint_sig] - - conn_uniques_by_name = {c.name: c for c in conn_unique_constraints} - conn_indexes_by_name = {c.name: c for c in conn_indexes_sig} - conn_names = { - c.name: c - for c in conn_unique_constraints.union(conn_indexes_sig) - if sqla_compat.constraint_name_string(c.name) - } - - doubled_constraints = { - name: (conn_uniques_by_name[name], conn_indexes_by_name[name]) - for name in set(conn_uniques_by_name).intersection( - conn_indexes_by_name - ) - } - - # 6. index things by "column signature", to help with unnamed unique - # constraints. - conn_uniques_by_sig = {uq.unnamed: uq for uq in conn_unique_constraints} - metadata_uniques_by_sig = { - uq.unnamed: uq for uq in metadata_unique_constraints_sig - } - unnamed_metadata_uniques = { - uq.unnamed: uq - for uq in metadata_unique_constraints_sig - if not sqla_compat._constraint_is_named( - uq.const, autogen_context.dialect - ) - } - - # assumptions: - # 1. a unique constraint or an index from the connection *always* - # has a name. - # 2. an index on the metadata side *always* has a name. - # 3. a unique constraint on the metadata side *might* have a name. - # 4. The backend may double up indexes as unique constraints and - # vice versa (e.g. MySQL, Postgresql) - - def obj_added(obj: _constraint_sig): - if is_index_sig(obj): - if autogen_context.run_object_filters( - obj.const, obj.name, "index", False, None - ): - modify_ops.ops.append(ops.CreateIndexOp.from_index(obj.const)) - log.info( - "Detected added index '%r' on '%s'", - obj.name, - obj.column_names, - ) - elif is_uq_sig(obj): - if not supports_unique_constraints: - # can't report unique indexes as added if we don't - # detect them - return - if is_create_table or is_drop_table: - # unique constraints are created inline with table defs - return - if autogen_context.run_object_filters( - obj.const, obj.name, "unique_constraint", False, None - ): - modify_ops.ops.append( - ops.AddConstraintOp.from_constraint(obj.const) - ) - log.info( - "Detected added unique constraint %r on '%s'", - obj.name, - obj.column_names, - ) - else: - assert False - - def obj_removed(obj: _constraint_sig): - if is_index_sig(obj): - if obj.is_unique and not supports_unique_constraints: - # many databases double up unique constraints - # as unique indexes. without that list we can't - # be sure what we're doing here - return - - if autogen_context.run_object_filters( - obj.const, obj.name, "index", True, None - ): - modify_ops.ops.append(ops.DropIndexOp.from_index(obj.const)) - log.info("Detected removed index %r on %r", obj.name, tname) - elif is_uq_sig(obj): - if is_create_table or is_drop_table: - # if the whole table is being dropped, we don't need to - # consider unique constraint separately - return - if autogen_context.run_object_filters( - obj.const, obj.name, "unique_constraint", True, None - ): - modify_ops.ops.append( - ops.DropConstraintOp.from_constraint(obj.const) - ) - log.info( - "Detected removed unique constraint %r on %r", - obj.name, - tname, - ) - else: - assert False - - def obj_changed( - old: _constraint_sig, - new: _constraint_sig, - msg: str, - ): - if is_index_sig(old): - assert is_index_sig(new) - - if autogen_context.run_object_filters( - new.const, new.name, "index", False, old.const - ): - log.info( - "Detected changed index %r on %r: %s", old.name, tname, msg - ) - modify_ops.ops.append(ops.DropIndexOp.from_index(old.const)) - modify_ops.ops.append(ops.CreateIndexOp.from_index(new.const)) - elif is_uq_sig(old): - assert is_uq_sig(new) - - if autogen_context.run_object_filters( - new.const, new.name, "unique_constraint", False, old.const - ): - log.info( - "Detected changed unique constraint %r on %r: %s", - old.name, - tname, - msg, - ) - modify_ops.ops.append( - ops.DropConstraintOp.from_constraint(old.const) - ) - modify_ops.ops.append( - ops.AddConstraintOp.from_constraint(new.const) - ) - else: - assert False - - for removed_name in sorted(set(conn_names).difference(metadata_names)): - conn_obj = conn_names[removed_name] - if ( - is_uq_sig(conn_obj) - and conn_obj.unnamed in unnamed_metadata_uniques - ): - continue - elif removed_name in doubled_constraints: - conn_uq, conn_idx = doubled_constraints[removed_name] - if ( - all( - conn_idx.unnamed != meta_idx.unnamed - for meta_idx in metadata_indexes_sig - ) - and conn_uq.unnamed not in metadata_uniques_by_sig - ): - obj_removed(conn_uq) - obj_removed(conn_idx) - else: - obj_removed(conn_obj) - - for existing_name in sorted(set(metadata_names).intersection(conn_names)): - metadata_obj = metadata_names[existing_name] - - if existing_name in doubled_constraints: - conn_uq, conn_idx = doubled_constraints[existing_name] - if is_index_sig(metadata_obj): - conn_obj = conn_idx - else: - conn_obj = conn_uq - else: - conn_obj = conn_names[existing_name] - - if type(conn_obj) != type(metadata_obj): - obj_removed(conn_obj) - obj_added(metadata_obj) - else: - comparison = metadata_obj.compare_to_reflected(conn_obj) - - if comparison.is_different: - # constraint are different - obj_changed(conn_obj, metadata_obj, comparison.message) - elif comparison.is_skip: - # constraint cannot be compared, skip them - thing = ( - "index" if is_index_sig(conn_obj) else "unique constraint" - ) - log.info( - "Cannot compare %s %r, assuming equal and skipping. %s", - thing, - conn_obj.name, - comparison.message, - ) - else: - # constraint are equal - assert comparison.is_equal - - for added_name in sorted(set(metadata_names).difference(conn_names)): - obj = metadata_names[added_name] - obj_added(obj) - - for uq_sig in unnamed_metadata_uniques: - if uq_sig not in conn_uniques_by_sig: - obj_added(unnamed_metadata_uniques[uq_sig]) - - -def _correct_for_uq_duplicates_uix( - conn_unique_constraints, - conn_indexes, - metadata_unique_constraints, - metadata_indexes, - dialect, - impl, -): - # dedupe unique indexes vs. constraints, since MySQL / Oracle - # doesn't really have unique constraints as a separate construct. - # but look in the metadata and try to maintain constructs - # that already seem to be defined one way or the other - # on that side. This logic was formerly local to MySQL dialect, - # generalized to Oracle and others. See #276 - - # resolve final rendered name for unique constraints defined in the - # metadata. this includes truncation of long names. naming convention - # names currently should already be set as cons.name, however leave this - # to the sqla_compat to decide. - metadata_cons_names = [ - (sqla_compat._get_constraint_final_name(cons, dialect), cons) - for cons in metadata_unique_constraints - ] - - metadata_uq_names = { - name for name, cons in metadata_cons_names if name is not None - } - - unnamed_metadata_uqs = { - impl._create_metadata_constraint_sig(cons).unnamed - for name, cons in metadata_cons_names - if name is None - } - - metadata_ix_names = { - sqla_compat._get_constraint_final_name(cons, dialect) - for cons in metadata_indexes - if cons.unique - } - - # for reflection side, names are in their final database form - # already since they're from the database - conn_ix_names = {cons.name: cons for cons in conn_indexes if cons.unique} - - uqs_dupe_indexes = { - cons.name: cons - for cons in conn_unique_constraints - if cons.info["duplicates_index"] - } - - for overlap in uqs_dupe_indexes: - if overlap not in metadata_uq_names: - if ( - impl._create_reflected_constraint_sig( - uqs_dupe_indexes[overlap] - ).unnamed - not in unnamed_metadata_uqs - ): - conn_unique_constraints.discard(uqs_dupe_indexes[overlap]) - elif overlap not in metadata_ix_names: - conn_indexes.discard(conn_ix_names[overlap]) - - -@comparators.dispatch_for("column") -def _compare_nullable( - autogen_context: AutogenContext, - alter_column_op: AlterColumnOp, - schema: Optional[str], - tname: Union[quoted_name, str], - cname: Union[quoted_name, str], - conn_col: Column[Any], - metadata_col: Column[Any], -) -> None: - metadata_col_nullable = metadata_col.nullable - conn_col_nullable = conn_col.nullable - alter_column_op.existing_nullable = conn_col_nullable - - if conn_col_nullable is not metadata_col_nullable: - if ( - sqla_compat._server_default_is_computed( - metadata_col.server_default, conn_col.server_default - ) - and sqla_compat._nullability_might_be_unset(metadata_col) - or ( - sqla_compat._server_default_is_identity( - metadata_col.server_default, conn_col.server_default - ) - ) - ): - log.info( - "Ignoring nullable change on identity column '%s.%s'", - tname, - cname, - ) - else: - alter_column_op.modify_nullable = metadata_col_nullable - log.info( - "Detected %s on column '%s.%s'", - "NULL" if metadata_col_nullable else "NOT NULL", - tname, - cname, - ) - - -@comparators.dispatch_for("column") -def _setup_autoincrement( - autogen_context: AutogenContext, - alter_column_op: AlterColumnOp, - schema: Optional[str], - tname: Union[quoted_name, str], - cname: quoted_name, - conn_col: Column[Any], - metadata_col: Column[Any], -) -> None: - if metadata_col.table._autoincrement_column is metadata_col: - alter_column_op.kw["autoincrement"] = True - elif metadata_col.autoincrement is True: - alter_column_op.kw["autoincrement"] = True - elif metadata_col.autoincrement is False: - alter_column_op.kw["autoincrement"] = False - - -@comparators.dispatch_for("column") -def _compare_type( - autogen_context: AutogenContext, - alter_column_op: AlterColumnOp, - schema: Optional[str], - tname: Union[quoted_name, str], - cname: Union[quoted_name, str], - conn_col: Column[Any], - metadata_col: Column[Any], -) -> None: - conn_type = conn_col.type - alter_column_op.existing_type = conn_type - metadata_type = metadata_col.type - if conn_type._type_affinity is sqltypes.NullType: - log.info( - "Couldn't determine database type " "for column '%s.%s'", - tname, - cname, - ) - return - if metadata_type._type_affinity is sqltypes.NullType: - log.info( - "Column '%s.%s' has no type within " "the model; can't compare", - tname, - cname, - ) - return - - isdiff = autogen_context.migration_context._compare_type( - conn_col, metadata_col - ) - - if isdiff: - alter_column_op.modify_type = metadata_type - log.info( - "Detected type change from %r to %r on '%s.%s'", - conn_type, - metadata_type, - tname, - cname, - ) - - -def _render_server_default_for_compare( - metadata_default: Optional[Any], autogen_context: AutogenContext -) -> Optional[str]: - if isinstance(metadata_default, sa_schema.DefaultClause): - if isinstance(metadata_default.arg, str): - metadata_default = metadata_default.arg - else: - metadata_default = str( - metadata_default.arg.compile( - dialect=autogen_context.dialect, - compile_kwargs={"literal_binds": True}, - ) - ) - if isinstance(metadata_default, str): - return metadata_default - else: - return None - - -def _normalize_computed_default(sqltext: str) -> str: - """we want to warn if a computed sql expression has changed. however - we don't want false positives and the warning is not that critical. - so filter out most forms of variability from the SQL text. - - """ - - return re.sub(r"[ \(\)'\"`\[\]\t\r\n]", "", sqltext).lower() - - -def _compare_computed_default( - autogen_context: AutogenContext, - alter_column_op: AlterColumnOp, - schema: Optional[str], - tname: str, - cname: str, - conn_col: Column[Any], - metadata_col: Column[Any], -) -> None: - rendered_metadata_default = str( - cast(sa_schema.Computed, metadata_col.server_default).sqltext.compile( - dialect=autogen_context.dialect, - compile_kwargs={"literal_binds": True}, - ) - ) - - # since we cannot change computed columns, we do only a crude comparison - # here where we try to eliminate syntactical differences in order to - # get a minimal comparison just to emit a warning. - - rendered_metadata_default = _normalize_computed_default( - rendered_metadata_default - ) - - if isinstance(conn_col.server_default, sa_schema.Computed): - rendered_conn_default = str( - conn_col.server_default.sqltext.compile( - dialect=autogen_context.dialect, - compile_kwargs={"literal_binds": True}, - ) - ) - if rendered_conn_default is None: - rendered_conn_default = "" - else: - rendered_conn_default = _normalize_computed_default( - rendered_conn_default - ) - else: - rendered_conn_default = "" - - if rendered_metadata_default != rendered_conn_default: - _warn_computed_not_supported(tname, cname) - - -def _warn_computed_not_supported(tname: str, cname: str) -> None: - util.warn("Computed default on %s.%s cannot be modified" % (tname, cname)) - - -def _compare_identity_default( - autogen_context, - alter_column_op, - schema, - tname, - cname, - conn_col, - metadata_col, -): - impl = autogen_context.migration_context.impl - diff, ignored_attr, is_alter = impl._compare_identity_default( - metadata_col.server_default, conn_col.server_default - ) - - return diff, is_alter - - -@comparators.dispatch_for("column") -def _compare_server_default( - autogen_context: AutogenContext, - alter_column_op: AlterColumnOp, - schema: Optional[str], - tname: Union[quoted_name, str], - cname: Union[quoted_name, str], - conn_col: Column[Any], - metadata_col: Column[Any], -) -> Optional[bool]: - metadata_default = metadata_col.server_default - conn_col_default = conn_col.server_default - if conn_col_default is None and metadata_default is None: - return False - - if sqla_compat._server_default_is_computed(metadata_default): - # return False in case of a computed column as the server - # default. Note that DDL for adding or removing "GENERATED AS" from - # an existing column is not currently known for any backend. - # Once SQLAlchemy can reflect "GENERATED" as the "computed" element, - # we would also want to ignore and/or warn for changes vs. the - # metadata (or support backend specific DDL if applicable). - if not sqla_compat.has_computed_reflection: - return False - - else: - return ( - _compare_computed_default( # type:ignore[func-returns-value] - autogen_context, - alter_column_op, - schema, - tname, - cname, - conn_col, - metadata_col, - ) - ) - if sqla_compat._server_default_is_computed(conn_col_default): - _warn_computed_not_supported(tname, cname) - return False - - if sqla_compat._server_default_is_identity( - metadata_default, conn_col_default - ): - alter_column_op.existing_server_default = conn_col_default - diff, is_alter = _compare_identity_default( - autogen_context, - alter_column_op, - schema, - tname, - cname, - conn_col, - metadata_col, - ) - if is_alter: - alter_column_op.modify_server_default = metadata_default - if diff: - log.info( - "Detected server default on column '%s.%s': " - "identity options attributes %s", - tname, - cname, - sorted(diff), - ) - else: - rendered_metadata_default = _render_server_default_for_compare( - metadata_default, autogen_context - ) - - rendered_conn_default = ( - cast(Any, conn_col_default).arg.text if conn_col_default else None - ) - - alter_column_op.existing_server_default = conn_col_default - - is_diff = autogen_context.migration_context._compare_server_default( - conn_col, - metadata_col, - rendered_metadata_default, - rendered_conn_default, - ) - if is_diff: - alter_column_op.modify_server_default = metadata_default - log.info("Detected server default on column '%s.%s'", tname, cname) - - return None - - -@comparators.dispatch_for("column") -def _compare_column_comment( - autogen_context: AutogenContext, - alter_column_op: AlterColumnOp, - schema: Optional[str], - tname: Union[quoted_name, str], - cname: quoted_name, - conn_col: Column[Any], - metadata_col: Column[Any], -) -> Optional[Literal[False]]: - assert autogen_context.dialect is not None - if not autogen_context.dialect.supports_comments: - return None - - metadata_comment = metadata_col.comment - conn_col_comment = conn_col.comment - if conn_col_comment is None and metadata_comment is None: - return False - - alter_column_op.existing_comment = conn_col_comment - - if conn_col_comment != metadata_comment: - alter_column_op.modify_comment = metadata_comment - log.info("Detected column comment '%s.%s'", tname, cname) - - return None - - -@comparators.dispatch_for("table") -def _compare_foreign_keys( - autogen_context: AutogenContext, - modify_table_ops: ModifyTableOps, - schema: Optional[str], - tname: Union[quoted_name, str], - conn_table: Table, - metadata_table: Table, -) -> None: - # if we're doing CREATE TABLE, all FKs are created - # inline within the table def - if conn_table is None or metadata_table is None: - return - - inspector = autogen_context.inspector - metadata_fks = { - fk - for fk in metadata_table.constraints - if isinstance(fk, sa_schema.ForeignKeyConstraint) - } - - conn_fks_list = [ - fk - for fk in inspector.get_foreign_keys(tname, schema=schema) - if autogen_context.run_name_filters( - fk["name"], - "foreign_key_constraint", - {"table_name": tname, "schema_name": schema}, - ) - ] - - conn_fks = { - _make_foreign_key(const, conn_table) # type: ignore[arg-type] - for const in conn_fks_list - } - - impl = autogen_context.migration_context.impl - - # give the dialect a chance to correct the FKs to match more - # closely - autogen_context.migration_context.impl.correct_for_autogen_foreignkeys( - conn_fks, metadata_fks - ) - - metadata_fks_sig = { - impl._create_metadata_constraint_sig(fk) for fk in metadata_fks - } - - conn_fks_sig = { - impl._create_reflected_constraint_sig(fk) for fk in conn_fks - } - - # check if reflected FKs include options, indicating the backend - # can reflect FK options - if conn_fks_list and "options" in conn_fks_list[0]: - conn_fks_by_sig = {c.unnamed: c for c in conn_fks_sig} - metadata_fks_by_sig = {c.unnamed: c for c in metadata_fks_sig} - else: - # otherwise compare by sig without options added - conn_fks_by_sig = {c.unnamed_no_options: c for c in conn_fks_sig} - metadata_fks_by_sig = { - c.unnamed_no_options: c for c in metadata_fks_sig - } - - metadata_fks_by_name = { - c.name: c for c in metadata_fks_sig if c.name is not None - } - conn_fks_by_name = {c.name: c for c in conn_fks_sig if c.name is not None} - - def _add_fk(obj, compare_to): - if autogen_context.run_object_filters( - obj.const, obj.name, "foreign_key_constraint", False, compare_to - ): - modify_table_ops.ops.append( - ops.CreateForeignKeyOp.from_constraint(const.const) # type: ignore[has-type] # noqa: E501 - ) - - log.info( - "Detected added foreign key (%s)(%s) on table %s%s", - ", ".join(obj.source_columns), - ", ".join(obj.target_columns), - "%s." % obj.source_schema if obj.source_schema else "", - obj.source_table, - ) - - def _remove_fk(obj, compare_to): - if autogen_context.run_object_filters( - obj.const, obj.name, "foreign_key_constraint", True, compare_to - ): - modify_table_ops.ops.append( - ops.DropConstraintOp.from_constraint(obj.const) - ) - log.info( - "Detected removed foreign key (%s)(%s) on table %s%s", - ", ".join(obj.source_columns), - ", ".join(obj.target_columns), - "%s." % obj.source_schema if obj.source_schema else "", - obj.source_table, - ) - - # so far it appears we don't need to do this by name at all. - # SQLite doesn't preserve constraint names anyway - - for removed_sig in set(conn_fks_by_sig).difference(metadata_fks_by_sig): - const = conn_fks_by_sig[removed_sig] - if removed_sig not in metadata_fks_by_sig: - compare_to = ( - metadata_fks_by_name[const.name].const - if const.name in metadata_fks_by_name - else None - ) - _remove_fk(const, compare_to) - - for added_sig in set(metadata_fks_by_sig).difference(conn_fks_by_sig): - const = metadata_fks_by_sig[added_sig] - if added_sig not in conn_fks_by_sig: - compare_to = ( - conn_fks_by_name[const.name].const - if const.name in conn_fks_by_name - else None - ) - _add_fk(const, compare_to) - - -@comparators.dispatch_for("table") -def _compare_table_comment( - autogen_context: AutogenContext, - modify_table_ops: ModifyTableOps, - schema: Optional[str], - tname: Union[quoted_name, str], - conn_table: Optional[Table], - metadata_table: Optional[Table], -) -> None: - assert autogen_context.dialect is not None - if not autogen_context.dialect.supports_comments: - return - - # if we're doing CREATE TABLE, comments will be created inline - # with the create_table op. - if conn_table is None or metadata_table is None: - return - - if conn_table.comment is None and metadata_table.comment is None: - return - - if metadata_table.comment is None and conn_table.comment is not None: - modify_table_ops.ops.append( - ops.DropTableCommentOp( - tname, existing_comment=conn_table.comment, schema=schema - ) - ) - elif metadata_table.comment != conn_table.comment: - modify_table_ops.ops.append( - ops.CreateTableCommentOp( - tname, - metadata_table.comment, - existing_comment=conn_table.comment, - schema=schema, - ) - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/render.py b/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/render.py deleted file mode 100644 index 38bdbfc..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/render.py +++ /dev/null @@ -1,1118 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -from io import StringIO -import re -from typing import Any -from typing import cast -from typing import Dict -from typing import List -from typing import Optional -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -from mako.pygen import PythonPrinter -from sqlalchemy import schema as sa_schema -from sqlalchemy import sql -from sqlalchemy import types as sqltypes -from sqlalchemy.sql.elements import conv -from sqlalchemy.sql.elements import quoted_name - -from .. import util -from ..operations import ops -from ..util import sqla_compat - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy.sql.base import DialectKWArgs - from sqlalchemy.sql.elements import ColumnElement - from sqlalchemy.sql.elements import TextClause - from sqlalchemy.sql.schema import CheckConstraint - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import Constraint - from sqlalchemy.sql.schema import FetchedValue - from sqlalchemy.sql.schema import ForeignKey - from sqlalchemy.sql.schema import ForeignKeyConstraint - from sqlalchemy.sql.schema import Index - from sqlalchemy.sql.schema import MetaData - from sqlalchemy.sql.schema import PrimaryKeyConstraint - from sqlalchemy.sql.schema import UniqueConstraint - from sqlalchemy.sql.sqltypes import ARRAY - from sqlalchemy.sql.type_api import TypeEngine - - from alembic.autogenerate.api import AutogenContext - from alembic.config import Config - from alembic.operations.ops import MigrationScript - from alembic.operations.ops import ModifyTableOps - from alembic.util.sqla_compat import Computed - from alembic.util.sqla_compat import Identity - - -MAX_PYTHON_ARGS = 255 - - -def _render_gen_name( - autogen_context: AutogenContext, - name: sqla_compat._ConstraintName, -) -> Optional[Union[quoted_name, str, _f_name]]: - if isinstance(name, conv): - return _f_name(_alembic_autogenerate_prefix(autogen_context), name) - else: - return sqla_compat.constraint_name_or_none(name) - - -def _indent(text: str) -> str: - text = re.compile(r"^", re.M).sub(" ", text).strip() - text = re.compile(r" +$", re.M).sub("", text) - return text - - -def _render_python_into_templatevars( - autogen_context: AutogenContext, - migration_script: MigrationScript, - template_args: Dict[str, Union[str, Config]], -) -> None: - imports = autogen_context.imports - - for upgrade_ops, downgrade_ops in zip( - migration_script.upgrade_ops_list, migration_script.downgrade_ops_list - ): - template_args[upgrade_ops.upgrade_token] = _indent( - _render_cmd_body(upgrade_ops, autogen_context) - ) - template_args[downgrade_ops.downgrade_token] = _indent( - _render_cmd_body(downgrade_ops, autogen_context) - ) - template_args["imports"] = "\n".join(sorted(imports)) - - -default_renderers = renderers = util.Dispatcher() - - -def _render_cmd_body( - op_container: ops.OpContainer, - autogen_context: AutogenContext, -) -> str: - buf = StringIO() - printer = PythonPrinter(buf) - - printer.writeline( - "# ### commands auto generated by Alembic - please adjust! ###" - ) - - has_lines = False - for op in op_container.ops: - lines = render_op(autogen_context, op) - has_lines = has_lines or bool(lines) - - for line in lines: - printer.writeline(line) - - if not has_lines: - printer.writeline("pass") - - printer.writeline("# ### end Alembic commands ###") - - return buf.getvalue() - - -def render_op( - autogen_context: AutogenContext, op: ops.MigrateOperation -) -> List[str]: - renderer = renderers.dispatch(op) - lines = util.to_list(renderer(autogen_context, op)) - return lines - - -def render_op_text( - autogen_context: AutogenContext, op: ops.MigrateOperation -) -> str: - return "\n".join(render_op(autogen_context, op)) - - -@renderers.dispatch_for(ops.ModifyTableOps) -def _render_modify_table( - autogen_context: AutogenContext, op: ModifyTableOps -) -> List[str]: - opts = autogen_context.opts - render_as_batch = opts.get("render_as_batch", False) - - if op.ops: - lines = [] - if render_as_batch: - with autogen_context._within_batch(): - lines.append( - "with op.batch_alter_table(%r, schema=%r) as batch_op:" - % (op.table_name, op.schema) - ) - for t_op in op.ops: - t_lines = render_op(autogen_context, t_op) - lines.extend(t_lines) - lines.append("") - else: - for t_op in op.ops: - t_lines = render_op(autogen_context, t_op) - lines.extend(t_lines) - - return lines - else: - return [] - - -@renderers.dispatch_for(ops.CreateTableCommentOp) -def _render_create_table_comment( - autogen_context: AutogenContext, op: ops.CreateTableCommentOp -) -> str: - if autogen_context._has_batch: - templ = ( - "{prefix}create_table_comment(\n" - "{indent}{comment},\n" - "{indent}existing_comment={existing}\n" - ")" - ) - else: - templ = ( - "{prefix}create_table_comment(\n" - "{indent}'{tname}',\n" - "{indent}{comment},\n" - "{indent}existing_comment={existing},\n" - "{indent}schema={schema}\n" - ")" - ) - return templ.format( - prefix=_alembic_autogenerate_prefix(autogen_context), - tname=op.table_name, - comment="%r" % op.comment if op.comment is not None else None, - existing=( - "%r" % op.existing_comment - if op.existing_comment is not None - else None - ), - schema="'%s'" % op.schema if op.schema is not None else None, - indent=" ", - ) - - -@renderers.dispatch_for(ops.DropTableCommentOp) -def _render_drop_table_comment( - autogen_context: AutogenContext, op: ops.DropTableCommentOp -) -> str: - if autogen_context._has_batch: - templ = ( - "{prefix}drop_table_comment(\n" - "{indent}existing_comment={existing}\n" - ")" - ) - else: - templ = ( - "{prefix}drop_table_comment(\n" - "{indent}'{tname}',\n" - "{indent}existing_comment={existing},\n" - "{indent}schema={schema}\n" - ")" - ) - return templ.format( - prefix=_alembic_autogenerate_prefix(autogen_context), - tname=op.table_name, - existing=( - "%r" % op.existing_comment - if op.existing_comment is not None - else None - ), - schema="'%s'" % op.schema if op.schema is not None else None, - indent=" ", - ) - - -@renderers.dispatch_for(ops.CreateTableOp) -def _add_table(autogen_context: AutogenContext, op: ops.CreateTableOp) -> str: - table = op.to_table() - - args = [ - col - for col in [ - _render_column(col, autogen_context) for col in table.columns - ] - if col - ] + sorted( - [ - rcons - for rcons in [ - _render_constraint( - cons, autogen_context, op._namespace_metadata - ) - for cons in table.constraints - ] - if rcons is not None - ] - ) - - if len(args) > MAX_PYTHON_ARGS: - args_str = "*[" + ",\n".join(args) + "]" - else: - args_str = ",\n".join(args) - - text = "%(prefix)screate_table(%(tablename)r,\n%(args)s" % { - "tablename": _ident(op.table_name), - "prefix": _alembic_autogenerate_prefix(autogen_context), - "args": args_str, - } - if op.schema: - text += ",\nschema=%r" % _ident(op.schema) - - comment = table.comment - if comment: - text += ",\ncomment=%r" % _ident(comment) - - info = table.info - if info: - text += f",\ninfo={info!r}" - - for k in sorted(op.kw): - text += ",\n%s=%r" % (k.replace(" ", "_"), op.kw[k]) - - if table._prefixes: - prefixes = ", ".join("'%s'" % p for p in table._prefixes) - text += ",\nprefixes=[%s]" % prefixes - - if op.if_not_exists is not None: - text += ",\nif_not_exists=%r" % bool(op.if_not_exists) - - text += "\n)" - return text - - -@renderers.dispatch_for(ops.DropTableOp) -def _drop_table(autogen_context: AutogenContext, op: ops.DropTableOp) -> str: - text = "%(prefix)sdrop_table(%(tname)r" % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "tname": _ident(op.table_name), - } - if op.schema: - text += ", schema=%r" % _ident(op.schema) - - if op.if_exists is not None: - text += ", if_exists=%r" % bool(op.if_exists) - - text += ")" - return text - - -def _render_dialect_kwargs_items( - autogen_context: AutogenContext, item: DialectKWArgs -) -> list[str]: - return [ - f"{key}={_render_potential_expr(val, autogen_context)}" - for key, val in item.dialect_kwargs.items() - ] - - -@renderers.dispatch_for(ops.CreateIndexOp) -def _add_index(autogen_context: AutogenContext, op: ops.CreateIndexOp) -> str: - index = op.to_index() - - has_batch = autogen_context._has_batch - - if has_batch: - tmpl = ( - "%(prefix)screate_index(%(name)r, [%(columns)s], " - "unique=%(unique)r%(kwargs)s)" - ) - else: - tmpl = ( - "%(prefix)screate_index(%(name)r, %(table)r, [%(columns)s], " - "unique=%(unique)r%(schema)s%(kwargs)s)" - ) - - assert index.table is not None - - opts = _render_dialect_kwargs_items(autogen_context, index) - if op.if_not_exists is not None: - opts.append("if_not_exists=%r" % bool(op.if_not_exists)) - text = tmpl % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "name": _render_gen_name(autogen_context, index.name), - "table": _ident(index.table.name), - "columns": ", ".join( - _get_index_rendered_expressions(index, autogen_context) - ), - "unique": index.unique or False, - "schema": ( - (", schema=%r" % _ident(index.table.schema)) - if index.table.schema - else "" - ), - "kwargs": ", " + ", ".join(opts) if opts else "", - } - return text - - -@renderers.dispatch_for(ops.DropIndexOp) -def _drop_index(autogen_context: AutogenContext, op: ops.DropIndexOp) -> str: - index = op.to_index() - - has_batch = autogen_context._has_batch - - if has_batch: - tmpl = "%(prefix)sdrop_index(%(name)r%(kwargs)s)" - else: - tmpl = ( - "%(prefix)sdrop_index(%(name)r, " - "table_name=%(table_name)r%(schema)s%(kwargs)s)" - ) - opts = _render_dialect_kwargs_items(autogen_context, index) - if op.if_exists is not None: - opts.append("if_exists=%r" % bool(op.if_exists)) - text = tmpl % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "name": _render_gen_name(autogen_context, op.index_name), - "table_name": _ident(op.table_name), - "schema": ((", schema=%r" % _ident(op.schema)) if op.schema else ""), - "kwargs": ", " + ", ".join(opts) if opts else "", - } - return text - - -@renderers.dispatch_for(ops.CreateUniqueConstraintOp) -def _add_unique_constraint( - autogen_context: AutogenContext, op: ops.CreateUniqueConstraintOp -) -> List[str]: - return [_uq_constraint(op.to_constraint(), autogen_context, True)] - - -@renderers.dispatch_for(ops.CreateForeignKeyOp) -def _add_fk_constraint( - autogen_context: AutogenContext, op: ops.CreateForeignKeyOp -) -> str: - args = [repr(_render_gen_name(autogen_context, op.constraint_name))] - if not autogen_context._has_batch: - args.append(repr(_ident(op.source_table))) - - args.extend( - [ - repr(_ident(op.referent_table)), - repr([_ident(col) for col in op.local_cols]), - repr([_ident(col) for col in op.remote_cols]), - ] - ) - kwargs = [ - "referent_schema", - "onupdate", - "ondelete", - "initially", - "deferrable", - "use_alter", - "match", - ] - if not autogen_context._has_batch: - kwargs.insert(0, "source_schema") - - for k in kwargs: - if k in op.kw: - value = op.kw[k] - if value is not None: - args.append("%s=%r" % (k, value)) - - return "%(prefix)screate_foreign_key(%(args)s)" % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "args": ", ".join(args), - } - - -@renderers.dispatch_for(ops.CreatePrimaryKeyOp) -def _add_pk_constraint(constraint, autogen_context): - raise NotImplementedError() - - -@renderers.dispatch_for(ops.CreateCheckConstraintOp) -def _add_check_constraint(constraint, autogen_context): - raise NotImplementedError() - - -@renderers.dispatch_for(ops.DropConstraintOp) -def _drop_constraint( - autogen_context: AutogenContext, op: ops.DropConstraintOp -) -> str: - prefix = _alembic_autogenerate_prefix(autogen_context) - name = _render_gen_name(autogen_context, op.constraint_name) - schema = _ident(op.schema) if op.schema else None - type_ = _ident(op.constraint_type) if op.constraint_type else None - - params_strs = [] - params_strs.append(repr(name)) - if not autogen_context._has_batch: - params_strs.append(repr(_ident(op.table_name))) - if schema is not None: - params_strs.append(f"schema={schema!r}") - if type_ is not None: - params_strs.append(f"type_={type_!r}") - - return f"{prefix}drop_constraint({', '.join(params_strs)})" - - -@renderers.dispatch_for(ops.AddColumnOp) -def _add_column(autogen_context: AutogenContext, op: ops.AddColumnOp) -> str: - schema, tname, column = op.schema, op.table_name, op.column - if autogen_context._has_batch: - template = "%(prefix)sadd_column(%(column)s)" - else: - template = "%(prefix)sadd_column(%(tname)r, %(column)s" - if schema: - template += ", schema=%(schema)r" - template += ")" - text = template % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "tname": tname, - "column": _render_column(column, autogen_context), - "schema": schema, - } - return text - - -@renderers.dispatch_for(ops.DropColumnOp) -def _drop_column(autogen_context: AutogenContext, op: ops.DropColumnOp) -> str: - schema, tname, column_name = op.schema, op.table_name, op.column_name - - if autogen_context._has_batch: - template = "%(prefix)sdrop_column(%(cname)r)" - else: - template = "%(prefix)sdrop_column(%(tname)r, %(cname)r" - if schema: - template += ", schema=%(schema)r" - template += ")" - - text = template % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "tname": _ident(tname), - "cname": _ident(column_name), - "schema": _ident(schema), - } - return text - - -@renderers.dispatch_for(ops.AlterColumnOp) -def _alter_column( - autogen_context: AutogenContext, op: ops.AlterColumnOp -) -> str: - tname = op.table_name - cname = op.column_name - server_default = op.modify_server_default - type_ = op.modify_type - nullable = op.modify_nullable - comment = op.modify_comment - autoincrement = op.kw.get("autoincrement", None) - existing_type = op.existing_type - existing_nullable = op.existing_nullable - existing_comment = op.existing_comment - existing_server_default = op.existing_server_default - schema = op.schema - - indent = " " * 11 - - if autogen_context._has_batch: - template = "%(prefix)salter_column(%(cname)r" - else: - template = "%(prefix)salter_column(%(tname)r, %(cname)r" - - text = template % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "tname": tname, - "cname": cname, - } - if existing_type is not None: - text += ",\n%sexisting_type=%s" % ( - indent, - _repr_type(existing_type, autogen_context), - ) - if server_default is not False: - rendered = _render_server_default(server_default, autogen_context) - text += ",\n%sserver_default=%s" % (indent, rendered) - - if type_ is not None: - text += ",\n%stype_=%s" % (indent, _repr_type(type_, autogen_context)) - if nullable is not None: - text += ",\n%snullable=%r" % (indent, nullable) - if comment is not False: - text += ",\n%scomment=%r" % (indent, comment) - if existing_comment is not None: - text += ",\n%sexisting_comment=%r" % (indent, existing_comment) - if nullable is None and existing_nullable is not None: - text += ",\n%sexisting_nullable=%r" % (indent, existing_nullable) - if autoincrement is not None: - text += ",\n%sautoincrement=%r" % (indent, autoincrement) - if server_default is False and existing_server_default: - rendered = _render_server_default( - existing_server_default, autogen_context - ) - text += ",\n%sexisting_server_default=%s" % (indent, rendered) - if schema and not autogen_context._has_batch: - text += ",\n%sschema=%r" % (indent, schema) - text += ")" - return text - - -class _f_name: - def __init__(self, prefix: str, name: conv) -> None: - self.prefix = prefix - self.name = name - - def __repr__(self) -> str: - return "%sf(%r)" % (self.prefix, _ident(self.name)) - - -def _ident(name: Optional[Union[quoted_name, str]]) -> Optional[str]: - """produce a __repr__() object for a string identifier that may - use quoted_name() in SQLAlchemy 0.9 and greater. - - The issue worked around here is that quoted_name() doesn't have - very good repr() behavior by itself when unicode is involved. - - """ - if name is None: - return name - elif isinstance(name, quoted_name): - return str(name) - elif isinstance(name, str): - return name - - -def _render_potential_expr( - value: Any, - autogen_context: AutogenContext, - *, - wrap_in_text: bool = True, - is_server_default: bool = False, - is_index: bool = False, -) -> str: - if isinstance(value, sql.ClauseElement): - if wrap_in_text: - template = "%(prefix)stext(%(sql)r)" - else: - template = "%(sql)r" - - return template % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "sql": autogen_context.migration_context.impl.render_ddl_sql_expr( - value, is_server_default=is_server_default, is_index=is_index - ), - } - - else: - return repr(value) - - -def _get_index_rendered_expressions( - idx: Index, autogen_context: AutogenContext -) -> List[str]: - return [ - ( - repr(_ident(getattr(exp, "name", None))) - if isinstance(exp, sa_schema.Column) - else _render_potential_expr(exp, autogen_context, is_index=True) - ) - for exp in idx.expressions - ] - - -def _uq_constraint( - constraint: UniqueConstraint, - autogen_context: AutogenContext, - alter: bool, -) -> str: - opts: List[Tuple[str, Any]] = [] - - has_batch = autogen_context._has_batch - - if constraint.deferrable: - opts.append(("deferrable", str(constraint.deferrable))) - if constraint.initially: - opts.append(("initially", str(constraint.initially))) - if not has_batch and alter and constraint.table.schema: - opts.append(("schema", _ident(constraint.table.schema))) - if not alter and constraint.name: - opts.append( - ("name", _render_gen_name(autogen_context, constraint.name)) - ) - dialect_options = _render_dialect_kwargs_items(autogen_context, constraint) - - if alter: - args = [repr(_render_gen_name(autogen_context, constraint.name))] - if not has_batch: - args += [repr(_ident(constraint.table.name))] - args.append(repr([_ident(col.name) for col in constraint.columns])) - args.extend(["%s=%r" % (k, v) for k, v in opts]) - args.extend(dialect_options) - return "%(prefix)screate_unique_constraint(%(args)s)" % { - "prefix": _alembic_autogenerate_prefix(autogen_context), - "args": ", ".join(args), - } - else: - args = [repr(_ident(col.name)) for col in constraint.columns] - args.extend(["%s=%r" % (k, v) for k, v in opts]) - args.extend(dialect_options) - return "%(prefix)sUniqueConstraint(%(args)s)" % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "args": ", ".join(args), - } - - -def _user_autogenerate_prefix(autogen_context, target): - prefix = autogen_context.opts["user_module_prefix"] - if prefix is None: - return "%s." % target.__module__ - else: - return prefix - - -def _sqlalchemy_autogenerate_prefix(autogen_context: AutogenContext) -> str: - return autogen_context.opts["sqlalchemy_module_prefix"] or "" - - -def _alembic_autogenerate_prefix(autogen_context: AutogenContext) -> str: - if autogen_context._has_batch: - return "batch_op." - else: - return autogen_context.opts["alembic_module_prefix"] or "" - - -def _user_defined_render( - type_: str, object_: Any, autogen_context: AutogenContext -) -> Union[str, Literal[False]]: - if "render_item" in autogen_context.opts: - render = autogen_context.opts["render_item"] - if render: - rendered = render(type_, object_, autogen_context) - if rendered is not False: - return rendered - return False - - -def _render_column( - column: Column[Any], autogen_context: AutogenContext -) -> str: - rendered = _user_defined_render("column", column, autogen_context) - if rendered is not False: - return rendered - - args: List[str] = [] - opts: List[Tuple[str, Any]] = [] - - if column.server_default: - rendered = _render_server_default( # type:ignore[assignment] - column.server_default, autogen_context - ) - if rendered: - if _should_render_server_default_positionally( - column.server_default - ): - args.append(rendered) - else: - opts.append(("server_default", rendered)) - - if ( - column.autoincrement is not None - and column.autoincrement != sqla_compat.AUTOINCREMENT_DEFAULT - ): - opts.append(("autoincrement", column.autoincrement)) - - if column.nullable is not None: - opts.append(("nullable", column.nullable)) - - if column.system: - opts.append(("system", column.system)) - - comment = column.comment - if comment: - opts.append(("comment", "%r" % comment)) - - # TODO: for non-ascii colname, assign a "key" - return "%(prefix)sColumn(%(name)r, %(type)s, %(args)s%(kwargs)s)" % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "name": _ident(column.name), - "type": _repr_type(column.type, autogen_context), - "args": ", ".join([str(arg) for arg in args]) + ", " if args else "", - "kwargs": ( - ", ".join( - ["%s=%s" % (kwname, val) for kwname, val in opts] - + [ - "%s=%s" - % (key, _render_potential_expr(val, autogen_context)) - for key, val in sqla_compat._column_kwargs(column).items() - ] - ) - ), - } - - -def _should_render_server_default_positionally(server_default: Any) -> bool: - return sqla_compat._server_default_is_computed( - server_default - ) or sqla_compat._server_default_is_identity(server_default) - - -def _render_server_default( - default: Optional[ - Union[FetchedValue, str, TextClause, ColumnElement[Any]] - ], - autogen_context: AutogenContext, - repr_: bool = True, -) -> Optional[str]: - rendered = _user_defined_render("server_default", default, autogen_context) - if rendered is not False: - return rendered - - if sqla_compat._server_default_is_computed(default): - return _render_computed(cast("Computed", default), autogen_context) - elif sqla_compat._server_default_is_identity(default): - return _render_identity(cast("Identity", default), autogen_context) - elif isinstance(default, sa_schema.DefaultClause): - if isinstance(default.arg, str): - default = default.arg - else: - return _render_potential_expr( - default.arg, autogen_context, is_server_default=True - ) - - if isinstance(default, str) and repr_: - default = repr(re.sub(r"^'|'$", "", default)) - - return cast(str, default) - - -def _render_computed( - computed: Computed, autogen_context: AutogenContext -) -> str: - text = _render_potential_expr( - computed.sqltext, autogen_context, wrap_in_text=False - ) - - kwargs = {} - if computed.persisted is not None: - kwargs["persisted"] = computed.persisted - return "%(prefix)sComputed(%(text)s, %(kwargs)s)" % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "text": text, - "kwargs": (", ".join("%s=%s" % pair for pair in kwargs.items())), - } - - -def _render_identity( - identity: Identity, autogen_context: AutogenContext -) -> str: - kwargs = sqla_compat._get_identity_options_dict( - identity, dialect_kwargs=True - ) - - return "%(prefix)sIdentity(%(kwargs)s)" % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "kwargs": (", ".join("%s=%s" % pair for pair in kwargs.items())), - } - - -def _repr_type( - type_: TypeEngine, - autogen_context: AutogenContext, - _skip_variants: bool = False, -) -> str: - rendered = _user_defined_render("type", type_, autogen_context) - if rendered is not False: - return rendered - - if hasattr(autogen_context.migration_context, "impl"): - impl_rt = autogen_context.migration_context.impl.render_type( - type_, autogen_context - ) - else: - impl_rt = None - - mod = type(type_).__module__ - imports = autogen_context.imports - if mod.startswith("sqlalchemy.dialects"): - match = re.match(r"sqlalchemy\.dialects\.(\w+)", mod) - assert match is not None - dname = match.group(1) - if imports is not None: - imports.add("from sqlalchemy.dialects import %s" % dname) - if impl_rt: - return impl_rt - else: - return "%s.%r" % (dname, type_) - elif impl_rt: - return impl_rt - elif not _skip_variants and sqla_compat._type_has_variants(type_): - return _render_Variant_type(type_, autogen_context) - elif mod.startswith("sqlalchemy."): - if "_render_%s_type" % type_.__visit_name__ in globals(): - fn = globals()["_render_%s_type" % type_.__visit_name__] - return fn(type_, autogen_context) - else: - prefix = _sqlalchemy_autogenerate_prefix(autogen_context) - return "%s%r" % (prefix, type_) - else: - prefix = _user_autogenerate_prefix(autogen_context, type_) - return "%s%r" % (prefix, type_) - - -def _render_ARRAY_type(type_: ARRAY, autogen_context: AutogenContext) -> str: - return cast( - str, - _render_type_w_subtype( - type_, autogen_context, "item_type", r"(.+?\()" - ), - ) - - -def _render_Variant_type( - type_: TypeEngine, autogen_context: AutogenContext -) -> str: - base_type, variant_mapping = sqla_compat._get_variant_mapping(type_) - base = _repr_type(base_type, autogen_context, _skip_variants=True) - assert base is not None and base is not False # type: ignore[comparison-overlap] # noqa:E501 - for dialect in sorted(variant_mapping): - typ = variant_mapping[dialect] - base += ".with_variant(%s, %r)" % ( - _repr_type(typ, autogen_context, _skip_variants=True), - dialect, - ) - return base - - -def _render_type_w_subtype( - type_: TypeEngine, - autogen_context: AutogenContext, - attrname: str, - regexp: str, - prefix: Optional[str] = None, -) -> Union[Optional[str], Literal[False]]: - outer_repr = repr(type_) - inner_type = getattr(type_, attrname, None) - if inner_type is None: - return False - - inner_repr = repr(inner_type) - - inner_repr = re.sub(r"([\(\)])", r"\\\1", inner_repr) - sub_type = _repr_type(getattr(type_, attrname), autogen_context) - outer_type = re.sub(regexp + inner_repr, r"\1%s" % sub_type, outer_repr) - - if prefix: - return "%s%s" % (prefix, outer_type) - - mod = type(type_).__module__ - if mod.startswith("sqlalchemy.dialects"): - match = re.match(r"sqlalchemy\.dialects\.(\w+)", mod) - assert match is not None - dname = match.group(1) - return "%s.%s" % (dname, outer_type) - elif mod.startswith("sqlalchemy"): - prefix = _sqlalchemy_autogenerate_prefix(autogen_context) - return "%s%s" % (prefix, outer_type) - else: - return None - - -_constraint_renderers = util.Dispatcher() - - -def _render_constraint( - constraint: Constraint, - autogen_context: AutogenContext, - namespace_metadata: Optional[MetaData], -) -> Optional[str]: - try: - renderer = _constraint_renderers.dispatch(constraint) - except ValueError: - util.warn("No renderer is established for object %r" % constraint) - return "[Unknown Python object %r]" % constraint - else: - return renderer(constraint, autogen_context, namespace_metadata) - - -@_constraint_renderers.dispatch_for(sa_schema.PrimaryKeyConstraint) -def _render_primary_key( - constraint: PrimaryKeyConstraint, - autogen_context: AutogenContext, - namespace_metadata: Optional[MetaData], -) -> Optional[str]: - rendered = _user_defined_render("primary_key", constraint, autogen_context) - if rendered is not False: - return rendered - - if not constraint.columns: - return None - - opts = [] - if constraint.name: - opts.append( - ("name", repr(_render_gen_name(autogen_context, constraint.name))) - ) - return "%(prefix)sPrimaryKeyConstraint(%(args)s)" % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "args": ", ".join( - [repr(c.name) for c in constraint.columns] - + ["%s=%s" % (kwname, val) for kwname, val in opts] - ), - } - - -def _fk_colspec( - fk: ForeignKey, - metadata_schema: Optional[str], - namespace_metadata: MetaData, -) -> str: - """Implement a 'safe' version of ForeignKey._get_colspec() that - won't fail if the remote table can't be resolved. - - """ - colspec = fk._get_colspec() - tokens = colspec.split(".") - tname, colname = tokens[-2:] - - if metadata_schema is not None and len(tokens) == 2: - table_fullname = "%s.%s" % (metadata_schema, tname) - else: - table_fullname = ".".join(tokens[0:-1]) - - if ( - not fk.link_to_name - and fk.parent is not None - and fk.parent.table is not None - ): - # try to resolve the remote table in order to adjust for column.key. - # the FK constraint needs to be rendered in terms of the column - # name. - - if table_fullname in namespace_metadata.tables: - col = namespace_metadata.tables[table_fullname].c.get(colname) - if col is not None: - colname = _ident(col.name) # type: ignore[assignment] - - colspec = "%s.%s" % (table_fullname, colname) - - return colspec - - -def _populate_render_fk_opts( - constraint: ForeignKeyConstraint, opts: List[Tuple[str, str]] -) -> None: - if constraint.onupdate: - opts.append(("onupdate", repr(constraint.onupdate))) - if constraint.ondelete: - opts.append(("ondelete", repr(constraint.ondelete))) - if constraint.initially: - opts.append(("initially", repr(constraint.initially))) - if constraint.deferrable: - opts.append(("deferrable", repr(constraint.deferrable))) - if constraint.use_alter: - opts.append(("use_alter", repr(constraint.use_alter))) - if constraint.match: - opts.append(("match", repr(constraint.match))) - - -@_constraint_renderers.dispatch_for(sa_schema.ForeignKeyConstraint) -def _render_foreign_key( - constraint: ForeignKeyConstraint, - autogen_context: AutogenContext, - namespace_metadata: MetaData, -) -> Optional[str]: - rendered = _user_defined_render("foreign_key", constraint, autogen_context) - if rendered is not False: - return rendered - - opts = [] - if constraint.name: - opts.append( - ("name", repr(_render_gen_name(autogen_context, constraint.name))) - ) - - _populate_render_fk_opts(constraint, opts) - - apply_metadata_schema = namespace_metadata.schema - return ( - "%(prefix)sForeignKeyConstraint([%(cols)s], " - "[%(refcols)s], %(args)s)" - % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "cols": ", ".join( - repr(_ident(f.parent.name)) for f in constraint.elements - ), - "refcols": ", ".join( - repr(_fk_colspec(f, apply_metadata_schema, namespace_metadata)) - for f in constraint.elements - ), - "args": ", ".join( - ["%s=%s" % (kwname, val) for kwname, val in opts] - ), - } - ) - - -@_constraint_renderers.dispatch_for(sa_schema.UniqueConstraint) -def _render_unique_constraint( - constraint: UniqueConstraint, - autogen_context: AutogenContext, - namespace_metadata: Optional[MetaData], -) -> str: - rendered = _user_defined_render("unique", constraint, autogen_context) - if rendered is not False: - return rendered - - return _uq_constraint(constraint, autogen_context, False) - - -@_constraint_renderers.dispatch_for(sa_schema.CheckConstraint) -def _render_check_constraint( - constraint: CheckConstraint, - autogen_context: AutogenContext, - namespace_metadata: Optional[MetaData], -) -> Optional[str]: - rendered = _user_defined_render("check", constraint, autogen_context) - if rendered is not False: - return rendered - - # detect the constraint being part of - # a parent type which is probably in the Table already. - # ideally SQLAlchemy would give us more of a first class - # way to detect this. - if ( - constraint._create_rule - and hasattr(constraint._create_rule, "target") - and isinstance( - constraint._create_rule.target, - sqltypes.TypeEngine, - ) - ): - return None - opts = [] - if constraint.name: - opts.append( - ("name", repr(_render_gen_name(autogen_context, constraint.name))) - ) - return "%(prefix)sCheckConstraint(%(sqltext)s%(opts)s)" % { - "prefix": _sqlalchemy_autogenerate_prefix(autogen_context), - "opts": ( - ", " + (", ".join("%s=%s" % (k, v) for k, v in opts)) - if opts - else "" - ), - "sqltext": _render_potential_expr( - constraint.sqltext, autogen_context, wrap_in_text=False - ), - } - - -@renderers.dispatch_for(ops.ExecuteSQLOp) -def _execute_sql(autogen_context: AutogenContext, op: ops.ExecuteSQLOp) -> str: - if not isinstance(op.sqltext, str): - raise NotImplementedError( - "Autogenerate rendering of SQL Expression language constructs " - "not supported here; please use a plain SQL string" - ) - return "op.execute(%r)" % op.sqltext - - -renderers = default_renderers.branch() diff --git a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/rewriter.py b/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/rewriter.py deleted file mode 100644 index 8994dcf..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/autogenerate/rewriter.py +++ /dev/null @@ -1,240 +0,0 @@ -from __future__ import annotations - -from typing import Any -from typing import Callable -from typing import Iterator -from typing import List -from typing import Tuple -from typing import Type -from typing import TYPE_CHECKING -from typing import Union - -from .. import util -from ..operations import ops - -if TYPE_CHECKING: - from ..operations.ops import AddColumnOp - from ..operations.ops import AlterColumnOp - from ..operations.ops import CreateTableOp - from ..operations.ops import DowngradeOps - from ..operations.ops import MigrateOperation - from ..operations.ops import MigrationScript - from ..operations.ops import ModifyTableOps - from ..operations.ops import OpContainer - from ..operations.ops import UpgradeOps - from ..runtime.migration import MigrationContext - from ..script.revision import _GetRevArg - -ProcessRevisionDirectiveFn = Callable[ - ["MigrationContext", "_GetRevArg", List["MigrationScript"]], None -] - - -class Rewriter: - """A helper object that allows easy 'rewriting' of ops streams. - - The :class:`.Rewriter` object is intended to be passed along - to the - :paramref:`.EnvironmentContext.configure.process_revision_directives` - parameter in an ``env.py`` script. Once constructed, any number - of "rewrites" functions can be associated with it, which will be given - the opportunity to modify the structure without having to have explicit - knowledge of the overall structure. - - The function is passed the :class:`.MigrationContext` object and - ``revision`` tuple that are passed to the :paramref:`.Environment - Context.configure.process_revision_directives` function normally, - and the third argument is an individual directive of the type - noted in the decorator. The function has the choice of returning - a single op directive, which normally can be the directive that - was actually passed, or a new directive to replace it, or a list - of zero or more directives to replace it. - - .. seealso:: - - :ref:`autogen_rewriter` - usage example - - """ - - _traverse = util.Dispatcher() - - _chained: Tuple[Union[ProcessRevisionDirectiveFn, Rewriter], ...] = () - - def __init__(self) -> None: - self.dispatch = util.Dispatcher() - - def chain( - self, - other: Union[ - ProcessRevisionDirectiveFn, - Rewriter, - ], - ) -> Rewriter: - """Produce a "chain" of this :class:`.Rewriter` to another. - - This allows two or more rewriters to operate serially on a stream, - e.g.:: - - writer1 = autogenerate.Rewriter() - writer2 = autogenerate.Rewriter() - - - @writer1.rewrites(ops.AddColumnOp) - def add_column_nullable(context, revision, op): - op.column.nullable = True - return op - - - @writer2.rewrites(ops.AddColumnOp) - def add_column_idx(context, revision, op): - idx_op = ops.CreateIndexOp( - "ixc", op.table_name, [op.column.name] - ) - return [op, idx_op] - - writer = writer1.chain(writer2) - - :param other: a :class:`.Rewriter` instance - :return: a new :class:`.Rewriter` that will run the operations - of this writer, then the "other" writer, in succession. - - """ - wr = self.__class__.__new__(self.__class__) - wr.__dict__.update(self.__dict__) - wr._chained += (other,) - return wr - - def rewrites( - self, - operator: Union[ - Type[AddColumnOp], - Type[MigrateOperation], - Type[AlterColumnOp], - Type[CreateTableOp], - Type[ModifyTableOps], - ], - ) -> Callable[..., Any]: - """Register a function as rewriter for a given type. - - The function should receive three arguments, which are - the :class:`.MigrationContext`, a ``revision`` tuple, and - an op directive of the type indicated. E.g.:: - - @writer1.rewrites(ops.AddColumnOp) - def add_column_nullable(context, revision, op): - op.column.nullable = True - return op - - """ - return self.dispatch.dispatch_for(operator) - - def _rewrite( - self, - context: MigrationContext, - revision: _GetRevArg, - directive: MigrateOperation, - ) -> Iterator[MigrateOperation]: - try: - _rewriter = self.dispatch.dispatch(directive) - except ValueError: - _rewriter = None - yield directive - else: - if self in directive._mutations: - yield directive - else: - for r_directive in util.to_list( - _rewriter(context, revision, directive), [] - ): - r_directive._mutations = r_directive._mutations.union( - [self] - ) - yield r_directive - - def __call__( - self, - context: MigrationContext, - revision: _GetRevArg, - directives: List[MigrationScript], - ) -> None: - self.process_revision_directives(context, revision, directives) - for process_revision_directives in self._chained: - process_revision_directives(context, revision, directives) - - @_traverse.dispatch_for(ops.MigrationScript) - def _traverse_script( - self, - context: MigrationContext, - revision: _GetRevArg, - directive: MigrationScript, - ) -> None: - upgrade_ops_list: List[UpgradeOps] = [] - for upgrade_ops in directive.upgrade_ops_list: - ret = self._traverse_for(context, revision, upgrade_ops) - if len(ret) != 1: - raise ValueError( - "Can only return single object for UpgradeOps traverse" - ) - upgrade_ops_list.append(ret[0]) - - directive.upgrade_ops = upgrade_ops_list # type: ignore - - downgrade_ops_list: List[DowngradeOps] = [] - for downgrade_ops in directive.downgrade_ops_list: - ret = self._traverse_for(context, revision, downgrade_ops) - if len(ret) != 1: - raise ValueError( - "Can only return single object for DowngradeOps traverse" - ) - downgrade_ops_list.append(ret[0]) - directive.downgrade_ops = downgrade_ops_list # type: ignore - - @_traverse.dispatch_for(ops.OpContainer) - def _traverse_op_container( - self, - context: MigrationContext, - revision: _GetRevArg, - directive: OpContainer, - ) -> None: - self._traverse_list(context, revision, directive.ops) - - @_traverse.dispatch_for(ops.MigrateOperation) - def _traverse_any_directive( - self, - context: MigrationContext, - revision: _GetRevArg, - directive: MigrateOperation, - ) -> None: - pass - - def _traverse_for( - self, - context: MigrationContext, - revision: _GetRevArg, - directive: MigrateOperation, - ) -> Any: - directives = list(self._rewrite(context, revision, directive)) - for directive in directives: - traverser = self._traverse.dispatch(directive) - traverser(self, context, revision, directive) - return directives - - def _traverse_list( - self, - context: MigrationContext, - revision: _GetRevArg, - directives: Any, - ) -> None: - dest = [] - for directive in directives: - dest.extend(self._traverse_for(context, revision, directive)) - - directives[:] = dest - - def process_revision_directives( - self, - context: MigrationContext, - revision: _GetRevArg, - directives: List[MigrationScript], - ) -> None: - self._traverse_list(context, revision, directives) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/command.py b/backend/venv/lib/python3.12/site-packages/alembic/command.py deleted file mode 100644 index 89c1235..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/command.py +++ /dev/null @@ -1,758 +0,0 @@ -# mypy: allow-untyped-defs, allow-untyped-calls - -from __future__ import annotations - -import os -from typing import List -from typing import Optional -from typing import TYPE_CHECKING -from typing import Union - -from . import autogenerate as autogen -from . import util -from .runtime.environment import EnvironmentContext -from .script import ScriptDirectory - -if TYPE_CHECKING: - from alembic.config import Config - from alembic.script.base import Script - from alembic.script.revision import _RevIdType - from .runtime.environment import ProcessRevisionDirectiveFn - - -def list_templates(config: Config) -> None: - """List available templates. - - :param config: a :class:`.Config` object. - - """ - - config.print_stdout("Available templates:\n") - for tempname in os.listdir(config.get_template_directory()): - with open( - os.path.join(config.get_template_directory(), tempname, "README") - ) as readme: - synopsis = next(readme).rstrip() - config.print_stdout("%s - %s", tempname, synopsis) - - config.print_stdout("\nTemplates are used via the 'init' command, e.g.:") - config.print_stdout("\n alembic init --template generic ./scripts") - - -def init( - config: Config, - directory: str, - template: str = "generic", - package: bool = False, -) -> None: - """Initialize a new scripts directory. - - :param config: a :class:`.Config` object. - - :param directory: string path of the target directory. - - :param template: string name of the migration environment template to - use. - - :param package: when True, write ``__init__.py`` files into the - environment location as well as the versions/ location. - - """ - - if os.access(directory, os.F_OK) and os.listdir(directory): - raise util.CommandError( - "Directory %s already exists and is not empty" % directory - ) - - template_dir = os.path.join(config.get_template_directory(), template) - if not os.access(template_dir, os.F_OK): - raise util.CommandError("No such template %r" % template) - - if not os.access(directory, os.F_OK): - with util.status( - f"Creating directory {os.path.abspath(directory)!r}", - **config.messaging_opts, - ): - os.makedirs(directory) - - versions = os.path.join(directory, "versions") - with util.status( - f"Creating directory {os.path.abspath(versions)!r}", - **config.messaging_opts, - ): - os.makedirs(versions) - - script = ScriptDirectory(directory) - - config_file: str | None = None - for file_ in os.listdir(template_dir): - file_path = os.path.join(template_dir, file_) - if file_ == "alembic.ini.mako": - assert config.config_file_name is not None - config_file = os.path.abspath(config.config_file_name) - if os.access(config_file, os.F_OK): - util.msg( - f"File {config_file!r} already exists, skipping", - **config.messaging_opts, - ) - else: - script._generate_template( - file_path, config_file, script_location=directory - ) - elif os.path.isfile(file_path): - output_file = os.path.join(directory, file_) - script._copy_file(file_path, output_file) - - if package: - for path in [ - os.path.join(os.path.abspath(directory), "__init__.py"), - os.path.join(os.path.abspath(versions), "__init__.py"), - ]: - with util.status(f"Adding {path!r}", **config.messaging_opts): - with open(path, "w"): - pass - - assert config_file is not None - util.msg( - "Please edit configuration/connection/logging " - f"settings in {config_file!r} before proceeding.", - **config.messaging_opts, - ) - - -def revision( - config: Config, - message: Optional[str] = None, - autogenerate: bool = False, - sql: bool = False, - head: str = "head", - splice: bool = False, - branch_label: Optional[_RevIdType] = None, - version_path: Optional[str] = None, - rev_id: Optional[str] = None, - depends_on: Optional[str] = None, - process_revision_directives: Optional[ProcessRevisionDirectiveFn] = None, -) -> Union[Optional[Script], List[Optional[Script]]]: - """Create a new revision file. - - :param config: a :class:`.Config` object. - - :param message: string message to apply to the revision; this is the - ``-m`` option to ``alembic revision``. - - :param autogenerate: whether or not to autogenerate the script from - the database; this is the ``--autogenerate`` option to - ``alembic revision``. - - :param sql: whether to dump the script out as a SQL string; when specified, - the script is dumped to stdout. This is the ``--sql`` option to - ``alembic revision``. - - :param head: head revision to build the new revision upon as a parent; - this is the ``--head`` option to ``alembic revision``. - - :param splice: whether or not the new revision should be made into a - new head of its own; is required when the given ``head`` is not itself - a head. This is the ``--splice`` option to ``alembic revision``. - - :param branch_label: string label to apply to the branch; this is the - ``--branch-label`` option to ``alembic revision``. - - :param version_path: string symbol identifying a specific version path - from the configuration; this is the ``--version-path`` option to - ``alembic revision``. - - :param rev_id: optional revision identifier to use instead of having - one generated; this is the ``--rev-id`` option to ``alembic revision``. - - :param depends_on: optional list of "depends on" identifiers; this is the - ``--depends-on`` option to ``alembic revision``. - - :param process_revision_directives: this is a callable that takes the - same form as the callable described at - :paramref:`.EnvironmentContext.configure.process_revision_directives`; - will be applied to the structure generated by the revision process - where it can be altered programmatically. Note that unlike all - the other parameters, this option is only available via programmatic - use of :func:`.command.revision`. - - """ - - script_directory = ScriptDirectory.from_config(config) - - command_args = dict( - message=message, - autogenerate=autogenerate, - sql=sql, - head=head, - splice=splice, - branch_label=branch_label, - version_path=version_path, - rev_id=rev_id, - depends_on=depends_on, - ) - revision_context = autogen.RevisionContext( - config, - script_directory, - command_args, - process_revision_directives=process_revision_directives, - ) - - environment = util.asbool(config.get_main_option("revision_environment")) - - if autogenerate: - environment = True - - if sql: - raise util.CommandError( - "Using --sql with --autogenerate does not make any sense" - ) - - def retrieve_migrations(rev, context): - revision_context.run_autogenerate(rev, context) - return [] - - elif environment: - - def retrieve_migrations(rev, context): - revision_context.run_no_autogenerate(rev, context) - return [] - - elif sql: - raise util.CommandError( - "Using --sql with the revision command when " - "revision_environment is not configured does not make any sense" - ) - - if environment: - with EnvironmentContext( - config, - script_directory, - fn=retrieve_migrations, - as_sql=sql, - template_args=revision_context.template_args, - revision_context=revision_context, - ): - script_directory.run_env() - - # the revision_context now has MigrationScript structure(s) present. - # these could theoretically be further processed / rewritten *here*, - # in addition to the hooks present within each run_migrations() call, - # or at the end of env.py run_migrations_online(). - - scripts = [script for script in revision_context.generate_scripts()] - if len(scripts) == 1: - return scripts[0] - else: - return scripts - - -def check(config: "Config") -> None: - """Check if revision command with autogenerate has pending upgrade ops. - - :param config: a :class:`.Config` object. - - .. versionadded:: 1.9.0 - - """ - - script_directory = ScriptDirectory.from_config(config) - - command_args = dict( - message=None, - autogenerate=True, - sql=False, - head="head", - splice=False, - branch_label=None, - version_path=None, - rev_id=None, - depends_on=None, - ) - revision_context = autogen.RevisionContext( - config, - script_directory, - command_args, - ) - - def retrieve_migrations(rev, context): - revision_context.run_autogenerate(rev, context) - return [] - - with EnvironmentContext( - config, - script_directory, - fn=retrieve_migrations, - as_sql=False, - template_args=revision_context.template_args, - revision_context=revision_context, - ): - script_directory.run_env() - - # the revision_context now has MigrationScript structure(s) present. - - migration_script = revision_context.generated_revisions[-1] - diffs = [] - for upgrade_ops in migration_script.upgrade_ops_list: - diffs.extend(upgrade_ops.as_diffs()) - - if diffs: - raise util.AutogenerateDiffsDetected( - f"New upgrade operations detected: {diffs}" - ) - else: - config.print_stdout("No new upgrade operations detected.") - - -def merge( - config: Config, - revisions: _RevIdType, - message: Optional[str] = None, - branch_label: Optional[_RevIdType] = None, - rev_id: Optional[str] = None, -) -> Optional[Script]: - """Merge two revisions together. Creates a new migration file. - - :param config: a :class:`.Config` instance - - :param revisions: The revisions to merge. - - :param message: string message to apply to the revision. - - :param branch_label: string label name to apply to the new revision. - - :param rev_id: hardcoded revision identifier instead of generating a new - one. - - .. seealso:: - - :ref:`branches` - - """ - - script = ScriptDirectory.from_config(config) - template_args = { - "config": config # Let templates use config for - # e.g. multiple databases - } - - environment = util.asbool(config.get_main_option("revision_environment")) - - if environment: - - def nothing(rev, context): - return [] - - with EnvironmentContext( - config, - script, - fn=nothing, - as_sql=False, - template_args=template_args, - ): - script.run_env() - - return script.generate_revision( - rev_id or util.rev_id(), - message, - refresh=True, - head=revisions, - branch_labels=branch_label, - **template_args, # type:ignore[arg-type] - ) - - -def upgrade( - config: Config, - revision: str, - sql: bool = False, - tag: Optional[str] = None, -) -> None: - """Upgrade to a later version. - - :param config: a :class:`.Config` instance. - - :param revision: string revision target or range for --sql mode. May be - ``"heads"`` to target the most recent revision(s). - - :param sql: if True, use ``--sql`` mode. - - :param tag: an arbitrary "tag" that can be intercepted by custom - ``env.py`` scripts via the :meth:`.EnvironmentContext.get_tag_argument` - method. - - """ - - script = ScriptDirectory.from_config(config) - - starting_rev = None - if ":" in revision: - if not sql: - raise util.CommandError("Range revision not allowed") - starting_rev, revision = revision.split(":", 2) - - def upgrade(rev, context): - return script._upgrade_revs(revision, rev) - - with EnvironmentContext( - config, - script, - fn=upgrade, - as_sql=sql, - starting_rev=starting_rev, - destination_rev=revision, - tag=tag, - ): - script.run_env() - - -def downgrade( - config: Config, - revision: str, - sql: bool = False, - tag: Optional[str] = None, -) -> None: - """Revert to a previous version. - - :param config: a :class:`.Config` instance. - - :param revision: string revision target or range for --sql mode. May - be ``"base"`` to target the first revision. - - :param sql: if True, use ``--sql`` mode. - - :param tag: an arbitrary "tag" that can be intercepted by custom - ``env.py`` scripts via the :meth:`.EnvironmentContext.get_tag_argument` - method. - - """ - - script = ScriptDirectory.from_config(config) - starting_rev = None - if ":" in revision: - if not sql: - raise util.CommandError("Range revision not allowed") - starting_rev, revision = revision.split(":", 2) - elif sql: - raise util.CommandError( - "downgrade with --sql requires :" - ) - - def downgrade(rev, context): - return script._downgrade_revs(revision, rev) - - with EnvironmentContext( - config, - script, - fn=downgrade, - as_sql=sql, - starting_rev=starting_rev, - destination_rev=revision, - tag=tag, - ): - script.run_env() - - -def show(config: Config, rev: str) -> None: - """Show the revision(s) denoted by the given symbol. - - :param config: a :class:`.Config` instance. - - :param rev: string revision target. May be ``"current"`` to show the - revision(s) currently applied in the database. - - """ - - script = ScriptDirectory.from_config(config) - - if rev == "current": - - def show_current(rev, context): - for sc in script.get_revisions(rev): - config.print_stdout(sc.log_entry) - return [] - - with EnvironmentContext(config, script, fn=show_current): - script.run_env() - else: - for sc in script.get_revisions(rev): - config.print_stdout(sc.log_entry) - - -def history( - config: Config, - rev_range: Optional[str] = None, - verbose: bool = False, - indicate_current: bool = False, -) -> None: - """List changeset scripts in chronological order. - - :param config: a :class:`.Config` instance. - - :param rev_range: string revision range. - - :param verbose: output in verbose mode. - - :param indicate_current: indicate current revision. - - """ - base: Optional[str] - head: Optional[str] - script = ScriptDirectory.from_config(config) - if rev_range is not None: - if ":" not in rev_range: - raise util.CommandError( - "History range requires [start]:[end], " "[start]:, or :[end]" - ) - base, head = rev_range.strip().split(":") - else: - base = head = None - - environment = ( - util.asbool(config.get_main_option("revision_environment")) - or indicate_current - ) - - def _display_history(config, script, base, head, currents=()): - for sc in script.walk_revisions( - base=base or "base", head=head or "heads" - ): - if indicate_current: - sc._db_current_indicator = sc.revision in currents - - config.print_stdout( - sc.cmd_format( - verbose=verbose, - include_branches=True, - include_doc=True, - include_parents=True, - ) - ) - - def _display_history_w_current(config, script, base, head): - def _display_current_history(rev, context): - if head == "current": - _display_history(config, script, base, rev, rev) - elif base == "current": - _display_history(config, script, rev, head, rev) - else: - _display_history(config, script, base, head, rev) - return [] - - with EnvironmentContext(config, script, fn=_display_current_history): - script.run_env() - - if base == "current" or head == "current" or environment: - _display_history_w_current(config, script, base, head) - else: - _display_history(config, script, base, head) - - -def heads( - config: Config, verbose: bool = False, resolve_dependencies: bool = False -) -> None: - """Show current available heads in the script directory. - - :param config: a :class:`.Config` instance. - - :param verbose: output in verbose mode. - - :param resolve_dependencies: treat dependency version as down revisions. - - """ - - script = ScriptDirectory.from_config(config) - if resolve_dependencies: - heads = script.get_revisions("heads") - else: - heads = script.get_revisions(script.get_heads()) - - for rev in heads: - config.print_stdout( - rev.cmd_format( - verbose, include_branches=True, tree_indicators=False - ) - ) - - -def branches(config: Config, verbose: bool = False) -> None: - """Show current branch points. - - :param config: a :class:`.Config` instance. - - :param verbose: output in verbose mode. - - """ - script = ScriptDirectory.from_config(config) - for sc in script.walk_revisions(): - if sc.is_branch_point: - config.print_stdout( - "%s\n%s\n", - sc.cmd_format(verbose, include_branches=True), - "\n".join( - "%s -> %s" - % ( - " " * len(str(sc.revision)), - rev_obj.cmd_format( - False, include_branches=True, include_doc=verbose - ), - ) - for rev_obj in ( - script.get_revision(rev) for rev in sc.nextrev - ) - ), - ) - - -def current(config: Config, verbose: bool = False) -> None: - """Display the current revision for a database. - - :param config: a :class:`.Config` instance. - - :param verbose: output in verbose mode. - - """ - - script = ScriptDirectory.from_config(config) - - def display_version(rev, context): - if verbose: - config.print_stdout( - "Current revision(s) for %s:", - util.obfuscate_url_pw(context.connection.engine.url), - ) - for rev in script.get_all_current(rev): - config.print_stdout(rev.cmd_format(verbose)) - - return [] - - with EnvironmentContext( - config, script, fn=display_version, dont_mutate=True - ): - script.run_env() - - -def stamp( - config: Config, - revision: _RevIdType, - sql: bool = False, - tag: Optional[str] = None, - purge: bool = False, -) -> None: - """'stamp' the revision table with the given revision; don't - run any migrations. - - :param config: a :class:`.Config` instance. - - :param revision: target revision or list of revisions. May be a list - to indicate stamping of multiple branch heads; may be ``"base"`` - to remove all revisions from the table or ``"heads"`` to stamp the - most recent revision(s). - - .. note:: this parameter is called "revisions" in the command line - interface. - - :param sql: use ``--sql`` mode - - :param tag: an arbitrary "tag" that can be intercepted by custom - ``env.py`` scripts via the :class:`.EnvironmentContext.get_tag_argument` - method. - - :param purge: delete all entries in the version table before stamping. - - """ - - script = ScriptDirectory.from_config(config) - - if sql: - destination_revs = [] - starting_rev = None - for _revision in util.to_list(revision): - if ":" in _revision: - srev, _revision = _revision.split(":", 2) - - if starting_rev != srev: - if starting_rev is None: - starting_rev = srev - else: - raise util.CommandError( - "Stamp operation with --sql only supports a " - "single starting revision at a time" - ) - destination_revs.append(_revision) - else: - destination_revs = util.to_list(revision) - - def do_stamp(rev, context): - return script._stamp_revs(util.to_tuple(destination_revs), rev) - - with EnvironmentContext( - config, - script, - fn=do_stamp, - as_sql=sql, - starting_rev=starting_rev if sql else None, - destination_rev=util.to_tuple(destination_revs), - tag=tag, - purge=purge, - ): - script.run_env() - - -def edit(config: Config, rev: str) -> None: - """Edit revision script(s) using $EDITOR. - - :param config: a :class:`.Config` instance. - - :param rev: target revision. - - """ - - script = ScriptDirectory.from_config(config) - - if rev == "current": - - def edit_current(rev, context): - if not rev: - raise util.CommandError("No current revisions") - for sc in script.get_revisions(rev): - util.open_in_editor(sc.path) - return [] - - with EnvironmentContext(config, script, fn=edit_current): - script.run_env() - else: - revs = script.get_revisions(rev) - if not revs: - raise util.CommandError( - "No revision files indicated by symbol '%s'" % rev - ) - for sc in revs: - assert sc - util.open_in_editor(sc.path) - - -def ensure_version(config: Config, sql: bool = False) -> None: - """Create the alembic version table if it doesn't exist already . - - :param config: a :class:`.Config` instance. - - :param sql: use ``--sql`` mode. - - .. versionadded:: 1.7.6 - - """ - - script = ScriptDirectory.from_config(config) - - def do_ensure_version(rev, context): - context._ensure_version_table() - return [] - - with EnvironmentContext( - config, - script, - fn=do_ensure_version, - as_sql=sql, - ): - script.run_env() diff --git a/backend/venv/lib/python3.12/site-packages/alembic/config.py b/backend/venv/lib/python3.12/site-packages/alembic/config.py deleted file mode 100644 index 2c52e7c..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/config.py +++ /dev/null @@ -1,640 +0,0 @@ -from __future__ import annotations - -from argparse import ArgumentParser -from argparse import Namespace -from configparser import ConfigParser -import inspect -import os -import sys -from typing import Any -from typing import cast -from typing import Dict -from typing import Mapping -from typing import Optional -from typing import overload -from typing import Sequence -from typing import TextIO -from typing import Union - -from typing_extensions import TypedDict - -from . import __version__ -from . import command -from . import util -from .util import compat - - -class Config: - r"""Represent an Alembic configuration. - - Within an ``env.py`` script, this is available - via the :attr:`.EnvironmentContext.config` attribute, - which in turn is available at ``alembic.context``:: - - from alembic import context - - some_param = context.config.get_main_option("my option") - - When invoking Alembic programmatically, a new - :class:`.Config` can be created by passing - the name of an .ini file to the constructor:: - - from alembic.config import Config - alembic_cfg = Config("/path/to/yourapp/alembic.ini") - - With a :class:`.Config` object, you can then - run Alembic commands programmatically using the directives - in :mod:`alembic.command`. - - The :class:`.Config` object can also be constructed without - a filename. Values can be set programmatically, and - new sections will be created as needed:: - - from alembic.config import Config - alembic_cfg = Config() - alembic_cfg.set_main_option("script_location", "myapp:migrations") - alembic_cfg.set_main_option("sqlalchemy.url", "postgresql://foo/bar") - alembic_cfg.set_section_option("mysection", "foo", "bar") - - .. warning:: - - When using programmatic configuration, make sure the - ``env.py`` file in use is compatible with the target configuration; - including that the call to Python ``logging.fileConfig()`` is - omitted if the programmatic configuration doesn't actually include - logging directives. - - For passing non-string values to environments, such as connections and - engines, use the :attr:`.Config.attributes` dictionary:: - - with engine.begin() as connection: - alembic_cfg.attributes['connection'] = connection - command.upgrade(alembic_cfg, "head") - - :param file\_: name of the .ini file to open. - :param ini_section: name of the main Alembic section within the - .ini file - :param output_buffer: optional file-like input buffer which - will be passed to the :class:`.MigrationContext` - used to redirect - the output of "offline generation" when using Alembic programmatically. - :param stdout: buffer where the "print" output of commands will be sent. - Defaults to ``sys.stdout``. - - :param config_args: A dictionary of keys and values that will be used - for substitution in the alembic config file. The dictionary as given - is **copied** to a new one, stored locally as the attribute - ``.config_args``. When the :attr:`.Config.file_config` attribute is - first invoked, the replacement variable ``here`` will be added to this - dictionary before the dictionary is passed to ``ConfigParser()`` - to parse the .ini file. - - :param attributes: optional dictionary of arbitrary Python keys/values, - which will be populated into the :attr:`.Config.attributes` dictionary. - - .. seealso:: - - :ref:`connection_sharing` - - """ - - def __init__( - self, - file_: Union[str, os.PathLike[str], None] = None, - ini_section: str = "alembic", - output_buffer: Optional[TextIO] = None, - stdout: TextIO = sys.stdout, - cmd_opts: Optional[Namespace] = None, - config_args: Mapping[str, Any] = util.immutabledict(), - attributes: Optional[Dict[str, Any]] = None, - ) -> None: - """Construct a new :class:`.Config`""" - self.config_file_name = file_ - self.config_ini_section = ini_section - self.output_buffer = output_buffer - self.stdout = stdout - self.cmd_opts = cmd_opts - self.config_args = dict(config_args) - if attributes: - self.attributes.update(attributes) - - cmd_opts: Optional[Namespace] = None - """The command-line options passed to the ``alembic`` script. - - Within an ``env.py`` script this can be accessed via the - :attr:`.EnvironmentContext.config` attribute. - - .. seealso:: - - :meth:`.EnvironmentContext.get_x_argument` - - """ - - config_file_name: Union[str, os.PathLike[str], None] = None - """Filesystem path to the .ini file in use.""" - - config_ini_section: str = None # type:ignore[assignment] - """Name of the config file section to read basic configuration - from. Defaults to ``alembic``, that is the ``[alembic]`` section - of the .ini file. This value is modified using the ``-n/--name`` - option to the Alembic runner. - - """ - - @util.memoized_property - def attributes(self) -> Dict[str, Any]: - """A Python dictionary for storage of additional state. - - - This is a utility dictionary which can include not just strings but - engines, connections, schema objects, or anything else. - Use this to pass objects into an env.py script, such as passing - a :class:`sqlalchemy.engine.base.Connection` when calling - commands from :mod:`alembic.command` programmatically. - - .. seealso:: - - :ref:`connection_sharing` - - :paramref:`.Config.attributes` - - """ - return {} - - def print_stdout(self, text: str, *arg: Any) -> None: - """Render a message to standard out. - - When :meth:`.Config.print_stdout` is called with additional args - those arguments will formatted against the provided text, - otherwise we simply output the provided text verbatim. - - This is a no-op when the``quiet`` messaging option is enabled. - - e.g.:: - - >>> config.print_stdout('Some text %s', 'arg') - Some Text arg - - """ - - if arg: - output = str(text) % arg - else: - output = str(text) - - util.write_outstream(self.stdout, output, "\n", **self.messaging_opts) - - @util.memoized_property - def file_config(self) -> ConfigParser: - """Return the underlying ``ConfigParser`` object. - - Direct access to the .ini file is available here, - though the :meth:`.Config.get_section` and - :meth:`.Config.get_main_option` - methods provide a possibly simpler interface. - - """ - - if self.config_file_name: - here = os.path.abspath(os.path.dirname(self.config_file_name)) - else: - here = "" - self.config_args["here"] = here - file_config = ConfigParser(self.config_args) - if self.config_file_name: - compat.read_config_parser(file_config, [self.config_file_name]) - else: - file_config.add_section(self.config_ini_section) - return file_config - - def get_template_directory(self) -> str: - """Return the directory where Alembic setup templates are found. - - This method is used by the alembic ``init`` and ``list_templates`` - commands. - - """ - import alembic - - package_dir = os.path.abspath(os.path.dirname(alembic.__file__)) - return os.path.join(package_dir, "templates") - - @overload - def get_section( - self, name: str, default: None = ... - ) -> Optional[Dict[str, str]]: ... - - # "default" here could also be a TypeVar - # _MT = TypeVar("_MT", bound=Mapping[str, str]), - # however mypy wasn't handling that correctly (pyright was) - @overload - def get_section( - self, name: str, default: Dict[str, str] - ) -> Dict[str, str]: ... - - @overload - def get_section( - self, name: str, default: Mapping[str, str] - ) -> Union[Dict[str, str], Mapping[str, str]]: ... - - def get_section( - self, name: str, default: Optional[Mapping[str, str]] = None - ) -> Optional[Mapping[str, str]]: - """Return all the configuration options from a given .ini file section - as a dictionary. - - If the given section does not exist, the value of ``default`` - is returned, which is expected to be a dictionary or other mapping. - - """ - if not self.file_config.has_section(name): - return default - - return dict(self.file_config.items(name)) - - def set_main_option(self, name: str, value: str) -> None: - """Set an option programmatically within the 'main' section. - - This overrides whatever was in the .ini file. - - :param name: name of the value - - :param value: the value. Note that this value is passed to - ``ConfigParser.set``, which supports variable interpolation using - pyformat (e.g. ``%(some_value)s``). A raw percent sign not part of - an interpolation symbol must therefore be escaped, e.g. ``%%``. - The given value may refer to another value already in the file - using the interpolation format. - - """ - self.set_section_option(self.config_ini_section, name, value) - - def remove_main_option(self, name: str) -> None: - self.file_config.remove_option(self.config_ini_section, name) - - def set_section_option(self, section: str, name: str, value: str) -> None: - """Set an option programmatically within the given section. - - The section is created if it doesn't exist already. - The value here will override whatever was in the .ini - file. - - :param section: name of the section - - :param name: name of the value - - :param value: the value. Note that this value is passed to - ``ConfigParser.set``, which supports variable interpolation using - pyformat (e.g. ``%(some_value)s``). A raw percent sign not part of - an interpolation symbol must therefore be escaped, e.g. ``%%``. - The given value may refer to another value already in the file - using the interpolation format. - - """ - - if not self.file_config.has_section(section): - self.file_config.add_section(section) - self.file_config.set(section, name, value) - - def get_section_option( - self, section: str, name: str, default: Optional[str] = None - ) -> Optional[str]: - """Return an option from the given section of the .ini file.""" - if not self.file_config.has_section(section): - raise util.CommandError( - "No config file %r found, or file has no " - "'[%s]' section" % (self.config_file_name, section) - ) - if self.file_config.has_option(section, name): - return self.file_config.get(section, name) - else: - return default - - @overload - def get_main_option(self, name: str, default: str) -> str: ... - - @overload - def get_main_option( - self, name: str, default: Optional[str] = None - ) -> Optional[str]: ... - - def get_main_option( - self, name: str, default: Optional[str] = None - ) -> Optional[str]: - """Return an option from the 'main' section of the .ini file. - - This defaults to being a key from the ``[alembic]`` - section, unless the ``-n/--name`` flag were used to - indicate a different section. - - """ - return self.get_section_option(self.config_ini_section, name, default) - - @util.memoized_property - def messaging_opts(self) -> MessagingOptions: - """The messaging options.""" - return cast( - MessagingOptions, - util.immutabledict( - {"quiet": getattr(self.cmd_opts, "quiet", False)} - ), - ) - - -class MessagingOptions(TypedDict, total=False): - quiet: bool - - -class CommandLine: - def __init__(self, prog: Optional[str] = None) -> None: - self._generate_args(prog) - - def _generate_args(self, prog: Optional[str]) -> None: - def add_options( - fn: Any, parser: Any, positional: Any, kwargs: Any - ) -> None: - kwargs_opts = { - "template": ( - "-t", - "--template", - dict( - default="generic", - type=str, - help="Setup template for use with 'init'", - ), - ), - "message": ( - "-m", - "--message", - dict( - type=str, help="Message string to use with 'revision'" - ), - ), - "sql": ( - "--sql", - dict( - action="store_true", - help="Don't emit SQL to database - dump to " - "standard output/file instead. See docs on " - "offline mode.", - ), - ), - "tag": ( - "--tag", - dict( - type=str, - help="Arbitrary 'tag' name - can be used by " - "custom env.py scripts.", - ), - ), - "head": ( - "--head", - dict( - type=str, - help="Specify head revision or @head " - "to base new revision on.", - ), - ), - "splice": ( - "--splice", - dict( - action="store_true", - help="Allow a non-head revision as the " - "'head' to splice onto", - ), - ), - "depends_on": ( - "--depends-on", - dict( - action="append", - help="Specify one or more revision identifiers " - "which this revision should depend on.", - ), - ), - "rev_id": ( - "--rev-id", - dict( - type=str, - help="Specify a hardcoded revision id instead of " - "generating one", - ), - ), - "version_path": ( - "--version-path", - dict( - type=str, - help="Specify specific path from config for " - "version file", - ), - ), - "branch_label": ( - "--branch-label", - dict( - type=str, - help="Specify a branch label to apply to the " - "new revision", - ), - ), - "verbose": ( - "-v", - "--verbose", - dict(action="store_true", help="Use more verbose output"), - ), - "resolve_dependencies": ( - "--resolve-dependencies", - dict( - action="store_true", - help="Treat dependency versions as down revisions", - ), - ), - "autogenerate": ( - "--autogenerate", - dict( - action="store_true", - help="Populate revision script with candidate " - "migration operations, based on comparison " - "of database to model.", - ), - ), - "rev_range": ( - "-r", - "--rev-range", - dict( - action="store", - help="Specify a revision range; " - "format is [start]:[end]", - ), - ), - "indicate_current": ( - "-i", - "--indicate-current", - dict( - action="store_true", - help="Indicate the current revision", - ), - ), - "purge": ( - "--purge", - dict( - action="store_true", - help="Unconditionally erase the version table " - "before stamping", - ), - ), - "package": ( - "--package", - dict( - action="store_true", - help="Write empty __init__.py files to the " - "environment and version locations", - ), - ), - } - positional_help = { - "directory": "location of scripts directory", - "revision": "revision identifier", - "revisions": "one or more revisions, or 'heads' for all heads", - } - for arg in kwargs: - if arg in kwargs_opts: - args = kwargs_opts[arg] - args, kw = args[0:-1], args[-1] - parser.add_argument(*args, **kw) - - for arg in positional: - if ( - arg == "revisions" - or fn in positional_translations - and positional_translations[fn][arg] == "revisions" - ): - subparser.add_argument( - "revisions", - nargs="+", - help=positional_help.get("revisions"), - ) - else: - subparser.add_argument(arg, help=positional_help.get(arg)) - - parser = ArgumentParser(prog=prog) - - parser.add_argument( - "--version", action="version", version="%%(prog)s %s" % __version__ - ) - parser.add_argument( - "-c", - "--config", - type=str, - default=os.environ.get("ALEMBIC_CONFIG", "alembic.ini"), - help="Alternate config file; defaults to value of " - 'ALEMBIC_CONFIG environment variable, or "alembic.ini"', - ) - parser.add_argument( - "-n", - "--name", - type=str, - default="alembic", - help="Name of section in .ini file to " "use for Alembic config", - ) - parser.add_argument( - "-x", - action="append", - help="Additional arguments consumed by " - "custom env.py scripts, e.g. -x " - "setting1=somesetting -x setting2=somesetting", - ) - parser.add_argument( - "--raiseerr", - action="store_true", - help="Raise a full stack trace on error", - ) - parser.add_argument( - "-q", - "--quiet", - action="store_true", - help="Do not log to std output.", - ) - subparsers = parser.add_subparsers() - - positional_translations: Dict[Any, Any] = { - command.stamp: {"revision": "revisions"} - } - - for fn in [getattr(command, n) for n in dir(command)]: - if ( - inspect.isfunction(fn) - and fn.__name__[0] != "_" - and fn.__module__ == "alembic.command" - ): - spec = compat.inspect_getfullargspec(fn) - if spec[3] is not None: - positional = spec[0][1 : -len(spec[3])] - kwarg = spec[0][-len(spec[3]) :] - else: - positional = spec[0][1:] - kwarg = [] - - if fn in positional_translations: - positional = [ - positional_translations[fn].get(name, name) - for name in positional - ] - - # parse first line(s) of helptext without a line break - help_ = fn.__doc__ - if help_: - help_text = [] - for line in help_.split("\n"): - if not line.strip(): - break - else: - help_text.append(line.strip()) - else: - help_text = [] - subparser = subparsers.add_parser( - fn.__name__, help=" ".join(help_text) - ) - add_options(fn, subparser, positional, kwarg) - subparser.set_defaults(cmd=(fn, positional, kwarg)) - self.parser = parser - - def run_cmd(self, config: Config, options: Namespace) -> None: - fn, positional, kwarg = options.cmd - - try: - fn( - config, - *[getattr(options, k, None) for k in positional], - **{k: getattr(options, k, None) for k in kwarg}, - ) - except util.CommandError as e: - if options.raiseerr: - raise - else: - util.err(str(e), **config.messaging_opts) - - def main(self, argv: Optional[Sequence[str]] = None) -> None: - options = self.parser.parse_args(argv) - if not hasattr(options, "cmd"): - # see http://bugs.python.org/issue9253, argparse - # behavior changed incompatibly in py3.3 - self.parser.error("too few arguments") - else: - cfg = Config( - file_=options.config, - ini_section=options.name, - cmd_opts=options, - ) - self.run_cmd(cfg, options) - - -def main( - argv: Optional[Sequence[str]] = None, - prog: Optional[str] = None, - **kwargs: Any, -) -> None: - """The console runner function for Alembic.""" - - CommandLine(prog=prog).main(argv=argv) - - -if __name__ == "__main__": - main() diff --git a/backend/venv/lib/python3.12/site-packages/alembic/context.py b/backend/venv/lib/python3.12/site-packages/alembic/context.py deleted file mode 100644 index 758fca8..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/context.py +++ /dev/null @@ -1,5 +0,0 @@ -from .runtime.environment import EnvironmentContext - -# create proxy functions for -# each method on the EnvironmentContext class. -EnvironmentContext.create_module_class_proxy(globals(), locals()) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/context.pyi b/backend/venv/lib/python3.12/site-packages/alembic/context.pyi deleted file mode 100644 index 80619fb..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/context.pyi +++ /dev/null @@ -1,853 +0,0 @@ -# ### this file stubs are generated by tools/write_pyi.py - do not edit ### -# ### imports are manually managed -from __future__ import annotations - -from typing import Any -from typing import Callable -from typing import Collection -from typing import ContextManager -from typing import Dict -from typing import Iterable -from typing import List -from typing import Literal -from typing import Mapping -from typing import MutableMapping -from typing import Optional -from typing import overload -from typing import Sequence -from typing import TextIO -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -if TYPE_CHECKING: - from sqlalchemy.engine.base import Connection - from sqlalchemy.engine.url import URL - from sqlalchemy.sql import Executable - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import FetchedValue - from sqlalchemy.sql.schema import MetaData - from sqlalchemy.sql.schema import SchemaItem - from sqlalchemy.sql.type_api import TypeEngine - - from .autogenerate.api import AutogenContext - from .config import Config - from .operations.ops import MigrationScript - from .runtime.migration import _ProxyTransaction - from .runtime.migration import MigrationContext - from .runtime.migration import MigrationInfo - from .script import ScriptDirectory - -### end imports ### - -def begin_transaction() -> Union[_ProxyTransaction, ContextManager[None]]: - """Return a context manager that will - enclose an operation within a "transaction", - as defined by the environment's offline - and transactional DDL settings. - - e.g.:: - - with context.begin_transaction(): - context.run_migrations() - - :meth:`.begin_transaction` is intended to - "do the right thing" regardless of - calling context: - - * If :meth:`.is_transactional_ddl` is ``False``, - returns a "do nothing" context manager - which otherwise produces no transactional - state or directives. - * If :meth:`.is_offline_mode` is ``True``, - returns a context manager that will - invoke the :meth:`.DefaultImpl.emit_begin` - and :meth:`.DefaultImpl.emit_commit` - methods, which will produce the string - directives ``BEGIN`` and ``COMMIT`` on - the output stream, as rendered by the - target backend (e.g. SQL Server would - emit ``BEGIN TRANSACTION``). - * Otherwise, calls :meth:`sqlalchemy.engine.Connection.begin` - on the current online connection, which - returns a :class:`sqlalchemy.engine.Transaction` - object. This object demarcates a real - transaction and is itself a context manager, - which will roll back if an exception - is raised. - - Note that a custom ``env.py`` script which - has more specific transactional needs can of course - manipulate the :class:`~sqlalchemy.engine.Connection` - directly to produce transactional state in "online" - mode. - - """ - -config: Config - -def configure( - connection: Optional[Connection] = None, - url: Union[str, URL, None] = None, - dialect_name: Optional[str] = None, - dialect_opts: Optional[Dict[str, Any]] = None, - transactional_ddl: Optional[bool] = None, - transaction_per_migration: bool = False, - output_buffer: Optional[TextIO] = None, - starting_rev: Optional[str] = None, - tag: Optional[str] = None, - template_args: Optional[Dict[str, Any]] = None, - render_as_batch: bool = False, - target_metadata: Union[MetaData, Sequence[MetaData], None] = None, - include_name: Optional[ - Callable[ - [ - Optional[str], - Literal[ - "schema", - "table", - "column", - "index", - "unique_constraint", - "foreign_key_constraint", - ], - MutableMapping[ - Literal[ - "schema_name", - "table_name", - "schema_qualified_table_name", - ], - Optional[str], - ], - ], - bool, - ] - ] = None, - include_object: Optional[ - Callable[ - [ - SchemaItem, - Optional[str], - Literal[ - "schema", - "table", - "column", - "index", - "unique_constraint", - "foreign_key_constraint", - ], - bool, - Optional[SchemaItem], - ], - bool, - ] - ] = None, - include_schemas: bool = False, - process_revision_directives: Optional[ - Callable[ - [ - MigrationContext, - Union[str, Iterable[Optional[str]], Iterable[str]], - List[MigrationScript], - ], - None, - ] - ] = None, - compare_type: Union[ - bool, - Callable[ - [ - MigrationContext, - Column[Any], - Column[Any], - TypeEngine[Any], - TypeEngine[Any], - ], - Optional[bool], - ], - ] = True, - compare_server_default: Union[ - bool, - Callable[ - [ - MigrationContext, - Column[Any], - Column[Any], - Optional[str], - Optional[FetchedValue], - Optional[str], - ], - Optional[bool], - ], - ] = False, - render_item: Optional[ - Callable[[str, Any, AutogenContext], Union[str, Literal[False]]] - ] = None, - literal_binds: bool = False, - upgrade_token: str = "upgrades", - downgrade_token: str = "downgrades", - alembic_module_prefix: str = "op.", - sqlalchemy_module_prefix: str = "sa.", - user_module_prefix: Optional[str] = None, - on_version_apply: Optional[ - Callable[ - [ - MigrationContext, - MigrationInfo, - Collection[Any], - Mapping[str, Any], - ], - None, - ] - ] = None, - **kw: Any, -) -> None: - """Configure a :class:`.MigrationContext` within this - :class:`.EnvironmentContext` which will provide database - connectivity and other configuration to a series of - migration scripts. - - Many methods on :class:`.EnvironmentContext` require that - this method has been called in order to function, as they - ultimately need to have database access or at least access - to the dialect in use. Those which do are documented as such. - - The important thing needed by :meth:`.configure` is a - means to determine what kind of database dialect is in use. - An actual connection to that database is needed only if - the :class:`.MigrationContext` is to be used in - "online" mode. - - If the :meth:`.is_offline_mode` function returns ``True``, - then no connection is needed here. Otherwise, the - ``connection`` parameter should be present as an - instance of :class:`sqlalchemy.engine.Connection`. - - This function is typically called from the ``env.py`` - script within a migration environment. It can be called - multiple times for an invocation. The most recent - :class:`~sqlalchemy.engine.Connection` - for which it was called is the one that will be operated upon - by the next call to :meth:`.run_migrations`. - - General parameters: - - :param connection: a :class:`~sqlalchemy.engine.Connection` - to use - for SQL execution in "online" mode. When present, is also - used to determine the type of dialect in use. - :param url: a string database url, or a - :class:`sqlalchemy.engine.url.URL` object. - The type of dialect to be used will be derived from this if - ``connection`` is not passed. - :param dialect_name: string name of a dialect, such as - "postgresql", "mssql", etc. - The type of dialect to be used will be derived from this if - ``connection`` and ``url`` are not passed. - :param dialect_opts: dictionary of options to be passed to dialect - constructor. - :param transactional_ddl: Force the usage of "transactional" - DDL on or off; - this otherwise defaults to whether or not the dialect in - use supports it. - :param transaction_per_migration: if True, nest each migration script - in a transaction rather than the full series of migrations to - run. - :param output_buffer: a file-like object that will be used - for textual output - when the ``--sql`` option is used to generate SQL scripts. - Defaults to - ``sys.stdout`` if not passed here and also not present on - the :class:`.Config` - object. The value here overrides that of the :class:`.Config` - object. - :param output_encoding: when using ``--sql`` to generate SQL - scripts, apply this encoding to the string output. - :param literal_binds: when using ``--sql`` to generate SQL - scripts, pass through the ``literal_binds`` flag to the compiler - so that any literal values that would ordinarily be bound - parameters are converted to plain strings. - - .. warning:: Dialects can typically only handle simple datatypes - like strings and numbers for auto-literal generation. Datatypes - like dates, intervals, and others may still require manual - formatting, typically using :meth:`.Operations.inline_literal`. - - .. note:: the ``literal_binds`` flag is ignored on SQLAlchemy - versions prior to 0.8 where this feature is not supported. - - .. seealso:: - - :meth:`.Operations.inline_literal` - - :param starting_rev: Override the "starting revision" argument - when using ``--sql`` mode. - :param tag: a string tag for usage by custom ``env.py`` scripts. - Set via the ``--tag`` option, can be overridden here. - :param template_args: dictionary of template arguments which - will be added to the template argument environment when - running the "revision" command. Note that the script environment - is only run within the "revision" command if the --autogenerate - option is used, or if the option "revision_environment=true" - is present in the alembic.ini file. - - :param version_table: The name of the Alembic version table. - The default is ``'alembic_version'``. - :param version_table_schema: Optional schema to place version - table within. - :param version_table_pk: boolean, whether the Alembic version table - should use a primary key constraint for the "value" column; this - only takes effect when the table is first created. - Defaults to True; setting to False should not be necessary and is - here for backwards compatibility reasons. - :param on_version_apply: a callable or collection of callables to be - run for each migration step. - The callables will be run in the order they are given, once for - each migration step, after the respective operation has been - applied but before its transaction is finalized. - Each callable accepts no positional arguments and the following - keyword arguments: - - * ``ctx``: the :class:`.MigrationContext` running the migration, - * ``step``: a :class:`.MigrationInfo` representing the - step currently being applied, - * ``heads``: a collection of version strings representing the - current heads, - * ``run_args``: the ``**kwargs`` passed to :meth:`.run_migrations`. - - Parameters specific to the autogenerate feature, when - ``alembic revision`` is run with the ``--autogenerate`` feature: - - :param target_metadata: a :class:`sqlalchemy.schema.MetaData` - object, or a sequence of :class:`~sqlalchemy.schema.MetaData` - objects, that will be consulted during autogeneration. - The tables present in each :class:`~sqlalchemy.schema.MetaData` - will be compared against - what is locally available on the target - :class:`~sqlalchemy.engine.Connection` - to produce candidate upgrade/downgrade operations. - :param compare_type: Indicates type comparison behavior during - an autogenerate - operation. Defaults to ``True`` turning on type comparison, which - has good accuracy on most backends. See :ref:`compare_types` - for an example as well as information on other type - comparison options. Set to ``False`` which disables type - comparison. A callable can also be passed to provide custom type - comparison, see :ref:`compare_types` for additional details. - - .. versionchanged:: 1.12.0 The default value of - :paramref:`.EnvironmentContext.configure.compare_type` has been - changed to ``True``. - - .. seealso:: - - :ref:`compare_types` - - :paramref:`.EnvironmentContext.configure.compare_server_default` - - :param compare_server_default: Indicates server default comparison - behavior during - an autogenerate operation. Defaults to ``False`` which disables - server default - comparison. Set to ``True`` to turn on server default comparison, - which has - varied accuracy depending on backend. - - To customize server default comparison behavior, a callable may - be specified - which can filter server default comparisons during an - autogenerate operation. - defaults during an autogenerate operation. The format of this - callable is:: - - def my_compare_server_default(context, inspected_column, - metadata_column, inspected_default, metadata_default, - rendered_metadata_default): - # return True if the defaults are different, - # False if not, or None to allow the default implementation - # to compare these defaults - return None - - context.configure( - # ... - compare_server_default = my_compare_server_default - ) - - ``inspected_column`` is a dictionary structure as returned by - :meth:`sqlalchemy.engine.reflection.Inspector.get_columns`, whereas - ``metadata_column`` is a :class:`sqlalchemy.schema.Column` from - the local model environment. - - A return value of ``None`` indicates to allow default server default - comparison - to proceed. Note that some backends such as Postgresql actually - execute - the two defaults on the database side to compare for equivalence. - - .. seealso:: - - :paramref:`.EnvironmentContext.configure.compare_type` - - :param include_name: A callable function which is given - the chance to return ``True`` or ``False`` for any database reflected - object based on its name, including database schema names when - the :paramref:`.EnvironmentContext.configure.include_schemas` flag - is set to ``True``. - - The function accepts the following positional arguments: - - * ``name``: the name of the object, such as schema name or table name. - Will be ``None`` when indicating the default schema name of the - database connection. - * ``type``: a string describing the type of object; currently - ``"schema"``, ``"table"``, ``"column"``, ``"index"``, - ``"unique_constraint"``, or ``"foreign_key_constraint"`` - * ``parent_names``: a dictionary of "parent" object names, that are - relative to the name being given. Keys in this dictionary may - include: ``"schema_name"``, ``"table_name"`` or - ``"schema_qualified_table_name"``. - - E.g.:: - - def include_name(name, type_, parent_names): - if type_ == "schema": - return name in ["schema_one", "schema_two"] - else: - return True - - context.configure( - # ... - include_schemas = True, - include_name = include_name - ) - - .. seealso:: - - :ref:`autogenerate_include_hooks` - - :paramref:`.EnvironmentContext.configure.include_object` - - :paramref:`.EnvironmentContext.configure.include_schemas` - - - :param include_object: A callable function which is given - the chance to return ``True`` or ``False`` for any object, - indicating if the given object should be considered in the - autogenerate sweep. - - The function accepts the following positional arguments: - - * ``object``: a :class:`~sqlalchemy.schema.SchemaItem` object such - as a :class:`~sqlalchemy.schema.Table`, - :class:`~sqlalchemy.schema.Column`, - :class:`~sqlalchemy.schema.Index` - :class:`~sqlalchemy.schema.UniqueConstraint`, - or :class:`~sqlalchemy.schema.ForeignKeyConstraint` object - * ``name``: the name of the object. This is typically available - via ``object.name``. - * ``type``: a string describing the type of object; currently - ``"table"``, ``"column"``, ``"index"``, ``"unique_constraint"``, - or ``"foreign_key_constraint"`` - * ``reflected``: ``True`` if the given object was produced based on - table reflection, ``False`` if it's from a local :class:`.MetaData` - object. - * ``compare_to``: the object being compared against, if available, - else ``None``. - - E.g.:: - - def include_object(object, name, type_, reflected, compare_to): - if (type_ == "column" and - not reflected and - object.info.get("skip_autogenerate", False)): - return False - else: - return True - - context.configure( - # ... - include_object = include_object - ) - - For the use case of omitting specific schemas from a target database - when :paramref:`.EnvironmentContext.configure.include_schemas` is - set to ``True``, the :attr:`~sqlalchemy.schema.Table.schema` - attribute can be checked for each :class:`~sqlalchemy.schema.Table` - object passed to the hook, however it is much more efficient - to filter on schemas before reflection of objects takes place - using the :paramref:`.EnvironmentContext.configure.include_name` - hook. - - .. seealso:: - - :ref:`autogenerate_include_hooks` - - :paramref:`.EnvironmentContext.configure.include_name` - - :paramref:`.EnvironmentContext.configure.include_schemas` - - :param render_as_batch: if True, commands which alter elements - within a table will be placed under a ``with batch_alter_table():`` - directive, so that batch migrations will take place. - - .. seealso:: - - :ref:`batch_migrations` - - :param include_schemas: If True, autogenerate will scan across - all schemas located by the SQLAlchemy - :meth:`~sqlalchemy.engine.reflection.Inspector.get_schema_names` - method, and include all differences in tables found across all - those schemas. When using this option, you may want to also - use the :paramref:`.EnvironmentContext.configure.include_name` - parameter to specify a callable which - can filter the tables/schemas that get included. - - .. seealso:: - - :ref:`autogenerate_include_hooks` - - :paramref:`.EnvironmentContext.configure.include_name` - - :paramref:`.EnvironmentContext.configure.include_object` - - :param render_item: Callable that can be used to override how - any schema item, i.e. column, constraint, type, - etc., is rendered for autogenerate. The callable receives a - string describing the type of object, the object, and - the autogen context. If it returns False, the - default rendering method will be used. If it returns None, - the item will not be rendered in the context of a Table - construct, that is, can be used to skip columns or constraints - within op.create_table():: - - def my_render_column(type_, col, autogen_context): - if type_ == "column" and isinstance(col, MySpecialCol): - return repr(col) - else: - return False - - context.configure( - # ... - render_item = my_render_column - ) - - Available values for the type string include: ``"column"``, - ``"primary_key"``, ``"foreign_key"``, ``"unique"``, ``"check"``, - ``"type"``, ``"server_default"``. - - .. seealso:: - - :ref:`autogen_render_types` - - :param upgrade_token: When autogenerate completes, the text of the - candidate upgrade operations will be present in this template - variable when ``script.py.mako`` is rendered. Defaults to - ``upgrades``. - :param downgrade_token: When autogenerate completes, the text of the - candidate downgrade operations will be present in this - template variable when ``script.py.mako`` is rendered. Defaults to - ``downgrades``. - - :param alembic_module_prefix: When autogenerate refers to Alembic - :mod:`alembic.operations` constructs, this prefix will be used - (i.e. ``op.create_table``) Defaults to "``op.``". - Can be ``None`` to indicate no prefix. - - :param sqlalchemy_module_prefix: When autogenerate refers to - SQLAlchemy - :class:`~sqlalchemy.schema.Column` or type classes, this prefix - will be used - (i.e. ``sa.Column("somename", sa.Integer)``) Defaults to "``sa.``". - Can be ``None`` to indicate no prefix. - Note that when dialect-specific types are rendered, autogenerate - will render them using the dialect module name, i.e. ``mssql.BIT()``, - ``postgresql.UUID()``. - - :param user_module_prefix: When autogenerate refers to a SQLAlchemy - type (e.g. :class:`.TypeEngine`) where the module name is not - under the ``sqlalchemy`` namespace, this prefix will be used - within autogenerate. If left at its default of - ``None``, the ``__module__`` attribute of the type is used to - render the import module. It's a good practice to set this - and to have all custom types be available from a fixed module space, - in order to future-proof migration files against reorganizations - in modules. - - .. seealso:: - - :ref:`autogen_module_prefix` - - :param process_revision_directives: a callable function that will - be passed a structure representing the end result of an autogenerate - or plain "revision" operation, which can be manipulated to affect - how the ``alembic revision`` command ultimately outputs new - revision scripts. The structure of the callable is:: - - def process_revision_directives(context, revision, directives): - pass - - The ``directives`` parameter is a Python list containing - a single :class:`.MigrationScript` directive, which represents - the revision file to be generated. This list as well as its - contents may be freely modified to produce any set of commands. - The section :ref:`customizing_revision` shows an example of - doing this. The ``context`` parameter is the - :class:`.MigrationContext` in use, - and ``revision`` is a tuple of revision identifiers representing the - current revision of the database. - - The callable is invoked at all times when the ``--autogenerate`` - option is passed to ``alembic revision``. If ``--autogenerate`` - is not passed, the callable is invoked only if the - ``revision_environment`` variable is set to True in the Alembic - configuration, in which case the given ``directives`` collection - will contain empty :class:`.UpgradeOps` and :class:`.DowngradeOps` - collections for ``.upgrade_ops`` and ``.downgrade_ops``. The - ``--autogenerate`` option itself can be inferred by inspecting - ``context.config.cmd_opts.autogenerate``. - - The callable function may optionally be an instance of - a :class:`.Rewriter` object. This is a helper object that - assists in the production of autogenerate-stream rewriter functions. - - .. seealso:: - - :ref:`customizing_revision` - - :ref:`autogen_rewriter` - - :paramref:`.command.revision.process_revision_directives` - - Parameters specific to individual backends: - - :param mssql_batch_separator: The "batch separator" which will - be placed between each statement when generating offline SQL Server - migrations. Defaults to ``GO``. Note this is in addition to the - customary semicolon ``;`` at the end of each statement; SQL Server - considers the "batch separator" to denote the end of an - individual statement execution, and cannot group certain - dependent operations in one step. - :param oracle_batch_separator: The "batch separator" which will - be placed between each statement when generating offline - Oracle migrations. Defaults to ``/``. Oracle doesn't add a - semicolon between statements like most other backends. - - """ - -def execute( - sql: Union[Executable, str], - execution_options: Optional[Dict[str, Any]] = None, -) -> None: - """Execute the given SQL using the current change context. - - The behavior of :meth:`.execute` is the same - as that of :meth:`.Operations.execute`. Please see that - function's documentation for full detail including - caveats and limitations. - - This function requires that a :class:`.MigrationContext` has - first been made available via :meth:`.configure`. - - """ - -def get_bind() -> Connection: - """Return the current 'bind'. - - In "online" mode, this is the - :class:`sqlalchemy.engine.Connection` currently being used - to emit SQL to the database. - - This function requires that a :class:`.MigrationContext` - has first been made available via :meth:`.configure`. - - """ - -def get_context() -> MigrationContext: - """Return the current :class:`.MigrationContext` object. - - If :meth:`.EnvironmentContext.configure` has not been - called yet, raises an exception. - - """ - -def get_head_revision() -> Union[str, Tuple[str, ...], None]: - """Return the hex identifier of the 'head' script revision. - - If the script directory has multiple heads, this - method raises a :class:`.CommandError`; - :meth:`.EnvironmentContext.get_head_revisions` should be preferred. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - .. seealso:: :meth:`.EnvironmentContext.get_head_revisions` - - """ - -def get_head_revisions() -> Union[str, Tuple[str, ...], None]: - """Return the hex identifier of the 'heads' script revision(s). - - This returns a tuple containing the version number of all - heads in the script directory. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - -def get_revision_argument() -> Union[str, Tuple[str, ...], None]: - """Get the 'destination' revision argument. - - This is typically the argument passed to the - ``upgrade`` or ``downgrade`` command. - - If it was specified as ``head``, the actual - version number is returned; if specified - as ``base``, ``None`` is returned. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - -def get_starting_revision_argument() -> Union[str, Tuple[str, ...], None]: - """Return the 'starting revision' argument, - if the revision was passed using ``start:end``. - - This is only meaningful in "offline" mode. - Returns ``None`` if no value is available - or was configured. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - -def get_tag_argument() -> Optional[str]: - """Return the value passed for the ``--tag`` argument, if any. - - The ``--tag`` argument is not used directly by Alembic, - but is available for custom ``env.py`` configurations that - wish to use it; particularly for offline generation scripts - that wish to generate tagged filenames. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - .. seealso:: - - :meth:`.EnvironmentContext.get_x_argument` - a newer and more - open ended system of extending ``env.py`` scripts via the command - line. - - """ - -@overload -def get_x_argument(as_dictionary: Literal[False]) -> List[str]: ... -@overload -def get_x_argument(as_dictionary: Literal[True]) -> Dict[str, str]: ... -@overload -def get_x_argument( - as_dictionary: bool = ..., -) -> Union[List[str], Dict[str, str]]: - """Return the value(s) passed for the ``-x`` argument, if any. - - The ``-x`` argument is an open ended flag that allows any user-defined - value or values to be passed on the command line, then available - here for consumption by a custom ``env.py`` script. - - The return value is a list, returned directly from the ``argparse`` - structure. If ``as_dictionary=True`` is passed, the ``x`` arguments - are parsed using ``key=value`` format into a dictionary that is - then returned. If there is no ``=`` in the argument, value is an empty - string. - - .. versionchanged:: 1.13.1 Support ``as_dictionary=True`` when - arguments are passed without the ``=`` symbol. - - For example, to support passing a database URL on the command line, - the standard ``env.py`` script can be modified like this:: - - cmd_line_url = context.get_x_argument( - as_dictionary=True).get('dbname') - if cmd_line_url: - engine = create_engine(cmd_line_url) - else: - engine = engine_from_config( - config.get_section(config.config_ini_section), - prefix='sqlalchemy.', - poolclass=pool.NullPool) - - This then takes effect by running the ``alembic`` script as:: - - alembic -x dbname=postgresql://user:pass@host/dbname upgrade head - - This function does not require that the :class:`.MigrationContext` - has been configured. - - .. seealso:: - - :meth:`.EnvironmentContext.get_tag_argument` - - :attr:`.Config.cmd_opts` - - """ - -def is_offline_mode() -> bool: - """Return True if the current migrations environment - is running in "offline mode". - - This is ``True`` or ``False`` depending - on the ``--sql`` flag passed. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - -def is_transactional_ddl() -> bool: - """Return True if the context is configured to expect a - transactional DDL capable backend. - - This defaults to the type of database in use, and - can be overridden by the ``transactional_ddl`` argument - to :meth:`.configure` - - This function requires that a :class:`.MigrationContext` - has first been made available via :meth:`.configure`. - - """ - -def run_migrations(**kw: Any) -> None: - """Run migrations as determined by the current command line - configuration - as well as versioning information present (or not) in the current - database connection (if one is present). - - The function accepts optional ``**kw`` arguments. If these are - passed, they are sent directly to the ``upgrade()`` and - ``downgrade()`` - functions within each target revision file. By modifying the - ``script.py.mako`` file so that the ``upgrade()`` and ``downgrade()`` - functions accept arguments, parameters can be passed here so that - contextual information, usually information to identify a particular - database in use, can be passed from a custom ``env.py`` script - to the migration functions. - - This function requires that a :class:`.MigrationContext` has - first been made available via :meth:`.configure`. - - """ - -script: ScriptDirectory - -def static_output(text: str) -> None: - """Emit text directly to the "offline" SQL stream. - - Typically this is for emitting comments that - start with --. The statement is not treated - as a SQL execution, no ; or batch separator - is added, etc. - - """ diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/__init__.py deleted file mode 100644 index f2f72b3..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from . import mssql -from . import mysql -from . import oracle -from . import postgresql -from . import sqlite -from .impl import DefaultImpl as DefaultImpl diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/_autogen.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/_autogen.py deleted file mode 100644 index 74715b1..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/_autogen.py +++ /dev/null @@ -1,329 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -from typing import Any -from typing import ClassVar -from typing import Dict -from typing import Generic -from typing import NamedTuple -from typing import Optional -from typing import Sequence -from typing import Tuple -from typing import Type -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union - -from sqlalchemy.sql.schema import Constraint -from sqlalchemy.sql.schema import ForeignKeyConstraint -from sqlalchemy.sql.schema import Index -from sqlalchemy.sql.schema import UniqueConstraint -from typing_extensions import TypeGuard - -from .. import util -from ..util import sqla_compat - -if TYPE_CHECKING: - from typing import Literal - - from alembic.autogenerate.api import AutogenContext - from alembic.ddl.impl import DefaultImpl - -CompareConstraintType = Union[Constraint, Index] - -_C = TypeVar("_C", bound=CompareConstraintType) - -_clsreg: Dict[str, Type[_constraint_sig]] = {} - - -class ComparisonResult(NamedTuple): - status: Literal["equal", "different", "skip"] - message: str - - @property - def is_equal(self) -> bool: - return self.status == "equal" - - @property - def is_different(self) -> bool: - return self.status == "different" - - @property - def is_skip(self) -> bool: - return self.status == "skip" - - @classmethod - def Equal(cls) -> ComparisonResult: - """the constraints are equal.""" - return cls("equal", "The two constraints are equal") - - @classmethod - def Different(cls, reason: Union[str, Sequence[str]]) -> ComparisonResult: - """the constraints are different for the provided reason(s).""" - return cls("different", ", ".join(util.to_list(reason))) - - @classmethod - def Skip(cls, reason: Union[str, Sequence[str]]) -> ComparisonResult: - """the constraint cannot be compared for the provided reason(s). - - The message is logged, but the constraints will be otherwise - considered equal, meaning that no migration command will be - generated. - """ - return cls("skip", ", ".join(util.to_list(reason))) - - -class _constraint_sig(Generic[_C]): - const: _C - - _sig: Tuple[Any, ...] - name: Optional[sqla_compat._ConstraintNameDefined] - - impl: DefaultImpl - - _is_index: ClassVar[bool] = False - _is_fk: ClassVar[bool] = False - _is_uq: ClassVar[bool] = False - - _is_metadata: bool - - def __init_subclass__(cls) -> None: - cls._register() - - @classmethod - def _register(cls): - raise NotImplementedError() - - def __init__( - self, is_metadata: bool, impl: DefaultImpl, const: _C - ) -> None: - raise NotImplementedError() - - def compare_to_reflected( - self, other: _constraint_sig[Any] - ) -> ComparisonResult: - assert self.impl is other.impl - assert self._is_metadata - assert not other._is_metadata - - return self._compare_to_reflected(other) - - def _compare_to_reflected( - self, other: _constraint_sig[_C] - ) -> ComparisonResult: - raise NotImplementedError() - - @classmethod - def from_constraint( - cls, is_metadata: bool, impl: DefaultImpl, constraint: _C - ) -> _constraint_sig[_C]: - # these could be cached by constraint/impl, however, if the - # constraint is modified in place, then the sig is wrong. the mysql - # impl currently does this, and if we fixed that we can't be sure - # someone else might do it too, so play it safe. - sig = _clsreg[constraint.__visit_name__](is_metadata, impl, constraint) - return sig - - def md_name_to_sql_name(self, context: AutogenContext) -> Optional[str]: - return sqla_compat._get_constraint_final_name( - self.const, context.dialect - ) - - @util.memoized_property - def is_named(self): - return sqla_compat._constraint_is_named(self.const, self.impl.dialect) - - @util.memoized_property - def unnamed(self) -> Tuple[Any, ...]: - return self._sig - - @util.memoized_property - def unnamed_no_options(self) -> Tuple[Any, ...]: - raise NotImplementedError() - - @util.memoized_property - def _full_sig(self) -> Tuple[Any, ...]: - return (self.name,) + self.unnamed - - def __eq__(self, other) -> bool: - return self._full_sig == other._full_sig - - def __ne__(self, other) -> bool: - return self._full_sig != other._full_sig - - def __hash__(self) -> int: - return hash(self._full_sig) - - -class _uq_constraint_sig(_constraint_sig[UniqueConstraint]): - _is_uq = True - - @classmethod - def _register(cls) -> None: - _clsreg["unique_constraint"] = cls - - is_unique = True - - def __init__( - self, - is_metadata: bool, - impl: DefaultImpl, - const: UniqueConstraint, - ) -> None: - self.impl = impl - self.const = const - self.name = sqla_compat.constraint_name_or_none(const.name) - self._sig = tuple(sorted([col.name for col in const.columns])) - self._is_metadata = is_metadata - - @property - def column_names(self) -> Tuple[str, ...]: - return tuple([col.name for col in self.const.columns]) - - def _compare_to_reflected( - self, other: _constraint_sig[_C] - ) -> ComparisonResult: - assert self._is_metadata - metadata_obj = self - conn_obj = other - - assert is_uq_sig(conn_obj) - return self.impl.compare_unique_constraint( - metadata_obj.const, conn_obj.const - ) - - -class _ix_constraint_sig(_constraint_sig[Index]): - _is_index = True - - name: sqla_compat._ConstraintName - - @classmethod - def _register(cls) -> None: - _clsreg["index"] = cls - - def __init__( - self, is_metadata: bool, impl: DefaultImpl, const: Index - ) -> None: - self.impl = impl - self.const = const - self.name = const.name - self.is_unique = bool(const.unique) - self._is_metadata = is_metadata - - def _compare_to_reflected( - self, other: _constraint_sig[_C] - ) -> ComparisonResult: - assert self._is_metadata - metadata_obj = self - conn_obj = other - - assert is_index_sig(conn_obj) - return self.impl.compare_indexes(metadata_obj.const, conn_obj.const) - - @util.memoized_property - def has_expressions(self): - return sqla_compat.is_expression_index(self.const) - - @util.memoized_property - def column_names(self) -> Tuple[str, ...]: - return tuple([col.name for col in self.const.columns]) - - @util.memoized_property - def column_names_optional(self) -> Tuple[Optional[str], ...]: - return tuple( - [getattr(col, "name", None) for col in self.const.expressions] - ) - - @util.memoized_property - def is_named(self): - return True - - @util.memoized_property - def unnamed(self): - return (self.is_unique,) + self.column_names_optional - - -class _fk_constraint_sig(_constraint_sig[ForeignKeyConstraint]): - _is_fk = True - - @classmethod - def _register(cls) -> None: - _clsreg["foreign_key_constraint"] = cls - - def __init__( - self, - is_metadata: bool, - impl: DefaultImpl, - const: ForeignKeyConstraint, - ) -> None: - self._is_metadata = is_metadata - - self.impl = impl - self.const = const - - self.name = sqla_compat.constraint_name_or_none(const.name) - - ( - self.source_schema, - self.source_table, - self.source_columns, - self.target_schema, - self.target_table, - self.target_columns, - onupdate, - ondelete, - deferrable, - initially, - ) = sqla_compat._fk_spec(const) - - self._sig: Tuple[Any, ...] = ( - self.source_schema, - self.source_table, - tuple(self.source_columns), - self.target_schema, - self.target_table, - tuple(self.target_columns), - ) + ( - ( - (None if onupdate.lower() == "no action" else onupdate.lower()) - if onupdate - else None - ), - ( - (None if ondelete.lower() == "no action" else ondelete.lower()) - if ondelete - else None - ), - # convert initially + deferrable into one three-state value - ( - "initially_deferrable" - if initially and initially.lower() == "deferred" - else "deferrable" if deferrable else "not deferrable" - ), - ) - - @util.memoized_property - def unnamed_no_options(self): - return ( - self.source_schema, - self.source_table, - tuple(self.source_columns), - self.target_schema, - self.target_table, - tuple(self.target_columns), - ) - - -def is_index_sig(sig: _constraint_sig) -> TypeGuard[_ix_constraint_sig]: - return sig._is_index - - -def is_uq_sig(sig: _constraint_sig) -> TypeGuard[_uq_constraint_sig]: - return sig._is_uq - - -def is_fk_sig(sig: _constraint_sig) -> TypeGuard[_fk_constraint_sig]: - return sig._is_fk diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/base.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/base.py deleted file mode 100644 index 690c153..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/base.py +++ /dev/null @@ -1,336 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import functools -from typing import Optional -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import exc -from sqlalchemy import Integer -from sqlalchemy import types as sqltypes -from sqlalchemy.ext.compiler import compiles -from sqlalchemy.schema import Column -from sqlalchemy.schema import DDLElement -from sqlalchemy.sql.elements import quoted_name - -from ..util.sqla_compat import _columns_for_constraint # noqa -from ..util.sqla_compat import _find_columns # noqa -from ..util.sqla_compat import _fk_spec # noqa -from ..util.sqla_compat import _is_type_bound # noqa -from ..util.sqla_compat import _table_for_constraint # noqa - -if TYPE_CHECKING: - from typing import Any - - from sqlalchemy.sql.compiler import Compiled - from sqlalchemy.sql.compiler import DDLCompiler - from sqlalchemy.sql.elements import TextClause - from sqlalchemy.sql.functions import Function - from sqlalchemy.sql.schema import FetchedValue - from sqlalchemy.sql.type_api import TypeEngine - - from .impl import DefaultImpl - from ..util.sqla_compat import Computed - from ..util.sqla_compat import Identity - -_ServerDefault = Union["TextClause", "FetchedValue", "Function[Any]", str] - - -class AlterTable(DDLElement): - """Represent an ALTER TABLE statement. - - Only the string name and optional schema name of the table - is required, not a full Table object. - - """ - - def __init__( - self, - table_name: str, - schema: Optional[Union[quoted_name, str]] = None, - ) -> None: - self.table_name = table_name - self.schema = schema - - -class RenameTable(AlterTable): - def __init__( - self, - old_table_name: str, - new_table_name: Union[quoted_name, str], - schema: Optional[Union[quoted_name, str]] = None, - ) -> None: - super().__init__(old_table_name, schema=schema) - self.new_table_name = new_table_name - - -class AlterColumn(AlterTable): - def __init__( - self, - name: str, - column_name: str, - schema: Optional[str] = None, - existing_type: Optional[TypeEngine] = None, - existing_nullable: Optional[bool] = None, - existing_server_default: Optional[_ServerDefault] = None, - existing_comment: Optional[str] = None, - ) -> None: - super().__init__(name, schema=schema) - self.column_name = column_name - self.existing_type = ( - sqltypes.to_instance(existing_type) - if existing_type is not None - else None - ) - self.existing_nullable = existing_nullable - self.existing_server_default = existing_server_default - self.existing_comment = existing_comment - - -class ColumnNullable(AlterColumn): - def __init__( - self, name: str, column_name: str, nullable: bool, **kw - ) -> None: - super().__init__(name, column_name, **kw) - self.nullable = nullable - - -class ColumnType(AlterColumn): - def __init__( - self, name: str, column_name: str, type_: TypeEngine, **kw - ) -> None: - super().__init__(name, column_name, **kw) - self.type_ = sqltypes.to_instance(type_) - - -class ColumnName(AlterColumn): - def __init__( - self, name: str, column_name: str, newname: str, **kw - ) -> None: - super().__init__(name, column_name, **kw) - self.newname = newname - - -class ColumnDefault(AlterColumn): - def __init__( - self, - name: str, - column_name: str, - default: Optional[_ServerDefault], - **kw, - ) -> None: - super().__init__(name, column_name, **kw) - self.default = default - - -class ComputedColumnDefault(AlterColumn): - def __init__( - self, name: str, column_name: str, default: Optional[Computed], **kw - ) -> None: - super().__init__(name, column_name, **kw) - self.default = default - - -class IdentityColumnDefault(AlterColumn): - def __init__( - self, - name: str, - column_name: str, - default: Optional[Identity], - impl: DefaultImpl, - **kw, - ) -> None: - super().__init__(name, column_name, **kw) - self.default = default - self.impl = impl - - -class AddColumn(AlterTable): - def __init__( - self, - name: str, - column: Column[Any], - schema: Optional[Union[quoted_name, str]] = None, - ) -> None: - super().__init__(name, schema=schema) - self.column = column - - -class DropColumn(AlterTable): - def __init__( - self, name: str, column: Column[Any], schema: Optional[str] = None - ) -> None: - super().__init__(name, schema=schema) - self.column = column - - -class ColumnComment(AlterColumn): - def __init__( - self, name: str, column_name: str, comment: Optional[str], **kw - ) -> None: - super().__init__(name, column_name, **kw) - self.comment = comment - - -@compiles(RenameTable) # type: ignore[misc] -def visit_rename_table( - element: RenameTable, compiler: DDLCompiler, **kw -) -> str: - return "%s RENAME TO %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_table_name(compiler, element.new_table_name, element.schema), - ) - - -@compiles(AddColumn) # type: ignore[misc] -def visit_add_column(element: AddColumn, compiler: DDLCompiler, **kw) -> str: - return "%s %s" % ( - alter_table(compiler, element.table_name, element.schema), - add_column(compiler, element.column, **kw), - ) - - -@compiles(DropColumn) # type: ignore[misc] -def visit_drop_column(element: DropColumn, compiler: DDLCompiler, **kw) -> str: - return "%s %s" % ( - alter_table(compiler, element.table_name, element.schema), - drop_column(compiler, element.column.name, **kw), - ) - - -@compiles(ColumnNullable) # type: ignore[misc] -def visit_column_nullable( - element: ColumnNullable, compiler: DDLCompiler, **kw -) -> str: - return "%s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - "DROP NOT NULL" if element.nullable else "SET NOT NULL", - ) - - -@compiles(ColumnType) # type: ignore[misc] -def visit_column_type(element: ColumnType, compiler: DDLCompiler, **kw) -> str: - return "%s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - "TYPE %s" % format_type(compiler, element.type_), - ) - - -@compiles(ColumnName) # type: ignore[misc] -def visit_column_name(element: ColumnName, compiler: DDLCompiler, **kw) -> str: - return "%s RENAME %s TO %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_column_name(compiler, element.column_name), - format_column_name(compiler, element.newname), - ) - - -@compiles(ColumnDefault) # type: ignore[misc] -def visit_column_default( - element: ColumnDefault, compiler: DDLCompiler, **kw -) -> str: - return "%s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - ( - "SET DEFAULT %s" % format_server_default(compiler, element.default) - if element.default is not None - else "DROP DEFAULT" - ), - ) - - -@compiles(ComputedColumnDefault) # type: ignore[misc] -def visit_computed_column( - element: ComputedColumnDefault, compiler: DDLCompiler, **kw -): - raise exc.CompileError( - 'Adding or removing a "computed" construct, e.g. GENERATED ' - "ALWAYS AS, to or from an existing column is not supported." - ) - - -@compiles(IdentityColumnDefault) # type: ignore[misc] -def visit_identity_column( - element: IdentityColumnDefault, compiler: DDLCompiler, **kw -): - raise exc.CompileError( - 'Adding, removing or modifying an "identity" construct, ' - "e.g. GENERATED AS IDENTITY, to or from an existing " - "column is not supported in this dialect." - ) - - -def quote_dotted( - name: Union[quoted_name, str], quote: functools.partial -) -> Union[quoted_name, str]: - """quote the elements of a dotted name""" - - if isinstance(name, quoted_name): - return quote(name) - result = ".".join([quote(x) for x in name.split(".")]) - return result - - -def format_table_name( - compiler: Compiled, - name: Union[quoted_name, str], - schema: Optional[Union[quoted_name, str]], -) -> Union[quoted_name, str]: - quote = functools.partial(compiler.preparer.quote) - if schema: - return quote_dotted(schema, quote) + "." + quote(name) - else: - return quote(name) - - -def format_column_name( - compiler: DDLCompiler, name: Optional[Union[quoted_name, str]] -) -> Union[quoted_name, str]: - return compiler.preparer.quote(name) # type: ignore[arg-type] - - -def format_server_default( - compiler: DDLCompiler, - default: Optional[_ServerDefault], -) -> str: - return compiler.get_column_default_string( - Column("x", Integer, server_default=default) - ) - - -def format_type(compiler: DDLCompiler, type_: TypeEngine) -> str: - return compiler.dialect.type_compiler.process(type_) - - -def alter_table( - compiler: DDLCompiler, - name: str, - schema: Optional[str], -) -> str: - return "ALTER TABLE %s" % format_table_name(compiler, name, schema) - - -def drop_column(compiler: DDLCompiler, name: str, **kw) -> str: - return "DROP COLUMN %s" % format_column_name(compiler, name) - - -def alter_column(compiler: DDLCompiler, name: str) -> str: - return "ALTER COLUMN %s" % format_column_name(compiler, name) - - -def add_column(compiler: DDLCompiler, column: Column[Any], **kw) -> str: - text = "ADD COLUMN %s" % compiler.get_column_specification(column, **kw) - - const = " ".join( - compiler.process(constraint) for constraint in column.constraints - ) - if const: - text += " " + const - - return text diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/impl.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/impl.py deleted file mode 100644 index 2574688..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/impl.py +++ /dev/null @@ -1,849 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import logging -import re -from typing import Any -from typing import Callable -from typing import Dict -from typing import Iterable -from typing import List -from typing import Mapping -from typing import NamedTuple -from typing import Optional -from typing import Sequence -from typing import Set -from typing import Tuple -from typing import Type -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import cast -from sqlalchemy import schema -from sqlalchemy import text - -from . import _autogen -from . import base -from ._autogen import _constraint_sig as _constraint_sig -from ._autogen import ComparisonResult as ComparisonResult -from .. import util -from ..util import sqla_compat - -if TYPE_CHECKING: - from typing import Literal - from typing import TextIO - - from sqlalchemy.engine import Connection - from sqlalchemy.engine import Dialect - from sqlalchemy.engine.cursor import CursorResult - from sqlalchemy.engine.reflection import Inspector - from sqlalchemy.sql import ClauseElement - from sqlalchemy.sql import Executable - from sqlalchemy.sql.elements import ColumnElement - from sqlalchemy.sql.elements import quoted_name - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import Constraint - from sqlalchemy.sql.schema import ForeignKeyConstraint - from sqlalchemy.sql.schema import Index - from sqlalchemy.sql.schema import Table - from sqlalchemy.sql.schema import UniqueConstraint - from sqlalchemy.sql.selectable import TableClause - from sqlalchemy.sql.type_api import TypeEngine - - from .base import _ServerDefault - from ..autogenerate.api import AutogenContext - from ..operations.batch import ApplyBatchImpl - from ..operations.batch import BatchOperationsImpl - -log = logging.getLogger(__name__) - - -class ImplMeta(type): - def __init__( - cls, - classname: str, - bases: Tuple[Type[DefaultImpl]], - dict_: Dict[str, Any], - ): - newtype = type.__init__(cls, classname, bases, dict_) - if "__dialect__" in dict_: - _impls[dict_["__dialect__"]] = cls # type: ignore[assignment] - return newtype - - -_impls: Dict[str, Type[DefaultImpl]] = {} - - -class DefaultImpl(metaclass=ImplMeta): - """Provide the entrypoint for major migration operations, - including database-specific behavioral variances. - - While individual SQL/DDL constructs already provide - for database-specific implementations, variances here - allow for entirely different sequences of operations - to take place for a particular migration, such as - SQL Server's special 'IDENTITY INSERT' step for - bulk inserts. - - """ - - __dialect__ = "default" - - transactional_ddl = False - command_terminator = ";" - type_synonyms: Tuple[Set[str], ...] = ({"NUMERIC", "DECIMAL"},) - type_arg_extract: Sequence[str] = () - # These attributes are deprecated in SQLAlchemy via #10247. They need to - # be ignored to support older version that did not use dialect kwargs. - # They only apply to Oracle and are replaced by oracle_order, - # oracle_on_null - identity_attrs_ignore: Tuple[str, ...] = ("order", "on_null") - - def __init__( - self, - dialect: Dialect, - connection: Optional[Connection], - as_sql: bool, - transactional_ddl: Optional[bool], - output_buffer: Optional[TextIO], - context_opts: Dict[str, Any], - ) -> None: - self.dialect = dialect - self.connection = connection - self.as_sql = as_sql - self.literal_binds = context_opts.get("literal_binds", False) - - self.output_buffer = output_buffer - self.memo: dict = {} - self.context_opts = context_opts - if transactional_ddl is not None: - self.transactional_ddl = transactional_ddl - - if self.literal_binds: - if not self.as_sql: - raise util.CommandError( - "Can't use literal_binds setting without as_sql mode" - ) - - @classmethod - def get_by_dialect(cls, dialect: Dialect) -> Type[DefaultImpl]: - return _impls[dialect.name] - - def static_output(self, text: str) -> None: - assert self.output_buffer is not None - self.output_buffer.write(text + "\n\n") - self.output_buffer.flush() - - def requires_recreate_in_batch( - self, batch_op: BatchOperationsImpl - ) -> bool: - """Return True if the given :class:`.BatchOperationsImpl` - would need the table to be recreated and copied in order to - proceed. - - Normally, only returns True on SQLite when operations other - than add_column are present. - - """ - return False - - def prep_table_for_batch( - self, batch_impl: ApplyBatchImpl, table: Table - ) -> None: - """perform any operations needed on a table before a new - one is created to replace it in batch mode. - - the PG dialect uses this to drop constraints on the table - before the new one uses those same names. - - """ - - @property - def bind(self) -> Optional[Connection]: - return self.connection - - def _exec( - self, - construct: Union[Executable, str], - execution_options: Optional[Mapping[str, Any]] = None, - multiparams: Optional[Sequence[Mapping[str, Any]]] = None, - params: Mapping[str, Any] = util.immutabledict(), - ) -> Optional[CursorResult]: - if isinstance(construct, str): - construct = text(construct) - if self.as_sql: - if multiparams is not None or params: - raise TypeError("SQL parameters not allowed with as_sql") - - compile_kw: dict[str, Any] - if self.literal_binds and not isinstance( - construct, schema.DDLElement - ): - compile_kw = dict(compile_kwargs={"literal_binds": True}) - else: - compile_kw = {} - - if TYPE_CHECKING: - assert isinstance(construct, ClauseElement) - compiled = construct.compile(dialect=self.dialect, **compile_kw) - self.static_output( - str(compiled).replace("\t", " ").strip() - + self.command_terminator - ) - return None - else: - conn = self.connection - assert conn is not None - if execution_options: - conn = conn.execution_options(**execution_options) - - if params and multiparams is not None: - raise TypeError( - "Can't send params and multiparams at the same time" - ) - - if multiparams: - return conn.execute(construct, multiparams) - else: - return conn.execute(construct, params) - - def execute( - self, - sql: Union[Executable, str], - execution_options: Optional[dict[str, Any]] = None, - ) -> None: - self._exec(sql, execution_options) - - def alter_column( - self, - table_name: str, - column_name: str, - nullable: Optional[bool] = None, - server_default: Union[_ServerDefault, Literal[False]] = False, - name: Optional[str] = None, - type_: Optional[TypeEngine] = None, - schema: Optional[str] = None, - autoincrement: Optional[bool] = None, - comment: Optional[Union[str, Literal[False]]] = False, - existing_comment: Optional[str] = None, - existing_type: Optional[TypeEngine] = None, - existing_server_default: Optional[_ServerDefault] = None, - existing_nullable: Optional[bool] = None, - existing_autoincrement: Optional[bool] = None, - **kw: Any, - ) -> None: - if autoincrement is not None or existing_autoincrement is not None: - util.warn( - "autoincrement and existing_autoincrement " - "only make sense for MySQL", - stacklevel=3, - ) - if nullable is not None: - self._exec( - base.ColumnNullable( - table_name, - column_name, - nullable, - schema=schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - existing_comment=existing_comment, - ) - ) - if server_default is not False: - kw = {} - cls_: Type[ - Union[ - base.ComputedColumnDefault, - base.IdentityColumnDefault, - base.ColumnDefault, - ] - ] - if sqla_compat._server_default_is_computed( - server_default, existing_server_default - ): - cls_ = base.ComputedColumnDefault - elif sqla_compat._server_default_is_identity( - server_default, existing_server_default - ): - cls_ = base.IdentityColumnDefault - kw["impl"] = self - else: - cls_ = base.ColumnDefault - self._exec( - cls_( - table_name, - column_name, - server_default, # type:ignore[arg-type] - schema=schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - existing_comment=existing_comment, - **kw, - ) - ) - if type_ is not None: - self._exec( - base.ColumnType( - table_name, - column_name, - type_, - schema=schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - existing_comment=existing_comment, - ) - ) - - if comment is not False: - self._exec( - base.ColumnComment( - table_name, - column_name, - comment, - schema=schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - existing_comment=existing_comment, - ) - ) - - # do the new name last ;) - if name is not None: - self._exec( - base.ColumnName( - table_name, - column_name, - name, - schema=schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - ) - ) - - def add_column( - self, - table_name: str, - column: Column[Any], - schema: Optional[Union[str, quoted_name]] = None, - ) -> None: - self._exec(base.AddColumn(table_name, column, schema=schema)) - - def drop_column( - self, - table_name: str, - column: Column[Any], - schema: Optional[str] = None, - **kw, - ) -> None: - self._exec(base.DropColumn(table_name, column, schema=schema)) - - def add_constraint(self, const: Any) -> None: - if const._create_rule is None or const._create_rule(self): - self._exec(schema.AddConstraint(const)) - - def drop_constraint(self, const: Constraint) -> None: - self._exec(schema.DropConstraint(const)) - - def rename_table( - self, - old_table_name: str, - new_table_name: Union[str, quoted_name], - schema: Optional[Union[str, quoted_name]] = None, - ) -> None: - self._exec( - base.RenameTable(old_table_name, new_table_name, schema=schema) - ) - - def create_table(self, table: Table, **kw: Any) -> None: - table.dispatch.before_create( - table, self.connection, checkfirst=False, _ddl_runner=self - ) - self._exec(schema.CreateTable(table, **kw)) - table.dispatch.after_create( - table, self.connection, checkfirst=False, _ddl_runner=self - ) - for index in table.indexes: - self._exec(schema.CreateIndex(index)) - - with_comment = ( - self.dialect.supports_comments and not self.dialect.inline_comments - ) - comment = table.comment - if comment and with_comment: - self.create_table_comment(table) - - for column in table.columns: - comment = column.comment - if comment and with_comment: - self.create_column_comment(column) - - def drop_table(self, table: Table, **kw: Any) -> None: - table.dispatch.before_drop( - table, self.connection, checkfirst=False, _ddl_runner=self - ) - self._exec(schema.DropTable(table, **kw)) - table.dispatch.after_drop( - table, self.connection, checkfirst=False, _ddl_runner=self - ) - - def create_index(self, index: Index, **kw: Any) -> None: - self._exec(schema.CreateIndex(index, **kw)) - - def create_table_comment(self, table: Table) -> None: - self._exec(schema.SetTableComment(table)) - - def drop_table_comment(self, table: Table) -> None: - self._exec(schema.DropTableComment(table)) - - def create_column_comment(self, column: ColumnElement[Any]) -> None: - self._exec(schema.SetColumnComment(column)) - - def drop_index(self, index: Index, **kw: Any) -> None: - self._exec(schema.DropIndex(index, **kw)) - - def bulk_insert( - self, - table: Union[TableClause, Table], - rows: List[dict], - multiinsert: bool = True, - ) -> None: - if not isinstance(rows, list): - raise TypeError("List expected") - elif rows and not isinstance(rows[0], dict): - raise TypeError("List of dictionaries expected") - if self.as_sql: - for row in rows: - self._exec( - sqla_compat._insert_inline(table).values( - **{ - k: ( - sqla_compat._literal_bindparam( - k, v, type_=table.c[k].type - ) - if not isinstance( - v, sqla_compat._literal_bindparam - ) - else v - ) - for k, v in row.items() - } - ) - ) - else: - if rows: - if multiinsert: - self._exec( - sqla_compat._insert_inline(table), multiparams=rows - ) - else: - for row in rows: - self._exec( - sqla_compat._insert_inline(table).values(**row) - ) - - def _tokenize_column_type(self, column: Column) -> Params: - definition: str - definition = self.dialect.type_compiler.process(column.type).lower() - - # tokenize the SQLAlchemy-generated version of a type, so that - # the two can be compared. - # - # examples: - # NUMERIC(10, 5) - # TIMESTAMP WITH TIMEZONE - # INTEGER UNSIGNED - # INTEGER (10) UNSIGNED - # INTEGER(10) UNSIGNED - # varchar character set utf8 - # - - tokens: List[str] = re.findall(r"[\w\-_]+|\(.+?\)", definition) - - term_tokens: List[str] = [] - paren_term = None - - for token in tokens: - if re.match(r"^\(.*\)$", token): - paren_term = token - else: - term_tokens.append(token) - - params = Params(term_tokens[0], term_tokens[1:], [], {}) - - if paren_term: - term: str - for term in re.findall("[^(),]+", paren_term): - if "=" in term: - key, val = term.split("=") - params.kwargs[key.strip()] = val.strip() - else: - params.args.append(term.strip()) - - return params - - def _column_types_match( - self, inspector_params: Params, metadata_params: Params - ) -> bool: - if inspector_params.token0 == metadata_params.token0: - return True - - synonyms = [{t.lower() for t in batch} for batch in self.type_synonyms] - inspector_all_terms = " ".join( - [inspector_params.token0] + inspector_params.tokens - ) - metadata_all_terms = " ".join( - [metadata_params.token0] + metadata_params.tokens - ) - - for batch in synonyms: - if {inspector_all_terms, metadata_all_terms}.issubset(batch) or { - inspector_params.token0, - metadata_params.token0, - }.issubset(batch): - return True - return False - - def _column_args_match( - self, inspected_params: Params, meta_params: Params - ) -> bool: - """We want to compare column parameters. However, we only want - to compare parameters that are set. If they both have `collation`, - we want to make sure they are the same. However, if only one - specifies it, dont flag it for being less specific - """ - - if ( - len(meta_params.tokens) == len(inspected_params.tokens) - and meta_params.tokens != inspected_params.tokens - ): - return False - - if ( - len(meta_params.args) == len(inspected_params.args) - and meta_params.args != inspected_params.args - ): - return False - - insp = " ".join(inspected_params.tokens).lower() - meta = " ".join(meta_params.tokens).lower() - - for reg in self.type_arg_extract: - mi = re.search(reg, insp) - mm = re.search(reg, meta) - - if mi and mm and mi.group(1) != mm.group(1): - return False - - return True - - def compare_type( - self, inspector_column: Column[Any], metadata_column: Column - ) -> bool: - """Returns True if there ARE differences between the types of the two - columns. Takes impl.type_synonyms into account between retrospected - and metadata types - """ - inspector_params = self._tokenize_column_type(inspector_column) - metadata_params = self._tokenize_column_type(metadata_column) - - if not self._column_types_match(inspector_params, metadata_params): - return True - if not self._column_args_match(inspector_params, metadata_params): - return True - return False - - def compare_server_default( - self, - inspector_column, - metadata_column, - rendered_metadata_default, - rendered_inspector_default, - ): - return rendered_inspector_default != rendered_metadata_default - - def correct_for_autogen_constraints( - self, - conn_uniques: Set[UniqueConstraint], - conn_indexes: Set[Index], - metadata_unique_constraints: Set[UniqueConstraint], - metadata_indexes: Set[Index], - ) -> None: - pass - - def cast_for_batch_migrate(self, existing, existing_transfer, new_type): - if existing.type._type_affinity is not new_type._type_affinity: - existing_transfer["expr"] = cast( - existing_transfer["expr"], new_type - ) - - def render_ddl_sql_expr( - self, expr: ClauseElement, is_server_default: bool = False, **kw: Any - ) -> str: - """Render a SQL expression that is typically a server default, - index expression, etc. - - """ - - compile_kw = {"literal_binds": True, "include_table": False} - - return str( - expr.compile(dialect=self.dialect, compile_kwargs=compile_kw) - ) - - def _compat_autogen_column_reflect(self, inspector: Inspector) -> Callable: - return self.autogen_column_reflect - - def correct_for_autogen_foreignkeys( - self, - conn_fks: Set[ForeignKeyConstraint], - metadata_fks: Set[ForeignKeyConstraint], - ) -> None: - pass - - def autogen_column_reflect(self, inspector, table, column_info): - """A hook that is attached to the 'column_reflect' event for when - a Table is reflected from the database during the autogenerate - process. - - Dialects can elect to modify the information gathered here. - - """ - - def start_migrations(self) -> None: - """A hook called when :meth:`.EnvironmentContext.run_migrations` - is called. - - Implementations can set up per-migration-run state here. - - """ - - def emit_begin(self) -> None: - """Emit the string ``BEGIN``, or the backend-specific - equivalent, on the current connection context. - - This is used in offline mode and typically - via :meth:`.EnvironmentContext.begin_transaction`. - - """ - self.static_output("BEGIN" + self.command_terminator) - - def emit_commit(self) -> None: - """Emit the string ``COMMIT``, or the backend-specific - equivalent, on the current connection context. - - This is used in offline mode and typically - via :meth:`.EnvironmentContext.begin_transaction`. - - """ - self.static_output("COMMIT" + self.command_terminator) - - def render_type( - self, type_obj: TypeEngine, autogen_context: AutogenContext - ) -> Union[str, Literal[False]]: - return False - - def _compare_identity_default(self, metadata_identity, inspector_identity): - # ignored contains the attributes that were not considered - # because assumed to their default values in the db. - diff, ignored = _compare_identity_options( - metadata_identity, - inspector_identity, - sqla_compat.Identity(), - skip={"always"}, - ) - - meta_always = getattr(metadata_identity, "always", None) - inspector_always = getattr(inspector_identity, "always", None) - # None and False are the same in this comparison - if bool(meta_always) != bool(inspector_always): - diff.add("always") - - diff.difference_update(self.identity_attrs_ignore) - - # returns 3 values: - return ( - # different identity attributes - diff, - # ignored identity attributes - ignored, - # if the two identity should be considered different - bool(diff) or bool(metadata_identity) != bool(inspector_identity), - ) - - def _compare_index_unique( - self, metadata_index: Index, reflected_index: Index - ) -> Optional[str]: - conn_unique = bool(reflected_index.unique) - meta_unique = bool(metadata_index.unique) - if conn_unique != meta_unique: - return f"unique={conn_unique} to unique={meta_unique}" - else: - return None - - def _create_metadata_constraint_sig( - self, constraint: _autogen._C, **opts: Any - ) -> _constraint_sig[_autogen._C]: - return _constraint_sig.from_constraint(True, self, constraint, **opts) - - def _create_reflected_constraint_sig( - self, constraint: _autogen._C, **opts: Any - ) -> _constraint_sig[_autogen._C]: - return _constraint_sig.from_constraint(False, self, constraint, **opts) - - def compare_indexes( - self, - metadata_index: Index, - reflected_index: Index, - ) -> ComparisonResult: - """Compare two indexes by comparing the signature generated by - ``create_index_sig``. - - This method returns a ``ComparisonResult``. - """ - msg: List[str] = [] - unique_msg = self._compare_index_unique( - metadata_index, reflected_index - ) - if unique_msg: - msg.append(unique_msg) - m_sig = self._create_metadata_constraint_sig(metadata_index) - r_sig = self._create_reflected_constraint_sig(reflected_index) - - assert _autogen.is_index_sig(m_sig) - assert _autogen.is_index_sig(r_sig) - - # The assumption is that the index have no expression - for sig in m_sig, r_sig: - if sig.has_expressions: - log.warning( - "Generating approximate signature for index %s. " - "The dialect " - "implementation should either skip expression indexes " - "or provide a custom implementation.", - sig.const, - ) - - if m_sig.column_names != r_sig.column_names: - msg.append( - f"expression {r_sig.column_names} to {m_sig.column_names}" - ) - - if msg: - return ComparisonResult.Different(msg) - else: - return ComparisonResult.Equal() - - def compare_unique_constraint( - self, - metadata_constraint: UniqueConstraint, - reflected_constraint: UniqueConstraint, - ) -> ComparisonResult: - """Compare two unique constraints by comparing the two signatures. - - The arguments are two tuples that contain the unique constraint and - the signatures generated by ``create_unique_constraint_sig``. - - This method returns a ``ComparisonResult``. - """ - metadata_tup = self._create_metadata_constraint_sig( - metadata_constraint - ) - reflected_tup = self._create_reflected_constraint_sig( - reflected_constraint - ) - - meta_sig = metadata_tup.unnamed - conn_sig = reflected_tup.unnamed - if conn_sig != meta_sig: - return ComparisonResult.Different( - f"expression {conn_sig} to {meta_sig}" - ) - else: - return ComparisonResult.Equal() - - def _skip_functional_indexes(self, metadata_indexes, conn_indexes): - conn_indexes_by_name = {c.name: c for c in conn_indexes} - - for idx in list(metadata_indexes): - if idx.name in conn_indexes_by_name: - continue - iex = sqla_compat.is_expression_index(idx) - if iex: - util.warn( - "autogenerate skipping metadata-specified " - "expression-based index " - f"{idx.name!r}; dialect {self.__dialect__!r} under " - f"SQLAlchemy {sqla_compat.sqlalchemy_version} can't " - "reflect these indexes so they can't be compared" - ) - metadata_indexes.discard(idx) - - def adjust_reflected_dialect_options( - self, reflected_object: Dict[str, Any], kind: str - ) -> Dict[str, Any]: - return reflected_object.get("dialect_options", {}) - - -class Params(NamedTuple): - token0: str - tokens: List[str] - args: List[str] - kwargs: Dict[str, str] - - -def _compare_identity_options( - metadata_io: Union[schema.Identity, schema.Sequence, None], - inspector_io: Union[schema.Identity, schema.Sequence, None], - default_io: Union[schema.Identity, schema.Sequence], - skip: Set[str], -): - # this can be used for identity or sequence compare. - # default_io is an instance of IdentityOption with all attributes to the - # default value. - meta_d = sqla_compat._get_identity_options_dict(metadata_io) - insp_d = sqla_compat._get_identity_options_dict(inspector_io) - - diff = set() - ignored_attr = set() - - def check_dicts( - meta_dict: Mapping[str, Any], - insp_dict: Mapping[str, Any], - default_dict: Mapping[str, Any], - attrs: Iterable[str], - ): - for attr in set(attrs).difference(skip): - meta_value = meta_dict.get(attr) - insp_value = insp_dict.get(attr) - if insp_value != meta_value: - default_value = default_dict.get(attr) - if meta_value == default_value: - ignored_attr.add(attr) - else: - diff.add(attr) - - check_dicts( - meta_d, - insp_d, - sqla_compat._get_identity_options_dict(default_io), - set(meta_d).union(insp_d), - ) - if sqla_compat.identity_has_dialect_kwargs: - # use only the dialect kwargs in inspector_io since metadata_io - # can have options for many backends - check_dicts( - getattr(metadata_io, "dialect_kwargs", {}), - getattr(inspector_io, "dialect_kwargs", {}), - default_io.dialect_kwargs, # type: ignore[union-attr] - getattr(inspector_io, "dialect_kwargs", {}), - ) - - return diff, ignored_attr diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/mssql.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/mssql.py deleted file mode 100644 index baa43d5..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/mssql.py +++ /dev/null @@ -1,419 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import re -from typing import Any -from typing import Dict -from typing import List -from typing import Optional -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import types as sqltypes -from sqlalchemy.schema import Column -from sqlalchemy.schema import CreateIndex -from sqlalchemy.sql.base import Executable -from sqlalchemy.sql.elements import ClauseElement - -from .base import AddColumn -from .base import alter_column -from .base import alter_table -from .base import ColumnDefault -from .base import ColumnName -from .base import ColumnNullable -from .base import ColumnType -from .base import format_column_name -from .base import format_server_default -from .base import format_table_name -from .base import format_type -from .base import RenameTable -from .impl import DefaultImpl -from .. import util -from ..util import sqla_compat -from ..util.sqla_compat import compiles - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy.dialects.mssql.base import MSDDLCompiler - from sqlalchemy.dialects.mssql.base import MSSQLCompiler - from sqlalchemy.engine.cursor import CursorResult - from sqlalchemy.sql.schema import Index - from sqlalchemy.sql.schema import Table - from sqlalchemy.sql.selectable import TableClause - from sqlalchemy.sql.type_api import TypeEngine - - from .base import _ServerDefault - - -class MSSQLImpl(DefaultImpl): - __dialect__ = "mssql" - transactional_ddl = True - batch_separator = "GO" - - type_synonyms = DefaultImpl.type_synonyms + ({"VARCHAR", "NVARCHAR"},) - identity_attrs_ignore = DefaultImpl.identity_attrs_ignore + ( - "minvalue", - "maxvalue", - "nominvalue", - "nomaxvalue", - "cycle", - "cache", - ) - - def __init__(self, *arg, **kw) -> None: - super().__init__(*arg, **kw) - self.batch_separator = self.context_opts.get( - "mssql_batch_separator", self.batch_separator - ) - - def _exec(self, construct: Any, *args, **kw) -> Optional[CursorResult]: - result = super()._exec(construct, *args, **kw) - if self.as_sql and self.batch_separator: - self.static_output(self.batch_separator) - return result - - def emit_begin(self) -> None: - self.static_output("BEGIN TRANSACTION" + self.command_terminator) - - def emit_commit(self) -> None: - super().emit_commit() - if self.as_sql and self.batch_separator: - self.static_output(self.batch_separator) - - def alter_column( # type:ignore[override] - self, - table_name: str, - column_name: str, - nullable: Optional[bool] = None, - server_default: Optional[ - Union[_ServerDefault, Literal[False]] - ] = False, - name: Optional[str] = None, - type_: Optional[TypeEngine] = None, - schema: Optional[str] = None, - existing_type: Optional[TypeEngine] = None, - existing_server_default: Optional[_ServerDefault] = None, - existing_nullable: Optional[bool] = None, - **kw: Any, - ) -> None: - if nullable is not None: - if type_ is not None: - # the NULL/NOT NULL alter will handle - # the type alteration - existing_type = type_ - type_ = None - elif existing_type is None: - raise util.CommandError( - "MS-SQL ALTER COLUMN operations " - "with NULL or NOT NULL require the " - "existing_type or a new type_ be passed." - ) - elif existing_nullable is not None and type_ is not None: - nullable = existing_nullable - - # the NULL/NOT NULL alter will handle - # the type alteration - existing_type = type_ - type_ = None - - elif type_ is not None: - util.warn( - "MS-SQL ALTER COLUMN operations that specify type_= " - "should also specify a nullable= or " - "existing_nullable= argument to avoid implicit conversion " - "of NOT NULL columns to NULL." - ) - - used_default = False - if sqla_compat._server_default_is_identity( - server_default, existing_server_default - ) or sqla_compat._server_default_is_computed( - server_default, existing_server_default - ): - used_default = True - kw["server_default"] = server_default - kw["existing_server_default"] = existing_server_default - - super().alter_column( - table_name, - column_name, - nullable=nullable, - type_=type_, - schema=schema, - existing_type=existing_type, - existing_nullable=existing_nullable, - **kw, - ) - - if server_default is not False and used_default is False: - if existing_server_default is not False or server_default is None: - self._exec( - _ExecDropConstraint( - table_name, - column_name, - "sys.default_constraints", - schema, - ) - ) - if server_default is not None: - super().alter_column( - table_name, - column_name, - schema=schema, - server_default=server_default, - ) - - if name is not None: - super().alter_column( - table_name, column_name, schema=schema, name=name - ) - - def create_index(self, index: Index, **kw: Any) -> None: - # this likely defaults to None if not present, so get() - # should normally not return the default value. being - # defensive in any case - mssql_include = index.kwargs.get("mssql_include", None) or () - assert index.table is not None - for col in mssql_include: - if col not in index.table.c: - index.table.append_column(Column(col, sqltypes.NullType)) - self._exec(CreateIndex(index, **kw)) - - def bulk_insert( # type:ignore[override] - self, table: Union[TableClause, Table], rows: List[dict], **kw: Any - ) -> None: - if self.as_sql: - self._exec( - "SET IDENTITY_INSERT %s ON" - % self.dialect.identifier_preparer.format_table(table) - ) - super().bulk_insert(table, rows, **kw) - self._exec( - "SET IDENTITY_INSERT %s OFF" - % self.dialect.identifier_preparer.format_table(table) - ) - else: - super().bulk_insert(table, rows, **kw) - - def drop_column( - self, - table_name: str, - column: Column[Any], - schema: Optional[str] = None, - **kw, - ) -> None: - drop_default = kw.pop("mssql_drop_default", False) - if drop_default: - self._exec( - _ExecDropConstraint( - table_name, column, "sys.default_constraints", schema - ) - ) - drop_check = kw.pop("mssql_drop_check", False) - if drop_check: - self._exec( - _ExecDropConstraint( - table_name, column, "sys.check_constraints", schema - ) - ) - drop_fks = kw.pop("mssql_drop_foreign_key", False) - if drop_fks: - self._exec(_ExecDropFKConstraint(table_name, column, schema)) - super().drop_column(table_name, column, schema=schema, **kw) - - def compare_server_default( - self, - inspector_column, - metadata_column, - rendered_metadata_default, - rendered_inspector_default, - ): - if rendered_metadata_default is not None: - rendered_metadata_default = re.sub( - r"[\(\) \"\']", "", rendered_metadata_default - ) - - if rendered_inspector_default is not None: - # SQL Server collapses whitespace and adds arbitrary parenthesis - # within expressions. our only option is collapse all of it - - rendered_inspector_default = re.sub( - r"[\(\) \"\']", "", rendered_inspector_default - ) - - return rendered_inspector_default != rendered_metadata_default - - def _compare_identity_default(self, metadata_identity, inspector_identity): - diff, ignored, is_alter = super()._compare_identity_default( - metadata_identity, inspector_identity - ) - - if ( - metadata_identity is None - and inspector_identity is not None - and not diff - and inspector_identity.column is not None - and inspector_identity.column.primary_key - ): - # mssql reflect primary keys with autoincrement as identity - # columns. if no different attributes are present ignore them - is_alter = False - - return diff, ignored, is_alter - - def adjust_reflected_dialect_options( - self, reflected_object: Dict[str, Any], kind: str - ) -> Dict[str, Any]: - options: Dict[str, Any] - options = reflected_object.get("dialect_options", {}).copy() - if not options.get("mssql_include"): - options.pop("mssql_include", None) - if not options.get("mssql_clustered"): - options.pop("mssql_clustered", None) - return options - - -class _ExecDropConstraint(Executable, ClauseElement): - inherit_cache = False - - def __init__( - self, - tname: str, - colname: Union[Column[Any], str], - type_: str, - schema: Optional[str], - ) -> None: - self.tname = tname - self.colname = colname - self.type_ = type_ - self.schema = schema - - -class _ExecDropFKConstraint(Executable, ClauseElement): - inherit_cache = False - - def __init__( - self, tname: str, colname: Column[Any], schema: Optional[str] - ) -> None: - self.tname = tname - self.colname = colname - self.schema = schema - - -@compiles(_ExecDropConstraint, "mssql") -def _exec_drop_col_constraint( - element: _ExecDropConstraint, compiler: MSSQLCompiler, **kw -) -> str: - schema, tname, colname, type_ = ( - element.schema, - element.tname, - element.colname, - element.type_, - ) - # from http://www.mssqltips.com/sqlservertip/1425/\ - # working-with-default-constraints-in-sql-server/ - return """declare @const_name varchar(256) -select @const_name = QUOTENAME([name]) from %(type)s -where parent_object_id = object_id('%(schema_dot)s%(tname)s') -and col_name(parent_object_id, parent_column_id) = '%(colname)s' -exec('alter table %(tname_quoted)s drop constraint ' + @const_name)""" % { - "type": type_, - "tname": tname, - "colname": colname, - "tname_quoted": format_table_name(compiler, tname, schema), - "schema_dot": schema + "." if schema else "", - } - - -@compiles(_ExecDropFKConstraint, "mssql") -def _exec_drop_col_fk_constraint( - element: _ExecDropFKConstraint, compiler: MSSQLCompiler, **kw -) -> str: - schema, tname, colname = element.schema, element.tname, element.colname - - return """declare @const_name varchar(256) -select @const_name = QUOTENAME([name]) from -sys.foreign_keys fk join sys.foreign_key_columns fkc -on fk.object_id=fkc.constraint_object_id -where fkc.parent_object_id = object_id('%(schema_dot)s%(tname)s') -and col_name(fkc.parent_object_id, fkc.parent_column_id) = '%(colname)s' -exec('alter table %(tname_quoted)s drop constraint ' + @const_name)""" % { - "tname": tname, - "colname": colname, - "tname_quoted": format_table_name(compiler, tname, schema), - "schema_dot": schema + "." if schema else "", - } - - -@compiles(AddColumn, "mssql") -def visit_add_column(element: AddColumn, compiler: MSDDLCompiler, **kw) -> str: - return "%s %s" % ( - alter_table(compiler, element.table_name, element.schema), - mssql_add_column(compiler, element.column, **kw), - ) - - -def mssql_add_column( - compiler: MSDDLCompiler, column: Column[Any], **kw -) -> str: - return "ADD %s" % compiler.get_column_specification(column, **kw) - - -@compiles(ColumnNullable, "mssql") -def visit_column_nullable( - element: ColumnNullable, compiler: MSDDLCompiler, **kw -) -> str: - return "%s %s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - format_type(compiler, element.existing_type), # type: ignore[arg-type] - "NULL" if element.nullable else "NOT NULL", - ) - - -@compiles(ColumnDefault, "mssql") -def visit_column_default( - element: ColumnDefault, compiler: MSDDLCompiler, **kw -) -> str: - # TODO: there can also be a named constraint - # with ADD CONSTRAINT here - return "%s ADD DEFAULT %s FOR %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_server_default(compiler, element.default), - format_column_name(compiler, element.column_name), - ) - - -@compiles(ColumnName, "mssql") -def visit_rename_column( - element: ColumnName, compiler: MSDDLCompiler, **kw -) -> str: - return "EXEC sp_rename '%s.%s', %s, 'COLUMN'" % ( - format_table_name(compiler, element.table_name, element.schema), - format_column_name(compiler, element.column_name), - format_column_name(compiler, element.newname), - ) - - -@compiles(ColumnType, "mssql") -def visit_column_type( - element: ColumnType, compiler: MSDDLCompiler, **kw -) -> str: - return "%s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - format_type(compiler, element.type_), - ) - - -@compiles(RenameTable, "mssql") -def visit_rename_table( - element: RenameTable, compiler: MSDDLCompiler, **kw -) -> str: - return "EXEC sp_rename '%s', %s" % ( - format_table_name(compiler, element.table_name, element.schema), - format_table_name(compiler, element.new_table_name, None), - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/mysql.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/mysql.py deleted file mode 100644 index 3482f67..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/mysql.py +++ /dev/null @@ -1,492 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import re -from typing import Any -from typing import Optional -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import schema -from sqlalchemy import types as sqltypes - -from .base import alter_table -from .base import AlterColumn -from .base import ColumnDefault -from .base import ColumnName -from .base import ColumnNullable -from .base import ColumnType -from .base import format_column_name -from .base import format_server_default -from .impl import DefaultImpl -from .. import util -from ..util import sqla_compat -from ..util.sqla_compat import _is_mariadb -from ..util.sqla_compat import _is_type_bound -from ..util.sqla_compat import compiles - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy.dialects.mysql.base import MySQLDDLCompiler - from sqlalchemy.sql.ddl import DropConstraint - from sqlalchemy.sql.schema import Constraint - from sqlalchemy.sql.type_api import TypeEngine - - from .base import _ServerDefault - - -class MySQLImpl(DefaultImpl): - __dialect__ = "mysql" - - transactional_ddl = False - type_synonyms = DefaultImpl.type_synonyms + ( - {"BOOL", "TINYINT"}, - {"JSON", "LONGTEXT"}, - ) - type_arg_extract = [r"character set ([\w\-_]+)", r"collate ([\w\-_]+)"] - - def alter_column( # type:ignore[override] - self, - table_name: str, - column_name: str, - nullable: Optional[bool] = None, - server_default: Union[_ServerDefault, Literal[False]] = False, - name: Optional[str] = None, - type_: Optional[TypeEngine] = None, - schema: Optional[str] = None, - existing_type: Optional[TypeEngine] = None, - existing_server_default: Optional[_ServerDefault] = None, - existing_nullable: Optional[bool] = None, - autoincrement: Optional[bool] = None, - existing_autoincrement: Optional[bool] = None, - comment: Optional[Union[str, Literal[False]]] = False, - existing_comment: Optional[str] = None, - **kw: Any, - ) -> None: - if sqla_compat._server_default_is_identity( - server_default, existing_server_default - ) or sqla_compat._server_default_is_computed( - server_default, existing_server_default - ): - # modifying computed or identity columns is not supported - # the default will raise - super().alter_column( - table_name, - column_name, - nullable=nullable, - type_=type_, - schema=schema, - existing_type=existing_type, - existing_nullable=existing_nullable, - server_default=server_default, - existing_server_default=existing_server_default, - **kw, - ) - if name is not None or self._is_mysql_allowed_functional_default( - type_ if type_ is not None else existing_type, server_default - ): - self._exec( - MySQLChangeColumn( - table_name, - column_name, - schema=schema, - newname=name if name is not None else column_name, - nullable=( - nullable - if nullable is not None - else ( - existing_nullable - if existing_nullable is not None - else True - ) - ), - type_=type_ if type_ is not None else existing_type, - default=( - server_default - if server_default is not False - else existing_server_default - ), - autoincrement=( - autoincrement - if autoincrement is not None - else existing_autoincrement - ), - comment=( - comment if comment is not False else existing_comment - ), - ) - ) - elif ( - nullable is not None - or type_ is not None - or autoincrement is not None - or comment is not False - ): - self._exec( - MySQLModifyColumn( - table_name, - column_name, - schema=schema, - newname=name if name is not None else column_name, - nullable=( - nullable - if nullable is not None - else ( - existing_nullable - if existing_nullable is not None - else True - ) - ), - type_=type_ if type_ is not None else existing_type, - default=( - server_default - if server_default is not False - else existing_server_default - ), - autoincrement=( - autoincrement - if autoincrement is not None - else existing_autoincrement - ), - comment=( - comment if comment is not False else existing_comment - ), - ) - ) - elif server_default is not False: - self._exec( - MySQLAlterDefault( - table_name, column_name, server_default, schema=schema - ) - ) - - def drop_constraint( - self, - const: Constraint, - ) -> None: - if isinstance(const, schema.CheckConstraint) and _is_type_bound(const): - return - - super().drop_constraint(const) - - def _is_mysql_allowed_functional_default( - self, - type_: Optional[TypeEngine], - server_default: Union[_ServerDefault, Literal[False]], - ) -> bool: - return ( - type_ is not None - and type_._type_affinity is sqltypes.DateTime - and server_default is not None - ) - - def compare_server_default( - self, - inspector_column, - metadata_column, - rendered_metadata_default, - rendered_inspector_default, - ): - # partially a workaround for SQLAlchemy issue #3023; if the - # column were created without "NOT NULL", MySQL may have added - # an implicit default of '0' which we need to skip - # TODO: this is not really covered anymore ? - if ( - metadata_column.type._type_affinity is sqltypes.Integer - and inspector_column.primary_key - and not inspector_column.autoincrement - and not rendered_metadata_default - and rendered_inspector_default == "'0'" - ): - return False - elif ( - rendered_inspector_default - and inspector_column.type._type_affinity is sqltypes.Integer - ): - rendered_inspector_default = ( - re.sub(r"^'|'$", "", rendered_inspector_default) - if rendered_inspector_default is not None - else None - ) - return rendered_inspector_default != rendered_metadata_default - elif ( - rendered_metadata_default - and metadata_column.type._type_affinity is sqltypes.String - ): - metadata_default = re.sub(r"^'|'$", "", rendered_metadata_default) - return rendered_inspector_default != f"'{metadata_default}'" - elif rendered_inspector_default and rendered_metadata_default: - # adjust for "function()" vs. "FUNCTION" as can occur particularly - # for the CURRENT_TIMESTAMP function on newer MariaDB versions - - # SQLAlchemy MySQL dialect bundles ON UPDATE into the server - # default; adjust for this possibly being present. - onupdate_ins = re.match( - r"(.*) (on update.*?)(?:\(\))?$", - rendered_inspector_default.lower(), - ) - onupdate_met = re.match( - r"(.*) (on update.*?)(?:\(\))?$", - rendered_metadata_default.lower(), - ) - - if onupdate_ins: - if not onupdate_met: - return True - elif onupdate_ins.group(2) != onupdate_met.group(2): - return True - - rendered_inspector_default = onupdate_ins.group(1) - rendered_metadata_default = onupdate_met.group(1) - - return re.sub( - r"(.*?)(?:\(\))?$", r"\1", rendered_inspector_default.lower() - ) != re.sub( - r"(.*?)(?:\(\))?$", r"\1", rendered_metadata_default.lower() - ) - else: - return rendered_inspector_default != rendered_metadata_default - - def correct_for_autogen_constraints( - self, - conn_unique_constraints, - conn_indexes, - metadata_unique_constraints, - metadata_indexes, - ): - # TODO: if SQLA 1.0, make use of "duplicates_index" - # metadata - removed = set() - for idx in list(conn_indexes): - if idx.unique: - continue - # MySQL puts implicit indexes on FK columns, even if - # composite and even if MyISAM, so can't check this too easily. - # the name of the index may be the column name or it may - # be the name of the FK constraint. - for col in idx.columns: - if idx.name == col.name: - conn_indexes.remove(idx) - removed.add(idx.name) - break - for fk in col.foreign_keys: - if fk.name == idx.name: - conn_indexes.remove(idx) - removed.add(idx.name) - break - if idx.name in removed: - break - - # then remove indexes from the "metadata_indexes" - # that we've removed from reflected, otherwise they come out - # as adds (see #202) - for idx in list(metadata_indexes): - if idx.name in removed: - metadata_indexes.remove(idx) - - def correct_for_autogen_foreignkeys(self, conn_fks, metadata_fks): - conn_fk_by_sig = { - self._create_reflected_constraint_sig(fk).unnamed_no_options: fk - for fk in conn_fks - } - metadata_fk_by_sig = { - self._create_metadata_constraint_sig(fk).unnamed_no_options: fk - for fk in metadata_fks - } - - for sig in set(conn_fk_by_sig).intersection(metadata_fk_by_sig): - mdfk = metadata_fk_by_sig[sig] - cnfk = conn_fk_by_sig[sig] - # MySQL considers RESTRICT to be the default and doesn't - # report on it. if the model has explicit RESTRICT and - # the conn FK has None, set it to RESTRICT - if ( - mdfk.ondelete is not None - and mdfk.ondelete.lower() == "restrict" - and cnfk.ondelete is None - ): - cnfk.ondelete = "RESTRICT" - if ( - mdfk.onupdate is not None - and mdfk.onupdate.lower() == "restrict" - and cnfk.onupdate is None - ): - cnfk.onupdate = "RESTRICT" - - -class MariaDBImpl(MySQLImpl): - __dialect__ = "mariadb" - - -class MySQLAlterDefault(AlterColumn): - def __init__( - self, - name: str, - column_name: str, - default: _ServerDefault, - schema: Optional[str] = None, - ) -> None: - super(AlterColumn, self).__init__(name, schema=schema) - self.column_name = column_name - self.default = default - - -class MySQLChangeColumn(AlterColumn): - def __init__( - self, - name: str, - column_name: str, - schema: Optional[str] = None, - newname: Optional[str] = None, - type_: Optional[TypeEngine] = None, - nullable: Optional[bool] = None, - default: Optional[Union[_ServerDefault, Literal[False]]] = False, - autoincrement: Optional[bool] = None, - comment: Optional[Union[str, Literal[False]]] = False, - ) -> None: - super(AlterColumn, self).__init__(name, schema=schema) - self.column_name = column_name - self.nullable = nullable - self.newname = newname - self.default = default - self.autoincrement = autoincrement - self.comment = comment - if type_ is None: - raise util.CommandError( - "All MySQL CHANGE/MODIFY COLUMN operations " - "require the existing type." - ) - - self.type_ = sqltypes.to_instance(type_) - - -class MySQLModifyColumn(MySQLChangeColumn): - pass - - -@compiles(ColumnNullable, "mysql", "mariadb") -@compiles(ColumnName, "mysql", "mariadb") -@compiles(ColumnDefault, "mysql", "mariadb") -@compiles(ColumnType, "mysql", "mariadb") -def _mysql_doesnt_support_individual(element, compiler, **kw): - raise NotImplementedError( - "Individual alter column constructs not supported by MySQL" - ) - - -@compiles(MySQLAlterDefault, "mysql", "mariadb") -def _mysql_alter_default( - element: MySQLAlterDefault, compiler: MySQLDDLCompiler, **kw -) -> str: - return "%s ALTER COLUMN %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_column_name(compiler, element.column_name), - ( - "SET DEFAULT %s" % format_server_default(compiler, element.default) - if element.default is not None - else "DROP DEFAULT" - ), - ) - - -@compiles(MySQLModifyColumn, "mysql", "mariadb") -def _mysql_modify_column( - element: MySQLModifyColumn, compiler: MySQLDDLCompiler, **kw -) -> str: - return "%s MODIFY %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_column_name(compiler, element.column_name), - _mysql_colspec( - compiler, - nullable=element.nullable, - server_default=element.default, - type_=element.type_, - autoincrement=element.autoincrement, - comment=element.comment, - ), - ) - - -@compiles(MySQLChangeColumn, "mysql", "mariadb") -def _mysql_change_column( - element: MySQLChangeColumn, compiler: MySQLDDLCompiler, **kw -) -> str: - return "%s CHANGE %s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_column_name(compiler, element.column_name), - format_column_name(compiler, element.newname), - _mysql_colspec( - compiler, - nullable=element.nullable, - server_default=element.default, - type_=element.type_, - autoincrement=element.autoincrement, - comment=element.comment, - ), - ) - - -def _mysql_colspec( - compiler: MySQLDDLCompiler, - nullable: Optional[bool], - server_default: Optional[Union[_ServerDefault, Literal[False]]], - type_: TypeEngine, - autoincrement: Optional[bool], - comment: Optional[Union[str, Literal[False]]], -) -> str: - spec = "%s %s" % ( - compiler.dialect.type_compiler.process(type_), - "NULL" if nullable else "NOT NULL", - ) - if autoincrement: - spec += " AUTO_INCREMENT" - if server_default is not False and server_default is not None: - spec += " DEFAULT %s" % format_server_default(compiler, server_default) - if comment: - spec += " COMMENT %s" % compiler.sql_compiler.render_literal_value( - comment, sqltypes.String() - ) - - return spec - - -@compiles(schema.DropConstraint, "mysql", "mariadb") -def _mysql_drop_constraint( - element: DropConstraint, compiler: MySQLDDLCompiler, **kw -) -> str: - """Redefine SQLAlchemy's drop constraint to - raise errors for invalid constraint type.""" - - constraint = element.element - if isinstance( - constraint, - ( - schema.ForeignKeyConstraint, - schema.PrimaryKeyConstraint, - schema.UniqueConstraint, - ), - ): - assert not kw - return compiler.visit_drop_constraint(element) - elif isinstance(constraint, schema.CheckConstraint): - # note that SQLAlchemy as of 1.2 does not yet support - # DROP CONSTRAINT for MySQL/MariaDB, so we implement fully - # here. - if _is_mariadb(compiler.dialect): - return "ALTER TABLE %s DROP CONSTRAINT %s" % ( - compiler.preparer.format_table(constraint.table), - compiler.preparer.format_constraint(constraint), - ) - else: - return "ALTER TABLE %s DROP CHECK %s" % ( - compiler.preparer.format_table(constraint.table), - compiler.preparer.format_constraint(constraint), - ) - else: - raise NotImplementedError( - "No generic 'DROP CONSTRAINT' in MySQL - " - "please specify constraint type" - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/oracle.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/oracle.py deleted file mode 100644 index eac9912..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/oracle.py +++ /dev/null @@ -1,202 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import re -from typing import Any -from typing import Optional -from typing import TYPE_CHECKING - -from sqlalchemy.sql import sqltypes - -from .base import AddColumn -from .base import alter_table -from .base import ColumnComment -from .base import ColumnDefault -from .base import ColumnName -from .base import ColumnNullable -from .base import ColumnType -from .base import format_column_name -from .base import format_server_default -from .base import format_table_name -from .base import format_type -from .base import IdentityColumnDefault -from .base import RenameTable -from .impl import DefaultImpl -from ..util.sqla_compat import compiles - -if TYPE_CHECKING: - from sqlalchemy.dialects.oracle.base import OracleDDLCompiler - from sqlalchemy.engine.cursor import CursorResult - from sqlalchemy.sql.schema import Column - - -class OracleImpl(DefaultImpl): - __dialect__ = "oracle" - transactional_ddl = False - batch_separator = "/" - command_terminator = "" - type_synonyms = DefaultImpl.type_synonyms + ( - {"VARCHAR", "VARCHAR2"}, - {"BIGINT", "INTEGER", "SMALLINT", "DECIMAL", "NUMERIC", "NUMBER"}, - {"DOUBLE", "FLOAT", "DOUBLE_PRECISION"}, - ) - identity_attrs_ignore = () - - def __init__(self, *arg, **kw) -> None: - super().__init__(*arg, **kw) - self.batch_separator = self.context_opts.get( - "oracle_batch_separator", self.batch_separator - ) - - def _exec(self, construct: Any, *args, **kw) -> Optional[CursorResult]: - result = super()._exec(construct, *args, **kw) - if self.as_sql and self.batch_separator: - self.static_output(self.batch_separator) - return result - - def compare_server_default( - self, - inspector_column, - metadata_column, - rendered_metadata_default, - rendered_inspector_default, - ): - if rendered_metadata_default is not None: - rendered_metadata_default = re.sub( - r"^\((.+)\)$", r"\1", rendered_metadata_default - ) - - rendered_metadata_default = re.sub( - r"^\"?'(.+)'\"?$", r"\1", rendered_metadata_default - ) - - if rendered_inspector_default is not None: - rendered_inspector_default = re.sub( - r"^\((.+)\)$", r"\1", rendered_inspector_default - ) - - rendered_inspector_default = re.sub( - r"^\"?'(.+)'\"?$", r"\1", rendered_inspector_default - ) - - rendered_inspector_default = rendered_inspector_default.strip() - return rendered_inspector_default != rendered_metadata_default - - def emit_begin(self) -> None: - self._exec("SET TRANSACTION READ WRITE") - - def emit_commit(self) -> None: - self._exec("COMMIT") - - -@compiles(AddColumn, "oracle") -def visit_add_column( - element: AddColumn, compiler: OracleDDLCompiler, **kw -) -> str: - return "%s %s" % ( - alter_table(compiler, element.table_name, element.schema), - add_column(compiler, element.column, **kw), - ) - - -@compiles(ColumnNullable, "oracle") -def visit_column_nullable( - element: ColumnNullable, compiler: OracleDDLCompiler, **kw -) -> str: - return "%s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - "NULL" if element.nullable else "NOT NULL", - ) - - -@compiles(ColumnType, "oracle") -def visit_column_type( - element: ColumnType, compiler: OracleDDLCompiler, **kw -) -> str: - return "%s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - "%s" % format_type(compiler, element.type_), - ) - - -@compiles(ColumnName, "oracle") -def visit_column_name( - element: ColumnName, compiler: OracleDDLCompiler, **kw -) -> str: - return "%s RENAME COLUMN %s TO %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_column_name(compiler, element.column_name), - format_column_name(compiler, element.newname), - ) - - -@compiles(ColumnDefault, "oracle") -def visit_column_default( - element: ColumnDefault, compiler: OracleDDLCompiler, **kw -) -> str: - return "%s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - ( - "DEFAULT %s" % format_server_default(compiler, element.default) - if element.default is not None - else "DEFAULT NULL" - ), - ) - - -@compiles(ColumnComment, "oracle") -def visit_column_comment( - element: ColumnComment, compiler: OracleDDLCompiler, **kw -) -> str: - ddl = "COMMENT ON COLUMN {table_name}.{column_name} IS {comment}" - - comment = compiler.sql_compiler.render_literal_value( - (element.comment if element.comment is not None else ""), - sqltypes.String(), - ) - - return ddl.format( - table_name=element.table_name, - column_name=element.column_name, - comment=comment, - ) - - -@compiles(RenameTable, "oracle") -def visit_rename_table( - element: RenameTable, compiler: OracleDDLCompiler, **kw -) -> str: - return "%s RENAME TO %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_table_name(compiler, element.new_table_name, None), - ) - - -def alter_column(compiler: OracleDDLCompiler, name: str) -> str: - return "MODIFY %s" % format_column_name(compiler, name) - - -def add_column(compiler: OracleDDLCompiler, column: Column[Any], **kw) -> str: - return "ADD %s" % compiler.get_column_specification(column, **kw) - - -@compiles(IdentityColumnDefault, "oracle") -def visit_identity_column( - element: IdentityColumnDefault, compiler: OracleDDLCompiler, **kw -): - text = "%s %s " % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - ) - if element.default is None: - # drop identity - text += "DROP IDENTITY" - return text - else: - text += compiler.visit_identity_column(element.default) - return text diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/postgresql.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/postgresql.py deleted file mode 100644 index de64a4e..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/postgresql.py +++ /dev/null @@ -1,849 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import logging -import re -from typing import Any -from typing import cast -from typing import Dict -from typing import List -from typing import Optional -from typing import Sequence -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import Column -from sqlalchemy import literal_column -from sqlalchemy import Numeric -from sqlalchemy import text -from sqlalchemy import types as sqltypes -from sqlalchemy.dialects.postgresql import BIGINT -from sqlalchemy.dialects.postgresql import ExcludeConstraint -from sqlalchemy.dialects.postgresql import INTEGER -from sqlalchemy.schema import CreateIndex -from sqlalchemy.sql.elements import ColumnClause -from sqlalchemy.sql.elements import TextClause -from sqlalchemy.sql.functions import FunctionElement -from sqlalchemy.types import NULLTYPE - -from .base import alter_column -from .base import alter_table -from .base import AlterColumn -from .base import ColumnComment -from .base import format_column_name -from .base import format_table_name -from .base import format_type -from .base import IdentityColumnDefault -from .base import RenameTable -from .impl import ComparisonResult -from .impl import DefaultImpl -from .. import util -from ..autogenerate import render -from ..operations import ops -from ..operations import schemaobj -from ..operations.base import BatchOperations -from ..operations.base import Operations -from ..util import sqla_compat -from ..util.sqla_compat import compiles - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy import Index - from sqlalchemy import UniqueConstraint - from sqlalchemy.dialects.postgresql.array import ARRAY - from sqlalchemy.dialects.postgresql.base import PGDDLCompiler - from sqlalchemy.dialects.postgresql.hstore import HSTORE - from sqlalchemy.dialects.postgresql.json import JSON - from sqlalchemy.dialects.postgresql.json import JSONB - from sqlalchemy.sql.elements import ClauseElement - from sqlalchemy.sql.elements import ColumnElement - from sqlalchemy.sql.elements import quoted_name - from sqlalchemy.sql.schema import MetaData - from sqlalchemy.sql.schema import Table - from sqlalchemy.sql.type_api import TypeEngine - - from .base import _ServerDefault - from ..autogenerate.api import AutogenContext - from ..autogenerate.render import _f_name - from ..runtime.migration import MigrationContext - - -log = logging.getLogger(__name__) - - -class PostgresqlImpl(DefaultImpl): - __dialect__ = "postgresql" - transactional_ddl = True - type_synonyms = DefaultImpl.type_synonyms + ( - {"FLOAT", "DOUBLE PRECISION"}, - ) - - def create_index(self, index: Index, **kw: Any) -> None: - # this likely defaults to None if not present, so get() - # should normally not return the default value. being - # defensive in any case - postgresql_include = index.kwargs.get("postgresql_include", None) or () - for col in postgresql_include: - if col not in index.table.c: # type: ignore[union-attr] - index.table.append_column( # type: ignore[union-attr] - Column(col, sqltypes.NullType) - ) - self._exec(CreateIndex(index, **kw)) - - def prep_table_for_batch(self, batch_impl, table): - for constraint in table.constraints: - if ( - constraint.name is not None - and constraint.name in batch_impl.named_constraints - ): - self.drop_constraint(constraint) - - def compare_server_default( - self, - inspector_column, - metadata_column, - rendered_metadata_default, - rendered_inspector_default, - ): - # don't do defaults for SERIAL columns - if ( - metadata_column.primary_key - and metadata_column is metadata_column.table._autoincrement_column - ): - return False - - conn_col_default = rendered_inspector_default - - defaults_equal = conn_col_default == rendered_metadata_default - if defaults_equal: - return False - - if None in ( - conn_col_default, - rendered_metadata_default, - metadata_column.server_default, - ): - return not defaults_equal - - metadata_default = metadata_column.server_default.arg - - if isinstance(metadata_default, str): - if not isinstance(inspector_column.type, Numeric): - metadata_default = re.sub(r"^'|'$", "", metadata_default) - metadata_default = f"'{metadata_default}'" - - metadata_default = literal_column(metadata_default) - - # run a real compare against the server - conn = self.connection - assert conn is not None - return not conn.scalar( - sqla_compat._select( - literal_column(conn_col_default) == metadata_default - ) - ) - - def alter_column( # type:ignore[override] - self, - table_name: str, - column_name: str, - nullable: Optional[bool] = None, - server_default: Union[_ServerDefault, Literal[False]] = False, - name: Optional[str] = None, - type_: Optional[TypeEngine] = None, - schema: Optional[str] = None, - autoincrement: Optional[bool] = None, - existing_type: Optional[TypeEngine] = None, - existing_server_default: Optional[_ServerDefault] = None, - existing_nullable: Optional[bool] = None, - existing_autoincrement: Optional[bool] = None, - **kw: Any, - ) -> None: - using = kw.pop("postgresql_using", None) - - if using is not None and type_ is None: - raise util.CommandError( - "postgresql_using must be used with the type_ parameter" - ) - - if type_ is not None: - self._exec( - PostgresqlColumnType( - table_name, - column_name, - type_, - schema=schema, - using=using, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - ) - ) - - super().alter_column( - table_name, - column_name, - nullable=nullable, - server_default=server_default, - name=name, - schema=schema, - autoincrement=autoincrement, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - existing_autoincrement=existing_autoincrement, - **kw, - ) - - def autogen_column_reflect(self, inspector, table, column_info): - if column_info.get("default") and isinstance( - column_info["type"], (INTEGER, BIGINT) - ): - seq_match = re.match( - r"nextval\('(.+?)'::regclass\)", column_info["default"] - ) - if seq_match: - info = sqla_compat._exec_on_inspector( - inspector, - text( - "select c.relname, a.attname " - "from pg_class as c join " - "pg_depend d on d.objid=c.oid and " - "d.classid='pg_class'::regclass and " - "d.refclassid='pg_class'::regclass " - "join pg_class t on t.oid=d.refobjid " - "join pg_attribute a on a.attrelid=t.oid and " - "a.attnum=d.refobjsubid " - "where c.relkind='S' and " - "c.oid=cast(:seqname as regclass)" - ), - seqname=seq_match.group(1), - ).first() - if info: - seqname, colname = info - if colname == column_info["name"]: - log.info( - "Detected sequence named '%s' as " - "owned by integer column '%s(%s)', " - "assuming SERIAL and omitting", - seqname, - table.name, - colname, - ) - # sequence, and the owner is this column, - # its a SERIAL - whack it! - del column_info["default"] - - def correct_for_autogen_constraints( - self, - conn_unique_constraints, - conn_indexes, - metadata_unique_constraints, - metadata_indexes, - ): - doubled_constraints = { - index - for index in conn_indexes - if index.info.get("duplicates_constraint") - } - - for ix in doubled_constraints: - conn_indexes.remove(ix) - - if not sqla_compat.sqla_2: - self._skip_functional_indexes(metadata_indexes, conn_indexes) - - # pg behavior regarding modifiers - # | # | compiled sql | returned sql | regexp. group is removed | - # | - | ---------------- | -----------------| ------------------------ | - # | 1 | nulls first | nulls first | - | - # | 2 | nulls last | | (? str: - expr = expr.lower().replace('"', "").replace("'", "") - if index.table is not None: - # should not be needed, since include_table=False is in compile - expr = expr.replace(f"{index.table.name.lower()}.", "") - - if "::" in expr: - # strip :: cast. types can have spaces in them - expr = re.sub(r"(::[\w ]+\w)", "", expr) - - while expr and expr[0] == "(" and expr[-1] == ")": - expr = expr[1:-1] - - # NOTE: when parsing the connection expression this cleanup could - # be skipped - for rs in self._default_modifiers_re: - if match := rs.search(expr): - start, end = match.span(1) - expr = expr[:start] + expr[end:] - break - - while expr and expr[0] == "(" and expr[-1] == ")": - expr = expr[1:-1] - - # strip casts - cast_re = re.compile(r"cast\s*\(") - if cast_re.match(expr): - expr = cast_re.sub("", expr) - # remove the as type - expr = re.sub(r"as\s+[^)]+\)", "", expr) - # remove spaces - expr = expr.replace(" ", "") - return expr - - def _dialect_options( - self, item: Union[Index, UniqueConstraint] - ) -> Tuple[Any, ...]: - # only the positive case is returned by sqlalchemy reflection so - # None and False are threated the same - if item.dialect_kwargs.get("postgresql_nulls_not_distinct"): - return ("nulls_not_distinct",) - return () - - def compare_indexes( - self, - metadata_index: Index, - reflected_index: Index, - ) -> ComparisonResult: - msg = [] - unique_msg = self._compare_index_unique( - metadata_index, reflected_index - ) - if unique_msg: - msg.append(unique_msg) - m_exprs = metadata_index.expressions - r_exprs = reflected_index.expressions - if len(m_exprs) != len(r_exprs): - msg.append(f"expression number {len(r_exprs)} to {len(m_exprs)}") - if msg: - # no point going further, return early - return ComparisonResult.Different(msg) - skip = [] - for pos, (m_e, r_e) in enumerate(zip(m_exprs, r_exprs), 1): - m_compile = self._compile_element(m_e) - m_text = self._cleanup_index_expr(metadata_index, m_compile) - # print(f"META ORIG: {m_compile!r} CLEANUP: {m_text!r}") - r_compile = self._compile_element(r_e) - r_text = self._cleanup_index_expr(metadata_index, r_compile) - # print(f"CONN ORIG: {r_compile!r} CLEANUP: {r_text!r}") - if m_text == r_text: - continue # expressions these are equal - elif m_compile.strip().endswith("_ops") and ( - " " in m_compile or ")" in m_compile # is an expression - ): - skip.append( - f"expression #{pos} {m_compile!r} detected " - "as including operator clause." - ) - util.warn( - f"Expression #{pos} {m_compile!r} in index " - f"{reflected_index.name!r} detected to include " - "an operator clause. Expression compare cannot proceed. " - "Please move the operator clause to the " - "``postgresql_ops`` dict to enable proper compare " - "of the index expressions: " - "https://docs.sqlalchemy.org/en/latest/dialects/postgresql.html#operator-classes", # noqa: E501 - ) - else: - msg.append(f"expression #{pos} {r_compile!r} to {m_compile!r}") - - m_options = self._dialect_options(metadata_index) - r_options = self._dialect_options(reflected_index) - if m_options != r_options: - msg.extend(f"options {r_options} to {m_options}") - - if msg: - return ComparisonResult.Different(msg) - elif skip: - # if there are other changes detected don't skip the index - return ComparisonResult.Skip(skip) - else: - return ComparisonResult.Equal() - - def compare_unique_constraint( - self, - metadata_constraint: UniqueConstraint, - reflected_constraint: UniqueConstraint, - ) -> ComparisonResult: - metadata_tup = self._create_metadata_constraint_sig( - metadata_constraint - ) - reflected_tup = self._create_reflected_constraint_sig( - reflected_constraint - ) - - meta_sig = metadata_tup.unnamed - conn_sig = reflected_tup.unnamed - if conn_sig != meta_sig: - return ComparisonResult.Different( - f"expression {conn_sig} to {meta_sig}" - ) - - metadata_do = self._dialect_options(metadata_tup.const) - conn_do = self._dialect_options(reflected_tup.const) - if metadata_do != conn_do: - return ComparisonResult.Different( - f"expression {conn_do} to {metadata_do}" - ) - - return ComparisonResult.Equal() - - def adjust_reflected_dialect_options( - self, reflected_options: Dict[str, Any], kind: str - ) -> Dict[str, Any]: - options: Dict[str, Any] - options = reflected_options.get("dialect_options", {}).copy() - if not options.get("postgresql_include"): - options.pop("postgresql_include", None) - return options - - def _compile_element(self, element: Union[ClauseElement, str]) -> str: - if isinstance(element, str): - return element - return element.compile( - dialect=self.dialect, - compile_kwargs={"literal_binds": True, "include_table": False}, - ).string - - def render_ddl_sql_expr( - self, - expr: ClauseElement, - is_server_default: bool = False, - is_index: bool = False, - **kw: Any, - ) -> str: - """Render a SQL expression that is typically a server default, - index expression, etc. - - """ - - # apply self_group to index expressions; - # see https://github.com/sqlalchemy/sqlalchemy/blob/ - # 82fa95cfce070fab401d020c6e6e4a6a96cc2578/ - # lib/sqlalchemy/dialects/postgresql/base.py#L2261 - if is_index and not isinstance(expr, ColumnClause): - expr = expr.self_group() - - return super().render_ddl_sql_expr( - expr, is_server_default=is_server_default, is_index=is_index, **kw - ) - - def render_type( - self, type_: TypeEngine, autogen_context: AutogenContext - ) -> Union[str, Literal[False]]: - mod = type(type_).__module__ - if not mod.startswith("sqlalchemy.dialects.postgresql"): - return False - - if hasattr(self, "_render_%s_type" % type_.__visit_name__): - meth = getattr(self, "_render_%s_type" % type_.__visit_name__) - return meth(type_, autogen_context) - - return False - - def _render_HSTORE_type( - self, type_: HSTORE, autogen_context: AutogenContext - ) -> str: - return cast( - str, - render._render_type_w_subtype( - type_, autogen_context, "text_type", r"(.+?\(.*text_type=)" - ), - ) - - def _render_ARRAY_type( - self, type_: ARRAY, autogen_context: AutogenContext - ) -> str: - return cast( - str, - render._render_type_w_subtype( - type_, autogen_context, "item_type", r"(.+?\()" - ), - ) - - def _render_JSON_type( - self, type_: JSON, autogen_context: AutogenContext - ) -> str: - return cast( - str, - render._render_type_w_subtype( - type_, autogen_context, "astext_type", r"(.+?\(.*astext_type=)" - ), - ) - - def _render_JSONB_type( - self, type_: JSONB, autogen_context: AutogenContext - ) -> str: - return cast( - str, - render._render_type_w_subtype( - type_, autogen_context, "astext_type", r"(.+?\(.*astext_type=)" - ), - ) - - -class PostgresqlColumnType(AlterColumn): - def __init__( - self, name: str, column_name: str, type_: TypeEngine, **kw - ) -> None: - using = kw.pop("using", None) - super().__init__(name, column_name, **kw) - self.type_ = sqltypes.to_instance(type_) - self.using = using - - -@compiles(RenameTable, "postgresql") -def visit_rename_table( - element: RenameTable, compiler: PGDDLCompiler, **kw -) -> str: - return "%s RENAME TO %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_table_name(compiler, element.new_table_name, None), - ) - - -@compiles(PostgresqlColumnType, "postgresql") -def visit_column_type( - element: PostgresqlColumnType, compiler: PGDDLCompiler, **kw -) -> str: - return "%s %s %s %s" % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - "TYPE %s" % format_type(compiler, element.type_), - "USING %s" % element.using if element.using else "", - ) - - -@compiles(ColumnComment, "postgresql") -def visit_column_comment( - element: ColumnComment, compiler: PGDDLCompiler, **kw -) -> str: - ddl = "COMMENT ON COLUMN {table_name}.{column_name} IS {comment}" - comment = ( - compiler.sql_compiler.render_literal_value( - element.comment, sqltypes.String() - ) - if element.comment is not None - else "NULL" - ) - - return ddl.format( - table_name=format_table_name( - compiler, element.table_name, element.schema - ), - column_name=format_column_name(compiler, element.column_name), - comment=comment, - ) - - -@compiles(IdentityColumnDefault, "postgresql") -def visit_identity_column( - element: IdentityColumnDefault, compiler: PGDDLCompiler, **kw -): - text = "%s %s " % ( - alter_table(compiler, element.table_name, element.schema), - alter_column(compiler, element.column_name), - ) - if element.default is None: - # drop identity - text += "DROP IDENTITY" - return text - elif element.existing_server_default is None: - # add identity options - text += "ADD " - text += compiler.visit_identity_column(element.default) - return text - else: - # alter identity - diff, _, _ = element.impl._compare_identity_default( - element.default, element.existing_server_default - ) - identity = element.default - for attr in sorted(diff): - if attr == "always": - text += "SET GENERATED %s " % ( - "ALWAYS" if identity.always else "BY DEFAULT" - ) - else: - text += "SET %s " % compiler.get_identity_options( - sqla_compat.Identity(**{attr: getattr(identity, attr)}) - ) - return text - - -@Operations.register_operation("create_exclude_constraint") -@BatchOperations.register_operation( - "create_exclude_constraint", "batch_create_exclude_constraint" -) -@ops.AddConstraintOp.register_add_constraint("exclude_constraint") -class CreateExcludeConstraintOp(ops.AddConstraintOp): - """Represent a create exclude constraint operation.""" - - constraint_type = "exclude" - - def __init__( - self, - constraint_name: sqla_compat._ConstraintName, - table_name: Union[str, quoted_name], - elements: Union[ - Sequence[Tuple[str, str]], - Sequence[Tuple[ColumnClause[Any], str]], - ], - where: Optional[Union[ColumnElement[bool], str]] = None, - schema: Optional[str] = None, - _orig_constraint: Optional[ExcludeConstraint] = None, - **kw, - ) -> None: - self.constraint_name = constraint_name - self.table_name = table_name - self.elements = elements - self.where = where - self.schema = schema - self._orig_constraint = _orig_constraint - self.kw = kw - - @classmethod - def from_constraint( # type:ignore[override] - cls, constraint: ExcludeConstraint - ) -> CreateExcludeConstraintOp: - constraint_table = sqla_compat._table_for_constraint(constraint) - return cls( - constraint.name, - constraint_table.name, - [ # type: ignore - (expr, op) for expr, name, op in constraint._render_exprs - ], - where=cast("ColumnElement[bool] | None", constraint.where), - schema=constraint_table.schema, - _orig_constraint=constraint, - deferrable=constraint.deferrable, - initially=constraint.initially, - using=constraint.using, - ) - - def to_constraint( - self, migration_context: Optional[MigrationContext] = None - ) -> ExcludeConstraint: - if self._orig_constraint is not None: - return self._orig_constraint - schema_obj = schemaobj.SchemaObjects(migration_context) - t = schema_obj.table(self.table_name, schema=self.schema) - excl = ExcludeConstraint( - *self.elements, - name=self.constraint_name, - where=self.where, - **self.kw, - ) - for ( - expr, - name, - oper, - ) in excl._render_exprs: - t.append_column(Column(name, NULLTYPE)) - t.append_constraint(excl) - return excl - - @classmethod - def create_exclude_constraint( - cls, - operations: Operations, - constraint_name: str, - table_name: str, - *elements: Any, - **kw: Any, - ) -> Optional[Table]: - """Issue an alter to create an EXCLUDE constraint using the - current migration context. - - .. note:: This method is Postgresql specific, and additionally - requires at least SQLAlchemy 1.0. - - e.g.:: - - from alembic import op - - op.create_exclude_constraint( - "user_excl", - "user", - ("period", "&&"), - ("group", "="), - where=("group != 'some group'"), - ) - - Note that the expressions work the same way as that of - the ``ExcludeConstraint`` object itself; if plain strings are - passed, quoting rules must be applied manually. - - :param name: Name of the constraint. - :param table_name: String name of the source table. - :param elements: exclude conditions. - :param where: SQL expression or SQL string with optional WHERE - clause. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. - - """ - op = cls(constraint_name, table_name, elements, **kw) - return operations.invoke(op) - - @classmethod - def batch_create_exclude_constraint( - cls, - operations: BatchOperations, - constraint_name: str, - *elements: Any, - **kw: Any, - ) -> Optional[Table]: - """Issue a "create exclude constraint" instruction using the - current batch migration context. - - .. note:: This method is Postgresql specific, and additionally - requires at least SQLAlchemy 1.0. - - .. seealso:: - - :meth:`.Operations.create_exclude_constraint` - - """ - kw["schema"] = operations.impl.schema - op = cls(constraint_name, operations.impl.table_name, elements, **kw) - return operations.invoke(op) - - -@render.renderers.dispatch_for(CreateExcludeConstraintOp) -def _add_exclude_constraint( - autogen_context: AutogenContext, op: CreateExcludeConstraintOp -) -> str: - return _exclude_constraint(op.to_constraint(), autogen_context, alter=True) - - -@render._constraint_renderers.dispatch_for(ExcludeConstraint) -def _render_inline_exclude_constraint( - constraint: ExcludeConstraint, - autogen_context: AutogenContext, - namespace_metadata: MetaData, -) -> str: - rendered = render._user_defined_render( - "exclude", constraint, autogen_context - ) - if rendered is not False: - return rendered - - return _exclude_constraint(constraint, autogen_context, False) - - -def _postgresql_autogenerate_prefix(autogen_context: AutogenContext) -> str: - imports = autogen_context.imports - if imports is not None: - imports.add("from sqlalchemy.dialects import postgresql") - return "postgresql." - - -def _exclude_constraint( - constraint: ExcludeConstraint, - autogen_context: AutogenContext, - alter: bool, -) -> str: - opts: List[Tuple[str, Union[quoted_name, str, _f_name, None]]] = [] - - has_batch = autogen_context._has_batch - - if constraint.deferrable: - opts.append(("deferrable", str(constraint.deferrable))) - if constraint.initially: - opts.append(("initially", str(constraint.initially))) - if constraint.using: - opts.append(("using", str(constraint.using))) - if not has_batch and alter and constraint.table.schema: - opts.append(("schema", render._ident(constraint.table.schema))) - if not alter and constraint.name: - opts.append( - ("name", render._render_gen_name(autogen_context, constraint.name)) - ) - - def do_expr_where_opts(): - args = [ - "(%s, %r)" - % ( - _render_potential_column( - sqltext, # type:ignore[arg-type] - autogen_context, - ), - opstring, - ) - for sqltext, name, opstring in constraint._render_exprs - ] - if constraint.where is not None: - args.append( - "where=%s" - % render._render_potential_expr( - constraint.where, autogen_context - ) - ) - args.extend(["%s=%r" % (k, v) for k, v in opts]) - return args - - if alter: - args = [ - repr(render._render_gen_name(autogen_context, constraint.name)) - ] - if not has_batch: - args += [repr(render._ident(constraint.table.name))] - args.extend(do_expr_where_opts()) - return "%(prefix)screate_exclude_constraint(%(args)s)" % { - "prefix": render._alembic_autogenerate_prefix(autogen_context), - "args": ", ".join(args), - } - else: - args = do_expr_where_opts() - return "%(prefix)sExcludeConstraint(%(args)s)" % { - "prefix": _postgresql_autogenerate_prefix(autogen_context), - "args": ", ".join(args), - } - - -def _render_potential_column( - value: Union[ - ColumnClause[Any], Column[Any], TextClause, FunctionElement[Any] - ], - autogen_context: AutogenContext, -) -> str: - if isinstance(value, ColumnClause): - if value.is_literal: - # like literal_column("int8range(from, to)") in ExcludeConstraint - template = "%(prefix)sliteral_column(%(name)r)" - else: - template = "%(prefix)scolumn(%(name)r)" - - return template % { - "prefix": render._sqlalchemy_autogenerate_prefix(autogen_context), - "name": value.name, - } - else: - return render._render_potential_expr( - value, - autogen_context, - wrap_in_text=isinstance(value, (TextClause, FunctionElement)), - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/ddl/sqlite.py b/backend/venv/lib/python3.12/site-packages/alembic/ddl/sqlite.py deleted file mode 100644 index 762e8ca..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/ddl/sqlite.py +++ /dev/null @@ -1,225 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import re -from typing import Any -from typing import Dict -from typing import Optional -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import cast -from sqlalchemy import JSON -from sqlalchemy import schema -from sqlalchemy import sql - -from .base import alter_table -from .base import format_table_name -from .base import RenameTable -from .impl import DefaultImpl -from .. import util -from ..util.sqla_compat import compiles - -if TYPE_CHECKING: - from sqlalchemy.engine.reflection import Inspector - from sqlalchemy.sql.compiler import DDLCompiler - from sqlalchemy.sql.elements import Cast - from sqlalchemy.sql.elements import ClauseElement - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import Constraint - from sqlalchemy.sql.schema import Table - from sqlalchemy.sql.type_api import TypeEngine - - from ..operations.batch import BatchOperationsImpl - - -class SQLiteImpl(DefaultImpl): - __dialect__ = "sqlite" - - transactional_ddl = False - """SQLite supports transactional DDL, but pysqlite does not: - see: http://bugs.python.org/issue10740 - """ - - def requires_recreate_in_batch( - self, batch_op: BatchOperationsImpl - ) -> bool: - """Return True if the given :class:`.BatchOperationsImpl` - would need the table to be recreated and copied in order to - proceed. - - Normally, only returns True on SQLite when operations other - than add_column are present. - - """ - for op in batch_op.batch: - if op[0] == "add_column": - col = op[1][1] - if isinstance( - col.server_default, schema.DefaultClause - ) and isinstance(col.server_default.arg, sql.ClauseElement): - return True - elif ( - isinstance(col.server_default, util.sqla_compat.Computed) - and col.server_default.persisted - ): - return True - elif op[0] not in ("create_index", "drop_index"): - return True - else: - return False - - def add_constraint(self, const: Constraint): - # attempt to distinguish between an - # auto-gen constraint and an explicit one - if const._create_rule is None: - raise NotImplementedError( - "No support for ALTER of constraints in SQLite dialect. " - "Please refer to the batch mode feature which allows for " - "SQLite migrations using a copy-and-move strategy." - ) - elif const._create_rule(self): - util.warn( - "Skipping unsupported ALTER for " - "creation of implicit constraint. " - "Please refer to the batch mode feature which allows for " - "SQLite migrations using a copy-and-move strategy." - ) - - def drop_constraint(self, const: Constraint): - if const._create_rule is None: - raise NotImplementedError( - "No support for ALTER of constraints in SQLite dialect. " - "Please refer to the batch mode feature which allows for " - "SQLite migrations using a copy-and-move strategy." - ) - - def compare_server_default( - self, - inspector_column: Column[Any], - metadata_column: Column[Any], - rendered_metadata_default: Optional[str], - rendered_inspector_default: Optional[str], - ) -> bool: - if rendered_metadata_default is not None: - rendered_metadata_default = re.sub( - r"^\((.+)\)$", r"\1", rendered_metadata_default - ) - - rendered_metadata_default = re.sub( - r"^\"?'(.+)'\"?$", r"\1", rendered_metadata_default - ) - - if rendered_inspector_default is not None: - rendered_inspector_default = re.sub( - r"^\((.+)\)$", r"\1", rendered_inspector_default - ) - - rendered_inspector_default = re.sub( - r"^\"?'(.+)'\"?$", r"\1", rendered_inspector_default - ) - - return rendered_inspector_default != rendered_metadata_default - - def _guess_if_default_is_unparenthesized_sql_expr( - self, expr: Optional[str] - ) -> bool: - """Determine if a server default is a SQL expression or a constant. - - There are too many assertions that expect server defaults to round-trip - identically without parenthesis added so we will add parens only in - very specific cases. - - """ - if not expr: - return False - elif re.match(r"^[0-9\.]$", expr): - return False - elif re.match(r"^'.+'$", expr): - return False - elif re.match(r"^\(.+\)$", expr): - return False - else: - return True - - def autogen_column_reflect( - self, - inspector: Inspector, - table: Table, - column_info: Dict[str, Any], - ) -> None: - # SQLite expression defaults require parenthesis when sent - # as DDL - if self._guess_if_default_is_unparenthesized_sql_expr( - column_info.get("default", None) - ): - column_info["default"] = "(%s)" % (column_info["default"],) - - def render_ddl_sql_expr( - self, expr: ClauseElement, is_server_default: bool = False, **kw - ) -> str: - # SQLite expression defaults require parenthesis when sent - # as DDL - str_expr = super().render_ddl_sql_expr( - expr, is_server_default=is_server_default, **kw - ) - - if ( - is_server_default - and self._guess_if_default_is_unparenthesized_sql_expr(str_expr) - ): - str_expr = "(%s)" % (str_expr,) - return str_expr - - def cast_for_batch_migrate( - self, - existing: Column[Any], - existing_transfer: Dict[str, Union[TypeEngine, Cast]], - new_type: TypeEngine, - ) -> None: - if ( - existing.type._type_affinity is not new_type._type_affinity - and not isinstance(new_type, JSON) - ): - existing_transfer["expr"] = cast( - existing_transfer["expr"], new_type - ) - - def correct_for_autogen_constraints( - self, - conn_unique_constraints, - conn_indexes, - metadata_unique_constraints, - metadata_indexes, - ): - self._skip_functional_indexes(metadata_indexes, conn_indexes) - - -@compiles(RenameTable, "sqlite") -def visit_rename_table( - element: RenameTable, compiler: DDLCompiler, **kw -) -> str: - return "%s RENAME TO %s" % ( - alter_table(compiler, element.table_name, element.schema), - format_table_name(compiler, element.new_table_name, None), - ) - - -# @compiles(AddColumn, 'sqlite') -# def visit_add_column(element, compiler, **kw): -# return "%s %s" % ( -# alter_table(compiler, element.table_name, element.schema), -# add_column(compiler, element.column, **kw) -# ) - - -# def add_column(compiler, column, **kw): -# text = "ADD COLUMN %s" % compiler.get_column_specification(column, **kw) -# need to modify SQLAlchemy so that the CHECK associated with a Boolean -# or Enum gets placed as part of the column constraints, not the Table -# see ticket 98 -# for const in column.constraints: -# text += compiler.process(AddConstraint(const)) -# return text diff --git a/backend/venv/lib/python3.12/site-packages/alembic/environment.py b/backend/venv/lib/python3.12/site-packages/alembic/environment.py deleted file mode 100644 index adfc93e..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/environment.py +++ /dev/null @@ -1 +0,0 @@ -from .runtime.environment import * # noqa diff --git a/backend/venv/lib/python3.12/site-packages/alembic/migration.py b/backend/venv/lib/python3.12/site-packages/alembic/migration.py deleted file mode 100644 index 02626e2..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/migration.py +++ /dev/null @@ -1 +0,0 @@ -from .runtime.migration import * # noqa diff --git a/backend/venv/lib/python3.12/site-packages/alembic/op.py b/backend/venv/lib/python3.12/site-packages/alembic/op.py deleted file mode 100644 index f3f5fac..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/op.py +++ /dev/null @@ -1,5 +0,0 @@ -from .operations.base import Operations - -# create proxy functions for -# each method on the Operations class. -Operations.create_module_class_proxy(globals(), locals()) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/op.pyi b/backend/venv/lib/python3.12/site-packages/alembic/op.pyi deleted file mode 100644 index 9204446..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/op.pyi +++ /dev/null @@ -1,1338 +0,0 @@ -# ### this file stubs are generated by tools/write_pyi.py - do not edit ### -# ### imports are manually managed -from __future__ import annotations - -from contextlib import contextmanager -from typing import Any -from typing import Awaitable -from typing import Callable -from typing import Dict -from typing import Iterator -from typing import List -from typing import Literal -from typing import Mapping -from typing import Optional -from typing import overload -from typing import Sequence -from typing import Tuple -from typing import Type -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union - -if TYPE_CHECKING: - from sqlalchemy.engine import Connection - from sqlalchemy.sql import Executable - from sqlalchemy.sql.elements import ColumnElement - from sqlalchemy.sql.elements import conv - from sqlalchemy.sql.elements import TextClause - from sqlalchemy.sql.expression import TableClause - from sqlalchemy.sql.functions import Function - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import Computed - from sqlalchemy.sql.schema import Identity - from sqlalchemy.sql.schema import SchemaItem - from sqlalchemy.sql.schema import Table - from sqlalchemy.sql.type_api import TypeEngine - from sqlalchemy.util import immutabledict - - from .operations.base import BatchOperations - from .operations.ops import AddColumnOp - from .operations.ops import AddConstraintOp - from .operations.ops import AlterColumnOp - from .operations.ops import AlterTableOp - from .operations.ops import BulkInsertOp - from .operations.ops import CreateIndexOp - from .operations.ops import CreateTableCommentOp - from .operations.ops import CreateTableOp - from .operations.ops import DropColumnOp - from .operations.ops import DropConstraintOp - from .operations.ops import DropIndexOp - from .operations.ops import DropTableCommentOp - from .operations.ops import DropTableOp - from .operations.ops import ExecuteSQLOp - from .operations.ops import MigrateOperation - from .runtime.migration import MigrationContext - from .util.sqla_compat import _literal_bindparam - -_T = TypeVar("_T") -_C = TypeVar("_C", bound=Callable[..., Any]) - -### end imports ### - -def add_column( - table_name: str, column: Column[Any], *, schema: Optional[str] = None -) -> None: - """Issue an "add column" instruction using the current - migration context. - - e.g.:: - - from alembic import op - from sqlalchemy import Column, String - - op.add_column("organization", Column("name", String())) - - The :meth:`.Operations.add_column` method typically corresponds - to the SQL command "ALTER TABLE... ADD COLUMN". Within the scope - of this command, the column's name, datatype, nullability, - and optional server-generated defaults may be indicated. - - .. note:: - - With the exception of NOT NULL constraints or single-column FOREIGN - KEY constraints, other kinds of constraints such as PRIMARY KEY, - UNIQUE or CHECK constraints **cannot** be generated using this - method; for these constraints, refer to operations such as - :meth:`.Operations.create_primary_key` and - :meth:`.Operations.create_check_constraint`. In particular, the - following :class:`~sqlalchemy.schema.Column` parameters are - **ignored**: - - * :paramref:`~sqlalchemy.schema.Column.primary_key` - SQL databases - typically do not support an ALTER operation that can add - individual columns one at a time to an existing primary key - constraint, therefore it's less ambiguous to use the - :meth:`.Operations.create_primary_key` method, which assumes no - existing primary key constraint is present. - * :paramref:`~sqlalchemy.schema.Column.unique` - use the - :meth:`.Operations.create_unique_constraint` method - * :paramref:`~sqlalchemy.schema.Column.index` - use the - :meth:`.Operations.create_index` method - - - The provided :class:`~sqlalchemy.schema.Column` object may include a - :class:`~sqlalchemy.schema.ForeignKey` constraint directive, - referencing a remote table name. For this specific type of constraint, - Alembic will automatically emit a second ALTER statement in order to - add the single-column FOREIGN KEY constraint separately:: - - from alembic import op - from sqlalchemy import Column, INTEGER, ForeignKey - - op.add_column( - "organization", - Column("account_id", INTEGER, ForeignKey("accounts.id")), - ) - - The column argument passed to :meth:`.Operations.add_column` is a - :class:`~sqlalchemy.schema.Column` construct, used in the same way it's - used in SQLAlchemy. In particular, values or functions to be indicated - as producing the column's default value on the database side are - specified using the ``server_default`` parameter, and not ``default`` - which only specifies Python-side defaults:: - - from alembic import op - from sqlalchemy import Column, TIMESTAMP, func - - # specify "DEFAULT NOW" along with the column add - op.add_column( - "account", - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - :param table_name: String name of the parent table. - :param column: a :class:`sqlalchemy.schema.Column` object - representing the new column. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - -def alter_column( - table_name: str, - column_name: str, - *, - nullable: Optional[bool] = None, - comment: Union[str, Literal[False], None] = False, - server_default: Any = False, - new_column_name: Optional[str] = None, - type_: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, - existing_type: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, - existing_server_default: Union[ - str, bool, Identity, Computed, None - ] = False, - existing_nullable: Optional[bool] = None, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, - **kw: Any, -) -> None: - r"""Issue an "alter column" instruction using the - current migration context. - - Generally, only that aspect of the column which - is being changed, i.e. name, type, nullability, - default, needs to be specified. Multiple changes - can also be specified at once and the backend should - "do the right thing", emitting each change either - separately or together as the backend allows. - - MySQL has special requirements here, since MySQL - cannot ALTER a column without a full specification. - When producing MySQL-compatible migration files, - it is recommended that the ``existing_type``, - ``existing_server_default``, and ``existing_nullable`` - parameters be present, if not being altered. - - Type changes which are against the SQLAlchemy - "schema" types :class:`~sqlalchemy.types.Boolean` - and :class:`~sqlalchemy.types.Enum` may also - add or drop constraints which accompany those - types on backends that don't support them natively. - The ``existing_type`` argument is - used in this case to identify and remove a previous - constraint that was bound to the type object. - - :param table_name: string name of the target table. - :param column_name: string name of the target column, - as it exists before the operation begins. - :param nullable: Optional; specify ``True`` or ``False`` - to alter the column's nullability. - :param server_default: Optional; specify a string - SQL expression, :func:`~sqlalchemy.sql.expression.text`, - or :class:`~sqlalchemy.schema.DefaultClause` to indicate - an alteration to the column's default value. - Set to ``None`` to have the default removed. - :param comment: optional string text of a new comment to add to the - column. - :param new_column_name: Optional; specify a string name here to - indicate the new name within a column rename operation. - :param type\_: Optional; a :class:`~sqlalchemy.types.TypeEngine` - type object to specify a change to the column's type. - For SQLAlchemy types that also indicate a constraint (i.e. - :class:`~sqlalchemy.types.Boolean`, :class:`~sqlalchemy.types.Enum`), - the constraint is also generated. - :param autoincrement: set the ``AUTO_INCREMENT`` flag of the column; - currently understood by the MySQL dialect. - :param existing_type: Optional; a - :class:`~sqlalchemy.types.TypeEngine` - type object to specify the previous type. This - is required for all MySQL column alter operations that - don't otherwise specify a new type, as well as for - when nullability is being changed on a SQL Server - column. It is also used if the type is a so-called - SQLAlchemy "schema" type which may define a constraint (i.e. - :class:`~sqlalchemy.types.Boolean`, - :class:`~sqlalchemy.types.Enum`), - so that the constraint can be dropped. - :param existing_server_default: Optional; The existing - default value of the column. Required on MySQL if - an existing default is not being changed; else MySQL - removes the default. - :param existing_nullable: Optional; the existing nullability - of the column. Required on MySQL if the existing nullability - is not being changed; else MySQL sets this to NULL. - :param existing_autoincrement: Optional; the existing autoincrement - of the column. Used for MySQL's system of altering a column - that specifies ``AUTO_INCREMENT``. - :param existing_comment: string text of the existing comment on the - column to be maintained. Required on MySQL if the existing comment - on the column is not being changed. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param postgresql_using: String argument which will indicate a - SQL expression to render within the Postgresql-specific USING clause - within ALTER COLUMN. This string is taken directly as raw SQL which - must explicitly include any necessary quoting or escaping of tokens - within the expression. - - """ - -@contextmanager -def batch_alter_table( - table_name: str, - schema: Optional[str] = None, - recreate: Literal["auto", "always", "never"] = "auto", - partial_reordering: Optional[Tuple[Any, ...]] = None, - copy_from: Optional[Table] = None, - table_args: Tuple[Any, ...] = (), - table_kwargs: Mapping[str, Any] = immutabledict({}), - reflect_args: Tuple[Any, ...] = (), - reflect_kwargs: Mapping[str, Any] = immutabledict({}), - naming_convention: Optional[Dict[str, str]] = None, -) -> Iterator[BatchOperations]: - """Invoke a series of per-table migrations in batch. - - Batch mode allows a series of operations specific to a table - to be syntactically grouped together, and allows for alternate - modes of table migration, in particular the "recreate" style of - migration required by SQLite. - - "recreate" style is as follows: - - 1. A new table is created with the new specification, based on the - migration directives within the batch, using a temporary name. - - 2. the data copied from the existing table to the new table. - - 3. the existing table is dropped. - - 4. the new table is renamed to the existing table name. - - The directive by default will only use "recreate" style on the - SQLite backend, and only if directives are present which require - this form, e.g. anything other than ``add_column()``. The batch - operation on other backends will proceed using standard ALTER TABLE - operations. - - The method is used as a context manager, which returns an instance - of :class:`.BatchOperations`; this object is the same as - :class:`.Operations` except that table names and schema names - are omitted. E.g.:: - - with op.batch_alter_table("some_table") as batch_op: - batch_op.add_column(Column("foo", Integer)) - batch_op.drop_column("bar") - - The operations within the context manager are invoked at once - when the context is ended. When run against SQLite, if the - migrations include operations not supported by SQLite's ALTER TABLE, - the entire table will be copied to a new one with the new - specification, moving all data across as well. - - The copy operation by default uses reflection to retrieve the current - structure of the table, and therefore :meth:`.batch_alter_table` - in this mode requires that the migration is run in "online" mode. - The ``copy_from`` parameter may be passed which refers to an existing - :class:`.Table` object, which will bypass this reflection step. - - .. note:: The table copy operation will currently not copy - CHECK constraints, and may not copy UNIQUE constraints that are - unnamed, as is possible on SQLite. See the section - :ref:`sqlite_batch_constraints` for workarounds. - - :param table_name: name of table - :param schema: optional schema name. - :param recreate: under what circumstances the table should be - recreated. At its default of ``"auto"``, the SQLite dialect will - recreate the table if any operations other than ``add_column()``, - ``create_index()``, or ``drop_index()`` are - present. Other options include ``"always"`` and ``"never"``. - :param copy_from: optional :class:`~sqlalchemy.schema.Table` object - that will act as the structure of the table being copied. If omitted, - table reflection is used to retrieve the structure of the table. - - .. seealso:: - - :ref:`batch_offline_mode` - - :paramref:`~.Operations.batch_alter_table.reflect_args` - - :paramref:`~.Operations.batch_alter_table.reflect_kwargs` - - :param reflect_args: a sequence of additional positional arguments that - will be applied to the table structure being reflected / copied; - this may be used to pass column and constraint overrides to the - table that will be reflected, in lieu of passing the whole - :class:`~sqlalchemy.schema.Table` using - :paramref:`~.Operations.batch_alter_table.copy_from`. - :param reflect_kwargs: a dictionary of additional keyword arguments - that will be applied to the table structure being copied; this may be - used to pass additional table and reflection options to the table that - will be reflected, in lieu of passing the whole - :class:`~sqlalchemy.schema.Table` using - :paramref:`~.Operations.batch_alter_table.copy_from`. - :param table_args: a sequence of additional positional arguments that - will be applied to the new :class:`~sqlalchemy.schema.Table` when - created, in addition to those copied from the source table. - This may be used to provide additional constraints such as CHECK - constraints that may not be reflected. - :param table_kwargs: a dictionary of additional keyword arguments - that will be applied to the new :class:`~sqlalchemy.schema.Table` - when created, in addition to those copied from the source table. - This may be used to provide for additional table options that may - not be reflected. - :param naming_convention: a naming convention dictionary of the form - described at :ref:`autogen_naming_conventions` which will be applied - to the :class:`~sqlalchemy.schema.MetaData` during the reflection - process. This is typically required if one wants to drop SQLite - constraints, as these constraints will not have names when - reflected on this backend. Requires SQLAlchemy **0.9.4** or greater. - - .. seealso:: - - :ref:`dropping_sqlite_foreign_keys` - - :param partial_reordering: a list of tuples, each suggesting a desired - ordering of two or more columns in the newly created table. Requires - that :paramref:`.batch_alter_table.recreate` is set to ``"always"``. - Examples, given a table with columns "a", "b", "c", and "d": - - Specify the order of all columns:: - - with op.batch_alter_table( - "some_table", - recreate="always", - partial_reordering=[("c", "d", "a", "b")], - ) as batch_op: - pass - - Ensure "d" appears before "c", and "b", appears before "a":: - - with op.batch_alter_table( - "some_table", - recreate="always", - partial_reordering=[("d", "c"), ("b", "a")], - ) as batch_op: - pass - - The ordering of columns not included in the partial_reordering - set is undefined. Therefore it is best to specify the complete - ordering of all columns for best results. - - .. note:: batch mode requires SQLAlchemy 0.8 or above. - - .. seealso:: - - :ref:`batch_migrations` - - """ - -def bulk_insert( - table: Union[Table, TableClause], - rows: List[Dict[str, Any]], - *, - multiinsert: bool = True, -) -> None: - """Issue a "bulk insert" operation using the current - migration context. - - This provides a means of representing an INSERT of multiple rows - which works equally well in the context of executing on a live - connection as well as that of generating a SQL script. In the - case of a SQL script, the values are rendered inline into the - statement. - - e.g.:: - - from alembic import op - from datetime import date - from sqlalchemy.sql import table, column - from sqlalchemy import String, Integer, Date - - # Create an ad-hoc table to use for the insert statement. - accounts_table = table( - "account", - column("id", Integer), - column("name", String), - column("create_date", Date), - ) - - op.bulk_insert( - accounts_table, - [ - { - "id": 1, - "name": "John Smith", - "create_date": date(2010, 10, 5), - }, - { - "id": 2, - "name": "Ed Williams", - "create_date": date(2007, 5, 27), - }, - { - "id": 3, - "name": "Wendy Jones", - "create_date": date(2008, 8, 15), - }, - ], - ) - - When using --sql mode, some datatypes may not render inline - automatically, such as dates and other special types. When this - issue is present, :meth:`.Operations.inline_literal` may be used:: - - op.bulk_insert( - accounts_table, - [ - { - "id": 1, - "name": "John Smith", - "create_date": op.inline_literal("2010-10-05"), - }, - { - "id": 2, - "name": "Ed Williams", - "create_date": op.inline_literal("2007-05-27"), - }, - { - "id": 3, - "name": "Wendy Jones", - "create_date": op.inline_literal("2008-08-15"), - }, - ], - multiinsert=False, - ) - - When using :meth:`.Operations.inline_literal` in conjunction with - :meth:`.Operations.bulk_insert`, in order for the statement to work - in "online" (e.g. non --sql) mode, the - :paramref:`~.Operations.bulk_insert.multiinsert` - flag should be set to ``False``, which will have the effect of - individual INSERT statements being emitted to the database, each - with a distinct VALUES clause, so that the "inline" values can - still be rendered, rather than attempting to pass the values - as bound parameters. - - :param table: a table object which represents the target of the INSERT. - - :param rows: a list of dictionaries indicating rows. - - :param multiinsert: when at its default of True and --sql mode is not - enabled, the INSERT statement will be executed using - "executemany()" style, where all elements in the list of - dictionaries are passed as bound parameters in a single - list. Setting this to False results in individual INSERT - statements being emitted per parameter set, and is needed - in those cases where non-literal values are present in the - parameter sets. - - """ - -def create_check_constraint( - constraint_name: Optional[str], - table_name: str, - condition: Union[str, ColumnElement[bool], TextClause], - *, - schema: Optional[str] = None, - **kw: Any, -) -> None: - """Issue a "create check constraint" instruction using the - current migration context. - - e.g.:: - - from alembic import op - from sqlalchemy.sql import column, func - - op.create_check_constraint( - "ck_user_name_len", - "user", - func.len(column("name")) > 5, - ) - - CHECK constraints are usually against a SQL expression, so ad-hoc - table metadata is usually needed. The function will convert the given - arguments into a :class:`sqlalchemy.schema.CheckConstraint` bound - to an anonymous table in order to emit the CREATE statement. - - :param name: Name of the check constraint. The name is necessary - so that an ALTER statement can be emitted. For setups that - use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the source table. - :param condition: SQL expression that's the condition of the - constraint. Can be a string or SQLAlchemy expression language - structure. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - -def create_exclude_constraint( - constraint_name: str, table_name: str, *elements: Any, **kw: Any -) -> Optional[Table]: - """Issue an alter to create an EXCLUDE constraint using the - current migration context. - - .. note:: This method is Postgresql specific, and additionally - requires at least SQLAlchemy 1.0. - - e.g.:: - - from alembic import op - - op.create_exclude_constraint( - "user_excl", - "user", - ("period", "&&"), - ("group", "="), - where=("group != 'some group'"), - ) - - Note that the expressions work the same way as that of - the ``ExcludeConstraint`` object itself; if plain strings are - passed, quoting rules must be applied manually. - - :param name: Name of the constraint. - :param table_name: String name of the source table. - :param elements: exclude conditions. - :param where: SQL expression or SQL string with optional WHERE - clause. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. - - """ - -def create_foreign_key( - constraint_name: Optional[str], - source_table: str, - referent_table: str, - local_cols: List[str], - remote_cols: List[str], - *, - onupdate: Optional[str] = None, - ondelete: Optional[str] = None, - deferrable: Optional[bool] = None, - initially: Optional[str] = None, - match: Optional[str] = None, - source_schema: Optional[str] = None, - referent_schema: Optional[str] = None, - **dialect_kw: Any, -) -> None: - """Issue a "create foreign key" instruction using the - current migration context. - - e.g.:: - - from alembic import op - - op.create_foreign_key( - "fk_user_address", - "address", - "user", - ["user_id"], - ["id"], - ) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.ForeignKeyConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param constraint_name: Name of the foreign key constraint. The name - is necessary so that an ALTER statement can be emitted. For setups - that use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param source_table: String name of the source table. - :param referent_table: String name of the destination table. - :param local_cols: a list of string column names in the - source table. - :param remote_cols: a list of string column names in the - remote table. - :param onupdate: Optional string. If set, emit ON UPDATE when - issuing DDL for this constraint. Typical values include CASCADE, - DELETE and RESTRICT. - :param ondelete: Optional string. If set, emit ON DELETE when - issuing DDL for this constraint. Typical values include CASCADE, - DELETE and RESTRICT. - :param deferrable: optional bool. If set, emit DEFERRABLE or NOT - DEFERRABLE when issuing DDL for this constraint. - :param source_schema: Optional schema name of the source table. - :param referent_schema: Optional schema name of the destination table. - - """ - -def create_index( - index_name: Optional[str], - table_name: str, - columns: Sequence[Union[str, TextClause, Function[Any]]], - *, - schema: Optional[str] = None, - unique: bool = False, - if_not_exists: Optional[bool] = None, - **kw: Any, -) -> None: - r"""Issue a "create index" instruction using the current - migration context. - - e.g.:: - - from alembic import op - - op.create_index("ik_test", "t1", ["foo", "bar"]) - - Functional indexes can be produced by using the - :func:`sqlalchemy.sql.expression.text` construct:: - - from alembic import op - from sqlalchemy import text - - op.create_index("ik_test", "t1", [text("lower(foo)")]) - - :param index_name: name of the index. - :param table_name: name of the owning table. - :param columns: a list consisting of string column names and/or - :func:`~sqlalchemy.sql.expression.text` constructs. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param unique: If True, create a unique index. - - :param quote: Force quoting of this column's name on or off, - corresponding to ``True`` or ``False``. When left at its default - of ``None``, the column identifier will be quoted according to - whether the name is case sensitive (identifiers with at least one - upper case character are treated as case sensitive), or if it's a - reserved word. This flag is only needed to force quoting of a - reserved word which is not known by the SQLAlchemy dialect. - - :param if_not_exists: If True, adds IF NOT EXISTS operator when - creating the new index. - - .. versionadded:: 1.12.0 - - :param \**kw: Additional keyword arguments not mentioned above are - dialect specific, and passed in the form - ``_``. - See the documentation regarding an individual dialect at - :ref:`dialect_toplevel` for detail on documented arguments. - - """ - -def create_primary_key( - constraint_name: Optional[str], - table_name: str, - columns: List[str], - *, - schema: Optional[str] = None, -) -> None: - """Issue a "create primary key" instruction using the current - migration context. - - e.g.:: - - from alembic import op - - op.create_primary_key("pk_my_table", "my_table", ["id", "version"]) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.PrimaryKeyConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param constraint_name: Name of the primary key constraint. The name - is necessary so that an ALTER statement can be emitted. For setups - that use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions` - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the target table. - :param columns: a list of string column names to be applied to the - primary key constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - -def create_table( - table_name: str, - *columns: SchemaItem, - if_not_exists: Optional[bool] = None, - **kw: Any, -) -> Table: - r"""Issue a "create table" instruction using the current migration - context. - - This directive receives an argument list similar to that of the - traditional :class:`sqlalchemy.schema.Table` construct, but without the - metadata:: - - from sqlalchemy import INTEGER, VARCHAR, NVARCHAR, Column - from alembic import op - - op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("name", VARCHAR(50), nullable=False), - Column("description", NVARCHAR(200)), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - Note that :meth:`.create_table` accepts - :class:`~sqlalchemy.schema.Column` - constructs directly from the SQLAlchemy library. In particular, - default values to be created on the database side are - specified using the ``server_default`` parameter, and not - ``default`` which only specifies Python-side defaults:: - - from alembic import op - from sqlalchemy import Column, TIMESTAMP, func - - # specify "DEFAULT NOW" along with the "timestamp" column - op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - The function also returns a newly created - :class:`~sqlalchemy.schema.Table` object, corresponding to the table - specification given, which is suitable for - immediate SQL operations, in particular - :meth:`.Operations.bulk_insert`:: - - from sqlalchemy import INTEGER, VARCHAR, NVARCHAR, Column - from alembic import op - - account_table = op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("name", VARCHAR(50), nullable=False), - Column("description", NVARCHAR(200)), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - op.bulk_insert( - account_table, - [ - {"name": "A1", "description": "account 1"}, - {"name": "A2", "description": "account 2"}, - ], - ) - - :param table_name: Name of the table - :param \*columns: collection of :class:`~sqlalchemy.schema.Column` - objects within - the table, as well as optional :class:`~sqlalchemy.schema.Constraint` - objects - and :class:`~.sqlalchemy.schema.Index` objects. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param if_not_exists: If True, adds IF NOT EXISTS operator when - creating the new table. - - .. versionadded:: 1.13.3 - :param \**kw: Other keyword arguments are passed to the underlying - :class:`sqlalchemy.schema.Table` object created for the command. - - :return: the :class:`~sqlalchemy.schema.Table` object corresponding - to the parameters given. - - """ - -def create_table_comment( - table_name: str, - comment: Optional[str], - *, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, -) -> None: - """Emit a COMMENT ON operation to set the comment for a table. - - :param table_name: string name of the target table. - :param comment: string value of the comment being registered against - the specified table. - :param existing_comment: String value of a comment - already registered on the specified table, used within autogenerate - so that the operation is reversible, but not required for direct - use. - - .. seealso:: - - :meth:`.Operations.drop_table_comment` - - :paramref:`.Operations.alter_column.comment` - - """ - -def create_unique_constraint( - constraint_name: Optional[str], - table_name: str, - columns: Sequence[str], - *, - schema: Optional[str] = None, - **kw: Any, -) -> Any: - """Issue a "create unique constraint" instruction using the - current migration context. - - e.g.:: - - from alembic import op - op.create_unique_constraint("uq_user_name", "user", ["name"]) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.UniqueConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param name: Name of the unique constraint. The name is necessary - so that an ALTER statement can be emitted. For setups that - use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the source table. - :param columns: a list of string column names in the - source table. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - -def drop_column( - table_name: str, - column_name: str, - *, - schema: Optional[str] = None, - **kw: Any, -) -> None: - """Issue a "drop column" instruction using the current - migration context. - - e.g.:: - - drop_column("organization", "account_id") - - :param table_name: name of table - :param column_name: name of column - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param mssql_drop_check: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop the CHECK constraint on the column using a - SQL-script-compatible - block that selects into a @variable from sys.check_constraints, - then exec's a separate DROP CONSTRAINT for that constraint. - :param mssql_drop_default: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop the DEFAULT constraint on the column using a - SQL-script-compatible - block that selects into a @variable from sys.default_constraints, - then exec's a separate DROP CONSTRAINT for that default. - :param mssql_drop_foreign_key: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop a single FOREIGN KEY constraint on the column using a - SQL-script-compatible - block that selects into a @variable from - sys.foreign_keys/sys.foreign_key_columns, - then exec's a separate DROP CONSTRAINT for that default. Only - works if the column has exactly one FK constraint which refers to - it, at the moment. - - """ - -def drop_constraint( - constraint_name: str, - table_name: str, - type_: Optional[str] = None, - *, - schema: Optional[str] = None, -) -> None: - r"""Drop a constraint of the given name, typically via DROP CONSTRAINT. - - :param constraint_name: name of the constraint. - :param table_name: table name. - :param type\_: optional, required on MySQL. can be - 'foreignkey', 'primary', 'unique', or 'check'. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - -def drop_index( - index_name: str, - table_name: Optional[str] = None, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - **kw: Any, -) -> None: - r"""Issue a "drop index" instruction using the current - migration context. - - e.g.:: - - drop_index("accounts") - - :param index_name: name of the index. - :param table_name: name of the owning table. Some - backends such as Microsoft SQL Server require this. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - :param if_exists: If True, adds IF EXISTS operator when - dropping the index. - - .. versionadded:: 1.12.0 - - :param \**kw: Additional keyword arguments not mentioned above are - dialect specific, and passed in the form - ``_``. - See the documentation regarding an individual dialect at - :ref:`dialect_toplevel` for detail on documented arguments. - - """ - -def drop_table( - table_name: str, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - **kw: Any, -) -> None: - r"""Issue a "drop table" instruction using the current - migration context. - - - e.g.:: - - drop_table("accounts") - - :param table_name: Name of the table - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param if_exists: If True, adds IF EXISTS operator when - dropping the table. - - .. versionadded:: 1.13.3 - :param \**kw: Other keyword arguments are passed to the underlying - :class:`sqlalchemy.schema.Table` object created for the command. - - """ - -def drop_table_comment( - table_name: str, - *, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, -) -> None: - """Issue a "drop table comment" operation to - remove an existing comment set on a table. - - :param table_name: string name of the target table. - :param existing_comment: An optional string value of a comment already - registered on the specified table. - - .. seealso:: - - :meth:`.Operations.create_table_comment` - - :paramref:`.Operations.alter_column.comment` - - """ - -def execute( - sqltext: Union[Executable, str], - *, - execution_options: Optional[dict[str, Any]] = None, -) -> None: - r"""Execute the given SQL using the current migration context. - - The given SQL can be a plain string, e.g.:: - - op.execute("INSERT INTO table (foo) VALUES ('some value')") - - Or it can be any kind of Core SQL Expression construct, such as - below where we use an update construct:: - - from sqlalchemy.sql import table, column - from sqlalchemy import String - from alembic import op - - account = table("account", column("name", String)) - op.execute( - account.update() - .where(account.c.name == op.inline_literal("account 1")) - .values({"name": op.inline_literal("account 2")}) - ) - - Above, we made use of the SQLAlchemy - :func:`sqlalchemy.sql.expression.table` and - :func:`sqlalchemy.sql.expression.column` constructs to make a brief, - ad-hoc table construct just for our UPDATE statement. A full - :class:`~sqlalchemy.schema.Table` construct of course works perfectly - fine as well, though note it's a recommended practice to at least - ensure the definition of a table is self-contained within the migration - script, rather than imported from a module that may break compatibility - with older migrations. - - In a SQL script context, the statement is emitted directly to the - output stream. There is *no* return result, however, as this - function is oriented towards generating a change script - that can run in "offline" mode. Additionally, parameterized - statements are discouraged here, as they *will not work* in offline - mode. Above, we use :meth:`.inline_literal` where parameters are - to be used. - - For full interaction with a connected database where parameters can - also be used normally, use the "bind" available from the context:: - - from alembic import op - - connection = op.get_bind() - - connection.execute( - account.update() - .where(account.c.name == "account 1") - .values({"name": "account 2"}) - ) - - Additionally, when passing the statement as a plain string, it is first - coerced into a :func:`sqlalchemy.sql.expression.text` construct - before being passed along. In the less likely case that the - literal SQL string contains a colon, it must be escaped with a - backslash, as:: - - op.execute(r"INSERT INTO table (foo) VALUES ('\:colon_value')") - - - :param sqltext: Any legal SQLAlchemy expression, including: - - * a string - * a :func:`sqlalchemy.sql.expression.text` construct. - * a :func:`sqlalchemy.sql.expression.insert` construct. - * a :func:`sqlalchemy.sql.expression.update` construct. - * a :func:`sqlalchemy.sql.expression.delete` construct. - * Any "executable" described in SQLAlchemy Core documentation, - noting that no result set is returned. - - .. note:: when passing a plain string, the statement is coerced into - a :func:`sqlalchemy.sql.expression.text` construct. This construct - considers symbols with colons, e.g. ``:foo`` to be bound parameters. - To avoid this, ensure that colon symbols are escaped, e.g. - ``\:foo``. - - :param execution_options: Optional dictionary of - execution options, will be passed to - :meth:`sqlalchemy.engine.Connection.execution_options`. - """ - -def f(name: str) -> conv: - """Indicate a string name that has already had a naming convention - applied to it. - - This feature combines with the SQLAlchemy ``naming_convention`` feature - to disambiguate constraint names that have already had naming - conventions applied to them, versus those that have not. This is - necessary in the case that the ``"%(constraint_name)s"`` token - is used within a naming convention, so that it can be identified - that this particular name should remain fixed. - - If the :meth:`.Operations.f` is used on a constraint, the naming - convention will not take effect:: - - op.add_column("t", "x", Boolean(name=op.f("ck_bool_t_x"))) - - Above, the CHECK constraint generated will have the name - ``ck_bool_t_x`` regardless of whether or not a naming convention is - in use. - - Alternatively, if a naming convention is in use, and 'f' is not used, - names will be converted along conventions. If the ``target_metadata`` - contains the naming convention - ``{"ck": "ck_bool_%(table_name)s_%(constraint_name)s"}``, then the - output of the following: - - op.add_column("t", "x", Boolean(name="x")) - - will be:: - - CONSTRAINT ck_bool_t_x CHECK (x in (1, 0))) - - The function is rendered in the output of autogenerate when - a particular constraint name is already converted. - - """ - -def get_bind() -> Connection: - """Return the current 'bind'. - - Under normal circumstances, this is the - :class:`~sqlalchemy.engine.Connection` currently being used - to emit SQL to the database. - - In a SQL script context, this value is ``None``. [TODO: verify this] - - """ - -def get_context() -> MigrationContext: - """Return the :class:`.MigrationContext` object that's - currently in use. - - """ - -def implementation_for(op_cls: Any) -> Callable[[_C], _C]: - """Register an implementation for a given :class:`.MigrateOperation`. - - This is part of the operation extensibility API. - - .. seealso:: - - :ref:`operation_plugins` - example of use - - """ - -def inline_literal( - value: Union[str, int], type_: Optional[TypeEngine[Any]] = None -) -> _literal_bindparam: - r"""Produce an 'inline literal' expression, suitable for - using in an INSERT, UPDATE, or DELETE statement. - - When using Alembic in "offline" mode, CRUD operations - aren't compatible with SQLAlchemy's default behavior surrounding - literal values, - which is that they are converted into bound values and passed - separately into the ``execute()`` method of the DBAPI cursor. - An offline SQL - script needs to have these rendered inline. While it should - always be noted that inline literal values are an **enormous** - security hole in an application that handles untrusted input, - a schema migration is not run in this context, so - literals are safe to render inline, with the caveat that - advanced types like dates may not be supported directly - by SQLAlchemy. - - See :meth:`.Operations.execute` for an example usage of - :meth:`.Operations.inline_literal`. - - The environment can also be configured to attempt to render - "literal" values inline automatically, for those simple types - that are supported by the dialect; see - :paramref:`.EnvironmentContext.configure.literal_binds` for this - more recently added feature. - - :param value: The value to render. Strings, integers, and simple - numerics should be supported. Other types like boolean, - dates, etc. may or may not be supported yet by various - backends. - :param type\_: optional - a :class:`sqlalchemy.types.TypeEngine` - subclass stating the type of this value. In SQLAlchemy - expressions, this is usually derived automatically - from the Python type of the value itself, as well as - based on the context in which the value is used. - - .. seealso:: - - :paramref:`.EnvironmentContext.configure.literal_binds` - - """ - -@overload -def invoke(operation: CreateTableOp) -> Table: ... -@overload -def invoke( - operation: Union[ - AddConstraintOp, - DropConstraintOp, - CreateIndexOp, - DropIndexOp, - AddColumnOp, - AlterColumnOp, - AlterTableOp, - CreateTableCommentOp, - DropTableCommentOp, - DropColumnOp, - BulkInsertOp, - DropTableOp, - ExecuteSQLOp, - ] -) -> None: ... -@overload -def invoke(operation: MigrateOperation) -> Any: - """Given a :class:`.MigrateOperation`, invoke it in terms of - this :class:`.Operations` instance. - - """ - -def register_operation( - name: str, sourcename: Optional[str] = None -) -> Callable[[Type[_T]], Type[_T]]: - """Register a new operation for this class. - - This method is normally used to add new operations - to the :class:`.Operations` class, and possibly the - :class:`.BatchOperations` class as well. All Alembic migration - operations are implemented via this system, however the system - is also available as a public API to facilitate adding custom - operations. - - .. seealso:: - - :ref:`operation_plugins` - - - """ - -def rename_table( - old_table_name: str, new_table_name: str, *, schema: Optional[str] = None -) -> None: - """Emit an ALTER TABLE to rename a table. - - :param old_table_name: old name. - :param new_table_name: new name. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - -def run_async( - async_function: Callable[..., Awaitable[_T]], *args: Any, **kw_args: Any -) -> _T: - """Invoke the given asynchronous callable, passing an asynchronous - :class:`~sqlalchemy.ext.asyncio.AsyncConnection` as the first - argument. - - This method allows calling async functions from within the - synchronous ``upgrade()`` or ``downgrade()`` alembic migration - method. - - The async connection passed to the callable shares the same - transaction as the connection running in the migration context. - - Any additional arg or kw_arg passed to this function are passed - to the provided async function. - - .. versionadded: 1.11 - - .. note:: - - This method can be called only when alembic is called using - an async dialect. - """ diff --git a/backend/venv/lib/python3.12/site-packages/alembic/operations/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/operations/__init__.py deleted file mode 100644 index 26197cb..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/operations/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from . import toimpl -from .base import AbstractOperations -from .base import BatchOperations -from .base import Operations -from .ops import MigrateOperation -from .ops import MigrationScript - - -__all__ = [ - "AbstractOperations", - "Operations", - "BatchOperations", - "MigrateOperation", - "MigrationScript", -] diff --git a/backend/venv/lib/python3.12/site-packages/alembic/operations/base.py b/backend/venv/lib/python3.12/site-packages/alembic/operations/base.py deleted file mode 100644 index 9b52fa6..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/operations/base.py +++ /dev/null @@ -1,1907 +0,0 @@ -# mypy: allow-untyped-calls - -from __future__ import annotations - -from contextlib import contextmanager -import re -import textwrap -from typing import Any -from typing import Awaitable -from typing import Callable -from typing import Dict -from typing import Iterator -from typing import List # noqa -from typing import Mapping -from typing import NoReturn -from typing import Optional -from typing import overload -from typing import Sequence # noqa -from typing import Tuple -from typing import Type # noqa -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union - -from sqlalchemy.sql.elements import conv - -from . import batch -from . import schemaobj -from .. import util -from ..util import sqla_compat -from ..util.compat import formatannotation_fwdref -from ..util.compat import inspect_formatargspec -from ..util.compat import inspect_getfullargspec -from ..util.sqla_compat import _literal_bindparam - - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy import Table - from sqlalchemy.engine import Connection - from sqlalchemy.sql import Executable - from sqlalchemy.sql.expression import ColumnElement - from sqlalchemy.sql.expression import TableClause - from sqlalchemy.sql.expression import TextClause - from sqlalchemy.sql.functions import Function - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import Computed - from sqlalchemy.sql.schema import Identity - from sqlalchemy.sql.schema import SchemaItem - from sqlalchemy.types import TypeEngine - - from .batch import BatchOperationsImpl - from .ops import AddColumnOp - from .ops import AddConstraintOp - from .ops import AlterColumnOp - from .ops import AlterTableOp - from .ops import BulkInsertOp - from .ops import CreateIndexOp - from .ops import CreateTableCommentOp - from .ops import CreateTableOp - from .ops import DropColumnOp - from .ops import DropConstraintOp - from .ops import DropIndexOp - from .ops import DropTableCommentOp - from .ops import DropTableOp - from .ops import ExecuteSQLOp - from .ops import MigrateOperation - from ..ddl import DefaultImpl - from ..runtime.migration import MigrationContext -__all__ = ("Operations", "BatchOperations") -_T = TypeVar("_T") - -_C = TypeVar("_C", bound=Callable[..., Any]) - - -class AbstractOperations(util.ModuleClsProxy): - """Base class for Operations and BatchOperations. - - .. versionadded:: 1.11.0 - - """ - - impl: Union[DefaultImpl, BatchOperationsImpl] - _to_impl = util.Dispatcher() - - def __init__( - self, - migration_context: MigrationContext, - impl: Optional[BatchOperationsImpl] = None, - ) -> None: - """Construct a new :class:`.Operations` - - :param migration_context: a :class:`.MigrationContext` - instance. - - """ - self.migration_context = migration_context - if impl is None: - self.impl = migration_context.impl - else: - self.impl = impl - - self.schema_obj = schemaobj.SchemaObjects(migration_context) - - @classmethod - def register_operation( - cls, name: str, sourcename: Optional[str] = None - ) -> Callable[[Type[_T]], Type[_T]]: - """Register a new operation for this class. - - This method is normally used to add new operations - to the :class:`.Operations` class, and possibly the - :class:`.BatchOperations` class as well. All Alembic migration - operations are implemented via this system, however the system - is also available as a public API to facilitate adding custom - operations. - - .. seealso:: - - :ref:`operation_plugins` - - - """ - - def register(op_cls: Type[_T]) -> Type[_T]: - if sourcename is None: - fn = getattr(op_cls, name) - source_name = fn.__name__ - else: - fn = getattr(op_cls, sourcename) - source_name = fn.__name__ - - spec = inspect_getfullargspec(fn) - - name_args = spec[0] - assert name_args[0:2] == ["cls", "operations"] - - name_args[0:2] = ["self"] - - args = inspect_formatargspec( - *spec, formatannotation=formatannotation_fwdref - ) - num_defaults = len(spec[3]) if spec[3] else 0 - - defaulted_vals: Tuple[Any, ...] - - if num_defaults: - defaulted_vals = tuple(name_args[0 - num_defaults :]) - else: - defaulted_vals = () - - defaulted_vals += tuple(spec[4]) - # here, we are using formatargspec in a different way in order - # to get a string that will re-apply incoming arguments to a new - # function call - - apply_kw = inspect_formatargspec( - name_args + spec[4], - spec[1], - spec[2], - defaulted_vals, - formatvalue=lambda x: "=" + x, - formatannotation=formatannotation_fwdref, - ) - - args = re.sub( - r'[_]?ForwardRef\(([\'"].+?[\'"])\)', - lambda m: m.group(1), - args, - ) - - func_text = textwrap.dedent( - """\ - def %(name)s%(args)s: - %(doc)r - return op_cls.%(source_name)s%(apply_kw)s - """ - % { - "name": name, - "source_name": source_name, - "args": args, - "apply_kw": apply_kw, - "doc": fn.__doc__, - } - ) - - globals_ = dict(globals()) - globals_.update({"op_cls": op_cls}) - lcl: Dict[str, Any] = {} - - exec(func_text, globals_, lcl) - setattr(cls, name, lcl[name]) - fn.__func__.__doc__ = ( - "This method is proxied on " - "the :class:`.%s` class, via the :meth:`.%s.%s` method." - % (cls.__name__, cls.__name__, name) - ) - if hasattr(fn, "_legacy_translations"): - lcl[name]._legacy_translations = fn._legacy_translations - return op_cls - - return register - - @classmethod - def implementation_for(cls, op_cls: Any) -> Callable[[_C], _C]: - """Register an implementation for a given :class:`.MigrateOperation`. - - This is part of the operation extensibility API. - - .. seealso:: - - :ref:`operation_plugins` - example of use - - """ - - def decorate(fn: _C) -> _C: - cls._to_impl.dispatch_for(op_cls)(fn) - return fn - - return decorate - - @classmethod - @contextmanager - def context( - cls, migration_context: MigrationContext - ) -> Iterator[Operations]: - op = Operations(migration_context) - op._install_proxy() - yield op - op._remove_proxy() - - @contextmanager - def batch_alter_table( - self, - table_name: str, - schema: Optional[str] = None, - recreate: Literal["auto", "always", "never"] = "auto", - partial_reordering: Optional[Tuple[Any, ...]] = None, - copy_from: Optional[Table] = None, - table_args: Tuple[Any, ...] = (), - table_kwargs: Mapping[str, Any] = util.immutabledict(), - reflect_args: Tuple[Any, ...] = (), - reflect_kwargs: Mapping[str, Any] = util.immutabledict(), - naming_convention: Optional[Dict[str, str]] = None, - ) -> Iterator[BatchOperations]: - """Invoke a series of per-table migrations in batch. - - Batch mode allows a series of operations specific to a table - to be syntactically grouped together, and allows for alternate - modes of table migration, in particular the "recreate" style of - migration required by SQLite. - - "recreate" style is as follows: - - 1. A new table is created with the new specification, based on the - migration directives within the batch, using a temporary name. - - 2. the data copied from the existing table to the new table. - - 3. the existing table is dropped. - - 4. the new table is renamed to the existing table name. - - The directive by default will only use "recreate" style on the - SQLite backend, and only if directives are present which require - this form, e.g. anything other than ``add_column()``. The batch - operation on other backends will proceed using standard ALTER TABLE - operations. - - The method is used as a context manager, which returns an instance - of :class:`.BatchOperations`; this object is the same as - :class:`.Operations` except that table names and schema names - are omitted. E.g.:: - - with op.batch_alter_table("some_table") as batch_op: - batch_op.add_column(Column("foo", Integer)) - batch_op.drop_column("bar") - - The operations within the context manager are invoked at once - when the context is ended. When run against SQLite, if the - migrations include operations not supported by SQLite's ALTER TABLE, - the entire table will be copied to a new one with the new - specification, moving all data across as well. - - The copy operation by default uses reflection to retrieve the current - structure of the table, and therefore :meth:`.batch_alter_table` - in this mode requires that the migration is run in "online" mode. - The ``copy_from`` parameter may be passed which refers to an existing - :class:`.Table` object, which will bypass this reflection step. - - .. note:: The table copy operation will currently not copy - CHECK constraints, and may not copy UNIQUE constraints that are - unnamed, as is possible on SQLite. See the section - :ref:`sqlite_batch_constraints` for workarounds. - - :param table_name: name of table - :param schema: optional schema name. - :param recreate: under what circumstances the table should be - recreated. At its default of ``"auto"``, the SQLite dialect will - recreate the table if any operations other than ``add_column()``, - ``create_index()``, or ``drop_index()`` are - present. Other options include ``"always"`` and ``"never"``. - :param copy_from: optional :class:`~sqlalchemy.schema.Table` object - that will act as the structure of the table being copied. If omitted, - table reflection is used to retrieve the structure of the table. - - .. seealso:: - - :ref:`batch_offline_mode` - - :paramref:`~.Operations.batch_alter_table.reflect_args` - - :paramref:`~.Operations.batch_alter_table.reflect_kwargs` - - :param reflect_args: a sequence of additional positional arguments that - will be applied to the table structure being reflected / copied; - this may be used to pass column and constraint overrides to the - table that will be reflected, in lieu of passing the whole - :class:`~sqlalchemy.schema.Table` using - :paramref:`~.Operations.batch_alter_table.copy_from`. - :param reflect_kwargs: a dictionary of additional keyword arguments - that will be applied to the table structure being copied; this may be - used to pass additional table and reflection options to the table that - will be reflected, in lieu of passing the whole - :class:`~sqlalchemy.schema.Table` using - :paramref:`~.Operations.batch_alter_table.copy_from`. - :param table_args: a sequence of additional positional arguments that - will be applied to the new :class:`~sqlalchemy.schema.Table` when - created, in addition to those copied from the source table. - This may be used to provide additional constraints such as CHECK - constraints that may not be reflected. - :param table_kwargs: a dictionary of additional keyword arguments - that will be applied to the new :class:`~sqlalchemy.schema.Table` - when created, in addition to those copied from the source table. - This may be used to provide for additional table options that may - not be reflected. - :param naming_convention: a naming convention dictionary of the form - described at :ref:`autogen_naming_conventions` which will be applied - to the :class:`~sqlalchemy.schema.MetaData` during the reflection - process. This is typically required if one wants to drop SQLite - constraints, as these constraints will not have names when - reflected on this backend. Requires SQLAlchemy **0.9.4** or greater. - - .. seealso:: - - :ref:`dropping_sqlite_foreign_keys` - - :param partial_reordering: a list of tuples, each suggesting a desired - ordering of two or more columns in the newly created table. Requires - that :paramref:`.batch_alter_table.recreate` is set to ``"always"``. - Examples, given a table with columns "a", "b", "c", and "d": - - Specify the order of all columns:: - - with op.batch_alter_table( - "some_table", - recreate="always", - partial_reordering=[("c", "d", "a", "b")], - ) as batch_op: - pass - - Ensure "d" appears before "c", and "b", appears before "a":: - - with op.batch_alter_table( - "some_table", - recreate="always", - partial_reordering=[("d", "c"), ("b", "a")], - ) as batch_op: - pass - - The ordering of columns not included in the partial_reordering - set is undefined. Therefore it is best to specify the complete - ordering of all columns for best results. - - .. note:: batch mode requires SQLAlchemy 0.8 or above. - - .. seealso:: - - :ref:`batch_migrations` - - """ - impl = batch.BatchOperationsImpl( - self, - table_name, - schema, - recreate, - copy_from, - table_args, - table_kwargs, - reflect_args, - reflect_kwargs, - naming_convention, - partial_reordering, - ) - batch_op = BatchOperations(self.migration_context, impl=impl) - yield batch_op - impl.flush() - - def get_context(self) -> MigrationContext: - """Return the :class:`.MigrationContext` object that's - currently in use. - - """ - - return self.migration_context - - @overload - def invoke(self, operation: CreateTableOp) -> Table: ... - - @overload - def invoke( - self, - operation: Union[ - AddConstraintOp, - DropConstraintOp, - CreateIndexOp, - DropIndexOp, - AddColumnOp, - AlterColumnOp, - AlterTableOp, - CreateTableCommentOp, - DropTableCommentOp, - DropColumnOp, - BulkInsertOp, - DropTableOp, - ExecuteSQLOp, - ], - ) -> None: ... - - @overload - def invoke(self, operation: MigrateOperation) -> Any: ... - - def invoke(self, operation: MigrateOperation) -> Any: - """Given a :class:`.MigrateOperation`, invoke it in terms of - this :class:`.Operations` instance. - - """ - fn = self._to_impl.dispatch( - operation, self.migration_context.impl.__dialect__ - ) - return fn(self, operation) - - def f(self, name: str) -> conv: - """Indicate a string name that has already had a naming convention - applied to it. - - This feature combines with the SQLAlchemy ``naming_convention`` feature - to disambiguate constraint names that have already had naming - conventions applied to them, versus those that have not. This is - necessary in the case that the ``"%(constraint_name)s"`` token - is used within a naming convention, so that it can be identified - that this particular name should remain fixed. - - If the :meth:`.Operations.f` is used on a constraint, the naming - convention will not take effect:: - - op.add_column("t", "x", Boolean(name=op.f("ck_bool_t_x"))) - - Above, the CHECK constraint generated will have the name - ``ck_bool_t_x`` regardless of whether or not a naming convention is - in use. - - Alternatively, if a naming convention is in use, and 'f' is not used, - names will be converted along conventions. If the ``target_metadata`` - contains the naming convention - ``{"ck": "ck_bool_%(table_name)s_%(constraint_name)s"}``, then the - output of the following: - - op.add_column("t", "x", Boolean(name="x")) - - will be:: - - CONSTRAINT ck_bool_t_x CHECK (x in (1, 0))) - - The function is rendered in the output of autogenerate when - a particular constraint name is already converted. - - """ - return conv(name) - - def inline_literal( - self, value: Union[str, int], type_: Optional[TypeEngine[Any]] = None - ) -> _literal_bindparam: - r"""Produce an 'inline literal' expression, suitable for - using in an INSERT, UPDATE, or DELETE statement. - - When using Alembic in "offline" mode, CRUD operations - aren't compatible with SQLAlchemy's default behavior surrounding - literal values, - which is that they are converted into bound values and passed - separately into the ``execute()`` method of the DBAPI cursor. - An offline SQL - script needs to have these rendered inline. While it should - always be noted that inline literal values are an **enormous** - security hole in an application that handles untrusted input, - a schema migration is not run in this context, so - literals are safe to render inline, with the caveat that - advanced types like dates may not be supported directly - by SQLAlchemy. - - See :meth:`.Operations.execute` for an example usage of - :meth:`.Operations.inline_literal`. - - The environment can also be configured to attempt to render - "literal" values inline automatically, for those simple types - that are supported by the dialect; see - :paramref:`.EnvironmentContext.configure.literal_binds` for this - more recently added feature. - - :param value: The value to render. Strings, integers, and simple - numerics should be supported. Other types like boolean, - dates, etc. may or may not be supported yet by various - backends. - :param type\_: optional - a :class:`sqlalchemy.types.TypeEngine` - subclass stating the type of this value. In SQLAlchemy - expressions, this is usually derived automatically - from the Python type of the value itself, as well as - based on the context in which the value is used. - - .. seealso:: - - :paramref:`.EnvironmentContext.configure.literal_binds` - - """ - return sqla_compat._literal_bindparam(None, value, type_=type_) - - def get_bind(self) -> Connection: - """Return the current 'bind'. - - Under normal circumstances, this is the - :class:`~sqlalchemy.engine.Connection` currently being used - to emit SQL to the database. - - In a SQL script context, this value is ``None``. [TODO: verify this] - - """ - return self.migration_context.impl.bind # type: ignore[return-value] - - def run_async( - self, - async_function: Callable[..., Awaitable[_T]], - *args: Any, - **kw_args: Any, - ) -> _T: - """Invoke the given asynchronous callable, passing an asynchronous - :class:`~sqlalchemy.ext.asyncio.AsyncConnection` as the first - argument. - - This method allows calling async functions from within the - synchronous ``upgrade()`` or ``downgrade()`` alembic migration - method. - - The async connection passed to the callable shares the same - transaction as the connection running in the migration context. - - Any additional arg or kw_arg passed to this function are passed - to the provided async function. - - .. versionadded: 1.11 - - .. note:: - - This method can be called only when alembic is called using - an async dialect. - """ - if not sqla_compat.sqla_14_18: - raise NotImplementedError("SQLAlchemy 1.4.18+ required") - sync_conn = self.get_bind() - if sync_conn is None: - raise NotImplementedError("Cannot call run_async in SQL mode") - if not sync_conn.dialect.is_async: - raise ValueError("Cannot call run_async with a sync engine") - from sqlalchemy.ext.asyncio import AsyncConnection - from sqlalchemy.util import await_only - - async_conn = AsyncConnection._retrieve_proxy_for_target(sync_conn) - return await_only(async_function(async_conn, *args, **kw_args)) - - -class Operations(AbstractOperations): - """Define high level migration operations. - - Each operation corresponds to some schema migration operation, - executed against a particular :class:`.MigrationContext` - which in turn represents connectivity to a database, - or a file output stream. - - While :class:`.Operations` is normally configured as - part of the :meth:`.EnvironmentContext.run_migrations` - method called from an ``env.py`` script, a standalone - :class:`.Operations` instance can be - made for use cases external to regular Alembic - migrations by passing in a :class:`.MigrationContext`:: - - from alembic.migration import MigrationContext - from alembic.operations import Operations - - conn = myengine.connect() - ctx = MigrationContext.configure(conn) - op = Operations(ctx) - - op.alter_column("t", "c", nullable=True) - - Note that as of 0.8, most of the methods on this class are produced - dynamically using the :meth:`.Operations.register_operation` - method. - - """ - - if TYPE_CHECKING: - # START STUB FUNCTIONS: op_cls - # ### the following stubs are generated by tools/write_pyi.py ### - # ### do not edit ### - - def add_column( - self, - table_name: str, - column: Column[Any], - *, - schema: Optional[str] = None, - ) -> None: - """Issue an "add column" instruction using the current - migration context. - - e.g.:: - - from alembic import op - from sqlalchemy import Column, String - - op.add_column("organization", Column("name", String())) - - The :meth:`.Operations.add_column` method typically corresponds - to the SQL command "ALTER TABLE... ADD COLUMN". Within the scope - of this command, the column's name, datatype, nullability, - and optional server-generated defaults may be indicated. - - .. note:: - - With the exception of NOT NULL constraints or single-column FOREIGN - KEY constraints, other kinds of constraints such as PRIMARY KEY, - UNIQUE or CHECK constraints **cannot** be generated using this - method; for these constraints, refer to operations such as - :meth:`.Operations.create_primary_key` and - :meth:`.Operations.create_check_constraint`. In particular, the - following :class:`~sqlalchemy.schema.Column` parameters are - **ignored**: - - * :paramref:`~sqlalchemy.schema.Column.primary_key` - SQL databases - typically do not support an ALTER operation that can add - individual columns one at a time to an existing primary key - constraint, therefore it's less ambiguous to use the - :meth:`.Operations.create_primary_key` method, which assumes no - existing primary key constraint is present. - * :paramref:`~sqlalchemy.schema.Column.unique` - use the - :meth:`.Operations.create_unique_constraint` method - * :paramref:`~sqlalchemy.schema.Column.index` - use the - :meth:`.Operations.create_index` method - - - The provided :class:`~sqlalchemy.schema.Column` object may include a - :class:`~sqlalchemy.schema.ForeignKey` constraint directive, - referencing a remote table name. For this specific type of constraint, - Alembic will automatically emit a second ALTER statement in order to - add the single-column FOREIGN KEY constraint separately:: - - from alembic import op - from sqlalchemy import Column, INTEGER, ForeignKey - - op.add_column( - "organization", - Column("account_id", INTEGER, ForeignKey("accounts.id")), - ) - - The column argument passed to :meth:`.Operations.add_column` is a - :class:`~sqlalchemy.schema.Column` construct, used in the same way it's - used in SQLAlchemy. In particular, values or functions to be indicated - as producing the column's default value on the database side are - specified using the ``server_default`` parameter, and not ``default`` - which only specifies Python-side defaults:: - - from alembic import op - from sqlalchemy import Column, TIMESTAMP, func - - # specify "DEFAULT NOW" along with the column add - op.add_column( - "account", - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - :param table_name: String name of the parent table. - :param column: a :class:`sqlalchemy.schema.Column` object - representing the new column. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ # noqa: E501 - ... - - def alter_column( - self, - table_name: str, - column_name: str, - *, - nullable: Optional[bool] = None, - comment: Union[str, Literal[False], None] = False, - server_default: Any = False, - new_column_name: Optional[str] = None, - type_: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, - existing_type: Union[ - TypeEngine[Any], Type[TypeEngine[Any]], None - ] = None, - existing_server_default: Union[ - str, bool, Identity, Computed, None - ] = False, - existing_nullable: Optional[bool] = None, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - r"""Issue an "alter column" instruction using the - current migration context. - - Generally, only that aspect of the column which - is being changed, i.e. name, type, nullability, - default, needs to be specified. Multiple changes - can also be specified at once and the backend should - "do the right thing", emitting each change either - separately or together as the backend allows. - - MySQL has special requirements here, since MySQL - cannot ALTER a column without a full specification. - When producing MySQL-compatible migration files, - it is recommended that the ``existing_type``, - ``existing_server_default``, and ``existing_nullable`` - parameters be present, if not being altered. - - Type changes which are against the SQLAlchemy - "schema" types :class:`~sqlalchemy.types.Boolean` - and :class:`~sqlalchemy.types.Enum` may also - add or drop constraints which accompany those - types on backends that don't support them natively. - The ``existing_type`` argument is - used in this case to identify and remove a previous - constraint that was bound to the type object. - - :param table_name: string name of the target table. - :param column_name: string name of the target column, - as it exists before the operation begins. - :param nullable: Optional; specify ``True`` or ``False`` - to alter the column's nullability. - :param server_default: Optional; specify a string - SQL expression, :func:`~sqlalchemy.sql.expression.text`, - or :class:`~sqlalchemy.schema.DefaultClause` to indicate - an alteration to the column's default value. - Set to ``None`` to have the default removed. - :param comment: optional string text of a new comment to add to the - column. - :param new_column_name: Optional; specify a string name here to - indicate the new name within a column rename operation. - :param type\_: Optional; a :class:`~sqlalchemy.types.TypeEngine` - type object to specify a change to the column's type. - For SQLAlchemy types that also indicate a constraint (i.e. - :class:`~sqlalchemy.types.Boolean`, :class:`~sqlalchemy.types.Enum`), - the constraint is also generated. - :param autoincrement: set the ``AUTO_INCREMENT`` flag of the column; - currently understood by the MySQL dialect. - :param existing_type: Optional; a - :class:`~sqlalchemy.types.TypeEngine` - type object to specify the previous type. This - is required for all MySQL column alter operations that - don't otherwise specify a new type, as well as for - when nullability is being changed on a SQL Server - column. It is also used if the type is a so-called - SQLAlchemy "schema" type which may define a constraint (i.e. - :class:`~sqlalchemy.types.Boolean`, - :class:`~sqlalchemy.types.Enum`), - so that the constraint can be dropped. - :param existing_server_default: Optional; The existing - default value of the column. Required on MySQL if - an existing default is not being changed; else MySQL - removes the default. - :param existing_nullable: Optional; the existing nullability - of the column. Required on MySQL if the existing nullability - is not being changed; else MySQL sets this to NULL. - :param existing_autoincrement: Optional; the existing autoincrement - of the column. Used for MySQL's system of altering a column - that specifies ``AUTO_INCREMENT``. - :param existing_comment: string text of the existing comment on the - column to be maintained. Required on MySQL if the existing comment - on the column is not being changed. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param postgresql_using: String argument which will indicate a - SQL expression to render within the Postgresql-specific USING clause - within ALTER COLUMN. This string is taken directly as raw SQL which - must explicitly include any necessary quoting or escaping of tokens - within the expression. - - """ # noqa: E501 - ... - - def bulk_insert( - self, - table: Union[Table, TableClause], - rows: List[Dict[str, Any]], - *, - multiinsert: bool = True, - ) -> None: - """Issue a "bulk insert" operation using the current - migration context. - - This provides a means of representing an INSERT of multiple rows - which works equally well in the context of executing on a live - connection as well as that of generating a SQL script. In the - case of a SQL script, the values are rendered inline into the - statement. - - e.g.:: - - from alembic import op - from datetime import date - from sqlalchemy.sql import table, column - from sqlalchemy import String, Integer, Date - - # Create an ad-hoc table to use for the insert statement. - accounts_table = table( - "account", - column("id", Integer), - column("name", String), - column("create_date", Date), - ) - - op.bulk_insert( - accounts_table, - [ - { - "id": 1, - "name": "John Smith", - "create_date": date(2010, 10, 5), - }, - { - "id": 2, - "name": "Ed Williams", - "create_date": date(2007, 5, 27), - }, - { - "id": 3, - "name": "Wendy Jones", - "create_date": date(2008, 8, 15), - }, - ], - ) - - When using --sql mode, some datatypes may not render inline - automatically, such as dates and other special types. When this - issue is present, :meth:`.Operations.inline_literal` may be used:: - - op.bulk_insert( - accounts_table, - [ - { - "id": 1, - "name": "John Smith", - "create_date": op.inline_literal("2010-10-05"), - }, - { - "id": 2, - "name": "Ed Williams", - "create_date": op.inline_literal("2007-05-27"), - }, - { - "id": 3, - "name": "Wendy Jones", - "create_date": op.inline_literal("2008-08-15"), - }, - ], - multiinsert=False, - ) - - When using :meth:`.Operations.inline_literal` in conjunction with - :meth:`.Operations.bulk_insert`, in order for the statement to work - in "online" (e.g. non --sql) mode, the - :paramref:`~.Operations.bulk_insert.multiinsert` - flag should be set to ``False``, which will have the effect of - individual INSERT statements being emitted to the database, each - with a distinct VALUES clause, so that the "inline" values can - still be rendered, rather than attempting to pass the values - as bound parameters. - - :param table: a table object which represents the target of the INSERT. - - :param rows: a list of dictionaries indicating rows. - - :param multiinsert: when at its default of True and --sql mode is not - enabled, the INSERT statement will be executed using - "executemany()" style, where all elements in the list of - dictionaries are passed as bound parameters in a single - list. Setting this to False results in individual INSERT - statements being emitted per parameter set, and is needed - in those cases where non-literal values are present in the - parameter sets. - - """ # noqa: E501 - ... - - def create_check_constraint( - self, - constraint_name: Optional[str], - table_name: str, - condition: Union[str, ColumnElement[bool], TextClause], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - """Issue a "create check constraint" instruction using the - current migration context. - - e.g.:: - - from alembic import op - from sqlalchemy.sql import column, func - - op.create_check_constraint( - "ck_user_name_len", - "user", - func.len(column("name")) > 5, - ) - - CHECK constraints are usually against a SQL expression, so ad-hoc - table metadata is usually needed. The function will convert the given - arguments into a :class:`sqlalchemy.schema.CheckConstraint` bound - to an anonymous table in order to emit the CREATE statement. - - :param name: Name of the check constraint. The name is necessary - so that an ALTER statement can be emitted. For setups that - use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the source table. - :param condition: SQL expression that's the condition of the - constraint. Can be a string or SQLAlchemy expression language - structure. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ # noqa: E501 - ... - - def create_exclude_constraint( - self, - constraint_name: str, - table_name: str, - *elements: Any, - **kw: Any, - ) -> Optional[Table]: - """Issue an alter to create an EXCLUDE constraint using the - current migration context. - - .. note:: This method is Postgresql specific, and additionally - requires at least SQLAlchemy 1.0. - - e.g.:: - - from alembic import op - - op.create_exclude_constraint( - "user_excl", - "user", - ("period", "&&"), - ("group", "="), - where=("group != 'some group'"), - ) - - Note that the expressions work the same way as that of - the ``ExcludeConstraint`` object itself; if plain strings are - passed, quoting rules must be applied manually. - - :param name: Name of the constraint. - :param table_name: String name of the source table. - :param elements: exclude conditions. - :param where: SQL expression or SQL string with optional WHERE - clause. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. - - """ # noqa: E501 - ... - - def create_foreign_key( - self, - constraint_name: Optional[str], - source_table: str, - referent_table: str, - local_cols: List[str], - remote_cols: List[str], - *, - onupdate: Optional[str] = None, - ondelete: Optional[str] = None, - deferrable: Optional[bool] = None, - initially: Optional[str] = None, - match: Optional[str] = None, - source_schema: Optional[str] = None, - referent_schema: Optional[str] = None, - **dialect_kw: Any, - ) -> None: - """Issue a "create foreign key" instruction using the - current migration context. - - e.g.:: - - from alembic import op - - op.create_foreign_key( - "fk_user_address", - "address", - "user", - ["user_id"], - ["id"], - ) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.ForeignKeyConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param constraint_name: Name of the foreign key constraint. The name - is necessary so that an ALTER statement can be emitted. For setups - that use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param source_table: String name of the source table. - :param referent_table: String name of the destination table. - :param local_cols: a list of string column names in the - source table. - :param remote_cols: a list of string column names in the - remote table. - :param onupdate: Optional string. If set, emit ON UPDATE when - issuing DDL for this constraint. Typical values include CASCADE, - DELETE and RESTRICT. - :param ondelete: Optional string. If set, emit ON DELETE when - issuing DDL for this constraint. Typical values include CASCADE, - DELETE and RESTRICT. - :param deferrable: optional bool. If set, emit DEFERRABLE or NOT - DEFERRABLE when issuing DDL for this constraint. - :param source_schema: Optional schema name of the source table. - :param referent_schema: Optional schema name of the destination table. - - """ # noqa: E501 - ... - - def create_index( - self, - index_name: Optional[str], - table_name: str, - columns: Sequence[Union[str, TextClause, Function[Any]]], - *, - schema: Optional[str] = None, - unique: bool = False, - if_not_exists: Optional[bool] = None, - **kw: Any, - ) -> None: - r"""Issue a "create index" instruction using the current - migration context. - - e.g.:: - - from alembic import op - - op.create_index("ik_test", "t1", ["foo", "bar"]) - - Functional indexes can be produced by using the - :func:`sqlalchemy.sql.expression.text` construct:: - - from alembic import op - from sqlalchemy import text - - op.create_index("ik_test", "t1", [text("lower(foo)")]) - - :param index_name: name of the index. - :param table_name: name of the owning table. - :param columns: a list consisting of string column names and/or - :func:`~sqlalchemy.sql.expression.text` constructs. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param unique: If True, create a unique index. - - :param quote: Force quoting of this column's name on or off, - corresponding to ``True`` or ``False``. When left at its default - of ``None``, the column identifier will be quoted according to - whether the name is case sensitive (identifiers with at least one - upper case character are treated as case sensitive), or if it's a - reserved word. This flag is only needed to force quoting of a - reserved word which is not known by the SQLAlchemy dialect. - - :param if_not_exists: If True, adds IF NOT EXISTS operator when - creating the new index. - - .. versionadded:: 1.12.0 - - :param \**kw: Additional keyword arguments not mentioned above are - dialect specific, and passed in the form - ``_``. - See the documentation regarding an individual dialect at - :ref:`dialect_toplevel` for detail on documented arguments. - - """ # noqa: E501 - ... - - def create_primary_key( - self, - constraint_name: Optional[str], - table_name: str, - columns: List[str], - *, - schema: Optional[str] = None, - ) -> None: - """Issue a "create primary key" instruction using the current - migration context. - - e.g.:: - - from alembic import op - - op.create_primary_key("pk_my_table", "my_table", ["id", "version"]) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.PrimaryKeyConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param constraint_name: Name of the primary key constraint. The name - is necessary so that an ALTER statement can be emitted. For setups - that use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions` - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the target table. - :param columns: a list of string column names to be applied to the - primary key constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ # noqa: E501 - ... - - def create_table( - self, - table_name: str, - *columns: SchemaItem, - if_not_exists: Optional[bool] = None, - **kw: Any, - ) -> Table: - r"""Issue a "create table" instruction using the current migration - context. - - This directive receives an argument list similar to that of the - traditional :class:`sqlalchemy.schema.Table` construct, but without the - metadata:: - - from sqlalchemy import INTEGER, VARCHAR, NVARCHAR, Column - from alembic import op - - op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("name", VARCHAR(50), nullable=False), - Column("description", NVARCHAR(200)), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - Note that :meth:`.create_table` accepts - :class:`~sqlalchemy.schema.Column` - constructs directly from the SQLAlchemy library. In particular, - default values to be created on the database side are - specified using the ``server_default`` parameter, and not - ``default`` which only specifies Python-side defaults:: - - from alembic import op - from sqlalchemy import Column, TIMESTAMP, func - - # specify "DEFAULT NOW" along with the "timestamp" column - op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - The function also returns a newly created - :class:`~sqlalchemy.schema.Table` object, corresponding to the table - specification given, which is suitable for - immediate SQL operations, in particular - :meth:`.Operations.bulk_insert`:: - - from sqlalchemy import INTEGER, VARCHAR, NVARCHAR, Column - from alembic import op - - account_table = op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("name", VARCHAR(50), nullable=False), - Column("description", NVARCHAR(200)), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - op.bulk_insert( - account_table, - [ - {"name": "A1", "description": "account 1"}, - {"name": "A2", "description": "account 2"}, - ], - ) - - :param table_name: Name of the table - :param \*columns: collection of :class:`~sqlalchemy.schema.Column` - objects within - the table, as well as optional :class:`~sqlalchemy.schema.Constraint` - objects - and :class:`~.sqlalchemy.schema.Index` objects. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param if_not_exists: If True, adds IF NOT EXISTS operator when - creating the new table. - - .. versionadded:: 1.13.3 - :param \**kw: Other keyword arguments are passed to the underlying - :class:`sqlalchemy.schema.Table` object created for the command. - - :return: the :class:`~sqlalchemy.schema.Table` object corresponding - to the parameters given. - - """ # noqa: E501 - ... - - def create_table_comment( - self, - table_name: str, - comment: Optional[str], - *, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, - ) -> None: - """Emit a COMMENT ON operation to set the comment for a table. - - :param table_name: string name of the target table. - :param comment: string value of the comment being registered against - the specified table. - :param existing_comment: String value of a comment - already registered on the specified table, used within autogenerate - so that the operation is reversible, but not required for direct - use. - - .. seealso:: - - :meth:`.Operations.drop_table_comment` - - :paramref:`.Operations.alter_column.comment` - - """ # noqa: E501 - ... - - def create_unique_constraint( - self, - constraint_name: Optional[str], - table_name: str, - columns: Sequence[str], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> Any: - """Issue a "create unique constraint" instruction using the - current migration context. - - e.g.:: - - from alembic import op - op.create_unique_constraint("uq_user_name", "user", ["name"]) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.UniqueConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param name: Name of the unique constraint. The name is necessary - so that an ALTER statement can be emitted. For setups that - use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the source table. - :param columns: a list of string column names in the - source table. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ # noqa: E501 - ... - - def drop_column( - self, - table_name: str, - column_name: str, - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - """Issue a "drop column" instruction using the current - migration context. - - e.g.:: - - drop_column("organization", "account_id") - - :param table_name: name of table - :param column_name: name of column - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param mssql_drop_check: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop the CHECK constraint on the column using a - SQL-script-compatible - block that selects into a @variable from sys.check_constraints, - then exec's a separate DROP CONSTRAINT for that constraint. - :param mssql_drop_default: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop the DEFAULT constraint on the column using a - SQL-script-compatible - block that selects into a @variable from sys.default_constraints, - then exec's a separate DROP CONSTRAINT for that default. - :param mssql_drop_foreign_key: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop a single FOREIGN KEY constraint on the column using a - SQL-script-compatible - block that selects into a @variable from - sys.foreign_keys/sys.foreign_key_columns, - then exec's a separate DROP CONSTRAINT for that default. Only - works if the column has exactly one FK constraint which refers to - it, at the moment. - - """ # noqa: E501 - ... - - def drop_constraint( - self, - constraint_name: str, - table_name: str, - type_: Optional[str] = None, - *, - schema: Optional[str] = None, - ) -> None: - r"""Drop a constraint of the given name, typically via DROP CONSTRAINT. - - :param constraint_name: name of the constraint. - :param table_name: table name. - :param type\_: optional, required on MySQL. can be - 'foreignkey', 'primary', 'unique', or 'check'. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ # noqa: E501 - ... - - def drop_index( - self, - index_name: str, - table_name: Optional[str] = None, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - **kw: Any, - ) -> None: - r"""Issue a "drop index" instruction using the current - migration context. - - e.g.:: - - drop_index("accounts") - - :param index_name: name of the index. - :param table_name: name of the owning table. Some - backends such as Microsoft SQL Server require this. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - :param if_exists: If True, adds IF EXISTS operator when - dropping the index. - - .. versionadded:: 1.12.0 - - :param \**kw: Additional keyword arguments not mentioned above are - dialect specific, and passed in the form - ``_``. - See the documentation regarding an individual dialect at - :ref:`dialect_toplevel` for detail on documented arguments. - - """ # noqa: E501 - ... - - def drop_table( - self, - table_name: str, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - **kw: Any, - ) -> None: - r"""Issue a "drop table" instruction using the current - migration context. - - - e.g.:: - - drop_table("accounts") - - :param table_name: Name of the table - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param if_exists: If True, adds IF EXISTS operator when - dropping the table. - - .. versionadded:: 1.13.3 - :param \**kw: Other keyword arguments are passed to the underlying - :class:`sqlalchemy.schema.Table` object created for the command. - - """ # noqa: E501 - ... - - def drop_table_comment( - self, - table_name: str, - *, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, - ) -> None: - """Issue a "drop table comment" operation to - remove an existing comment set on a table. - - :param table_name: string name of the target table. - :param existing_comment: An optional string value of a comment already - registered on the specified table. - - .. seealso:: - - :meth:`.Operations.create_table_comment` - - :paramref:`.Operations.alter_column.comment` - - """ # noqa: E501 - ... - - def execute( - self, - sqltext: Union[Executable, str], - *, - execution_options: Optional[dict[str, Any]] = None, - ) -> None: - r"""Execute the given SQL using the current migration context. - - The given SQL can be a plain string, e.g.:: - - op.execute("INSERT INTO table (foo) VALUES ('some value')") - - Or it can be any kind of Core SQL Expression construct, such as - below where we use an update construct:: - - from sqlalchemy.sql import table, column - from sqlalchemy import String - from alembic import op - - account = table("account", column("name", String)) - op.execute( - account.update() - .where(account.c.name == op.inline_literal("account 1")) - .values({"name": op.inline_literal("account 2")}) - ) - - Above, we made use of the SQLAlchemy - :func:`sqlalchemy.sql.expression.table` and - :func:`sqlalchemy.sql.expression.column` constructs to make a brief, - ad-hoc table construct just for our UPDATE statement. A full - :class:`~sqlalchemy.schema.Table` construct of course works perfectly - fine as well, though note it's a recommended practice to at least - ensure the definition of a table is self-contained within the migration - script, rather than imported from a module that may break compatibility - with older migrations. - - In a SQL script context, the statement is emitted directly to the - output stream. There is *no* return result, however, as this - function is oriented towards generating a change script - that can run in "offline" mode. Additionally, parameterized - statements are discouraged here, as they *will not work* in offline - mode. Above, we use :meth:`.inline_literal` where parameters are - to be used. - - For full interaction with a connected database where parameters can - also be used normally, use the "bind" available from the context:: - - from alembic import op - - connection = op.get_bind() - - connection.execute( - account.update() - .where(account.c.name == "account 1") - .values({"name": "account 2"}) - ) - - Additionally, when passing the statement as a plain string, it is first - coerced into a :func:`sqlalchemy.sql.expression.text` construct - before being passed along. In the less likely case that the - literal SQL string contains a colon, it must be escaped with a - backslash, as:: - - op.execute(r"INSERT INTO table (foo) VALUES ('\:colon_value')") - - - :param sqltext: Any legal SQLAlchemy expression, including: - - * a string - * a :func:`sqlalchemy.sql.expression.text` construct. - * a :func:`sqlalchemy.sql.expression.insert` construct. - * a :func:`sqlalchemy.sql.expression.update` construct. - * a :func:`sqlalchemy.sql.expression.delete` construct. - * Any "executable" described in SQLAlchemy Core documentation, - noting that no result set is returned. - - .. note:: when passing a plain string, the statement is coerced into - a :func:`sqlalchemy.sql.expression.text` construct. This construct - considers symbols with colons, e.g. ``:foo`` to be bound parameters. - To avoid this, ensure that colon symbols are escaped, e.g. - ``\:foo``. - - :param execution_options: Optional dictionary of - execution options, will be passed to - :meth:`sqlalchemy.engine.Connection.execution_options`. - """ # noqa: E501 - ... - - def rename_table( - self, - old_table_name: str, - new_table_name: str, - *, - schema: Optional[str] = None, - ) -> None: - """Emit an ALTER TABLE to rename a table. - - :param old_table_name: old name. - :param new_table_name: new name. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ # noqa: E501 - ... - - # END STUB FUNCTIONS: op_cls - - -class BatchOperations(AbstractOperations): - """Modifies the interface :class:`.Operations` for batch mode. - - This basically omits the ``table_name`` and ``schema`` parameters - from associated methods, as these are a given when running under batch - mode. - - .. seealso:: - - :meth:`.Operations.batch_alter_table` - - Note that as of 0.8, most of the methods on this class are produced - dynamically using the :meth:`.Operations.register_operation` - method. - - """ - - impl: BatchOperationsImpl - - def _noop(self, operation: Any) -> NoReturn: - raise NotImplementedError( - "The %s method does not apply to a batch table alter operation." - % operation - ) - - if TYPE_CHECKING: - # START STUB FUNCTIONS: batch_op - # ### the following stubs are generated by tools/write_pyi.py ### - # ### do not edit ### - - def add_column( - self, - column: Column[Any], - *, - insert_before: Optional[str] = None, - insert_after: Optional[str] = None, - ) -> None: - """Issue an "add column" instruction using the current - batch migration context. - - .. seealso:: - - :meth:`.Operations.add_column` - - """ # noqa: E501 - ... - - def alter_column( - self, - column_name: str, - *, - nullable: Optional[bool] = None, - comment: Union[str, Literal[False], None] = False, - server_default: Any = False, - new_column_name: Optional[str] = None, - type_: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, - existing_type: Union[ - TypeEngine[Any], Type[TypeEngine[Any]], None - ] = None, - existing_server_default: Union[ - str, bool, Identity, Computed, None - ] = False, - existing_nullable: Optional[bool] = None, - existing_comment: Optional[str] = None, - insert_before: Optional[str] = None, - insert_after: Optional[str] = None, - **kw: Any, - ) -> None: - """Issue an "alter column" instruction using the current - batch migration context. - - Parameters are the same as that of :meth:`.Operations.alter_column`, - as well as the following option(s): - - :param insert_before: String name of an existing column which this - column should be placed before, when creating the new table. - - :param insert_after: String name of an existing column which this - column should be placed after, when creating the new table. If - both :paramref:`.BatchOperations.alter_column.insert_before` - and :paramref:`.BatchOperations.alter_column.insert_after` are - omitted, the column is inserted after the last existing column - in the table. - - .. seealso:: - - :meth:`.Operations.alter_column` - - - """ # noqa: E501 - ... - - def create_check_constraint( - self, - constraint_name: str, - condition: Union[str, ColumnElement[bool], TextClause], - **kw: Any, - ) -> None: - """Issue a "create check constraint" instruction using the - current batch migration context. - - The batch form of this call omits the ``source`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.create_check_constraint` - - """ # noqa: E501 - ... - - def create_exclude_constraint( - self, constraint_name: str, *elements: Any, **kw: Any - ) -> Optional[Table]: - """Issue a "create exclude constraint" instruction using the - current batch migration context. - - .. note:: This method is Postgresql specific, and additionally - requires at least SQLAlchemy 1.0. - - .. seealso:: - - :meth:`.Operations.create_exclude_constraint` - - """ # noqa: E501 - ... - - def create_foreign_key( - self, - constraint_name: Optional[str], - referent_table: str, - local_cols: List[str], - remote_cols: List[str], - *, - referent_schema: Optional[str] = None, - onupdate: Optional[str] = None, - ondelete: Optional[str] = None, - deferrable: Optional[bool] = None, - initially: Optional[str] = None, - match: Optional[str] = None, - **dialect_kw: Any, - ) -> None: - """Issue a "create foreign key" instruction using the - current batch migration context. - - The batch form of this call omits the ``source`` and ``source_schema`` - arguments from the call. - - e.g.:: - - with batch_alter_table("address") as batch_op: - batch_op.create_foreign_key( - "fk_user_address", - "user", - ["user_id"], - ["id"], - ) - - .. seealso:: - - :meth:`.Operations.create_foreign_key` - - """ # noqa: E501 - ... - - def create_index( - self, index_name: str, columns: List[str], **kw: Any - ) -> None: - """Issue a "create index" instruction using the - current batch migration context. - - .. seealso:: - - :meth:`.Operations.create_index` - - """ # noqa: E501 - ... - - def create_primary_key( - self, constraint_name: Optional[str], columns: List[str] - ) -> None: - """Issue a "create primary key" instruction using the - current batch migration context. - - The batch form of this call omits the ``table_name`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.create_primary_key` - - """ # noqa: E501 - ... - - def create_table_comment( - self, - comment: Optional[str], - *, - existing_comment: Optional[str] = None, - ) -> None: - """Emit a COMMENT ON operation to set the comment for a table - using the current batch migration context. - - :param comment: string value of the comment being registered against - the specified table. - :param existing_comment: String value of a comment - already registered on the specified table, used within autogenerate - so that the operation is reversible, but not required for direct - use. - - """ # noqa: E501 - ... - - def create_unique_constraint( - self, constraint_name: str, columns: Sequence[str], **kw: Any - ) -> Any: - """Issue a "create unique constraint" instruction using the - current batch migration context. - - The batch form of this call omits the ``source`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.create_unique_constraint` - - """ # noqa: E501 - ... - - def drop_column(self, column_name: str, **kw: Any) -> None: - """Issue a "drop column" instruction using the current - batch migration context. - - .. seealso:: - - :meth:`.Operations.drop_column` - - """ # noqa: E501 - ... - - def drop_constraint( - self, constraint_name: str, type_: Optional[str] = None - ) -> None: - """Issue a "drop constraint" instruction using the - current batch migration context. - - The batch form of this call omits the ``table_name`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.drop_constraint` - - """ # noqa: E501 - ... - - def drop_index(self, index_name: str, **kw: Any) -> None: - """Issue a "drop index" instruction using the - current batch migration context. - - .. seealso:: - - :meth:`.Operations.drop_index` - - """ # noqa: E501 - ... - - def drop_table_comment( - self, *, existing_comment: Optional[str] = None - ) -> None: - """Issue a "drop table comment" operation to - remove an existing comment set on a table using the current - batch operations context. - - :param existing_comment: An optional string value of a comment already - registered on the specified table. - - """ # noqa: E501 - ... - - def execute( - self, - sqltext: Union[Executable, str], - *, - execution_options: Optional[dict[str, Any]] = None, - ) -> None: - """Execute the given SQL using the current migration context. - - .. seealso:: - - :meth:`.Operations.execute` - - """ # noqa: E501 - ... - - # END STUB FUNCTIONS: batch_op diff --git a/backend/venv/lib/python3.12/site-packages/alembic/operations/batch.py b/backend/venv/lib/python3.12/site-packages/alembic/operations/batch.py deleted file mode 100644 index fd7ab99..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/operations/batch.py +++ /dev/null @@ -1,717 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -from typing import Any -from typing import Dict -from typing import List -from typing import Optional -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import CheckConstraint -from sqlalchemy import Column -from sqlalchemy import ForeignKeyConstraint -from sqlalchemy import Index -from sqlalchemy import MetaData -from sqlalchemy import PrimaryKeyConstraint -from sqlalchemy import schema as sql_schema -from sqlalchemy import Table -from sqlalchemy import types as sqltypes -from sqlalchemy.sql.schema import SchemaEventTarget -from sqlalchemy.util import OrderedDict -from sqlalchemy.util import topological - -from ..util import exc -from ..util.sqla_compat import _columns_for_constraint -from ..util.sqla_compat import _copy -from ..util.sqla_compat import _copy_expression -from ..util.sqla_compat import _ensure_scope_for_ddl -from ..util.sqla_compat import _fk_is_self_referential -from ..util.sqla_compat import _idx_table_bound_expressions -from ..util.sqla_compat import _insert_inline -from ..util.sqla_compat import _is_type_bound -from ..util.sqla_compat import _remove_column_from_collection -from ..util.sqla_compat import _resolve_for_variant -from ..util.sqla_compat import _select -from ..util.sqla_compat import constraint_name_defined -from ..util.sqla_compat import constraint_name_string - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy.engine import Dialect - from sqlalchemy.sql.elements import ColumnClause - from sqlalchemy.sql.elements import quoted_name - from sqlalchemy.sql.functions import Function - from sqlalchemy.sql.schema import Constraint - from sqlalchemy.sql.type_api import TypeEngine - - from ..ddl.impl import DefaultImpl - - -class BatchOperationsImpl: - def __init__( - self, - operations, - table_name, - schema, - recreate, - copy_from, - table_args, - table_kwargs, - reflect_args, - reflect_kwargs, - naming_convention, - partial_reordering, - ): - self.operations = operations - self.table_name = table_name - self.schema = schema - if recreate not in ("auto", "always", "never"): - raise ValueError( - "recreate may be one of 'auto', 'always', or 'never'." - ) - self.recreate = recreate - self.copy_from = copy_from - self.table_args = table_args - self.table_kwargs = dict(table_kwargs) - self.reflect_args = reflect_args - self.reflect_kwargs = dict(reflect_kwargs) - self.reflect_kwargs.setdefault( - "listeners", list(self.reflect_kwargs.get("listeners", ())) - ) - self.reflect_kwargs["listeners"].append( - ("column_reflect", operations.impl.autogen_column_reflect) - ) - self.naming_convention = naming_convention - self.partial_reordering = partial_reordering - self.batch = [] - - @property - def dialect(self) -> Dialect: - return self.operations.impl.dialect - - @property - def impl(self) -> DefaultImpl: - return self.operations.impl - - def _should_recreate(self) -> bool: - if self.recreate == "auto": - return self.operations.impl.requires_recreate_in_batch(self) - elif self.recreate == "always": - return True - else: - return False - - def flush(self) -> None: - should_recreate = self._should_recreate() - - with _ensure_scope_for_ddl(self.impl.connection): - if not should_recreate: - for opname, arg, kw in self.batch: - fn = getattr(self.operations.impl, opname) - fn(*arg, **kw) - else: - if self.naming_convention: - m1 = MetaData(naming_convention=self.naming_convention) - else: - m1 = MetaData() - - if self.copy_from is not None: - existing_table = self.copy_from - reflected = False - else: - if self.operations.migration_context.as_sql: - raise exc.CommandError( - f"This operation cannot proceed in --sql mode; " - f"batch mode with dialect " - f"{self.operations.migration_context.dialect.name} " # noqa: E501 - f"requires a live database connection with which " - f'to reflect the table "{self.table_name}". ' - f"To generate a batch SQL migration script using " - "table " - '"move and copy", a complete Table object ' - f'should be passed to the "copy_from" argument ' - "of the batch_alter_table() method so that table " - "reflection can be skipped." - ) - - existing_table = Table( - self.table_name, - m1, - schema=self.schema, - autoload_with=self.operations.get_bind(), - *self.reflect_args, - **self.reflect_kwargs, - ) - reflected = True - - batch_impl = ApplyBatchImpl( - self.impl, - existing_table, - self.table_args, - self.table_kwargs, - reflected, - partial_reordering=self.partial_reordering, - ) - for opname, arg, kw in self.batch: - fn = getattr(batch_impl, opname) - fn(*arg, **kw) - - batch_impl._create(self.impl) - - def alter_column(self, *arg, **kw) -> None: - self.batch.append(("alter_column", arg, kw)) - - def add_column(self, *arg, **kw) -> None: - if ( - "insert_before" in kw or "insert_after" in kw - ) and not self._should_recreate(): - raise exc.CommandError( - "Can't specify insert_before or insert_after when using " - "ALTER; please specify recreate='always'" - ) - self.batch.append(("add_column", arg, kw)) - - def drop_column(self, *arg, **kw) -> None: - self.batch.append(("drop_column", arg, kw)) - - def add_constraint(self, const: Constraint) -> None: - self.batch.append(("add_constraint", (const,), {})) - - def drop_constraint(self, const: Constraint) -> None: - self.batch.append(("drop_constraint", (const,), {})) - - def rename_table(self, *arg, **kw): - self.batch.append(("rename_table", arg, kw)) - - def create_index(self, idx: Index, **kw: Any) -> None: - self.batch.append(("create_index", (idx,), kw)) - - def drop_index(self, idx: Index, **kw: Any) -> None: - self.batch.append(("drop_index", (idx,), kw)) - - def create_table_comment(self, table): - self.batch.append(("create_table_comment", (table,), {})) - - def drop_table_comment(self, table): - self.batch.append(("drop_table_comment", (table,), {})) - - def create_table(self, table): - raise NotImplementedError("Can't create table in batch mode") - - def drop_table(self, table): - raise NotImplementedError("Can't drop table in batch mode") - - def create_column_comment(self, column): - self.batch.append(("create_column_comment", (column,), {})) - - -class ApplyBatchImpl: - def __init__( - self, - impl: DefaultImpl, - table: Table, - table_args: tuple, - table_kwargs: Dict[str, Any], - reflected: bool, - partial_reordering: tuple = (), - ) -> None: - self.impl = impl - self.table = table # this is a Table object - self.table_args = table_args - self.table_kwargs = table_kwargs - self.temp_table_name = self._calc_temp_name(table.name) - self.new_table: Optional[Table] = None - - self.partial_reordering = partial_reordering # tuple of tuples - self.add_col_ordering: Tuple[ - Tuple[str, str], ... - ] = () # tuple of tuples - - self.column_transfers = OrderedDict( - (c.name, {"expr": c}) for c in self.table.c - ) - self.existing_ordering = list(self.column_transfers) - - self.reflected = reflected - self._grab_table_elements() - - @classmethod - def _calc_temp_name(cls, tablename: Union[quoted_name, str]) -> str: - return ("_alembic_tmp_%s" % tablename)[0:50] - - def _grab_table_elements(self) -> None: - schema = self.table.schema - self.columns: Dict[str, Column[Any]] = OrderedDict() - for c in self.table.c: - c_copy = _copy(c, schema=schema) - c_copy.unique = c_copy.index = False - # ensure that the type object was copied, - # as we may need to modify it in-place - if isinstance(c.type, SchemaEventTarget): - assert c_copy.type is not c.type - self.columns[c.name] = c_copy - self.named_constraints: Dict[str, Constraint] = {} - self.unnamed_constraints = [] - self.col_named_constraints = {} - self.indexes: Dict[str, Index] = {} - self.new_indexes: Dict[str, Index] = {} - - for const in self.table.constraints: - if _is_type_bound(const): - continue - elif ( - self.reflected - and isinstance(const, CheckConstraint) - and not const.name - ): - # TODO: we are skipping unnamed reflected CheckConstraint - # because - # we have no way to determine _is_type_bound() for these. - pass - elif constraint_name_string(const.name): - self.named_constraints[const.name] = const - else: - self.unnamed_constraints.append(const) - - if not self.reflected: - for col in self.table.c: - for const in col.constraints: - if const.name: - self.col_named_constraints[const.name] = (col, const) - - for idx in self.table.indexes: - self.indexes[idx.name] = idx # type: ignore[index] - - for k in self.table.kwargs: - self.table_kwargs.setdefault(k, self.table.kwargs[k]) - - def _adjust_self_columns_for_partial_reordering(self) -> None: - pairs = set() - - col_by_idx = list(self.columns) - - if self.partial_reordering: - for tuple_ in self.partial_reordering: - for index, elem in enumerate(tuple_): - if index > 0: - pairs.add((tuple_[index - 1], elem)) - else: - for index, elem in enumerate(self.existing_ordering): - if index > 0: - pairs.add((col_by_idx[index - 1], elem)) - - pairs.update(self.add_col_ordering) - - # this can happen if some columns were dropped and not removed - # from existing_ordering. this should be prevented already, but - # conservatively making sure this didn't happen - pairs_list = [p for p in pairs if p[0] != p[1]] - - sorted_ = list( - topological.sort(pairs_list, col_by_idx, deterministic_order=True) - ) - self.columns = OrderedDict((k, self.columns[k]) for k in sorted_) - self.column_transfers = OrderedDict( - (k, self.column_transfers[k]) for k in sorted_ - ) - - def _transfer_elements_to_new_table(self) -> None: - assert self.new_table is None, "Can only create new table once" - - m = MetaData() - schema = self.table.schema - - if self.partial_reordering or self.add_col_ordering: - self._adjust_self_columns_for_partial_reordering() - - self.new_table = new_table = Table( - self.temp_table_name, - m, - *(list(self.columns.values()) + list(self.table_args)), - schema=schema, - **self.table_kwargs, - ) - - for const in ( - list(self.named_constraints.values()) + self.unnamed_constraints - ): - const_columns = {c.key for c in _columns_for_constraint(const)} - - if not const_columns.issubset(self.column_transfers): - continue - - const_copy: Constraint - if isinstance(const, ForeignKeyConstraint): - if _fk_is_self_referential(const): - # for self-referential constraint, refer to the - # *original* table name, and not _alembic_batch_temp. - # This is consistent with how we're handling - # FK constraints from other tables; we assume SQLite - # no foreign keys just keeps the names unchanged, so - # when we rename back, they match again. - const_copy = _copy( - const, schema=schema, target_table=self.table - ) - else: - # "target_table" for ForeignKeyConstraint.copy() is - # only used if the FK is detected as being - # self-referential, which we are handling above. - const_copy = _copy(const, schema=schema) - else: - const_copy = _copy( - const, schema=schema, target_table=new_table - ) - if isinstance(const, ForeignKeyConstraint): - self._setup_referent(m, const) - new_table.append_constraint(const_copy) - - def _gather_indexes_from_both_tables(self) -> List[Index]: - assert self.new_table is not None - idx: List[Index] = [] - - for idx_existing in self.indexes.values(): - # this is a lift-and-move from Table.to_metadata - - if idx_existing._column_flag: - continue - - idx_copy = Index( - idx_existing.name, - unique=idx_existing.unique, - *[ - _copy_expression(expr, self.new_table) - for expr in _idx_table_bound_expressions(idx_existing) - ], - _table=self.new_table, - **idx_existing.kwargs, - ) - idx.append(idx_copy) - - for index in self.new_indexes.values(): - idx.append( - Index( - index.name, - unique=index.unique, - *[self.new_table.c[col] for col in index.columns.keys()], - **index.kwargs, - ) - ) - return idx - - def _setup_referent( - self, metadata: MetaData, constraint: ForeignKeyConstraint - ) -> None: - spec = constraint.elements[0]._get_colspec() - parts = spec.split(".") - tname = parts[-2] - if len(parts) == 3: - referent_schema = parts[0] - else: - referent_schema = None - - if tname != self.temp_table_name: - key = sql_schema._get_table_key(tname, referent_schema) - - def colspec(elem: Any): - return elem._get_colspec() - - if key in metadata.tables: - t = metadata.tables[key] - for elem in constraint.elements: - colname = colspec(elem).split(".")[-1] - if colname not in t.c: - t.append_column(Column(colname, sqltypes.NULLTYPE)) - else: - Table( - tname, - metadata, - *[ - Column(n, sqltypes.NULLTYPE) - for n in [ - colspec(elem).split(".")[-1] - for elem in constraint.elements - ] - ], - schema=referent_schema, - ) - - def _create(self, op_impl: DefaultImpl) -> None: - self._transfer_elements_to_new_table() - - op_impl.prep_table_for_batch(self, self.table) - assert self.new_table is not None - op_impl.create_table(self.new_table) - - try: - op_impl._exec( - _insert_inline(self.new_table).from_select( - list( - k - for k, transfer in self.column_transfers.items() - if "expr" in transfer - ), - _select( - *[ - transfer["expr"] - for transfer in self.column_transfers.values() - if "expr" in transfer - ] - ), - ) - ) - op_impl.drop_table(self.table) - except: - op_impl.drop_table(self.new_table) - raise - else: - op_impl.rename_table( - self.temp_table_name, self.table.name, schema=self.table.schema - ) - self.new_table.name = self.table.name - try: - for idx in self._gather_indexes_from_both_tables(): - op_impl.create_index(idx) - finally: - self.new_table.name = self.temp_table_name - - def alter_column( - self, - table_name: str, - column_name: str, - nullable: Optional[bool] = None, - server_default: Optional[Union[Function[Any], str, bool]] = False, - name: Optional[str] = None, - type_: Optional[TypeEngine] = None, - autoincrement: Optional[Union[bool, Literal["auto"]]] = None, - comment: Union[str, Literal[False]] = False, - **kw, - ) -> None: - existing = self.columns[column_name] - existing_transfer: Dict[str, Any] = self.column_transfers[column_name] - if name is not None and name != column_name: - # note that we don't change '.key' - we keep referring - # to the renamed column by its old key in _create(). neat! - existing.name = name - existing_transfer["name"] = name - - existing_type = kw.get("existing_type", None) - if existing_type: - resolved_existing_type = _resolve_for_variant( - kw["existing_type"], self.impl.dialect - ) - - # pop named constraints for Boolean/Enum for rename - if ( - isinstance(resolved_existing_type, SchemaEventTarget) - and resolved_existing_type.name # type:ignore[attr-defined] # noqa E501 - ): - self.named_constraints.pop( - resolved_existing_type.name, # type:ignore[attr-defined] # noqa E501 - None, - ) - - if type_ is not None: - type_ = sqltypes.to_instance(type_) - # old type is being discarded so turn off eventing - # rules. Alternatively we can - # erase the events set up by this type, but this is simpler. - # we also ignore the drop_constraint that will come here from - # Operations.implementation_for(alter_column) - - if isinstance(existing.type, SchemaEventTarget): - existing.type._create_events = ( # type:ignore[attr-defined] - existing.type.create_constraint # type:ignore[attr-defined] # noqa - ) = False - - self.impl.cast_for_batch_migrate( - existing, existing_transfer, type_ - ) - - existing.type = type_ - - # we *dont* however set events for the new type, because - # alter_column is invoked from - # Operations.implementation_for(alter_column) which already - # will emit an add_constraint() - - if nullable is not None: - existing.nullable = nullable - if server_default is not False: - if server_default is None: - existing.server_default = None - else: - sql_schema.DefaultClause( - server_default # type: ignore[arg-type] - )._set_parent(existing) - if autoincrement is not None: - existing.autoincrement = bool(autoincrement) - - if comment is not False: - existing.comment = comment - - def _setup_dependencies_for_add_column( - self, - colname: str, - insert_before: Optional[str], - insert_after: Optional[str], - ) -> None: - index_cols = self.existing_ordering - col_indexes = {name: i for i, name in enumerate(index_cols)} - - if not self.partial_reordering: - if insert_after: - if not insert_before: - if insert_after in col_indexes: - # insert after an existing column - idx = col_indexes[insert_after] + 1 - if idx < len(index_cols): - insert_before = index_cols[idx] - else: - # insert after a column that is also new - insert_before = dict(self.add_col_ordering)[ - insert_after - ] - if insert_before: - if not insert_after: - if insert_before in col_indexes: - # insert before an existing column - idx = col_indexes[insert_before] - 1 - if idx >= 0: - insert_after = index_cols[idx] - else: - # insert before a column that is also new - insert_after = { - b: a for a, b in self.add_col_ordering - }[insert_before] - - if insert_before: - self.add_col_ordering += ((colname, insert_before),) - if insert_after: - self.add_col_ordering += ((insert_after, colname),) - - if ( - not self.partial_reordering - and not insert_before - and not insert_after - and col_indexes - ): - self.add_col_ordering += ((index_cols[-1], colname),) - - def add_column( - self, - table_name: str, - column: Column[Any], - insert_before: Optional[str] = None, - insert_after: Optional[str] = None, - **kw, - ) -> None: - self._setup_dependencies_for_add_column( - column.name, insert_before, insert_after - ) - # we copy the column because operations.add_column() - # gives us a Column that is part of a Table already. - self.columns[column.name] = _copy(column, schema=self.table.schema) - self.column_transfers[column.name] = {} - - def drop_column( - self, - table_name: str, - column: Union[ColumnClause[Any], Column[Any]], - **kw, - ) -> None: - if column.name in self.table.primary_key.columns: - _remove_column_from_collection( - self.table.primary_key.columns, column - ) - del self.columns[column.name] - del self.column_transfers[column.name] - self.existing_ordering.remove(column.name) - - # pop named constraints for Boolean/Enum for rename - if ( - "existing_type" in kw - and isinstance(kw["existing_type"], SchemaEventTarget) - and kw["existing_type"].name # type:ignore[attr-defined] - ): - self.named_constraints.pop( - kw["existing_type"].name, None # type:ignore[attr-defined] - ) - - def create_column_comment(self, column): - """the batch table creation function will issue create_column_comment - on the real "impl" as part of the create table process. - - That is, the Column object will have the comment on it already, - so when it is received by add_column() it will be a normal part of - the CREATE TABLE and doesn't need an extra step here. - - """ - - def create_table_comment(self, table): - """the batch table creation function will issue create_table_comment - on the real "impl" as part of the create table process. - - """ - - def drop_table_comment(self, table): - """the batch table creation function will issue drop_table_comment - on the real "impl" as part of the create table process. - - """ - - def add_constraint(self, const: Constraint) -> None: - if not constraint_name_defined(const.name): - raise ValueError("Constraint must have a name") - if isinstance(const, sql_schema.PrimaryKeyConstraint): - if self.table.primary_key in self.unnamed_constraints: - self.unnamed_constraints.remove(self.table.primary_key) - - if constraint_name_string(const.name): - self.named_constraints[const.name] = const - else: - self.unnamed_constraints.append(const) - - def drop_constraint(self, const: Constraint) -> None: - if not const.name: - raise ValueError("Constraint must have a name") - try: - if const.name in self.col_named_constraints: - col, const = self.col_named_constraints.pop(const.name) - - for col_const in list(self.columns[col.name].constraints): - if col_const.name == const.name: - self.columns[col.name].constraints.remove(col_const) - elif constraint_name_string(const.name): - const = self.named_constraints.pop(const.name) - elif const in self.unnamed_constraints: - self.unnamed_constraints.remove(const) - - except KeyError: - if _is_type_bound(const): - # type-bound constraints are only included in the new - # table via their type object in any case, so ignore the - # drop_constraint() that comes here via the - # Operations.implementation_for(alter_column) - return - raise ValueError("No such constraint: '%s'" % const.name) - else: - if isinstance(const, PrimaryKeyConstraint): - for col in const.columns: - self.columns[col.name].primary_key = False - - def create_index(self, idx: Index) -> None: - self.new_indexes[idx.name] = idx # type: ignore[index] - - def drop_index(self, idx: Index) -> None: - try: - del self.indexes[idx.name] # type: ignore[arg-type] - except KeyError: - raise ValueError("No such index: '%s'" % idx.name) - - def rename_table(self, *arg, **kw): - raise NotImplementedError("TODO") diff --git a/backend/venv/lib/python3.12/site-packages/alembic/operations/ops.py b/backend/venv/lib/python3.12/site-packages/alembic/operations/ops.py deleted file mode 100644 index 60b856a..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/operations/ops.py +++ /dev/null @@ -1,2800 +0,0 @@ -from __future__ import annotations - -from abc import abstractmethod -import re -from typing import Any -from typing import Callable -from typing import cast -from typing import Dict -from typing import FrozenSet -from typing import Iterator -from typing import List -from typing import MutableMapping -from typing import Optional -from typing import Sequence -from typing import Set -from typing import Tuple -from typing import Type -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union - -from sqlalchemy.types import NULLTYPE - -from . import schemaobj -from .base import BatchOperations -from .base import Operations -from .. import util -from ..util import sqla_compat - -if TYPE_CHECKING: - from typing import Literal - - from sqlalchemy.sql import Executable - from sqlalchemy.sql.elements import ColumnElement - from sqlalchemy.sql.elements import conv - from sqlalchemy.sql.elements import quoted_name - from sqlalchemy.sql.elements import TextClause - from sqlalchemy.sql.functions import Function - from sqlalchemy.sql.schema import CheckConstraint - from sqlalchemy.sql.schema import Column - from sqlalchemy.sql.schema import Computed - from sqlalchemy.sql.schema import Constraint - from sqlalchemy.sql.schema import ForeignKeyConstraint - from sqlalchemy.sql.schema import Identity - from sqlalchemy.sql.schema import Index - from sqlalchemy.sql.schema import MetaData - from sqlalchemy.sql.schema import PrimaryKeyConstraint - from sqlalchemy.sql.schema import SchemaItem - from sqlalchemy.sql.schema import Table - from sqlalchemy.sql.schema import UniqueConstraint - from sqlalchemy.sql.selectable import TableClause - from sqlalchemy.sql.type_api import TypeEngine - - from ..autogenerate.rewriter import Rewriter - from ..runtime.migration import MigrationContext - from ..script.revision import _RevIdType - -_T = TypeVar("_T", bound=Any) -_AC = TypeVar("_AC", bound="AddConstraintOp") - - -class MigrateOperation: - """base class for migration command and organization objects. - - This system is part of the operation extensibility API. - - .. seealso:: - - :ref:`operation_objects` - - :ref:`operation_plugins` - - :ref:`customizing_revision` - - """ - - @util.memoized_property - def info(self) -> Dict[Any, Any]: - """A dictionary that may be used to store arbitrary information - along with this :class:`.MigrateOperation` object. - - """ - return {} - - _mutations: FrozenSet[Rewriter] = frozenset() - - def reverse(self) -> MigrateOperation: - raise NotImplementedError - - def to_diff_tuple(self) -> Tuple[Any, ...]: - raise NotImplementedError - - -class AddConstraintOp(MigrateOperation): - """Represent an add constraint operation.""" - - add_constraint_ops = util.Dispatcher() - - @property - def constraint_type(self) -> str: - raise NotImplementedError() - - @classmethod - def register_add_constraint( - cls, type_: str - ) -> Callable[[Type[_AC]], Type[_AC]]: - def go(klass: Type[_AC]) -> Type[_AC]: - cls.add_constraint_ops.dispatch_for(type_)(klass.from_constraint) - return klass - - return go - - @classmethod - def from_constraint(cls, constraint: Constraint) -> AddConstraintOp: - return cls.add_constraint_ops.dispatch(constraint.__visit_name__)( # type: ignore[no-any-return] # noqa: E501 - constraint - ) - - @abstractmethod - def to_constraint( - self, migration_context: Optional[MigrationContext] = None - ) -> Constraint: - pass - - def reverse(self) -> DropConstraintOp: - return DropConstraintOp.from_constraint(self.to_constraint()) - - def to_diff_tuple(self) -> Tuple[str, Constraint]: - return ("add_constraint", self.to_constraint()) - - -@Operations.register_operation("drop_constraint") -@BatchOperations.register_operation("drop_constraint", "batch_drop_constraint") -class DropConstraintOp(MigrateOperation): - """Represent a drop constraint operation.""" - - def __init__( - self, - constraint_name: Optional[sqla_compat._ConstraintNameDefined], - table_name: str, - type_: Optional[str] = None, - *, - schema: Optional[str] = None, - _reverse: Optional[AddConstraintOp] = None, - ) -> None: - self.constraint_name = constraint_name - self.table_name = table_name - self.constraint_type = type_ - self.schema = schema - self._reverse = _reverse - - def reverse(self) -> AddConstraintOp: - return AddConstraintOp.from_constraint(self.to_constraint()) - - def to_diff_tuple( - self, - ) -> Tuple[str, SchemaItem]: - if self.constraint_type == "foreignkey": - return ("remove_fk", self.to_constraint()) - else: - return ("remove_constraint", self.to_constraint()) - - @classmethod - def from_constraint(cls, constraint: Constraint) -> DropConstraintOp: - types = { - "unique_constraint": "unique", - "foreign_key_constraint": "foreignkey", - "primary_key_constraint": "primary", - "check_constraint": "check", - "column_check_constraint": "check", - "table_or_column_check_constraint": "check", - } - - constraint_table = sqla_compat._table_for_constraint(constraint) - return cls( - sqla_compat.constraint_name_or_none(constraint.name), - constraint_table.name, - schema=constraint_table.schema, - type_=types.get(constraint.__visit_name__), - _reverse=AddConstraintOp.from_constraint(constraint), - ) - - def to_constraint(self) -> Constraint: - if self._reverse is not None: - constraint = self._reverse.to_constraint() - constraint.name = self.constraint_name - constraint_table = sqla_compat._table_for_constraint(constraint) - constraint_table.name = self.table_name - constraint_table.schema = self.schema - - return constraint - else: - raise ValueError( - "constraint cannot be produced; " - "original constraint is not present" - ) - - @classmethod - def drop_constraint( - cls, - operations: Operations, - constraint_name: str, - table_name: str, - type_: Optional[str] = None, - *, - schema: Optional[str] = None, - ) -> None: - r"""Drop a constraint of the given name, typically via DROP CONSTRAINT. - - :param constraint_name: name of the constraint. - :param table_name: table name. - :param type\_: optional, required on MySQL. can be - 'foreignkey', 'primary', 'unique', or 'check'. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - - op = cls(constraint_name, table_name, type_=type_, schema=schema) - return operations.invoke(op) - - @classmethod - def batch_drop_constraint( - cls, - operations: BatchOperations, - constraint_name: str, - type_: Optional[str] = None, - ) -> None: - """Issue a "drop constraint" instruction using the - current batch migration context. - - The batch form of this call omits the ``table_name`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.drop_constraint` - - """ - op = cls( - constraint_name, - operations.impl.table_name, - type_=type_, - schema=operations.impl.schema, - ) - return operations.invoke(op) - - -@Operations.register_operation("create_primary_key") -@BatchOperations.register_operation( - "create_primary_key", "batch_create_primary_key" -) -@AddConstraintOp.register_add_constraint("primary_key_constraint") -class CreatePrimaryKeyOp(AddConstraintOp): - """Represent a create primary key operation.""" - - constraint_type = "primarykey" - - def __init__( - self, - constraint_name: Optional[sqla_compat._ConstraintNameDefined], - table_name: str, - columns: Sequence[str], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - self.constraint_name = constraint_name - self.table_name = table_name - self.columns = columns - self.schema = schema - self.kw = kw - - @classmethod - def from_constraint(cls, constraint: Constraint) -> CreatePrimaryKeyOp: - constraint_table = sqla_compat._table_for_constraint(constraint) - pk_constraint = cast("PrimaryKeyConstraint", constraint) - return cls( - sqla_compat.constraint_name_or_none(pk_constraint.name), - constraint_table.name, - pk_constraint.columns.keys(), - schema=constraint_table.schema, - **pk_constraint.dialect_kwargs, - ) - - def to_constraint( - self, migration_context: Optional[MigrationContext] = None - ) -> PrimaryKeyConstraint: - schema_obj = schemaobj.SchemaObjects(migration_context) - - return schema_obj.primary_key_constraint( - self.constraint_name, - self.table_name, - self.columns, - schema=self.schema, - **self.kw, - ) - - @classmethod - def create_primary_key( - cls, - operations: Operations, - constraint_name: Optional[str], - table_name: str, - columns: List[str], - *, - schema: Optional[str] = None, - ) -> None: - """Issue a "create primary key" instruction using the current - migration context. - - e.g.:: - - from alembic import op - - op.create_primary_key("pk_my_table", "my_table", ["id", "version"]) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.PrimaryKeyConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param constraint_name: Name of the primary key constraint. The name - is necessary so that an ALTER statement can be emitted. For setups - that use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions` - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the target table. - :param columns: a list of string column names to be applied to the - primary key constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - op = cls(constraint_name, table_name, columns, schema=schema) - return operations.invoke(op) - - @classmethod - def batch_create_primary_key( - cls, - operations: BatchOperations, - constraint_name: Optional[str], - columns: List[str], - ) -> None: - """Issue a "create primary key" instruction using the - current batch migration context. - - The batch form of this call omits the ``table_name`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.create_primary_key` - - """ - op = cls( - constraint_name, - operations.impl.table_name, - columns, - schema=operations.impl.schema, - ) - return operations.invoke(op) - - -@Operations.register_operation("create_unique_constraint") -@BatchOperations.register_operation( - "create_unique_constraint", "batch_create_unique_constraint" -) -@AddConstraintOp.register_add_constraint("unique_constraint") -class CreateUniqueConstraintOp(AddConstraintOp): - """Represent a create unique constraint operation.""" - - constraint_type = "unique" - - def __init__( - self, - constraint_name: Optional[sqla_compat._ConstraintNameDefined], - table_name: str, - columns: Sequence[str], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - self.constraint_name = constraint_name - self.table_name = table_name - self.columns = columns - self.schema = schema - self.kw = kw - - @classmethod - def from_constraint( - cls, constraint: Constraint - ) -> CreateUniqueConstraintOp: - constraint_table = sqla_compat._table_for_constraint(constraint) - - uq_constraint = cast("UniqueConstraint", constraint) - - kw: Dict[str, Any] = {} - if uq_constraint.deferrable: - kw["deferrable"] = uq_constraint.deferrable - if uq_constraint.initially: - kw["initially"] = uq_constraint.initially - kw.update(uq_constraint.dialect_kwargs) - return cls( - sqla_compat.constraint_name_or_none(uq_constraint.name), - constraint_table.name, - [c.name for c in uq_constraint.columns], - schema=constraint_table.schema, - **kw, - ) - - def to_constraint( - self, migration_context: Optional[MigrationContext] = None - ) -> UniqueConstraint: - schema_obj = schemaobj.SchemaObjects(migration_context) - return schema_obj.unique_constraint( - self.constraint_name, - self.table_name, - self.columns, - schema=self.schema, - **self.kw, - ) - - @classmethod - def create_unique_constraint( - cls, - operations: Operations, - constraint_name: Optional[str], - table_name: str, - columns: Sequence[str], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> Any: - """Issue a "create unique constraint" instruction using the - current migration context. - - e.g.:: - - from alembic import op - op.create_unique_constraint("uq_user_name", "user", ["name"]) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.UniqueConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param name: Name of the unique constraint. The name is necessary - so that an ALTER statement can be emitted. For setups that - use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the source table. - :param columns: a list of string column names in the - source table. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - - op = cls(constraint_name, table_name, columns, schema=schema, **kw) - return operations.invoke(op) - - @classmethod - def batch_create_unique_constraint( - cls, - operations: BatchOperations, - constraint_name: str, - columns: Sequence[str], - **kw: Any, - ) -> Any: - """Issue a "create unique constraint" instruction using the - current batch migration context. - - The batch form of this call omits the ``source`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.create_unique_constraint` - - """ - kw["schema"] = operations.impl.schema - op = cls(constraint_name, operations.impl.table_name, columns, **kw) - return operations.invoke(op) - - -@Operations.register_operation("create_foreign_key") -@BatchOperations.register_operation( - "create_foreign_key", "batch_create_foreign_key" -) -@AddConstraintOp.register_add_constraint("foreign_key_constraint") -class CreateForeignKeyOp(AddConstraintOp): - """Represent a create foreign key constraint operation.""" - - constraint_type = "foreignkey" - - def __init__( - self, - constraint_name: Optional[sqla_compat._ConstraintNameDefined], - source_table: str, - referent_table: str, - local_cols: List[str], - remote_cols: List[str], - **kw: Any, - ) -> None: - self.constraint_name = constraint_name - self.source_table = source_table - self.referent_table = referent_table - self.local_cols = local_cols - self.remote_cols = remote_cols - self.kw = kw - - def to_diff_tuple(self) -> Tuple[str, ForeignKeyConstraint]: - return ("add_fk", self.to_constraint()) - - @classmethod - def from_constraint(cls, constraint: Constraint) -> CreateForeignKeyOp: - fk_constraint = cast("ForeignKeyConstraint", constraint) - kw: Dict[str, Any] = {} - if fk_constraint.onupdate: - kw["onupdate"] = fk_constraint.onupdate - if fk_constraint.ondelete: - kw["ondelete"] = fk_constraint.ondelete - if fk_constraint.initially: - kw["initially"] = fk_constraint.initially - if fk_constraint.deferrable: - kw["deferrable"] = fk_constraint.deferrable - if fk_constraint.use_alter: - kw["use_alter"] = fk_constraint.use_alter - if fk_constraint.match: - kw["match"] = fk_constraint.match - - ( - source_schema, - source_table, - source_columns, - target_schema, - target_table, - target_columns, - onupdate, - ondelete, - deferrable, - initially, - ) = sqla_compat._fk_spec(fk_constraint) - - kw["source_schema"] = source_schema - kw["referent_schema"] = target_schema - kw.update(fk_constraint.dialect_kwargs) - return cls( - sqla_compat.constraint_name_or_none(fk_constraint.name), - source_table, - target_table, - source_columns, - target_columns, - **kw, - ) - - def to_constraint( - self, migration_context: Optional[MigrationContext] = None - ) -> ForeignKeyConstraint: - schema_obj = schemaobj.SchemaObjects(migration_context) - return schema_obj.foreign_key_constraint( - self.constraint_name, - self.source_table, - self.referent_table, - self.local_cols, - self.remote_cols, - **self.kw, - ) - - @classmethod - def create_foreign_key( - cls, - operations: Operations, - constraint_name: Optional[str], - source_table: str, - referent_table: str, - local_cols: List[str], - remote_cols: List[str], - *, - onupdate: Optional[str] = None, - ondelete: Optional[str] = None, - deferrable: Optional[bool] = None, - initially: Optional[str] = None, - match: Optional[str] = None, - source_schema: Optional[str] = None, - referent_schema: Optional[str] = None, - **dialect_kw: Any, - ) -> None: - """Issue a "create foreign key" instruction using the - current migration context. - - e.g.:: - - from alembic import op - - op.create_foreign_key( - "fk_user_address", - "address", - "user", - ["user_id"], - ["id"], - ) - - This internally generates a :class:`~sqlalchemy.schema.Table` object - containing the necessary columns, then generates a new - :class:`~sqlalchemy.schema.ForeignKeyConstraint` - object which it then associates with the - :class:`~sqlalchemy.schema.Table`. - Any event listeners associated with this action will be fired - off normally. The :class:`~sqlalchemy.schema.AddConstraint` - construct is ultimately used to generate the ALTER statement. - - :param constraint_name: Name of the foreign key constraint. The name - is necessary so that an ALTER statement can be emitted. For setups - that use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param source_table: String name of the source table. - :param referent_table: String name of the destination table. - :param local_cols: a list of string column names in the - source table. - :param remote_cols: a list of string column names in the - remote table. - :param onupdate: Optional string. If set, emit ON UPDATE when - issuing DDL for this constraint. Typical values include CASCADE, - DELETE and RESTRICT. - :param ondelete: Optional string. If set, emit ON DELETE when - issuing DDL for this constraint. Typical values include CASCADE, - DELETE and RESTRICT. - :param deferrable: optional bool. If set, emit DEFERRABLE or NOT - DEFERRABLE when issuing DDL for this constraint. - :param source_schema: Optional schema name of the source table. - :param referent_schema: Optional schema name of the destination table. - - """ - - op = cls( - constraint_name, - source_table, - referent_table, - local_cols, - remote_cols, - onupdate=onupdate, - ondelete=ondelete, - deferrable=deferrable, - source_schema=source_schema, - referent_schema=referent_schema, - initially=initially, - match=match, - **dialect_kw, - ) - return operations.invoke(op) - - @classmethod - def batch_create_foreign_key( - cls, - operations: BatchOperations, - constraint_name: Optional[str], - referent_table: str, - local_cols: List[str], - remote_cols: List[str], - *, - referent_schema: Optional[str] = None, - onupdate: Optional[str] = None, - ondelete: Optional[str] = None, - deferrable: Optional[bool] = None, - initially: Optional[str] = None, - match: Optional[str] = None, - **dialect_kw: Any, - ) -> None: - """Issue a "create foreign key" instruction using the - current batch migration context. - - The batch form of this call omits the ``source`` and ``source_schema`` - arguments from the call. - - e.g.:: - - with batch_alter_table("address") as batch_op: - batch_op.create_foreign_key( - "fk_user_address", - "user", - ["user_id"], - ["id"], - ) - - .. seealso:: - - :meth:`.Operations.create_foreign_key` - - """ - op = cls( - constraint_name, - operations.impl.table_name, - referent_table, - local_cols, - remote_cols, - onupdate=onupdate, - ondelete=ondelete, - deferrable=deferrable, - source_schema=operations.impl.schema, - referent_schema=referent_schema, - initially=initially, - match=match, - **dialect_kw, - ) - return operations.invoke(op) - - -@Operations.register_operation("create_check_constraint") -@BatchOperations.register_operation( - "create_check_constraint", "batch_create_check_constraint" -) -@AddConstraintOp.register_add_constraint("check_constraint") -@AddConstraintOp.register_add_constraint("table_or_column_check_constraint") -@AddConstraintOp.register_add_constraint("column_check_constraint") -class CreateCheckConstraintOp(AddConstraintOp): - """Represent a create check constraint operation.""" - - constraint_type = "check" - - def __init__( - self, - constraint_name: Optional[sqla_compat._ConstraintNameDefined], - table_name: str, - condition: Union[str, TextClause, ColumnElement[Any]], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - self.constraint_name = constraint_name - self.table_name = table_name - self.condition = condition - self.schema = schema - self.kw = kw - - @classmethod - def from_constraint( - cls, constraint: Constraint - ) -> CreateCheckConstraintOp: - constraint_table = sqla_compat._table_for_constraint(constraint) - - ck_constraint = cast("CheckConstraint", constraint) - return cls( - sqla_compat.constraint_name_or_none(ck_constraint.name), - constraint_table.name, - cast("ColumnElement[Any]", ck_constraint.sqltext), - schema=constraint_table.schema, - **ck_constraint.dialect_kwargs, - ) - - def to_constraint( - self, migration_context: Optional[MigrationContext] = None - ) -> CheckConstraint: - schema_obj = schemaobj.SchemaObjects(migration_context) - return schema_obj.check_constraint( - self.constraint_name, - self.table_name, - self.condition, - schema=self.schema, - **self.kw, - ) - - @classmethod - def create_check_constraint( - cls, - operations: Operations, - constraint_name: Optional[str], - table_name: str, - condition: Union[str, ColumnElement[bool], TextClause], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - """Issue a "create check constraint" instruction using the - current migration context. - - e.g.:: - - from alembic import op - from sqlalchemy.sql import column, func - - op.create_check_constraint( - "ck_user_name_len", - "user", - func.len(column("name")) > 5, - ) - - CHECK constraints are usually against a SQL expression, so ad-hoc - table metadata is usually needed. The function will convert the given - arguments into a :class:`sqlalchemy.schema.CheckConstraint` bound - to an anonymous table in order to emit the CREATE statement. - - :param name: Name of the check constraint. The name is necessary - so that an ALTER statement can be emitted. For setups that - use an automated naming scheme such as that described at - :ref:`sqla:constraint_naming_conventions`, - ``name`` here can be ``None``, as the event listener will - apply the name to the constraint object when it is associated - with the table. - :param table_name: String name of the source table. - :param condition: SQL expression that's the condition of the - constraint. Can be a string or SQLAlchemy expression language - structure. - :param deferrable: optional bool. If set, emit DEFERRABLE or - NOT DEFERRABLE when issuing DDL for this constraint. - :param initially: optional string. If set, emit INITIALLY - when issuing DDL for this constraint. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - op = cls(constraint_name, table_name, condition, schema=schema, **kw) - return operations.invoke(op) - - @classmethod - def batch_create_check_constraint( - cls, - operations: BatchOperations, - constraint_name: str, - condition: Union[str, ColumnElement[bool], TextClause], - **kw: Any, - ) -> None: - """Issue a "create check constraint" instruction using the - current batch migration context. - - The batch form of this call omits the ``source`` and ``schema`` - arguments from the call. - - .. seealso:: - - :meth:`.Operations.create_check_constraint` - - """ - op = cls( - constraint_name, - operations.impl.table_name, - condition, - schema=operations.impl.schema, - **kw, - ) - return operations.invoke(op) - - -@Operations.register_operation("create_index") -@BatchOperations.register_operation("create_index", "batch_create_index") -class CreateIndexOp(MigrateOperation): - """Represent a create index operation.""" - - def __init__( - self, - index_name: Optional[str], - table_name: str, - columns: Sequence[Union[str, TextClause, ColumnElement[Any]]], - *, - schema: Optional[str] = None, - unique: bool = False, - if_not_exists: Optional[bool] = None, - **kw: Any, - ) -> None: - self.index_name = index_name - self.table_name = table_name - self.columns = columns - self.schema = schema - self.unique = unique - self.if_not_exists = if_not_exists - self.kw = kw - - def reverse(self) -> DropIndexOp: - return DropIndexOp.from_index(self.to_index()) - - def to_diff_tuple(self) -> Tuple[str, Index]: - return ("add_index", self.to_index()) - - @classmethod - def from_index(cls, index: Index) -> CreateIndexOp: - assert index.table is not None - return cls( - index.name, - index.table.name, - index.expressions, - schema=index.table.schema, - unique=index.unique, - **index.kwargs, - ) - - def to_index( - self, migration_context: Optional[MigrationContext] = None - ) -> Index: - schema_obj = schemaobj.SchemaObjects(migration_context) - - idx = schema_obj.index( - self.index_name, - self.table_name, - self.columns, - schema=self.schema, - unique=self.unique, - **self.kw, - ) - return idx - - @classmethod - def create_index( - cls, - operations: Operations, - index_name: Optional[str], - table_name: str, - columns: Sequence[Union[str, TextClause, Function[Any]]], - *, - schema: Optional[str] = None, - unique: bool = False, - if_not_exists: Optional[bool] = None, - **kw: Any, - ) -> None: - r"""Issue a "create index" instruction using the current - migration context. - - e.g.:: - - from alembic import op - - op.create_index("ik_test", "t1", ["foo", "bar"]) - - Functional indexes can be produced by using the - :func:`sqlalchemy.sql.expression.text` construct:: - - from alembic import op - from sqlalchemy import text - - op.create_index("ik_test", "t1", [text("lower(foo)")]) - - :param index_name: name of the index. - :param table_name: name of the owning table. - :param columns: a list consisting of string column names and/or - :func:`~sqlalchemy.sql.expression.text` constructs. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param unique: If True, create a unique index. - - :param quote: Force quoting of this column's name on or off, - corresponding to ``True`` or ``False``. When left at its default - of ``None``, the column identifier will be quoted according to - whether the name is case sensitive (identifiers with at least one - upper case character are treated as case sensitive), or if it's a - reserved word. This flag is only needed to force quoting of a - reserved word which is not known by the SQLAlchemy dialect. - - :param if_not_exists: If True, adds IF NOT EXISTS operator when - creating the new index. - - .. versionadded:: 1.12.0 - - :param \**kw: Additional keyword arguments not mentioned above are - dialect specific, and passed in the form - ``_``. - See the documentation regarding an individual dialect at - :ref:`dialect_toplevel` for detail on documented arguments. - - """ - op = cls( - index_name, - table_name, - columns, - schema=schema, - unique=unique, - if_not_exists=if_not_exists, - **kw, - ) - return operations.invoke(op) - - @classmethod - def batch_create_index( - cls, - operations: BatchOperations, - index_name: str, - columns: List[str], - **kw: Any, - ) -> None: - """Issue a "create index" instruction using the - current batch migration context. - - .. seealso:: - - :meth:`.Operations.create_index` - - """ - - op = cls( - index_name, - operations.impl.table_name, - columns, - schema=operations.impl.schema, - **kw, - ) - return operations.invoke(op) - - -@Operations.register_operation("drop_index") -@BatchOperations.register_operation("drop_index", "batch_drop_index") -class DropIndexOp(MigrateOperation): - """Represent a drop index operation.""" - - def __init__( - self, - index_name: Union[quoted_name, str, conv], - table_name: Optional[str] = None, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - _reverse: Optional[CreateIndexOp] = None, - **kw: Any, - ) -> None: - self.index_name = index_name - self.table_name = table_name - self.schema = schema - self.if_exists = if_exists - self._reverse = _reverse - self.kw = kw - - def to_diff_tuple(self) -> Tuple[str, Index]: - return ("remove_index", self.to_index()) - - def reverse(self) -> CreateIndexOp: - return CreateIndexOp.from_index(self.to_index()) - - @classmethod - def from_index(cls, index: Index) -> DropIndexOp: - assert index.table is not None - return cls( - index.name, # type: ignore[arg-type] - table_name=index.table.name, - schema=index.table.schema, - _reverse=CreateIndexOp.from_index(index), - unique=index.unique, - **index.kwargs, - ) - - def to_index( - self, migration_context: Optional[MigrationContext] = None - ) -> Index: - schema_obj = schemaobj.SchemaObjects(migration_context) - - # need a dummy column name here since SQLAlchemy - # 0.7.6 and further raises on Index with no columns - return schema_obj.index( - self.index_name, - self.table_name, - self._reverse.columns if self._reverse else ["x"], - schema=self.schema, - **self.kw, - ) - - @classmethod - def drop_index( - cls, - operations: Operations, - index_name: str, - table_name: Optional[str] = None, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - **kw: Any, - ) -> None: - r"""Issue a "drop index" instruction using the current - migration context. - - e.g.:: - - drop_index("accounts") - - :param index_name: name of the index. - :param table_name: name of the owning table. Some - backends such as Microsoft SQL Server require this. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - :param if_exists: If True, adds IF EXISTS operator when - dropping the index. - - .. versionadded:: 1.12.0 - - :param \**kw: Additional keyword arguments not mentioned above are - dialect specific, and passed in the form - ``_``. - See the documentation regarding an individual dialect at - :ref:`dialect_toplevel` for detail on documented arguments. - - """ - op = cls( - index_name, - table_name=table_name, - schema=schema, - if_exists=if_exists, - **kw, - ) - return operations.invoke(op) - - @classmethod - def batch_drop_index( - cls, operations: BatchOperations, index_name: str, **kw: Any - ) -> None: - """Issue a "drop index" instruction using the - current batch migration context. - - .. seealso:: - - :meth:`.Operations.drop_index` - - """ - - op = cls( - index_name, - table_name=operations.impl.table_name, - schema=operations.impl.schema, - **kw, - ) - return operations.invoke(op) - - -@Operations.register_operation("create_table") -class CreateTableOp(MigrateOperation): - """Represent a create table operation.""" - - def __init__( - self, - table_name: str, - columns: Sequence[SchemaItem], - *, - schema: Optional[str] = None, - if_not_exists: Optional[bool] = None, - _namespace_metadata: Optional[MetaData] = None, - _constraints_included: bool = False, - **kw: Any, - ) -> None: - self.table_name = table_name - self.columns = columns - self.schema = schema - self.if_not_exists = if_not_exists - self.info = kw.pop("info", {}) - self.comment = kw.pop("comment", None) - self.prefixes = kw.pop("prefixes", None) - self.kw = kw - self._namespace_metadata = _namespace_metadata - self._constraints_included = _constraints_included - - def reverse(self) -> DropTableOp: - return DropTableOp.from_table( - self.to_table(), _namespace_metadata=self._namespace_metadata - ) - - def to_diff_tuple(self) -> Tuple[str, Table]: - return ("add_table", self.to_table()) - - @classmethod - def from_table( - cls, table: Table, *, _namespace_metadata: Optional[MetaData] = None - ) -> CreateTableOp: - if _namespace_metadata is None: - _namespace_metadata = table.metadata - - return cls( - table.name, - list(table.c) + list(table.constraints), - schema=table.schema, - _namespace_metadata=_namespace_metadata, - # given a Table() object, this Table will contain full Index() - # and UniqueConstraint objects already constructed in response to - # each unique=True / index=True flag on a Column. Carry this - # state along so that when we re-convert back into a Table, we - # skip unique=True/index=True so that these constraints are - # not doubled up. see #844 #848 - _constraints_included=True, - comment=table.comment, - info=dict(table.info), - prefixes=list(table._prefixes), - **table.kwargs, - ) - - def to_table( - self, migration_context: Optional[MigrationContext] = None - ) -> Table: - schema_obj = schemaobj.SchemaObjects(migration_context) - - return schema_obj.table( - self.table_name, - *self.columns, - schema=self.schema, - prefixes=list(self.prefixes) if self.prefixes else [], - comment=self.comment, - info=self.info.copy() if self.info else {}, - _constraints_included=self._constraints_included, - **self.kw, - ) - - @classmethod - def create_table( - cls, - operations: Operations, - table_name: str, - *columns: SchemaItem, - if_not_exists: Optional[bool] = None, - **kw: Any, - ) -> Table: - r"""Issue a "create table" instruction using the current migration - context. - - This directive receives an argument list similar to that of the - traditional :class:`sqlalchemy.schema.Table` construct, but without the - metadata:: - - from sqlalchemy import INTEGER, VARCHAR, NVARCHAR, Column - from alembic import op - - op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("name", VARCHAR(50), nullable=False), - Column("description", NVARCHAR(200)), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - Note that :meth:`.create_table` accepts - :class:`~sqlalchemy.schema.Column` - constructs directly from the SQLAlchemy library. In particular, - default values to be created on the database side are - specified using the ``server_default`` parameter, and not - ``default`` which only specifies Python-side defaults:: - - from alembic import op - from sqlalchemy import Column, TIMESTAMP, func - - # specify "DEFAULT NOW" along with the "timestamp" column - op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - The function also returns a newly created - :class:`~sqlalchemy.schema.Table` object, corresponding to the table - specification given, which is suitable for - immediate SQL operations, in particular - :meth:`.Operations.bulk_insert`:: - - from sqlalchemy import INTEGER, VARCHAR, NVARCHAR, Column - from alembic import op - - account_table = op.create_table( - "account", - Column("id", INTEGER, primary_key=True), - Column("name", VARCHAR(50), nullable=False), - Column("description", NVARCHAR(200)), - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - op.bulk_insert( - account_table, - [ - {"name": "A1", "description": "account 1"}, - {"name": "A2", "description": "account 2"}, - ], - ) - - :param table_name: Name of the table - :param \*columns: collection of :class:`~sqlalchemy.schema.Column` - objects within - the table, as well as optional :class:`~sqlalchemy.schema.Constraint` - objects - and :class:`~.sqlalchemy.schema.Index` objects. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param if_not_exists: If True, adds IF NOT EXISTS operator when - creating the new table. - - .. versionadded:: 1.13.3 - :param \**kw: Other keyword arguments are passed to the underlying - :class:`sqlalchemy.schema.Table` object created for the command. - - :return: the :class:`~sqlalchemy.schema.Table` object corresponding - to the parameters given. - - """ - op = cls(table_name, columns, if_not_exists=if_not_exists, **kw) - return operations.invoke(op) - - -@Operations.register_operation("drop_table") -class DropTableOp(MigrateOperation): - """Represent a drop table operation.""" - - def __init__( - self, - table_name: str, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - table_kw: Optional[MutableMapping[Any, Any]] = None, - _reverse: Optional[CreateTableOp] = None, - ) -> None: - self.table_name = table_name - self.schema = schema - self.if_exists = if_exists - self.table_kw = table_kw or {} - self.comment = self.table_kw.pop("comment", None) - self.info = self.table_kw.pop("info", None) - self.prefixes = self.table_kw.pop("prefixes", None) - self._reverse = _reverse - - def to_diff_tuple(self) -> Tuple[str, Table]: - return ("remove_table", self.to_table()) - - def reverse(self) -> CreateTableOp: - return CreateTableOp.from_table(self.to_table()) - - @classmethod - def from_table( - cls, table: Table, *, _namespace_metadata: Optional[MetaData] = None - ) -> DropTableOp: - return cls( - table.name, - schema=table.schema, - table_kw={ - "comment": table.comment, - "info": dict(table.info), - "prefixes": list(table._prefixes), - **table.kwargs, - }, - _reverse=CreateTableOp.from_table( - table, _namespace_metadata=_namespace_metadata - ), - ) - - def to_table( - self, migration_context: Optional[MigrationContext] = None - ) -> Table: - if self._reverse: - cols_and_constraints = self._reverse.columns - else: - cols_and_constraints = [] - - schema_obj = schemaobj.SchemaObjects(migration_context) - t = schema_obj.table( - self.table_name, - *cols_and_constraints, - comment=self.comment, - info=self.info.copy() if self.info else {}, - prefixes=list(self.prefixes) if self.prefixes else [], - schema=self.schema, - _constraints_included=( - self._reverse._constraints_included if self._reverse else False - ), - **self.table_kw, - ) - return t - - @classmethod - def drop_table( - cls, - operations: Operations, - table_name: str, - *, - schema: Optional[str] = None, - if_exists: Optional[bool] = None, - **kw: Any, - ) -> None: - r"""Issue a "drop table" instruction using the current - migration context. - - - e.g.:: - - drop_table("accounts") - - :param table_name: Name of the table - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param if_exists: If True, adds IF EXISTS operator when - dropping the table. - - .. versionadded:: 1.13.3 - :param \**kw: Other keyword arguments are passed to the underlying - :class:`sqlalchemy.schema.Table` object created for the command. - - """ - op = cls(table_name, schema=schema, if_exists=if_exists, table_kw=kw) - operations.invoke(op) - - -class AlterTableOp(MigrateOperation): - """Represent an alter table operation.""" - - def __init__( - self, - table_name: str, - *, - schema: Optional[str] = None, - ) -> None: - self.table_name = table_name - self.schema = schema - - -@Operations.register_operation("rename_table") -class RenameTableOp(AlterTableOp): - """Represent a rename table operation.""" - - def __init__( - self, - old_table_name: str, - new_table_name: str, - *, - schema: Optional[str] = None, - ) -> None: - super().__init__(old_table_name, schema=schema) - self.new_table_name = new_table_name - - @classmethod - def rename_table( - cls, - operations: Operations, - old_table_name: str, - new_table_name: str, - *, - schema: Optional[str] = None, - ) -> None: - """Emit an ALTER TABLE to rename a table. - - :param old_table_name: old name. - :param new_table_name: new name. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - op = cls(old_table_name, new_table_name, schema=schema) - return operations.invoke(op) - - -@Operations.register_operation("create_table_comment") -@BatchOperations.register_operation( - "create_table_comment", "batch_create_table_comment" -) -class CreateTableCommentOp(AlterTableOp): - """Represent a COMMENT ON `table` operation.""" - - def __init__( - self, - table_name: str, - comment: Optional[str], - *, - schema: Optional[str] = None, - existing_comment: Optional[str] = None, - ) -> None: - self.table_name = table_name - self.comment = comment - self.existing_comment = existing_comment - self.schema = schema - - @classmethod - def create_table_comment( - cls, - operations: Operations, - table_name: str, - comment: Optional[str], - *, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, - ) -> None: - """Emit a COMMENT ON operation to set the comment for a table. - - :param table_name: string name of the target table. - :param comment: string value of the comment being registered against - the specified table. - :param existing_comment: String value of a comment - already registered on the specified table, used within autogenerate - so that the operation is reversible, but not required for direct - use. - - .. seealso:: - - :meth:`.Operations.drop_table_comment` - - :paramref:`.Operations.alter_column.comment` - - """ - - op = cls( - table_name, - comment, - existing_comment=existing_comment, - schema=schema, - ) - return operations.invoke(op) - - @classmethod - def batch_create_table_comment( - cls, - operations: BatchOperations, - comment: Optional[str], - *, - existing_comment: Optional[str] = None, - ) -> None: - """Emit a COMMENT ON operation to set the comment for a table - using the current batch migration context. - - :param comment: string value of the comment being registered against - the specified table. - :param existing_comment: String value of a comment - already registered on the specified table, used within autogenerate - so that the operation is reversible, but not required for direct - use. - - """ - - op = cls( - operations.impl.table_name, - comment, - existing_comment=existing_comment, - schema=operations.impl.schema, - ) - return operations.invoke(op) - - def reverse(self) -> Union[CreateTableCommentOp, DropTableCommentOp]: - """Reverses the COMMENT ON operation against a table.""" - if self.existing_comment is None: - return DropTableCommentOp( - self.table_name, - existing_comment=self.comment, - schema=self.schema, - ) - else: - return CreateTableCommentOp( - self.table_name, - self.existing_comment, - existing_comment=self.comment, - schema=self.schema, - ) - - def to_table( - self, migration_context: Optional[MigrationContext] = None - ) -> Table: - schema_obj = schemaobj.SchemaObjects(migration_context) - - return schema_obj.table( - self.table_name, schema=self.schema, comment=self.comment - ) - - def to_diff_tuple(self) -> Tuple[Any, ...]: - return ("add_table_comment", self.to_table(), self.existing_comment) - - -@Operations.register_operation("drop_table_comment") -@BatchOperations.register_operation( - "drop_table_comment", "batch_drop_table_comment" -) -class DropTableCommentOp(AlterTableOp): - """Represent an operation to remove the comment from a table.""" - - def __init__( - self, - table_name: str, - *, - schema: Optional[str] = None, - existing_comment: Optional[str] = None, - ) -> None: - self.table_name = table_name - self.existing_comment = existing_comment - self.schema = schema - - @classmethod - def drop_table_comment( - cls, - operations: Operations, - table_name: str, - *, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, - ) -> None: - """Issue a "drop table comment" operation to - remove an existing comment set on a table. - - :param table_name: string name of the target table. - :param existing_comment: An optional string value of a comment already - registered on the specified table. - - .. seealso:: - - :meth:`.Operations.create_table_comment` - - :paramref:`.Operations.alter_column.comment` - - """ - - op = cls(table_name, existing_comment=existing_comment, schema=schema) - return operations.invoke(op) - - @classmethod - def batch_drop_table_comment( - cls, - operations: BatchOperations, - *, - existing_comment: Optional[str] = None, - ) -> None: - """Issue a "drop table comment" operation to - remove an existing comment set on a table using the current - batch operations context. - - :param existing_comment: An optional string value of a comment already - registered on the specified table. - - """ - - op = cls( - operations.impl.table_name, - existing_comment=existing_comment, - schema=operations.impl.schema, - ) - return operations.invoke(op) - - def reverse(self) -> CreateTableCommentOp: - """Reverses the COMMENT ON operation against a table.""" - return CreateTableCommentOp( - self.table_name, self.existing_comment, schema=self.schema - ) - - def to_table( - self, migration_context: Optional[MigrationContext] = None - ) -> Table: - schema_obj = schemaobj.SchemaObjects(migration_context) - - return schema_obj.table(self.table_name, schema=self.schema) - - def to_diff_tuple(self) -> Tuple[Any, ...]: - return ("remove_table_comment", self.to_table()) - - -@Operations.register_operation("alter_column") -@BatchOperations.register_operation("alter_column", "batch_alter_column") -class AlterColumnOp(AlterTableOp): - """Represent an alter column operation.""" - - def __init__( - self, - table_name: str, - column_name: str, - *, - schema: Optional[str] = None, - existing_type: Optional[Any] = None, - existing_server_default: Any = False, - existing_nullable: Optional[bool] = None, - existing_comment: Optional[str] = None, - modify_nullable: Optional[bool] = None, - modify_comment: Optional[Union[str, Literal[False]]] = False, - modify_server_default: Any = False, - modify_name: Optional[str] = None, - modify_type: Optional[Any] = None, - **kw: Any, - ) -> None: - super().__init__(table_name, schema=schema) - self.column_name = column_name - self.existing_type = existing_type - self.existing_server_default = existing_server_default - self.existing_nullable = existing_nullable - self.existing_comment = existing_comment - self.modify_nullable = modify_nullable - self.modify_comment = modify_comment - self.modify_server_default = modify_server_default - self.modify_name = modify_name - self.modify_type = modify_type - self.kw = kw - - def to_diff_tuple(self) -> Any: - col_diff = [] - schema, tname, cname = self.schema, self.table_name, self.column_name - - if self.modify_type is not None: - col_diff.append( - ( - "modify_type", - schema, - tname, - cname, - { - "existing_nullable": self.existing_nullable, - "existing_server_default": ( - self.existing_server_default - ), - "existing_comment": self.existing_comment, - }, - self.existing_type, - self.modify_type, - ) - ) - - if self.modify_nullable is not None: - col_diff.append( - ( - "modify_nullable", - schema, - tname, - cname, - { - "existing_type": self.existing_type, - "existing_server_default": ( - self.existing_server_default - ), - "existing_comment": self.existing_comment, - }, - self.existing_nullable, - self.modify_nullable, - ) - ) - - if self.modify_server_default is not False: - col_diff.append( - ( - "modify_default", - schema, - tname, - cname, - { - "existing_nullable": self.existing_nullable, - "existing_type": self.existing_type, - "existing_comment": self.existing_comment, - }, - self.existing_server_default, - self.modify_server_default, - ) - ) - - if self.modify_comment is not False: - col_diff.append( - ( - "modify_comment", - schema, - tname, - cname, - { - "existing_nullable": self.existing_nullable, - "existing_type": self.existing_type, - "existing_server_default": ( - self.existing_server_default - ), - }, - self.existing_comment, - self.modify_comment, - ) - ) - - return col_diff - - def has_changes(self) -> bool: - hc1 = ( - self.modify_nullable is not None - or self.modify_server_default is not False - or self.modify_type is not None - or self.modify_comment is not False - ) - if hc1: - return True - for kw in self.kw: - if kw.startswith("modify_"): - return True - else: - return False - - def reverse(self) -> AlterColumnOp: - kw = self.kw.copy() - kw["existing_type"] = self.existing_type - kw["existing_nullable"] = self.existing_nullable - kw["existing_server_default"] = self.existing_server_default - kw["existing_comment"] = self.existing_comment - if self.modify_type is not None: - kw["modify_type"] = self.modify_type - if self.modify_nullable is not None: - kw["modify_nullable"] = self.modify_nullable - if self.modify_server_default is not False: - kw["modify_server_default"] = self.modify_server_default - if self.modify_comment is not False: - kw["modify_comment"] = self.modify_comment - - # TODO: make this a little simpler - all_keys = { - m.group(1) - for m in [re.match(r"^(?:existing_|modify_)(.+)$", k) for k in kw] - if m - } - - for k in all_keys: - if "modify_%s" % k in kw: - swap = kw["existing_%s" % k] - kw["existing_%s" % k] = kw["modify_%s" % k] - kw["modify_%s" % k] = swap - - return self.__class__( - self.table_name, self.column_name, schema=self.schema, **kw - ) - - @classmethod - def alter_column( - cls, - operations: Operations, - table_name: str, - column_name: str, - *, - nullable: Optional[bool] = None, - comment: Optional[Union[str, Literal[False]]] = False, - server_default: Any = False, - new_column_name: Optional[str] = None, - type_: Optional[Union[TypeEngine[Any], Type[TypeEngine[Any]]]] = None, - existing_type: Optional[ - Union[TypeEngine[Any], Type[TypeEngine[Any]]] - ] = None, - existing_server_default: Optional[ - Union[str, bool, Identity, Computed] - ] = False, - existing_nullable: Optional[bool] = None, - existing_comment: Optional[str] = None, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - r"""Issue an "alter column" instruction using the - current migration context. - - Generally, only that aspect of the column which - is being changed, i.e. name, type, nullability, - default, needs to be specified. Multiple changes - can also be specified at once and the backend should - "do the right thing", emitting each change either - separately or together as the backend allows. - - MySQL has special requirements here, since MySQL - cannot ALTER a column without a full specification. - When producing MySQL-compatible migration files, - it is recommended that the ``existing_type``, - ``existing_server_default``, and ``existing_nullable`` - parameters be present, if not being altered. - - Type changes which are against the SQLAlchemy - "schema" types :class:`~sqlalchemy.types.Boolean` - and :class:`~sqlalchemy.types.Enum` may also - add or drop constraints which accompany those - types on backends that don't support them natively. - The ``existing_type`` argument is - used in this case to identify and remove a previous - constraint that was bound to the type object. - - :param table_name: string name of the target table. - :param column_name: string name of the target column, - as it exists before the operation begins. - :param nullable: Optional; specify ``True`` or ``False`` - to alter the column's nullability. - :param server_default: Optional; specify a string - SQL expression, :func:`~sqlalchemy.sql.expression.text`, - or :class:`~sqlalchemy.schema.DefaultClause` to indicate - an alteration to the column's default value. - Set to ``None`` to have the default removed. - :param comment: optional string text of a new comment to add to the - column. - :param new_column_name: Optional; specify a string name here to - indicate the new name within a column rename operation. - :param type\_: Optional; a :class:`~sqlalchemy.types.TypeEngine` - type object to specify a change to the column's type. - For SQLAlchemy types that also indicate a constraint (i.e. - :class:`~sqlalchemy.types.Boolean`, :class:`~sqlalchemy.types.Enum`), - the constraint is also generated. - :param autoincrement: set the ``AUTO_INCREMENT`` flag of the column; - currently understood by the MySQL dialect. - :param existing_type: Optional; a - :class:`~sqlalchemy.types.TypeEngine` - type object to specify the previous type. This - is required for all MySQL column alter operations that - don't otherwise specify a new type, as well as for - when nullability is being changed on a SQL Server - column. It is also used if the type is a so-called - SQLAlchemy "schema" type which may define a constraint (i.e. - :class:`~sqlalchemy.types.Boolean`, - :class:`~sqlalchemy.types.Enum`), - so that the constraint can be dropped. - :param existing_server_default: Optional; The existing - default value of the column. Required on MySQL if - an existing default is not being changed; else MySQL - removes the default. - :param existing_nullable: Optional; the existing nullability - of the column. Required on MySQL if the existing nullability - is not being changed; else MySQL sets this to NULL. - :param existing_autoincrement: Optional; the existing autoincrement - of the column. Used for MySQL's system of altering a column - that specifies ``AUTO_INCREMENT``. - :param existing_comment: string text of the existing comment on the - column to be maintained. Required on MySQL if the existing comment - on the column is not being changed. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param postgresql_using: String argument which will indicate a - SQL expression to render within the Postgresql-specific USING clause - within ALTER COLUMN. This string is taken directly as raw SQL which - must explicitly include any necessary quoting or escaping of tokens - within the expression. - - """ - - alt = cls( - table_name, - column_name, - schema=schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - existing_comment=existing_comment, - modify_name=new_column_name, - modify_type=type_, - modify_server_default=server_default, - modify_nullable=nullable, - modify_comment=comment, - **kw, - ) - - return operations.invoke(alt) - - @classmethod - def batch_alter_column( - cls, - operations: BatchOperations, - column_name: str, - *, - nullable: Optional[bool] = None, - comment: Optional[Union[str, Literal[False]]] = False, - server_default: Any = False, - new_column_name: Optional[str] = None, - type_: Optional[Union[TypeEngine[Any], Type[TypeEngine[Any]]]] = None, - existing_type: Optional[ - Union[TypeEngine[Any], Type[TypeEngine[Any]]] - ] = None, - existing_server_default: Optional[ - Union[str, bool, Identity, Computed] - ] = False, - existing_nullable: Optional[bool] = None, - existing_comment: Optional[str] = None, - insert_before: Optional[str] = None, - insert_after: Optional[str] = None, - **kw: Any, - ) -> None: - """Issue an "alter column" instruction using the current - batch migration context. - - Parameters are the same as that of :meth:`.Operations.alter_column`, - as well as the following option(s): - - :param insert_before: String name of an existing column which this - column should be placed before, when creating the new table. - - :param insert_after: String name of an existing column which this - column should be placed after, when creating the new table. If - both :paramref:`.BatchOperations.alter_column.insert_before` - and :paramref:`.BatchOperations.alter_column.insert_after` are - omitted, the column is inserted after the last existing column - in the table. - - .. seealso:: - - :meth:`.Operations.alter_column` - - - """ - alt = cls( - operations.impl.table_name, - column_name, - schema=operations.impl.schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - existing_comment=existing_comment, - modify_name=new_column_name, - modify_type=type_, - modify_server_default=server_default, - modify_nullable=nullable, - modify_comment=comment, - insert_before=insert_before, - insert_after=insert_after, - **kw, - ) - - return operations.invoke(alt) - - -@Operations.register_operation("add_column") -@BatchOperations.register_operation("add_column", "batch_add_column") -class AddColumnOp(AlterTableOp): - """Represent an add column operation.""" - - def __init__( - self, - table_name: str, - column: Column[Any], - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - super().__init__(table_name, schema=schema) - self.column = column - self.kw = kw - - def reverse(self) -> DropColumnOp: - return DropColumnOp.from_column_and_tablename( - self.schema, self.table_name, self.column - ) - - def to_diff_tuple( - self, - ) -> Tuple[str, Optional[str], str, Column[Any]]: - return ("add_column", self.schema, self.table_name, self.column) - - def to_column(self) -> Column[Any]: - return self.column - - @classmethod - def from_column(cls, col: Column[Any]) -> AddColumnOp: - return cls(col.table.name, col, schema=col.table.schema) - - @classmethod - def from_column_and_tablename( - cls, - schema: Optional[str], - tname: str, - col: Column[Any], - ) -> AddColumnOp: - return cls(tname, col, schema=schema) - - @classmethod - def add_column( - cls, - operations: Operations, - table_name: str, - column: Column[Any], - *, - schema: Optional[str] = None, - ) -> None: - """Issue an "add column" instruction using the current - migration context. - - e.g.:: - - from alembic import op - from sqlalchemy import Column, String - - op.add_column("organization", Column("name", String())) - - The :meth:`.Operations.add_column` method typically corresponds - to the SQL command "ALTER TABLE... ADD COLUMN". Within the scope - of this command, the column's name, datatype, nullability, - and optional server-generated defaults may be indicated. - - .. note:: - - With the exception of NOT NULL constraints or single-column FOREIGN - KEY constraints, other kinds of constraints such as PRIMARY KEY, - UNIQUE or CHECK constraints **cannot** be generated using this - method; for these constraints, refer to operations such as - :meth:`.Operations.create_primary_key` and - :meth:`.Operations.create_check_constraint`. In particular, the - following :class:`~sqlalchemy.schema.Column` parameters are - **ignored**: - - * :paramref:`~sqlalchemy.schema.Column.primary_key` - SQL databases - typically do not support an ALTER operation that can add - individual columns one at a time to an existing primary key - constraint, therefore it's less ambiguous to use the - :meth:`.Operations.create_primary_key` method, which assumes no - existing primary key constraint is present. - * :paramref:`~sqlalchemy.schema.Column.unique` - use the - :meth:`.Operations.create_unique_constraint` method - * :paramref:`~sqlalchemy.schema.Column.index` - use the - :meth:`.Operations.create_index` method - - - The provided :class:`~sqlalchemy.schema.Column` object may include a - :class:`~sqlalchemy.schema.ForeignKey` constraint directive, - referencing a remote table name. For this specific type of constraint, - Alembic will automatically emit a second ALTER statement in order to - add the single-column FOREIGN KEY constraint separately:: - - from alembic import op - from sqlalchemy import Column, INTEGER, ForeignKey - - op.add_column( - "organization", - Column("account_id", INTEGER, ForeignKey("accounts.id")), - ) - - The column argument passed to :meth:`.Operations.add_column` is a - :class:`~sqlalchemy.schema.Column` construct, used in the same way it's - used in SQLAlchemy. In particular, values or functions to be indicated - as producing the column's default value on the database side are - specified using the ``server_default`` parameter, and not ``default`` - which only specifies Python-side defaults:: - - from alembic import op - from sqlalchemy import Column, TIMESTAMP, func - - # specify "DEFAULT NOW" along with the column add - op.add_column( - "account", - Column("timestamp", TIMESTAMP, server_default=func.now()), - ) - - :param table_name: String name of the parent table. - :param column: a :class:`sqlalchemy.schema.Column` object - representing the new column. - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - - """ - - op = cls(table_name, column, schema=schema) - return operations.invoke(op) - - @classmethod - def batch_add_column( - cls, - operations: BatchOperations, - column: Column[Any], - *, - insert_before: Optional[str] = None, - insert_after: Optional[str] = None, - ) -> None: - """Issue an "add column" instruction using the current - batch migration context. - - .. seealso:: - - :meth:`.Operations.add_column` - - """ - - kw = {} - if insert_before: - kw["insert_before"] = insert_before - if insert_after: - kw["insert_after"] = insert_after - - op = cls( - operations.impl.table_name, - column, - schema=operations.impl.schema, - **kw, - ) - return operations.invoke(op) - - -@Operations.register_operation("drop_column") -@BatchOperations.register_operation("drop_column", "batch_drop_column") -class DropColumnOp(AlterTableOp): - """Represent a drop column operation.""" - - def __init__( - self, - table_name: str, - column_name: str, - *, - schema: Optional[str] = None, - _reverse: Optional[AddColumnOp] = None, - **kw: Any, - ) -> None: - super().__init__(table_name, schema=schema) - self.column_name = column_name - self.kw = kw - self._reverse = _reverse - - def to_diff_tuple( - self, - ) -> Tuple[str, Optional[str], str, Column[Any]]: - return ( - "remove_column", - self.schema, - self.table_name, - self.to_column(), - ) - - def reverse(self) -> AddColumnOp: - if self._reverse is None: - raise ValueError( - "operation is not reversible; " - "original column is not present" - ) - - return AddColumnOp.from_column_and_tablename( - self.schema, self.table_name, self._reverse.column - ) - - @classmethod - def from_column_and_tablename( - cls, - schema: Optional[str], - tname: str, - col: Column[Any], - ) -> DropColumnOp: - return cls( - tname, - col.name, - schema=schema, - _reverse=AddColumnOp.from_column_and_tablename(schema, tname, col), - ) - - def to_column( - self, migration_context: Optional[MigrationContext] = None - ) -> Column[Any]: - if self._reverse is not None: - return self._reverse.column - schema_obj = schemaobj.SchemaObjects(migration_context) - return schema_obj.column(self.column_name, NULLTYPE) - - @classmethod - def drop_column( - cls, - operations: Operations, - table_name: str, - column_name: str, - *, - schema: Optional[str] = None, - **kw: Any, - ) -> None: - """Issue a "drop column" instruction using the current - migration context. - - e.g.:: - - drop_column("organization", "account_id") - - :param table_name: name of table - :param column_name: name of column - :param schema: Optional schema name to operate within. To control - quoting of the schema outside of the default behavior, use - the SQLAlchemy construct - :class:`~sqlalchemy.sql.elements.quoted_name`. - :param mssql_drop_check: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop the CHECK constraint on the column using a - SQL-script-compatible - block that selects into a @variable from sys.check_constraints, - then exec's a separate DROP CONSTRAINT for that constraint. - :param mssql_drop_default: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop the DEFAULT constraint on the column using a - SQL-script-compatible - block that selects into a @variable from sys.default_constraints, - then exec's a separate DROP CONSTRAINT for that default. - :param mssql_drop_foreign_key: Optional boolean. When ``True``, on - Microsoft SQL Server only, first - drop a single FOREIGN KEY constraint on the column using a - SQL-script-compatible - block that selects into a @variable from - sys.foreign_keys/sys.foreign_key_columns, - then exec's a separate DROP CONSTRAINT for that default. Only - works if the column has exactly one FK constraint which refers to - it, at the moment. - - """ - - op = cls(table_name, column_name, schema=schema, **kw) - return operations.invoke(op) - - @classmethod - def batch_drop_column( - cls, operations: BatchOperations, column_name: str, **kw: Any - ) -> None: - """Issue a "drop column" instruction using the current - batch migration context. - - .. seealso:: - - :meth:`.Operations.drop_column` - - """ - op = cls( - operations.impl.table_name, - column_name, - schema=operations.impl.schema, - **kw, - ) - return operations.invoke(op) - - -@Operations.register_operation("bulk_insert") -class BulkInsertOp(MigrateOperation): - """Represent a bulk insert operation.""" - - def __init__( - self, - table: Union[Table, TableClause], - rows: List[Dict[str, Any]], - *, - multiinsert: bool = True, - ) -> None: - self.table = table - self.rows = rows - self.multiinsert = multiinsert - - @classmethod - def bulk_insert( - cls, - operations: Operations, - table: Union[Table, TableClause], - rows: List[Dict[str, Any]], - *, - multiinsert: bool = True, - ) -> None: - """Issue a "bulk insert" operation using the current - migration context. - - This provides a means of representing an INSERT of multiple rows - which works equally well in the context of executing on a live - connection as well as that of generating a SQL script. In the - case of a SQL script, the values are rendered inline into the - statement. - - e.g.:: - - from alembic import op - from datetime import date - from sqlalchemy.sql import table, column - from sqlalchemy import String, Integer, Date - - # Create an ad-hoc table to use for the insert statement. - accounts_table = table( - "account", - column("id", Integer), - column("name", String), - column("create_date", Date), - ) - - op.bulk_insert( - accounts_table, - [ - { - "id": 1, - "name": "John Smith", - "create_date": date(2010, 10, 5), - }, - { - "id": 2, - "name": "Ed Williams", - "create_date": date(2007, 5, 27), - }, - { - "id": 3, - "name": "Wendy Jones", - "create_date": date(2008, 8, 15), - }, - ], - ) - - When using --sql mode, some datatypes may not render inline - automatically, such as dates and other special types. When this - issue is present, :meth:`.Operations.inline_literal` may be used:: - - op.bulk_insert( - accounts_table, - [ - { - "id": 1, - "name": "John Smith", - "create_date": op.inline_literal("2010-10-05"), - }, - { - "id": 2, - "name": "Ed Williams", - "create_date": op.inline_literal("2007-05-27"), - }, - { - "id": 3, - "name": "Wendy Jones", - "create_date": op.inline_literal("2008-08-15"), - }, - ], - multiinsert=False, - ) - - When using :meth:`.Operations.inline_literal` in conjunction with - :meth:`.Operations.bulk_insert`, in order for the statement to work - in "online" (e.g. non --sql) mode, the - :paramref:`~.Operations.bulk_insert.multiinsert` - flag should be set to ``False``, which will have the effect of - individual INSERT statements being emitted to the database, each - with a distinct VALUES clause, so that the "inline" values can - still be rendered, rather than attempting to pass the values - as bound parameters. - - :param table: a table object which represents the target of the INSERT. - - :param rows: a list of dictionaries indicating rows. - - :param multiinsert: when at its default of True and --sql mode is not - enabled, the INSERT statement will be executed using - "executemany()" style, where all elements in the list of - dictionaries are passed as bound parameters in a single - list. Setting this to False results in individual INSERT - statements being emitted per parameter set, and is needed - in those cases where non-literal values are present in the - parameter sets. - - """ - - op = cls(table, rows, multiinsert=multiinsert) - operations.invoke(op) - - -@Operations.register_operation("execute") -@BatchOperations.register_operation("execute", "batch_execute") -class ExecuteSQLOp(MigrateOperation): - """Represent an execute SQL operation.""" - - def __init__( - self, - sqltext: Union[Executable, str], - *, - execution_options: Optional[dict[str, Any]] = None, - ) -> None: - self.sqltext = sqltext - self.execution_options = execution_options - - @classmethod - def execute( - cls, - operations: Operations, - sqltext: Union[Executable, str], - *, - execution_options: Optional[dict[str, Any]] = None, - ) -> None: - r"""Execute the given SQL using the current migration context. - - The given SQL can be a plain string, e.g.:: - - op.execute("INSERT INTO table (foo) VALUES ('some value')") - - Or it can be any kind of Core SQL Expression construct, such as - below where we use an update construct:: - - from sqlalchemy.sql import table, column - from sqlalchemy import String - from alembic import op - - account = table("account", column("name", String)) - op.execute( - account.update() - .where(account.c.name == op.inline_literal("account 1")) - .values({"name": op.inline_literal("account 2")}) - ) - - Above, we made use of the SQLAlchemy - :func:`sqlalchemy.sql.expression.table` and - :func:`sqlalchemy.sql.expression.column` constructs to make a brief, - ad-hoc table construct just for our UPDATE statement. A full - :class:`~sqlalchemy.schema.Table` construct of course works perfectly - fine as well, though note it's a recommended practice to at least - ensure the definition of a table is self-contained within the migration - script, rather than imported from a module that may break compatibility - with older migrations. - - In a SQL script context, the statement is emitted directly to the - output stream. There is *no* return result, however, as this - function is oriented towards generating a change script - that can run in "offline" mode. Additionally, parameterized - statements are discouraged here, as they *will not work* in offline - mode. Above, we use :meth:`.inline_literal` where parameters are - to be used. - - For full interaction with a connected database where parameters can - also be used normally, use the "bind" available from the context:: - - from alembic import op - - connection = op.get_bind() - - connection.execute( - account.update() - .where(account.c.name == "account 1") - .values({"name": "account 2"}) - ) - - Additionally, when passing the statement as a plain string, it is first - coerced into a :func:`sqlalchemy.sql.expression.text` construct - before being passed along. In the less likely case that the - literal SQL string contains a colon, it must be escaped with a - backslash, as:: - - op.execute(r"INSERT INTO table (foo) VALUES ('\:colon_value')") - - - :param sqltext: Any legal SQLAlchemy expression, including: - - * a string - * a :func:`sqlalchemy.sql.expression.text` construct. - * a :func:`sqlalchemy.sql.expression.insert` construct. - * a :func:`sqlalchemy.sql.expression.update` construct. - * a :func:`sqlalchemy.sql.expression.delete` construct. - * Any "executable" described in SQLAlchemy Core documentation, - noting that no result set is returned. - - .. note:: when passing a plain string, the statement is coerced into - a :func:`sqlalchemy.sql.expression.text` construct. This construct - considers symbols with colons, e.g. ``:foo`` to be bound parameters. - To avoid this, ensure that colon symbols are escaped, e.g. - ``\:foo``. - - :param execution_options: Optional dictionary of - execution options, will be passed to - :meth:`sqlalchemy.engine.Connection.execution_options`. - """ - op = cls(sqltext, execution_options=execution_options) - return operations.invoke(op) - - @classmethod - def batch_execute( - cls, - operations: Operations, - sqltext: Union[Executable, str], - *, - execution_options: Optional[dict[str, Any]] = None, - ) -> None: - """Execute the given SQL using the current migration context. - - .. seealso:: - - :meth:`.Operations.execute` - - """ - return cls.execute( - operations, sqltext, execution_options=execution_options - ) - - def to_diff_tuple(self) -> Tuple[str, Union[Executable, str]]: - return ("execute", self.sqltext) - - -class OpContainer(MigrateOperation): - """Represent a sequence of operations operation.""" - - def __init__(self, ops: Sequence[MigrateOperation] = ()) -> None: - self.ops = list(ops) - - def is_empty(self) -> bool: - return not self.ops - - def as_diffs(self) -> Any: - return list(OpContainer._ops_as_diffs(self)) - - @classmethod - def _ops_as_diffs( - cls, migrations: OpContainer - ) -> Iterator[Tuple[Any, ...]]: - for op in migrations.ops: - if hasattr(op, "ops"): - yield from cls._ops_as_diffs(cast("OpContainer", op)) - else: - yield op.to_diff_tuple() - - -class ModifyTableOps(OpContainer): - """Contains a sequence of operations that all apply to a single Table.""" - - def __init__( - self, - table_name: str, - ops: Sequence[MigrateOperation], - *, - schema: Optional[str] = None, - ) -> None: - super().__init__(ops) - self.table_name = table_name - self.schema = schema - - def reverse(self) -> ModifyTableOps: - return ModifyTableOps( - self.table_name, - ops=list(reversed([op.reverse() for op in self.ops])), - schema=self.schema, - ) - - -class UpgradeOps(OpContainer): - """contains a sequence of operations that would apply to the - 'upgrade' stream of a script. - - .. seealso:: - - :ref:`customizing_revision` - - """ - - def __init__( - self, - ops: Sequence[MigrateOperation] = (), - upgrade_token: str = "upgrades", - ) -> None: - super().__init__(ops=ops) - self.upgrade_token = upgrade_token - - def reverse_into(self, downgrade_ops: DowngradeOps) -> DowngradeOps: - downgrade_ops.ops[:] = list( - reversed([op.reverse() for op in self.ops]) - ) - return downgrade_ops - - def reverse(self) -> DowngradeOps: - return self.reverse_into(DowngradeOps(ops=[])) - - -class DowngradeOps(OpContainer): - """contains a sequence of operations that would apply to the - 'downgrade' stream of a script. - - .. seealso:: - - :ref:`customizing_revision` - - """ - - def __init__( - self, - ops: Sequence[MigrateOperation] = (), - downgrade_token: str = "downgrades", - ) -> None: - super().__init__(ops=ops) - self.downgrade_token = downgrade_token - - def reverse(self) -> UpgradeOps: - return UpgradeOps( - ops=list(reversed([op.reverse() for op in self.ops])) - ) - - -class MigrationScript(MigrateOperation): - """represents a migration script. - - E.g. when autogenerate encounters this object, this corresponds to the - production of an actual script file. - - A normal :class:`.MigrationScript` object would contain a single - :class:`.UpgradeOps` and a single :class:`.DowngradeOps` directive. - These are accessible via the ``.upgrade_ops`` and ``.downgrade_ops`` - attributes. - - In the case of an autogenerate operation that runs multiple times, - such as the multiple database example in the "multidb" template, - the ``.upgrade_ops`` and ``.downgrade_ops`` attributes are disabled, - and instead these objects should be accessed via the ``.upgrade_ops_list`` - and ``.downgrade_ops_list`` list-based attributes. These latter - attributes are always available at the very least as single-element lists. - - .. seealso:: - - :ref:`customizing_revision` - - """ - - _needs_render: Optional[bool] - _upgrade_ops: List[UpgradeOps] - _downgrade_ops: List[DowngradeOps] - - def __init__( - self, - rev_id: Optional[str], - upgrade_ops: UpgradeOps, - downgrade_ops: DowngradeOps, - *, - message: Optional[str] = None, - imports: Set[str] = set(), - head: Optional[str] = None, - splice: Optional[bool] = None, - branch_label: Optional[_RevIdType] = None, - version_path: Optional[str] = None, - depends_on: Optional[_RevIdType] = None, - ) -> None: - self.rev_id = rev_id - self.message = message - self.imports = imports - self.head = head - self.splice = splice - self.branch_label = branch_label - self.version_path = version_path - self.depends_on = depends_on - self.upgrade_ops = upgrade_ops - self.downgrade_ops = downgrade_ops - - @property - def upgrade_ops(self) -> Optional[UpgradeOps]: - """An instance of :class:`.UpgradeOps`. - - .. seealso:: - - :attr:`.MigrationScript.upgrade_ops_list` - """ - if len(self._upgrade_ops) > 1: - raise ValueError( - "This MigrationScript instance has a multiple-entry " - "list for UpgradeOps; please use the " - "upgrade_ops_list attribute." - ) - elif not self._upgrade_ops: - return None - else: - return self._upgrade_ops[0] - - @upgrade_ops.setter - def upgrade_ops( - self, upgrade_ops: Union[UpgradeOps, List[UpgradeOps]] - ) -> None: - self._upgrade_ops = util.to_list(upgrade_ops) - for elem in self._upgrade_ops: - assert isinstance(elem, UpgradeOps) - - @property - def downgrade_ops(self) -> Optional[DowngradeOps]: - """An instance of :class:`.DowngradeOps`. - - .. seealso:: - - :attr:`.MigrationScript.downgrade_ops_list` - """ - if len(self._downgrade_ops) > 1: - raise ValueError( - "This MigrationScript instance has a multiple-entry " - "list for DowngradeOps; please use the " - "downgrade_ops_list attribute." - ) - elif not self._downgrade_ops: - return None - else: - return self._downgrade_ops[0] - - @downgrade_ops.setter - def downgrade_ops( - self, downgrade_ops: Union[DowngradeOps, List[DowngradeOps]] - ) -> None: - self._downgrade_ops = util.to_list(downgrade_ops) - for elem in self._downgrade_ops: - assert isinstance(elem, DowngradeOps) - - @property - def upgrade_ops_list(self) -> List[UpgradeOps]: - """A list of :class:`.UpgradeOps` instances. - - This is used in place of the :attr:`.MigrationScript.upgrade_ops` - attribute when dealing with a revision operation that does - multiple autogenerate passes. - - """ - return self._upgrade_ops - - @property - def downgrade_ops_list(self) -> List[DowngradeOps]: - """A list of :class:`.DowngradeOps` instances. - - This is used in place of the :attr:`.MigrationScript.downgrade_ops` - attribute when dealing with a revision operation that does - multiple autogenerate passes. - - """ - return self._downgrade_ops diff --git a/backend/venv/lib/python3.12/site-packages/alembic/operations/schemaobj.py b/backend/venv/lib/python3.12/site-packages/alembic/operations/schemaobj.py deleted file mode 100644 index 59c1002..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/operations/schemaobj.py +++ /dev/null @@ -1,290 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -from typing import Any -from typing import Dict -from typing import List -from typing import Optional -from typing import Sequence -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import schema as sa_schema -from sqlalchemy.sql.schema import Column -from sqlalchemy.sql.schema import Constraint -from sqlalchemy.sql.schema import Index -from sqlalchemy.types import Integer -from sqlalchemy.types import NULLTYPE - -from .. import util -from ..util import sqla_compat - -if TYPE_CHECKING: - from sqlalchemy.sql.elements import ColumnElement - from sqlalchemy.sql.elements import TextClause - from sqlalchemy.sql.schema import CheckConstraint - from sqlalchemy.sql.schema import ForeignKey - from sqlalchemy.sql.schema import ForeignKeyConstraint - from sqlalchemy.sql.schema import MetaData - from sqlalchemy.sql.schema import PrimaryKeyConstraint - from sqlalchemy.sql.schema import Table - from sqlalchemy.sql.schema import UniqueConstraint - from sqlalchemy.sql.type_api import TypeEngine - - from ..runtime.migration import MigrationContext - - -class SchemaObjects: - def __init__( - self, migration_context: Optional[MigrationContext] = None - ) -> None: - self.migration_context = migration_context - - def primary_key_constraint( - self, - name: Optional[sqla_compat._ConstraintNameDefined], - table_name: str, - cols: Sequence[str], - schema: Optional[str] = None, - **dialect_kw, - ) -> PrimaryKeyConstraint: - m = self.metadata() - columns = [sa_schema.Column(n, NULLTYPE) for n in cols] - t = sa_schema.Table(table_name, m, *columns, schema=schema) - # SQLAlchemy primary key constraint name arg is wrongly typed on - # the SQLAlchemy side through 2.0.5 at least - p = sa_schema.PrimaryKeyConstraint( - *[t.c[n] for n in cols], name=name, **dialect_kw # type: ignore - ) - return p - - def foreign_key_constraint( - self, - name: Optional[sqla_compat._ConstraintNameDefined], - source: str, - referent: str, - local_cols: List[str], - remote_cols: List[str], - onupdate: Optional[str] = None, - ondelete: Optional[str] = None, - deferrable: Optional[bool] = None, - source_schema: Optional[str] = None, - referent_schema: Optional[str] = None, - initially: Optional[str] = None, - match: Optional[str] = None, - **dialect_kw, - ) -> ForeignKeyConstraint: - m = self.metadata() - if source == referent and source_schema == referent_schema: - t1_cols = local_cols + remote_cols - else: - t1_cols = local_cols - sa_schema.Table( - referent, - m, - *[sa_schema.Column(n, NULLTYPE) for n in remote_cols], - schema=referent_schema, - ) - - t1 = sa_schema.Table( - source, - m, - *[ - sa_schema.Column(n, NULLTYPE) - for n in util.unique_list(t1_cols) - ], - schema=source_schema, - ) - - tname = ( - "%s.%s" % (referent_schema, referent) - if referent_schema - else referent - ) - - dialect_kw["match"] = match - - f = sa_schema.ForeignKeyConstraint( - local_cols, - ["%s.%s" % (tname, n) for n in remote_cols], - name=name, - onupdate=onupdate, - ondelete=ondelete, - deferrable=deferrable, - initially=initially, - **dialect_kw, - ) - t1.append_constraint(f) - - return f - - def unique_constraint( - self, - name: Optional[sqla_compat._ConstraintNameDefined], - source: str, - local_cols: Sequence[str], - schema: Optional[str] = None, - **kw, - ) -> UniqueConstraint: - t = sa_schema.Table( - source, - self.metadata(), - *[sa_schema.Column(n, NULLTYPE) for n in local_cols], - schema=schema, - ) - kw["name"] = name - uq = sa_schema.UniqueConstraint(*[t.c[n] for n in local_cols], **kw) - # TODO: need event tests to ensure the event - # is fired off here - t.append_constraint(uq) - return uq - - def check_constraint( - self, - name: Optional[sqla_compat._ConstraintNameDefined], - source: str, - condition: Union[str, TextClause, ColumnElement[Any]], - schema: Optional[str] = None, - **kw, - ) -> Union[CheckConstraint]: - t = sa_schema.Table( - source, - self.metadata(), - sa_schema.Column("x", Integer), - schema=schema, - ) - ck = sa_schema.CheckConstraint(condition, name=name, **kw) - t.append_constraint(ck) - return ck - - def generic_constraint( - self, - name: Optional[sqla_compat._ConstraintNameDefined], - table_name: str, - type_: Optional[str], - schema: Optional[str] = None, - **kw, - ) -> Any: - t = self.table(table_name, schema=schema) - types: Dict[Optional[str], Any] = { - "foreignkey": lambda name: sa_schema.ForeignKeyConstraint( - [], [], name=name - ), - "primary": sa_schema.PrimaryKeyConstraint, - "unique": sa_schema.UniqueConstraint, - "check": lambda name: sa_schema.CheckConstraint("", name=name), - None: sa_schema.Constraint, - } - try: - const = types[type_] - except KeyError as ke: - raise TypeError( - "'type' can be one of %s" - % ", ".join(sorted(repr(x) for x in types)) - ) from ke - else: - const = const(name=name) - t.append_constraint(const) - return const - - def metadata(self) -> MetaData: - kw = {} - if ( - self.migration_context is not None - and "target_metadata" in self.migration_context.opts - ): - mt = self.migration_context.opts["target_metadata"] - if hasattr(mt, "naming_convention"): - kw["naming_convention"] = mt.naming_convention - return sa_schema.MetaData(**kw) - - def table(self, name: str, *columns, **kw) -> Table: - m = self.metadata() - - cols = [ - sqla_compat._copy(c) if c.table is not None else c - for c in columns - if isinstance(c, Column) - ] - # these flags have already added their UniqueConstraint / - # Index objects to the table, so flip them off here. - # SQLAlchemy tometadata() avoids this instead by preserving the - # flags and skipping the constraints that have _type_bound on them, - # but for a migration we'd rather list out the constraints - # explicitly. - _constraints_included = kw.pop("_constraints_included", False) - if _constraints_included: - for c in cols: - c.unique = c.index = False - - t = sa_schema.Table(name, m, *cols, **kw) - - constraints = [ - ( - sqla_compat._copy(elem, target_table=t) - if getattr(elem, "parent", None) is not t - and getattr(elem, "parent", None) is not None - else elem - ) - for elem in columns - if isinstance(elem, (Constraint, Index)) - ] - - for const in constraints: - t.append_constraint(const) - - for f in t.foreign_keys: - self._ensure_table_for_fk(m, f) - return t - - def column(self, name: str, type_: TypeEngine, **kw) -> Column: - return sa_schema.Column(name, type_, **kw) - - def index( - self, - name: Optional[str], - tablename: Optional[str], - columns: Sequence[Union[str, TextClause, ColumnElement[Any]]], - schema: Optional[str] = None, - **kw, - ) -> Index: - t = sa_schema.Table( - tablename or "no_table", - self.metadata(), - schema=schema, - ) - kw["_table"] = t - idx = sa_schema.Index( - name, - *[util.sqla_compat._textual_index_column(t, n) for n in columns], - **kw, - ) - return idx - - def _parse_table_key(self, table_key: str) -> Tuple[Optional[str], str]: - if "." in table_key: - tokens = table_key.split(".") - sname: Optional[str] = ".".join(tokens[0:-1]) - tname = tokens[-1] - else: - tname = table_key - sname = None - return (sname, tname) - - def _ensure_table_for_fk(self, metadata: MetaData, fk: ForeignKey) -> None: - """create a placeholder Table object for the referent of a - ForeignKey. - - """ - if isinstance(fk._colspec, str): - table_key, cname = fk._colspec.rsplit(".", 1) - sname, tname = self._parse_table_key(table_key) - if table_key not in metadata.tables: - rel_t = sa_schema.Table(tname, metadata, schema=sname) - else: - rel_t = metadata.tables[table_key] - if cname not in rel_t.c: - rel_t.append_column(sa_schema.Column(cname, NULLTYPE)) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/operations/toimpl.py b/backend/venv/lib/python3.12/site-packages/alembic/operations/toimpl.py deleted file mode 100644 index 4b96004..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/operations/toimpl.py +++ /dev/null @@ -1,238 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from typing import TYPE_CHECKING - -from sqlalchemy import schema as sa_schema - -from . import ops -from .base import Operations -from ..util.sqla_compat import _copy -from ..util.sqla_compat import sqla_14 - -if TYPE_CHECKING: - from sqlalchemy.sql.schema import Table - - -@Operations.implementation_for(ops.AlterColumnOp) -def alter_column( - operations: "Operations", operation: "ops.AlterColumnOp" -) -> None: - compiler = operations.impl.dialect.statement_compiler( - operations.impl.dialect, None - ) - - existing_type = operation.existing_type - existing_nullable = operation.existing_nullable - existing_server_default = operation.existing_server_default - type_ = operation.modify_type - column_name = operation.column_name - table_name = operation.table_name - schema = operation.schema - server_default = operation.modify_server_default - new_column_name = operation.modify_name - nullable = operation.modify_nullable - comment = operation.modify_comment - existing_comment = operation.existing_comment - - def _count_constraint(constraint): - return not isinstance(constraint, sa_schema.PrimaryKeyConstraint) and ( - not constraint._create_rule or constraint._create_rule(compiler) - ) - - if existing_type and type_: - t = operations.schema_obj.table( - table_name, - sa_schema.Column(column_name, existing_type), - schema=schema, - ) - for constraint in t.constraints: - if _count_constraint(constraint): - operations.impl.drop_constraint(constraint) - - operations.impl.alter_column( - table_name, - column_name, - nullable=nullable, - server_default=server_default, - name=new_column_name, - type_=type_, - schema=schema, - existing_type=existing_type, - existing_server_default=existing_server_default, - existing_nullable=existing_nullable, - comment=comment, - existing_comment=existing_comment, - **operation.kw, - ) - - if type_: - t = operations.schema_obj.table( - table_name, - operations.schema_obj.column(column_name, type_), - schema=schema, - ) - for constraint in t.constraints: - if _count_constraint(constraint): - operations.impl.add_constraint(constraint) - - -@Operations.implementation_for(ops.DropTableOp) -def drop_table(operations: "Operations", operation: "ops.DropTableOp") -> None: - kw = {} - if operation.if_exists is not None: - if not sqla_14: - raise NotImplementedError("SQLAlchemy 1.4+ required") - - kw["if_exists"] = operation.if_exists - operations.impl.drop_table( - operation.to_table(operations.migration_context), **kw - ) - - -@Operations.implementation_for(ops.DropColumnOp) -def drop_column( - operations: "Operations", operation: "ops.DropColumnOp" -) -> None: - column = operation.to_column(operations.migration_context) - operations.impl.drop_column( - operation.table_name, column, schema=operation.schema, **operation.kw - ) - - -@Operations.implementation_for(ops.CreateIndexOp) -def create_index( - operations: "Operations", operation: "ops.CreateIndexOp" -) -> None: - idx = operation.to_index(operations.migration_context) - kw = {} - if operation.if_not_exists is not None: - if not sqla_14: - raise NotImplementedError("SQLAlchemy 1.4+ required") - - kw["if_not_exists"] = operation.if_not_exists - operations.impl.create_index(idx, **kw) - - -@Operations.implementation_for(ops.DropIndexOp) -def drop_index(operations: "Operations", operation: "ops.DropIndexOp") -> None: - kw = {} - if operation.if_exists is not None: - if not sqla_14: - raise NotImplementedError("SQLAlchemy 1.4+ required") - - kw["if_exists"] = operation.if_exists - - operations.impl.drop_index( - operation.to_index(operations.migration_context), - **kw, - ) - - -@Operations.implementation_for(ops.CreateTableOp) -def create_table( - operations: "Operations", operation: "ops.CreateTableOp" -) -> "Table": - kw = {} - if operation.if_not_exists is not None: - if not sqla_14: - raise NotImplementedError("SQLAlchemy 1.4+ required") - - kw["if_not_exists"] = operation.if_not_exists - table = operation.to_table(operations.migration_context) - operations.impl.create_table(table, **kw) - return table - - -@Operations.implementation_for(ops.RenameTableOp) -def rename_table( - operations: "Operations", operation: "ops.RenameTableOp" -) -> None: - operations.impl.rename_table( - operation.table_name, operation.new_table_name, schema=operation.schema - ) - - -@Operations.implementation_for(ops.CreateTableCommentOp) -def create_table_comment( - operations: "Operations", operation: "ops.CreateTableCommentOp" -) -> None: - table = operation.to_table(operations.migration_context) - operations.impl.create_table_comment(table) - - -@Operations.implementation_for(ops.DropTableCommentOp) -def drop_table_comment( - operations: "Operations", operation: "ops.DropTableCommentOp" -) -> None: - table = operation.to_table(operations.migration_context) - operations.impl.drop_table_comment(table) - - -@Operations.implementation_for(ops.AddColumnOp) -def add_column(operations: "Operations", operation: "ops.AddColumnOp") -> None: - table_name = operation.table_name - column = operation.column - schema = operation.schema - kw = operation.kw - - if column.table is not None: - column = _copy(column) - - t = operations.schema_obj.table(table_name, column, schema=schema) - operations.impl.add_column(table_name, column, schema=schema, **kw) - - for constraint in t.constraints: - if not isinstance(constraint, sa_schema.PrimaryKeyConstraint): - operations.impl.add_constraint(constraint) - for index in t.indexes: - operations.impl.create_index(index) - - with_comment = ( - operations.impl.dialect.supports_comments - and not operations.impl.dialect.inline_comments - ) - comment = column.comment - if comment and with_comment: - operations.impl.create_column_comment(column) - - -@Operations.implementation_for(ops.AddConstraintOp) -def create_constraint( - operations: "Operations", operation: "ops.AddConstraintOp" -) -> None: - operations.impl.add_constraint( - operation.to_constraint(operations.migration_context) - ) - - -@Operations.implementation_for(ops.DropConstraintOp) -def drop_constraint( - operations: "Operations", operation: "ops.DropConstraintOp" -) -> None: - operations.impl.drop_constraint( - operations.schema_obj.generic_constraint( - operation.constraint_name, - operation.table_name, - operation.constraint_type, - schema=operation.schema, - ) - ) - - -@Operations.implementation_for(ops.BulkInsertOp) -def bulk_insert( - operations: "Operations", operation: "ops.BulkInsertOp" -) -> None: - operations.impl.bulk_insert( # type: ignore[union-attr] - operation.table, operation.rows, multiinsert=operation.multiinsert - ) - - -@Operations.implementation_for(ops.ExecuteSQLOp) -def execute_sql( - operations: "Operations", operation: "ops.ExecuteSQLOp" -) -> None: - operations.migration_context.impl.execute( - operation.sqltext, execution_options=operation.execution_options - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/py.typed b/backend/venv/lib/python3.12/site-packages/alembic/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/alembic/runtime/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/runtime/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/alembic/runtime/environment.py b/backend/venv/lib/python3.12/site-packages/alembic/runtime/environment.py deleted file mode 100644 index a30972e..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/runtime/environment.py +++ /dev/null @@ -1,1051 +0,0 @@ -from __future__ import annotations - -from typing import Any -from typing import Callable -from typing import Collection -from typing import ContextManager -from typing import Dict -from typing import List -from typing import Mapping -from typing import MutableMapping -from typing import Optional -from typing import overload -from typing import Sequence -from typing import TextIO -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy.sql.schema import Column -from sqlalchemy.sql.schema import FetchedValue -from typing_extensions import Literal - -from .migration import _ProxyTransaction -from .migration import MigrationContext -from .. import util -from ..operations import Operations -from ..script.revision import _GetRevArg - -if TYPE_CHECKING: - from sqlalchemy.engine import URL - from sqlalchemy.engine.base import Connection - from sqlalchemy.sql import Executable - from sqlalchemy.sql.schema import MetaData - from sqlalchemy.sql.schema import SchemaItem - from sqlalchemy.sql.type_api import TypeEngine - - from .migration import MigrationInfo - from ..autogenerate.api import AutogenContext - from ..config import Config - from ..ddl import DefaultImpl - from ..operations.ops import MigrationScript - from ..script.base import ScriptDirectory - -_RevNumber = Optional[Union[str, Tuple[str, ...]]] - -ProcessRevisionDirectiveFn = Callable[ - [MigrationContext, _GetRevArg, List["MigrationScript"]], None -] - -RenderItemFn = Callable[ - [str, Any, "AutogenContext"], Union[str, Literal[False]] -] - -NameFilterType = Literal[ - "schema", - "table", - "column", - "index", - "unique_constraint", - "foreign_key_constraint", -] -NameFilterParentNames = MutableMapping[ - Literal["schema_name", "table_name", "schema_qualified_table_name"], - Optional[str], -] -IncludeNameFn = Callable[ - [Optional[str], NameFilterType, NameFilterParentNames], bool -] - -IncludeObjectFn = Callable[ - [ - "SchemaItem", - Optional[str], - NameFilterType, - bool, - Optional["SchemaItem"], - ], - bool, -] - -OnVersionApplyFn = Callable[ - [MigrationContext, "MigrationInfo", Collection[Any], Mapping[str, Any]], - None, -] - -CompareServerDefault = Callable[ - [ - MigrationContext, - "Column[Any]", - "Column[Any]", - Optional[str], - Optional[FetchedValue], - Optional[str], - ], - Optional[bool], -] - -CompareType = Callable[ - [ - MigrationContext, - "Column[Any]", - "Column[Any]", - "TypeEngine[Any]", - "TypeEngine[Any]", - ], - Optional[bool], -] - - -class EnvironmentContext(util.ModuleClsProxy): - """A configurational facade made available in an ``env.py`` script. - - The :class:`.EnvironmentContext` acts as a *facade* to the more - nuts-and-bolts objects of :class:`.MigrationContext` as well as certain - aspects of :class:`.Config`, - within the context of the ``env.py`` script that is invoked by - most Alembic commands. - - :class:`.EnvironmentContext` is normally instantiated - when a command in :mod:`alembic.command` is run. It then makes - itself available in the ``alembic.context`` module for the scope - of the command. From within an ``env.py`` script, the current - :class:`.EnvironmentContext` is available by importing this module. - - :class:`.EnvironmentContext` also supports programmatic usage. - At this level, it acts as a Python context manager, that is, is - intended to be used using the - ``with:`` statement. A typical use of :class:`.EnvironmentContext`:: - - from alembic.config import Config - from alembic.script import ScriptDirectory - - config = Config() - config.set_main_option("script_location", "myapp:migrations") - script = ScriptDirectory.from_config(config) - - - def my_function(rev, context): - '''do something with revision "rev", which - will be the current database revision, - and "context", which is the MigrationContext - that the env.py will create''' - - - with EnvironmentContext( - config, - script, - fn=my_function, - as_sql=False, - starting_rev="base", - destination_rev="head", - tag="sometag", - ): - script.run_env() - - The above script will invoke the ``env.py`` script - within the migration environment. If and when ``env.py`` - calls :meth:`.MigrationContext.run_migrations`, the - ``my_function()`` function above will be called - by the :class:`.MigrationContext`, given the context - itself as well as the current revision in the database. - - .. note:: - - For most API usages other than full blown - invocation of migration scripts, the :class:`.MigrationContext` - and :class:`.ScriptDirectory` objects can be created and - used directly. The :class:`.EnvironmentContext` object - is *only* needed when you need to actually invoke the - ``env.py`` module present in the migration environment. - - """ - - _migration_context: Optional[MigrationContext] = None - - config: Config = None # type:ignore[assignment] - """An instance of :class:`.Config` representing the - configuration file contents as well as other variables - set programmatically within it.""" - - script: ScriptDirectory = None # type:ignore[assignment] - """An instance of :class:`.ScriptDirectory` which provides - programmatic access to version files within the ``versions/`` - directory. - - """ - - def __init__( - self, config: Config, script: ScriptDirectory, **kw: Any - ) -> None: - r"""Construct a new :class:`.EnvironmentContext`. - - :param config: a :class:`.Config` instance. - :param script: a :class:`.ScriptDirectory` instance. - :param \**kw: keyword options that will be ultimately - passed along to the :class:`.MigrationContext` when - :meth:`.EnvironmentContext.configure` is called. - - """ - self.config = config - self.script = script - self.context_opts = kw - - def __enter__(self) -> EnvironmentContext: - """Establish a context which provides a - :class:`.EnvironmentContext` object to - env.py scripts. - - The :class:`.EnvironmentContext` will - be made available as ``from alembic import context``. - - """ - self._install_proxy() - return self - - def __exit__(self, *arg: Any, **kw: Any) -> None: - self._remove_proxy() - - def is_offline_mode(self) -> bool: - """Return True if the current migrations environment - is running in "offline mode". - - This is ``True`` or ``False`` depending - on the ``--sql`` flag passed. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - return self.context_opts.get("as_sql", False) # type: ignore[no-any-return] # noqa: E501 - - def is_transactional_ddl(self) -> bool: - """Return True if the context is configured to expect a - transactional DDL capable backend. - - This defaults to the type of database in use, and - can be overridden by the ``transactional_ddl`` argument - to :meth:`.configure` - - This function requires that a :class:`.MigrationContext` - has first been made available via :meth:`.configure`. - - """ - return self.get_context().impl.transactional_ddl - - def requires_connection(self) -> bool: - return not self.is_offline_mode() - - def get_head_revision(self) -> _RevNumber: - """Return the hex identifier of the 'head' script revision. - - If the script directory has multiple heads, this - method raises a :class:`.CommandError`; - :meth:`.EnvironmentContext.get_head_revisions` should be preferred. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - .. seealso:: :meth:`.EnvironmentContext.get_head_revisions` - - """ - return self.script.as_revision_number("head") - - def get_head_revisions(self) -> _RevNumber: - """Return the hex identifier of the 'heads' script revision(s). - - This returns a tuple containing the version number of all - heads in the script directory. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - return self.script.as_revision_number("heads") - - def get_starting_revision_argument(self) -> _RevNumber: - """Return the 'starting revision' argument, - if the revision was passed using ``start:end``. - - This is only meaningful in "offline" mode. - Returns ``None`` if no value is available - or was configured. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - if self._migration_context is not None: - return self.script.as_revision_number( - self.get_context()._start_from_rev - ) - elif "starting_rev" in self.context_opts: - return self.script.as_revision_number( - self.context_opts["starting_rev"] - ) - else: - # this should raise only in the case that a command - # is being run where the "starting rev" is never applicable; - # this is to catch scripts which rely upon this in - # non-sql mode or similar - raise util.CommandError( - "No starting revision argument is available." - ) - - def get_revision_argument(self) -> _RevNumber: - """Get the 'destination' revision argument. - - This is typically the argument passed to the - ``upgrade`` or ``downgrade`` command. - - If it was specified as ``head``, the actual - version number is returned; if specified - as ``base``, ``None`` is returned. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - """ - return self.script.as_revision_number( - self.context_opts["destination_rev"] - ) - - def get_tag_argument(self) -> Optional[str]: - """Return the value passed for the ``--tag`` argument, if any. - - The ``--tag`` argument is not used directly by Alembic, - but is available for custom ``env.py`` configurations that - wish to use it; particularly for offline generation scripts - that wish to generate tagged filenames. - - This function does not require that the :class:`.MigrationContext` - has been configured. - - .. seealso:: - - :meth:`.EnvironmentContext.get_x_argument` - a newer and more - open ended system of extending ``env.py`` scripts via the command - line. - - """ - return self.context_opts.get("tag", None) # type: ignore[no-any-return] # noqa: E501 - - @overload - def get_x_argument(self, as_dictionary: Literal[False]) -> List[str]: ... - - @overload - def get_x_argument( - self, as_dictionary: Literal[True] - ) -> Dict[str, str]: ... - - @overload - def get_x_argument( - self, as_dictionary: bool = ... - ) -> Union[List[str], Dict[str, str]]: ... - - def get_x_argument( - self, as_dictionary: bool = False - ) -> Union[List[str], Dict[str, str]]: - """Return the value(s) passed for the ``-x`` argument, if any. - - The ``-x`` argument is an open ended flag that allows any user-defined - value or values to be passed on the command line, then available - here for consumption by a custom ``env.py`` script. - - The return value is a list, returned directly from the ``argparse`` - structure. If ``as_dictionary=True`` is passed, the ``x`` arguments - are parsed using ``key=value`` format into a dictionary that is - then returned. If there is no ``=`` in the argument, value is an empty - string. - - .. versionchanged:: 1.13.1 Support ``as_dictionary=True`` when - arguments are passed without the ``=`` symbol. - - For example, to support passing a database URL on the command line, - the standard ``env.py`` script can be modified like this:: - - cmd_line_url = context.get_x_argument( - as_dictionary=True).get('dbname') - if cmd_line_url: - engine = create_engine(cmd_line_url) - else: - engine = engine_from_config( - config.get_section(config.config_ini_section), - prefix='sqlalchemy.', - poolclass=pool.NullPool) - - This then takes effect by running the ``alembic`` script as:: - - alembic -x dbname=postgresql://user:pass@host/dbname upgrade head - - This function does not require that the :class:`.MigrationContext` - has been configured. - - .. seealso:: - - :meth:`.EnvironmentContext.get_tag_argument` - - :attr:`.Config.cmd_opts` - - """ - if self.config.cmd_opts is not None: - value = self.config.cmd_opts.x or [] - else: - value = [] - if as_dictionary: - dict_value = {} - for arg in value: - x_key, _, x_value = arg.partition("=") - dict_value[x_key] = x_value - value = dict_value - - return value - - def configure( - self, - connection: Optional[Connection] = None, - url: Optional[Union[str, URL]] = None, - dialect_name: Optional[str] = None, - dialect_opts: Optional[Dict[str, Any]] = None, - transactional_ddl: Optional[bool] = None, - transaction_per_migration: bool = False, - output_buffer: Optional[TextIO] = None, - starting_rev: Optional[str] = None, - tag: Optional[str] = None, - template_args: Optional[Dict[str, Any]] = None, - render_as_batch: bool = False, - target_metadata: Union[MetaData, Sequence[MetaData], None] = None, - include_name: Optional[IncludeNameFn] = None, - include_object: Optional[IncludeObjectFn] = None, - include_schemas: bool = False, - process_revision_directives: Optional[ - ProcessRevisionDirectiveFn - ] = None, - compare_type: Union[bool, CompareType] = True, - compare_server_default: Union[bool, CompareServerDefault] = False, - render_item: Optional[RenderItemFn] = None, - literal_binds: bool = False, - upgrade_token: str = "upgrades", - downgrade_token: str = "downgrades", - alembic_module_prefix: str = "op.", - sqlalchemy_module_prefix: str = "sa.", - user_module_prefix: Optional[str] = None, - on_version_apply: Optional[OnVersionApplyFn] = None, - **kw: Any, - ) -> None: - """Configure a :class:`.MigrationContext` within this - :class:`.EnvironmentContext` which will provide database - connectivity and other configuration to a series of - migration scripts. - - Many methods on :class:`.EnvironmentContext` require that - this method has been called in order to function, as they - ultimately need to have database access or at least access - to the dialect in use. Those which do are documented as such. - - The important thing needed by :meth:`.configure` is a - means to determine what kind of database dialect is in use. - An actual connection to that database is needed only if - the :class:`.MigrationContext` is to be used in - "online" mode. - - If the :meth:`.is_offline_mode` function returns ``True``, - then no connection is needed here. Otherwise, the - ``connection`` parameter should be present as an - instance of :class:`sqlalchemy.engine.Connection`. - - This function is typically called from the ``env.py`` - script within a migration environment. It can be called - multiple times for an invocation. The most recent - :class:`~sqlalchemy.engine.Connection` - for which it was called is the one that will be operated upon - by the next call to :meth:`.run_migrations`. - - General parameters: - - :param connection: a :class:`~sqlalchemy.engine.Connection` - to use - for SQL execution in "online" mode. When present, is also - used to determine the type of dialect in use. - :param url: a string database url, or a - :class:`sqlalchemy.engine.url.URL` object. - The type of dialect to be used will be derived from this if - ``connection`` is not passed. - :param dialect_name: string name of a dialect, such as - "postgresql", "mssql", etc. - The type of dialect to be used will be derived from this if - ``connection`` and ``url`` are not passed. - :param dialect_opts: dictionary of options to be passed to dialect - constructor. - :param transactional_ddl: Force the usage of "transactional" - DDL on or off; - this otherwise defaults to whether or not the dialect in - use supports it. - :param transaction_per_migration: if True, nest each migration script - in a transaction rather than the full series of migrations to - run. - :param output_buffer: a file-like object that will be used - for textual output - when the ``--sql`` option is used to generate SQL scripts. - Defaults to - ``sys.stdout`` if not passed here and also not present on - the :class:`.Config` - object. The value here overrides that of the :class:`.Config` - object. - :param output_encoding: when using ``--sql`` to generate SQL - scripts, apply this encoding to the string output. - :param literal_binds: when using ``--sql`` to generate SQL - scripts, pass through the ``literal_binds`` flag to the compiler - so that any literal values that would ordinarily be bound - parameters are converted to plain strings. - - .. warning:: Dialects can typically only handle simple datatypes - like strings and numbers for auto-literal generation. Datatypes - like dates, intervals, and others may still require manual - formatting, typically using :meth:`.Operations.inline_literal`. - - .. note:: the ``literal_binds`` flag is ignored on SQLAlchemy - versions prior to 0.8 where this feature is not supported. - - .. seealso:: - - :meth:`.Operations.inline_literal` - - :param starting_rev: Override the "starting revision" argument - when using ``--sql`` mode. - :param tag: a string tag for usage by custom ``env.py`` scripts. - Set via the ``--tag`` option, can be overridden here. - :param template_args: dictionary of template arguments which - will be added to the template argument environment when - running the "revision" command. Note that the script environment - is only run within the "revision" command if the --autogenerate - option is used, or if the option "revision_environment=true" - is present in the alembic.ini file. - - :param version_table: The name of the Alembic version table. - The default is ``'alembic_version'``. - :param version_table_schema: Optional schema to place version - table within. - :param version_table_pk: boolean, whether the Alembic version table - should use a primary key constraint for the "value" column; this - only takes effect when the table is first created. - Defaults to True; setting to False should not be necessary and is - here for backwards compatibility reasons. - :param on_version_apply: a callable or collection of callables to be - run for each migration step. - The callables will be run in the order they are given, once for - each migration step, after the respective operation has been - applied but before its transaction is finalized. - Each callable accepts no positional arguments and the following - keyword arguments: - - * ``ctx``: the :class:`.MigrationContext` running the migration, - * ``step``: a :class:`.MigrationInfo` representing the - step currently being applied, - * ``heads``: a collection of version strings representing the - current heads, - * ``run_args``: the ``**kwargs`` passed to :meth:`.run_migrations`. - - Parameters specific to the autogenerate feature, when - ``alembic revision`` is run with the ``--autogenerate`` feature: - - :param target_metadata: a :class:`sqlalchemy.schema.MetaData` - object, or a sequence of :class:`~sqlalchemy.schema.MetaData` - objects, that will be consulted during autogeneration. - The tables present in each :class:`~sqlalchemy.schema.MetaData` - will be compared against - what is locally available on the target - :class:`~sqlalchemy.engine.Connection` - to produce candidate upgrade/downgrade operations. - :param compare_type: Indicates type comparison behavior during - an autogenerate - operation. Defaults to ``True`` turning on type comparison, which - has good accuracy on most backends. See :ref:`compare_types` - for an example as well as information on other type - comparison options. Set to ``False`` which disables type - comparison. A callable can also be passed to provide custom type - comparison, see :ref:`compare_types` for additional details. - - .. versionchanged:: 1.12.0 The default value of - :paramref:`.EnvironmentContext.configure.compare_type` has been - changed to ``True``. - - .. seealso:: - - :ref:`compare_types` - - :paramref:`.EnvironmentContext.configure.compare_server_default` - - :param compare_server_default: Indicates server default comparison - behavior during - an autogenerate operation. Defaults to ``False`` which disables - server default - comparison. Set to ``True`` to turn on server default comparison, - which has - varied accuracy depending on backend. - - To customize server default comparison behavior, a callable may - be specified - which can filter server default comparisons during an - autogenerate operation. - defaults during an autogenerate operation. The format of this - callable is:: - - def my_compare_server_default(context, inspected_column, - metadata_column, inspected_default, metadata_default, - rendered_metadata_default): - # return True if the defaults are different, - # False if not, or None to allow the default implementation - # to compare these defaults - return None - - context.configure( - # ... - compare_server_default = my_compare_server_default - ) - - ``inspected_column`` is a dictionary structure as returned by - :meth:`sqlalchemy.engine.reflection.Inspector.get_columns`, whereas - ``metadata_column`` is a :class:`sqlalchemy.schema.Column` from - the local model environment. - - A return value of ``None`` indicates to allow default server default - comparison - to proceed. Note that some backends such as Postgresql actually - execute - the two defaults on the database side to compare for equivalence. - - .. seealso:: - - :paramref:`.EnvironmentContext.configure.compare_type` - - :param include_name: A callable function which is given - the chance to return ``True`` or ``False`` for any database reflected - object based on its name, including database schema names when - the :paramref:`.EnvironmentContext.configure.include_schemas` flag - is set to ``True``. - - The function accepts the following positional arguments: - - * ``name``: the name of the object, such as schema name or table name. - Will be ``None`` when indicating the default schema name of the - database connection. - * ``type``: a string describing the type of object; currently - ``"schema"``, ``"table"``, ``"column"``, ``"index"``, - ``"unique_constraint"``, or ``"foreign_key_constraint"`` - * ``parent_names``: a dictionary of "parent" object names, that are - relative to the name being given. Keys in this dictionary may - include: ``"schema_name"``, ``"table_name"`` or - ``"schema_qualified_table_name"``. - - E.g.:: - - def include_name(name, type_, parent_names): - if type_ == "schema": - return name in ["schema_one", "schema_two"] - else: - return True - - context.configure( - # ... - include_schemas = True, - include_name = include_name - ) - - .. seealso:: - - :ref:`autogenerate_include_hooks` - - :paramref:`.EnvironmentContext.configure.include_object` - - :paramref:`.EnvironmentContext.configure.include_schemas` - - - :param include_object: A callable function which is given - the chance to return ``True`` or ``False`` for any object, - indicating if the given object should be considered in the - autogenerate sweep. - - The function accepts the following positional arguments: - - * ``object``: a :class:`~sqlalchemy.schema.SchemaItem` object such - as a :class:`~sqlalchemy.schema.Table`, - :class:`~sqlalchemy.schema.Column`, - :class:`~sqlalchemy.schema.Index` - :class:`~sqlalchemy.schema.UniqueConstraint`, - or :class:`~sqlalchemy.schema.ForeignKeyConstraint` object - * ``name``: the name of the object. This is typically available - via ``object.name``. - * ``type``: a string describing the type of object; currently - ``"table"``, ``"column"``, ``"index"``, ``"unique_constraint"``, - or ``"foreign_key_constraint"`` - * ``reflected``: ``True`` if the given object was produced based on - table reflection, ``False`` if it's from a local :class:`.MetaData` - object. - * ``compare_to``: the object being compared against, if available, - else ``None``. - - E.g.:: - - def include_object(object, name, type_, reflected, compare_to): - if (type_ == "column" and - not reflected and - object.info.get("skip_autogenerate", False)): - return False - else: - return True - - context.configure( - # ... - include_object = include_object - ) - - For the use case of omitting specific schemas from a target database - when :paramref:`.EnvironmentContext.configure.include_schemas` is - set to ``True``, the :attr:`~sqlalchemy.schema.Table.schema` - attribute can be checked for each :class:`~sqlalchemy.schema.Table` - object passed to the hook, however it is much more efficient - to filter on schemas before reflection of objects takes place - using the :paramref:`.EnvironmentContext.configure.include_name` - hook. - - .. seealso:: - - :ref:`autogenerate_include_hooks` - - :paramref:`.EnvironmentContext.configure.include_name` - - :paramref:`.EnvironmentContext.configure.include_schemas` - - :param render_as_batch: if True, commands which alter elements - within a table will be placed under a ``with batch_alter_table():`` - directive, so that batch migrations will take place. - - .. seealso:: - - :ref:`batch_migrations` - - :param include_schemas: If True, autogenerate will scan across - all schemas located by the SQLAlchemy - :meth:`~sqlalchemy.engine.reflection.Inspector.get_schema_names` - method, and include all differences in tables found across all - those schemas. When using this option, you may want to also - use the :paramref:`.EnvironmentContext.configure.include_name` - parameter to specify a callable which - can filter the tables/schemas that get included. - - .. seealso:: - - :ref:`autogenerate_include_hooks` - - :paramref:`.EnvironmentContext.configure.include_name` - - :paramref:`.EnvironmentContext.configure.include_object` - - :param render_item: Callable that can be used to override how - any schema item, i.e. column, constraint, type, - etc., is rendered for autogenerate. The callable receives a - string describing the type of object, the object, and - the autogen context. If it returns False, the - default rendering method will be used. If it returns None, - the item will not be rendered in the context of a Table - construct, that is, can be used to skip columns or constraints - within op.create_table():: - - def my_render_column(type_, col, autogen_context): - if type_ == "column" and isinstance(col, MySpecialCol): - return repr(col) - else: - return False - - context.configure( - # ... - render_item = my_render_column - ) - - Available values for the type string include: ``"column"``, - ``"primary_key"``, ``"foreign_key"``, ``"unique"``, ``"check"``, - ``"type"``, ``"server_default"``. - - .. seealso:: - - :ref:`autogen_render_types` - - :param upgrade_token: When autogenerate completes, the text of the - candidate upgrade operations will be present in this template - variable when ``script.py.mako`` is rendered. Defaults to - ``upgrades``. - :param downgrade_token: When autogenerate completes, the text of the - candidate downgrade operations will be present in this - template variable when ``script.py.mako`` is rendered. Defaults to - ``downgrades``. - - :param alembic_module_prefix: When autogenerate refers to Alembic - :mod:`alembic.operations` constructs, this prefix will be used - (i.e. ``op.create_table``) Defaults to "``op.``". - Can be ``None`` to indicate no prefix. - - :param sqlalchemy_module_prefix: When autogenerate refers to - SQLAlchemy - :class:`~sqlalchemy.schema.Column` or type classes, this prefix - will be used - (i.e. ``sa.Column("somename", sa.Integer)``) Defaults to "``sa.``". - Can be ``None`` to indicate no prefix. - Note that when dialect-specific types are rendered, autogenerate - will render them using the dialect module name, i.e. ``mssql.BIT()``, - ``postgresql.UUID()``. - - :param user_module_prefix: When autogenerate refers to a SQLAlchemy - type (e.g. :class:`.TypeEngine`) where the module name is not - under the ``sqlalchemy`` namespace, this prefix will be used - within autogenerate. If left at its default of - ``None``, the ``__module__`` attribute of the type is used to - render the import module. It's a good practice to set this - and to have all custom types be available from a fixed module space, - in order to future-proof migration files against reorganizations - in modules. - - .. seealso:: - - :ref:`autogen_module_prefix` - - :param process_revision_directives: a callable function that will - be passed a structure representing the end result of an autogenerate - or plain "revision" operation, which can be manipulated to affect - how the ``alembic revision`` command ultimately outputs new - revision scripts. The structure of the callable is:: - - def process_revision_directives(context, revision, directives): - pass - - The ``directives`` parameter is a Python list containing - a single :class:`.MigrationScript` directive, which represents - the revision file to be generated. This list as well as its - contents may be freely modified to produce any set of commands. - The section :ref:`customizing_revision` shows an example of - doing this. The ``context`` parameter is the - :class:`.MigrationContext` in use, - and ``revision`` is a tuple of revision identifiers representing the - current revision of the database. - - The callable is invoked at all times when the ``--autogenerate`` - option is passed to ``alembic revision``. If ``--autogenerate`` - is not passed, the callable is invoked only if the - ``revision_environment`` variable is set to True in the Alembic - configuration, in which case the given ``directives`` collection - will contain empty :class:`.UpgradeOps` and :class:`.DowngradeOps` - collections for ``.upgrade_ops`` and ``.downgrade_ops``. The - ``--autogenerate`` option itself can be inferred by inspecting - ``context.config.cmd_opts.autogenerate``. - - The callable function may optionally be an instance of - a :class:`.Rewriter` object. This is a helper object that - assists in the production of autogenerate-stream rewriter functions. - - .. seealso:: - - :ref:`customizing_revision` - - :ref:`autogen_rewriter` - - :paramref:`.command.revision.process_revision_directives` - - Parameters specific to individual backends: - - :param mssql_batch_separator: The "batch separator" which will - be placed between each statement when generating offline SQL Server - migrations. Defaults to ``GO``. Note this is in addition to the - customary semicolon ``;`` at the end of each statement; SQL Server - considers the "batch separator" to denote the end of an - individual statement execution, and cannot group certain - dependent operations in one step. - :param oracle_batch_separator: The "batch separator" which will - be placed between each statement when generating offline - Oracle migrations. Defaults to ``/``. Oracle doesn't add a - semicolon between statements like most other backends. - - """ - opts = self.context_opts - if transactional_ddl is not None: - opts["transactional_ddl"] = transactional_ddl - if output_buffer is not None: - opts["output_buffer"] = output_buffer - elif self.config.output_buffer is not None: - opts["output_buffer"] = self.config.output_buffer - if starting_rev: - opts["starting_rev"] = starting_rev - if tag: - opts["tag"] = tag - if template_args and "template_args" in opts: - opts["template_args"].update(template_args) - opts["transaction_per_migration"] = transaction_per_migration - opts["target_metadata"] = target_metadata - opts["include_name"] = include_name - opts["include_object"] = include_object - opts["include_schemas"] = include_schemas - opts["render_as_batch"] = render_as_batch - opts["upgrade_token"] = upgrade_token - opts["downgrade_token"] = downgrade_token - opts["sqlalchemy_module_prefix"] = sqlalchemy_module_prefix - opts["alembic_module_prefix"] = alembic_module_prefix - opts["user_module_prefix"] = user_module_prefix - opts["literal_binds"] = literal_binds - opts["process_revision_directives"] = process_revision_directives - opts["on_version_apply"] = util.to_tuple(on_version_apply, default=()) - - if render_item is not None: - opts["render_item"] = render_item - opts["compare_type"] = compare_type - if compare_server_default is not None: - opts["compare_server_default"] = compare_server_default - opts["script"] = self.script - - opts.update(kw) - - self._migration_context = MigrationContext.configure( - connection=connection, - url=url, - dialect_name=dialect_name, - environment_context=self, - dialect_opts=dialect_opts, - opts=opts, - ) - - def run_migrations(self, **kw: Any) -> None: - """Run migrations as determined by the current command line - configuration - as well as versioning information present (or not) in the current - database connection (if one is present). - - The function accepts optional ``**kw`` arguments. If these are - passed, they are sent directly to the ``upgrade()`` and - ``downgrade()`` - functions within each target revision file. By modifying the - ``script.py.mako`` file so that the ``upgrade()`` and ``downgrade()`` - functions accept arguments, parameters can be passed here so that - contextual information, usually information to identify a particular - database in use, can be passed from a custom ``env.py`` script - to the migration functions. - - This function requires that a :class:`.MigrationContext` has - first been made available via :meth:`.configure`. - - """ - assert self._migration_context is not None - with Operations.context(self._migration_context): - self.get_context().run_migrations(**kw) - - def execute( - self, - sql: Union[Executable, str], - execution_options: Optional[Dict[str, Any]] = None, - ) -> None: - """Execute the given SQL using the current change context. - - The behavior of :meth:`.execute` is the same - as that of :meth:`.Operations.execute`. Please see that - function's documentation for full detail including - caveats and limitations. - - This function requires that a :class:`.MigrationContext` has - first been made available via :meth:`.configure`. - - """ - self.get_context().execute(sql, execution_options=execution_options) - - def static_output(self, text: str) -> None: - """Emit text directly to the "offline" SQL stream. - - Typically this is for emitting comments that - start with --. The statement is not treated - as a SQL execution, no ; or batch separator - is added, etc. - - """ - self.get_context().impl.static_output(text) - - def begin_transaction( - self, - ) -> Union[_ProxyTransaction, ContextManager[None]]: - """Return a context manager that will - enclose an operation within a "transaction", - as defined by the environment's offline - and transactional DDL settings. - - e.g.:: - - with context.begin_transaction(): - context.run_migrations() - - :meth:`.begin_transaction` is intended to - "do the right thing" regardless of - calling context: - - * If :meth:`.is_transactional_ddl` is ``False``, - returns a "do nothing" context manager - which otherwise produces no transactional - state or directives. - * If :meth:`.is_offline_mode` is ``True``, - returns a context manager that will - invoke the :meth:`.DefaultImpl.emit_begin` - and :meth:`.DefaultImpl.emit_commit` - methods, which will produce the string - directives ``BEGIN`` and ``COMMIT`` on - the output stream, as rendered by the - target backend (e.g. SQL Server would - emit ``BEGIN TRANSACTION``). - * Otherwise, calls :meth:`sqlalchemy.engine.Connection.begin` - on the current online connection, which - returns a :class:`sqlalchemy.engine.Transaction` - object. This object demarcates a real - transaction and is itself a context manager, - which will roll back if an exception - is raised. - - Note that a custom ``env.py`` script which - has more specific transactional needs can of course - manipulate the :class:`~sqlalchemy.engine.Connection` - directly to produce transactional state in "online" - mode. - - """ - - return self.get_context().begin_transaction() - - def get_context(self) -> MigrationContext: - """Return the current :class:`.MigrationContext` object. - - If :meth:`.EnvironmentContext.configure` has not been - called yet, raises an exception. - - """ - - if self._migration_context is None: - raise Exception("No context has been configured yet.") - return self._migration_context - - def get_bind(self) -> Connection: - """Return the current 'bind'. - - In "online" mode, this is the - :class:`sqlalchemy.engine.Connection` currently being used - to emit SQL to the database. - - This function requires that a :class:`.MigrationContext` - has first been made available via :meth:`.configure`. - - """ - return self.get_context().bind # type: ignore[return-value] - - def get_impl(self) -> DefaultImpl: - return self.get_context().impl diff --git a/backend/venv/lib/python3.12/site-packages/alembic/runtime/migration.py b/backend/venv/lib/python3.12/site-packages/alembic/runtime/migration.py deleted file mode 100644 index 6cfe5e2..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/runtime/migration.py +++ /dev/null @@ -1,1396 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -from contextlib import contextmanager -from contextlib import nullcontext -import logging -import sys -from typing import Any -from typing import Callable -from typing import cast -from typing import Collection -from typing import ContextManager -from typing import Dict -from typing import Iterable -from typing import Iterator -from typing import List -from typing import Optional -from typing import Set -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -from sqlalchemy import Column -from sqlalchemy import literal_column -from sqlalchemy import MetaData -from sqlalchemy import PrimaryKeyConstraint -from sqlalchemy import String -from sqlalchemy import Table -from sqlalchemy.engine import Engine -from sqlalchemy.engine import url as sqla_url -from sqlalchemy.engine.strategies import MockEngineStrategy - -from .. import ddl -from .. import util -from ..util import sqla_compat -from ..util.compat import EncodedIO - -if TYPE_CHECKING: - from sqlalchemy.engine import Dialect - from sqlalchemy.engine import URL - from sqlalchemy.engine.base import Connection - from sqlalchemy.engine.base import Transaction - from sqlalchemy.engine.mock import MockConnection - from sqlalchemy.sql import Executable - - from .environment import EnvironmentContext - from ..config import Config - from ..script.base import Script - from ..script.base import ScriptDirectory - from ..script.revision import _RevisionOrBase - from ..script.revision import Revision - from ..script.revision import RevisionMap - -log = logging.getLogger(__name__) - - -class _ProxyTransaction: - def __init__(self, migration_context: MigrationContext) -> None: - self.migration_context = migration_context - - @property - def _proxied_transaction(self) -> Optional[Transaction]: - return self.migration_context._transaction - - def rollback(self) -> None: - t = self._proxied_transaction - assert t is not None - t.rollback() - self.migration_context._transaction = None - - def commit(self) -> None: - t = self._proxied_transaction - assert t is not None - t.commit() - self.migration_context._transaction = None - - def __enter__(self) -> _ProxyTransaction: - return self - - def __exit__(self, type_: Any, value: Any, traceback: Any) -> None: - if self._proxied_transaction is not None: - self._proxied_transaction.__exit__(type_, value, traceback) - self.migration_context._transaction = None - - -class MigrationContext: - """Represent the database state made available to a migration - script. - - :class:`.MigrationContext` is the front end to an actual - database connection, or alternatively a string output - stream given a particular database dialect, - from an Alembic perspective. - - When inside the ``env.py`` script, the :class:`.MigrationContext` - is available via the - :meth:`.EnvironmentContext.get_context` method, - which is available at ``alembic.context``:: - - # from within env.py script - from alembic import context - - migration_context = context.get_context() - - For usage outside of an ``env.py`` script, such as for - utility routines that want to check the current version - in the database, the :meth:`.MigrationContext.configure` - method to create new :class:`.MigrationContext` objects. - For example, to get at the current revision in the - database using :meth:`.MigrationContext.get_current_revision`:: - - # in any application, outside of an env.py script - from alembic.migration import MigrationContext - from sqlalchemy import create_engine - - engine = create_engine("postgresql://mydatabase") - conn = engine.connect() - - context = MigrationContext.configure(conn) - current_rev = context.get_current_revision() - - The above context can also be used to produce - Alembic migration operations with an :class:`.Operations` - instance:: - - # in any application, outside of the normal Alembic environment - from alembic.operations import Operations - - op = Operations(context) - op.alter_column("mytable", "somecolumn", nullable=True) - - """ - - def __init__( - self, - dialect: Dialect, - connection: Optional[Connection], - opts: Dict[str, Any], - environment_context: Optional[EnvironmentContext] = None, - ) -> None: - self.environment_context = environment_context - self.opts = opts - self.dialect = dialect - self.script: Optional[ScriptDirectory] = opts.get("script") - as_sql: bool = opts.get("as_sql", False) - transactional_ddl = opts.get("transactional_ddl") - self._transaction_per_migration = opts.get( - "transaction_per_migration", False - ) - self.on_version_apply_callbacks = opts.get("on_version_apply", ()) - self._transaction: Optional[Transaction] = None - - if as_sql: - self.connection = cast( - Optional["Connection"], self._stdout_connection(connection) - ) - assert self.connection is not None - self._in_external_transaction = False - else: - self.connection = connection - self._in_external_transaction = ( - sqla_compat._get_connection_in_transaction(connection) - ) - - self._migrations_fn: Optional[ - Callable[..., Iterable[RevisionStep]] - ] = opts.get("fn") - self.as_sql = as_sql - - self.purge = opts.get("purge", False) - - if "output_encoding" in opts: - self.output_buffer = EncodedIO( - opts.get("output_buffer") - or sys.stdout, # type:ignore[arg-type] - opts["output_encoding"], - ) - else: - self.output_buffer = opts.get("output_buffer", sys.stdout) - - self._user_compare_type = opts.get("compare_type", True) - self._user_compare_server_default = opts.get( - "compare_server_default", False - ) - self.version_table = version_table = opts.get( - "version_table", "alembic_version" - ) - self.version_table_schema = version_table_schema = opts.get( - "version_table_schema", None - ) - self._version = Table( - version_table, - MetaData(), - Column("version_num", String(32), nullable=False), - schema=version_table_schema, - ) - if opts.get("version_table_pk", True): - self._version.append_constraint( - PrimaryKeyConstraint( - "version_num", name="%s_pkc" % version_table - ) - ) - - self._start_from_rev: Optional[str] = opts.get("starting_rev") - self.impl = ddl.DefaultImpl.get_by_dialect(dialect)( - dialect, - self.connection, - self.as_sql, - transactional_ddl, - self.output_buffer, - opts, - ) - log.info("Context impl %s.", self.impl.__class__.__name__) - if self.as_sql: - log.info("Generating static SQL") - log.info( - "Will assume %s DDL.", - ( - "transactional" - if self.impl.transactional_ddl - else "non-transactional" - ), - ) - - @classmethod - def configure( - cls, - connection: Optional[Connection] = None, - url: Optional[Union[str, URL]] = None, - dialect_name: Optional[str] = None, - dialect: Optional[Dialect] = None, - environment_context: Optional[EnvironmentContext] = None, - dialect_opts: Optional[Dict[str, str]] = None, - opts: Optional[Any] = None, - ) -> MigrationContext: - """Create a new :class:`.MigrationContext`. - - This is a factory method usually called - by :meth:`.EnvironmentContext.configure`. - - :param connection: a :class:`~sqlalchemy.engine.Connection` - to use for SQL execution in "online" mode. When present, - is also used to determine the type of dialect in use. - :param url: a string database url, or a - :class:`sqlalchemy.engine.url.URL` object. - The type of dialect to be used will be derived from this if - ``connection`` is not passed. - :param dialect_name: string name of a dialect, such as - "postgresql", "mssql", etc. The type of dialect to be used will be - derived from this if ``connection`` and ``url`` are not passed. - :param opts: dictionary of options. Most other options - accepted by :meth:`.EnvironmentContext.configure` are passed via - this dictionary. - - """ - if opts is None: - opts = {} - if dialect_opts is None: - dialect_opts = {} - - if connection: - if isinstance(connection, Engine): - raise util.CommandError( - "'connection' argument to configure() is expected " - "to be a sqlalchemy.engine.Connection instance, " - "got %r" % connection, - ) - - dialect = connection.dialect - elif url: - url_obj = sqla_url.make_url(url) - dialect = url_obj.get_dialect()(**dialect_opts) - elif dialect_name: - url_obj = sqla_url.make_url("%s://" % dialect_name) - dialect = url_obj.get_dialect()(**dialect_opts) - elif not dialect: - raise Exception("Connection, url, or dialect_name is required.") - assert dialect is not None - return MigrationContext(dialect, connection, opts, environment_context) - - @contextmanager - def autocommit_block(self) -> Iterator[None]: - """Enter an "autocommit" block, for databases that support AUTOCOMMIT - isolation levels. - - This special directive is intended to support the occasional database - DDL or system operation that specifically has to be run outside of - any kind of transaction block. The PostgreSQL database platform - is the most common target for this style of operation, as many - of its DDL operations must be run outside of transaction blocks, even - though the database overall supports transactional DDL. - - The method is used as a context manager within a migration script, by - calling on :meth:`.Operations.get_context` to retrieve the - :class:`.MigrationContext`, then invoking - :meth:`.MigrationContext.autocommit_block` using the ``with:`` - statement:: - - def upgrade(): - with op.get_context().autocommit_block(): - op.execute("ALTER TYPE mood ADD VALUE 'soso'") - - Above, a PostgreSQL "ALTER TYPE..ADD VALUE" directive is emitted, - which must be run outside of a transaction block at the database level. - The :meth:`.MigrationContext.autocommit_block` method makes use of the - SQLAlchemy ``AUTOCOMMIT`` isolation level setting, which against the - psycogp2 DBAPI corresponds to the ``connection.autocommit`` setting, - to ensure that the database driver is not inside of a DBAPI level - transaction block. - - .. warning:: - - As is necessary, **the database transaction preceding the block is - unconditionally committed**. This means that the run of migrations - preceding the operation will be committed, before the overall - migration operation is complete. - - It is recommended that when an application includes migrations with - "autocommit" blocks, that - :paramref:`.EnvironmentContext.transaction_per_migration` be used - so that the calling environment is tuned to expect short per-file - migrations whether or not one of them has an autocommit block. - - - """ - _in_connection_transaction = self._in_connection_transaction() - - if self.impl.transactional_ddl and self.as_sql: - self.impl.emit_commit() - - elif _in_connection_transaction: - assert self._transaction is not None - - self._transaction.commit() - self._transaction = None - - if not self.as_sql: - assert self.connection is not None - current_level = self.connection.get_isolation_level() - base_connection = self.connection - - # in 1.3 and 1.4 non-future mode, the connection gets switched - # out. we can use the base connection with the new mode - # except that it will not know it's in "autocommit" and will - # emit deprecation warnings when an autocommit action takes - # place. - self.connection = self.impl.connection = ( - base_connection.execution_options(isolation_level="AUTOCOMMIT") - ) - - # sqlalchemy future mode will "autobegin" in any case, so take - # control of that "transaction" here - fake_trans: Optional[Transaction] = self.connection.begin() - else: - fake_trans = None - try: - yield - finally: - if not self.as_sql: - assert self.connection is not None - if fake_trans is not None: - fake_trans.commit() - self.connection.execution_options( - isolation_level=current_level - ) - self.connection = self.impl.connection = base_connection - - if self.impl.transactional_ddl and self.as_sql: - self.impl.emit_begin() - - elif _in_connection_transaction: - assert self.connection is not None - self._transaction = self.connection.begin() - - def begin_transaction( - self, _per_migration: bool = False - ) -> Union[_ProxyTransaction, ContextManager[None]]: - """Begin a logical transaction for migration operations. - - This method is used within an ``env.py`` script to demarcate where - the outer "transaction" for a series of migrations begins. Example:: - - def run_migrations_online(): - connectable = create_engine(...) - - with connectable.connect() as connection: - context.configure( - connection=connection, target_metadata=target_metadata - ) - - with context.begin_transaction(): - context.run_migrations() - - Above, :meth:`.MigrationContext.begin_transaction` is used to demarcate - where the outer logical transaction occurs around the - :meth:`.MigrationContext.run_migrations` operation. - - A "Logical" transaction means that the operation may or may not - correspond to a real database transaction. If the target database - supports transactional DDL (or - :paramref:`.EnvironmentContext.configure.transactional_ddl` is true), - the :paramref:`.EnvironmentContext.configure.transaction_per_migration` - flag is not set, and the migration is against a real database - connection (as opposed to using "offline" ``--sql`` mode), a real - transaction will be started. If ``--sql`` mode is in effect, the - operation would instead correspond to a string such as "BEGIN" being - emitted to the string output. - - The returned object is a Python context manager that should only be - used in the context of a ``with:`` statement as indicated above. - The object has no other guaranteed API features present. - - .. seealso:: - - :meth:`.MigrationContext.autocommit_block` - - """ - - if self._in_external_transaction: - return nullcontext() - - if self.impl.transactional_ddl: - transaction_now = _per_migration == self._transaction_per_migration - else: - transaction_now = _per_migration is True - - if not transaction_now: - return nullcontext() - - elif not self.impl.transactional_ddl: - assert _per_migration - - if self.as_sql: - return nullcontext() - else: - # track our own notion of a "transaction block", which must be - # committed when complete. Don't rely upon whether or not the - # SQLAlchemy connection reports as "in transaction"; this - # because SQLAlchemy future connection features autobegin - # behavior, so it may already be in a transaction from our - # emitting of queries like "has_version_table", etc. While we - # could track these operations as well, that leaves open the - # possibility of new operations or other things happening in - # the user environment that still may be triggering - # "autobegin". - - in_transaction = self._transaction is not None - - if in_transaction: - return nullcontext() - else: - assert self.connection is not None - self._transaction = ( - sqla_compat._safe_begin_connection_transaction( - self.connection - ) - ) - return _ProxyTransaction(self) - elif self.as_sql: - - @contextmanager - def begin_commit(): - self.impl.emit_begin() - yield - self.impl.emit_commit() - - return begin_commit() - else: - assert self.connection is not None - self._transaction = sqla_compat._safe_begin_connection_transaction( - self.connection - ) - return _ProxyTransaction(self) - - def get_current_revision(self) -> Optional[str]: - """Return the current revision, usually that which is present - in the ``alembic_version`` table in the database. - - This method intends to be used only for a migration stream that - does not contain unmerged branches in the target database; - if there are multiple branches present, an exception is raised. - The :meth:`.MigrationContext.get_current_heads` should be preferred - over this method going forward in order to be compatible with - branch migration support. - - If this :class:`.MigrationContext` was configured in "offline" - mode, that is with ``as_sql=True``, the ``starting_rev`` - parameter is returned instead, if any. - - """ - heads = self.get_current_heads() - if len(heads) == 0: - return None - elif len(heads) > 1: - raise util.CommandError( - "Version table '%s' has more than one head present; " - "please use get_current_heads()" % self.version_table - ) - else: - return heads[0] - - def get_current_heads(self) -> Tuple[str, ...]: - """Return a tuple of the current 'head versions' that are represented - in the target database. - - For a migration stream without branches, this will be a single - value, synonymous with that of - :meth:`.MigrationContext.get_current_revision`. However when multiple - unmerged branches exist within the target database, the returned tuple - will contain a value for each head. - - If this :class:`.MigrationContext` was configured in "offline" - mode, that is with ``as_sql=True``, the ``starting_rev`` - parameter is returned in a one-length tuple. - - If no version table is present, or if there are no revisions - present, an empty tuple is returned. - - """ - if self.as_sql: - start_from_rev: Any = self._start_from_rev - if start_from_rev == "base": - start_from_rev = None - elif start_from_rev is not None and self.script: - start_from_rev = [ - self.script.get_revision(sfr).revision - for sfr in util.to_list(start_from_rev) - if sfr not in (None, "base") - ] - return util.to_tuple(start_from_rev, default=()) - else: - if self._start_from_rev: - raise util.CommandError( - "Can't specify current_rev to context " - "when using a database connection" - ) - if not self._has_version_table(): - return () - assert self.connection is not None - return tuple( - row[0] for row in self.connection.execute(self._version.select()) - ) - - def _ensure_version_table(self, purge: bool = False) -> None: - with sqla_compat._ensure_scope_for_ddl(self.connection): - assert self.connection is not None - self._version.create(self.connection, checkfirst=True) - if purge: - assert self.connection is not None - self.connection.execute(self._version.delete()) - - def _has_version_table(self) -> bool: - assert self.connection is not None - return sqla_compat._connectable_has_table( - self.connection, self.version_table, self.version_table_schema - ) - - def stamp(self, script_directory: ScriptDirectory, revision: str) -> None: - """Stamp the version table with a specific revision. - - This method calculates those branches to which the given revision - can apply, and updates those branches as though they were migrated - towards that revision (either up or down). If no current branches - include the revision, it is added as a new branch head. - - """ - heads = self.get_current_heads() - if not self.as_sql and not heads: - self._ensure_version_table() - head_maintainer = HeadMaintainer(self, heads) - for step in script_directory._stamp_revs(revision, heads): - head_maintainer.update_to_step(step) - - def run_migrations(self, **kw: Any) -> None: - r"""Run the migration scripts established for this - :class:`.MigrationContext`, if any. - - The commands in :mod:`alembic.command` will set up a function - that is ultimately passed to the :class:`.MigrationContext` - as the ``fn`` argument. This function represents the "work" - that will be done when :meth:`.MigrationContext.run_migrations` - is called, typically from within the ``env.py`` script of the - migration environment. The "work function" then provides an iterable - of version callables and other version information which - in the case of the ``upgrade`` or ``downgrade`` commands are the - list of version scripts to invoke. Other commands yield nothing, - in the case that a command wants to run some other operation - against the database such as the ``current`` or ``stamp`` commands. - - :param \**kw: keyword arguments here will be passed to each - migration callable, that is the ``upgrade()`` or ``downgrade()`` - method within revision scripts. - - """ - self.impl.start_migrations() - - heads: Tuple[str, ...] - if self.purge: - if self.as_sql: - raise util.CommandError("Can't use --purge with --sql mode") - self._ensure_version_table(purge=True) - heads = () - else: - heads = self.get_current_heads() - - dont_mutate = self.opts.get("dont_mutate", False) - - if not self.as_sql and not heads and not dont_mutate: - self._ensure_version_table() - - head_maintainer = HeadMaintainer(self, heads) - - assert self._migrations_fn is not None - for step in self._migrations_fn(heads, self): - with self.begin_transaction(_per_migration=True): - if self.as_sql and not head_maintainer.heads: - # for offline mode, include a CREATE TABLE from - # the base - assert self.connection is not None - self._version.create(self.connection) - log.info("Running %s", step) - if self.as_sql: - self.impl.static_output( - "-- Running %s" % (step.short_log,) - ) - step.migration_fn(**kw) - - # previously, we wouldn't stamp per migration - # if we were in a transaction, however given the more - # complex model that involves any number of inserts - # and row-targeted updates and deletes, it's simpler for now - # just to run the operations on every version - head_maintainer.update_to_step(step) - for callback in self.on_version_apply_callbacks: - callback( - ctx=self, - step=step.info, - heads=set(head_maintainer.heads), - run_args=kw, - ) - - if self.as_sql and not head_maintainer.heads: - assert self.connection is not None - self._version.drop(self.connection) - - def _in_connection_transaction(self) -> bool: - try: - meth = self.connection.in_transaction # type:ignore[union-attr] - except AttributeError: - return False - else: - return meth() - - def execute( - self, - sql: Union[Executable, str], - execution_options: Optional[Dict[str, Any]] = None, - ) -> None: - """Execute a SQL construct or string statement. - - The underlying execution mechanics are used, that is - if this is "offline mode" the SQL is written to the - output buffer, otherwise the SQL is emitted on - the current SQLAlchemy connection. - - """ - self.impl._exec(sql, execution_options) - - def _stdout_connection( - self, connection: Optional[Connection] - ) -> MockConnection: - def dump(construct, *multiparams, **params): - self.impl._exec(construct) - - return MockEngineStrategy.MockConnection(self.dialect, dump) - - @property - def bind(self) -> Optional[Connection]: - """Return the current "bind". - - In online mode, this is an instance of - :class:`sqlalchemy.engine.Connection`, and is suitable - for ad-hoc execution of any kind of usage described - in SQLAlchemy Core documentation as well as - for usage with the :meth:`sqlalchemy.schema.Table.create` - and :meth:`sqlalchemy.schema.MetaData.create_all` methods - of :class:`~sqlalchemy.schema.Table`, - :class:`~sqlalchemy.schema.MetaData`. - - Note that when "standard output" mode is enabled, - this bind will be a "mock" connection handler that cannot - return results and is only appropriate for a very limited - subset of commands. - - """ - return self.connection - - @property - def config(self) -> Optional[Config]: - """Return the :class:`.Config` used by the current environment, - if any.""" - - if self.environment_context: - return self.environment_context.config - else: - return None - - def _compare_type( - self, inspector_column: Column[Any], metadata_column: Column - ) -> bool: - if self._user_compare_type is False: - return False - - if callable(self._user_compare_type): - user_value = self._user_compare_type( - self, - inspector_column, - metadata_column, - inspector_column.type, - metadata_column.type, - ) - if user_value is not None: - return user_value - - return self.impl.compare_type(inspector_column, metadata_column) - - def _compare_server_default( - self, - inspector_column: Column[Any], - metadata_column: Column[Any], - rendered_metadata_default: Optional[str], - rendered_column_default: Optional[str], - ) -> bool: - if self._user_compare_server_default is False: - return False - - if callable(self._user_compare_server_default): - user_value = self._user_compare_server_default( - self, - inspector_column, - metadata_column, - rendered_column_default, - metadata_column.server_default, - rendered_metadata_default, - ) - if user_value is not None: - return user_value - - return self.impl.compare_server_default( - inspector_column, - metadata_column, - rendered_metadata_default, - rendered_column_default, - ) - - -class HeadMaintainer: - def __init__(self, context: MigrationContext, heads: Any) -> None: - self.context = context - self.heads = set(heads) - - def _insert_version(self, version: str) -> None: - assert version not in self.heads - self.heads.add(version) - - self.context.impl._exec( - self.context._version.insert().values( - version_num=literal_column("'%s'" % version) - ) - ) - - def _delete_version(self, version: str) -> None: - self.heads.remove(version) - - ret = self.context.impl._exec( - self.context._version.delete().where( - self.context._version.c.version_num - == literal_column("'%s'" % version) - ) - ) - - if ( - not self.context.as_sql - and self.context.dialect.supports_sane_rowcount - and ret is not None - and ret.rowcount != 1 - ): - raise util.CommandError( - "Online migration expected to match one " - "row when deleting '%s' in '%s'; " - "%d found" - % (version, self.context.version_table, ret.rowcount) - ) - - def _update_version(self, from_: str, to_: str) -> None: - assert to_ not in self.heads - self.heads.remove(from_) - self.heads.add(to_) - - ret = self.context.impl._exec( - self.context._version.update() - .values(version_num=literal_column("'%s'" % to_)) - .where( - self.context._version.c.version_num - == literal_column("'%s'" % from_) - ) - ) - - if ( - not self.context.as_sql - and self.context.dialect.supports_sane_rowcount - and ret is not None - and ret.rowcount != 1 - ): - raise util.CommandError( - "Online migration expected to match one " - "row when updating '%s' to '%s' in '%s'; " - "%d found" - % (from_, to_, self.context.version_table, ret.rowcount) - ) - - def update_to_step(self, step: Union[RevisionStep, StampStep]) -> None: - if step.should_delete_branch(self.heads): - vers = step.delete_version_num - log.debug("branch delete %s", vers) - self._delete_version(vers) - elif step.should_create_branch(self.heads): - vers = step.insert_version_num - log.debug("new branch insert %s", vers) - self._insert_version(vers) - elif step.should_merge_branches(self.heads): - # delete revs, update from rev, update to rev - ( - delete_revs, - update_from_rev, - update_to_rev, - ) = step.merge_branch_idents(self.heads) - log.debug( - "merge, delete %s, update %s to %s", - delete_revs, - update_from_rev, - update_to_rev, - ) - for delrev in delete_revs: - self._delete_version(delrev) - self._update_version(update_from_rev, update_to_rev) - elif step.should_unmerge_branches(self.heads): - ( - update_from_rev, - update_to_rev, - insert_revs, - ) = step.unmerge_branch_idents(self.heads) - log.debug( - "unmerge, insert %s, update %s to %s", - insert_revs, - update_from_rev, - update_to_rev, - ) - for insrev in insert_revs: - self._insert_version(insrev) - self._update_version(update_from_rev, update_to_rev) - else: - from_, to_ = step.update_version_num(self.heads) - log.debug("update %s to %s", from_, to_) - self._update_version(from_, to_) - - -class MigrationInfo: - """Exposes information about a migration step to a callback listener. - - The :class:`.MigrationInfo` object is available exclusively for the - benefit of the :paramref:`.EnvironmentContext.on_version_apply` - callback hook. - - """ - - is_upgrade: bool - """True/False: indicates whether this operation ascends or descends the - version tree.""" - - is_stamp: bool - """True/False: indicates whether this operation is a stamp (i.e. whether - it results in any actual database operations).""" - - up_revision_id: Optional[str] - """Version string corresponding to :attr:`.Revision.revision`. - - In the case of a stamp operation, it is advised to use the - :attr:`.MigrationInfo.up_revision_ids` tuple as a stamp operation can - make a single movement from one or more branches down to a single - branchpoint, in which case there will be multiple "up" revisions. - - .. seealso:: - - :attr:`.MigrationInfo.up_revision_ids` - - """ - - up_revision_ids: Tuple[str, ...] - """Tuple of version strings corresponding to :attr:`.Revision.revision`. - - In the majority of cases, this tuple will be a single value, synonymous - with the scalar value of :attr:`.MigrationInfo.up_revision_id`. - It can be multiple revision identifiers only in the case of an - ``alembic stamp`` operation which is moving downwards from multiple - branches down to their common branch point. - - """ - - down_revision_ids: Tuple[str, ...] - """Tuple of strings representing the base revisions of this migration step. - - If empty, this represents a root revision; otherwise, the first item - corresponds to :attr:`.Revision.down_revision`, and the rest are inferred - from dependencies. - """ - - revision_map: RevisionMap - """The revision map inside of which this operation occurs.""" - - def __init__( - self, - revision_map: RevisionMap, - is_upgrade: bool, - is_stamp: bool, - up_revisions: Union[str, Tuple[str, ...]], - down_revisions: Union[str, Tuple[str, ...]], - ) -> None: - self.revision_map = revision_map - self.is_upgrade = is_upgrade - self.is_stamp = is_stamp - self.up_revision_ids = util.to_tuple(up_revisions, default=()) - if self.up_revision_ids: - self.up_revision_id = self.up_revision_ids[0] - else: - # this should never be the case with - # "upgrade", "downgrade", or "stamp" as we are always - # measuring movement in terms of at least one upgrade version - self.up_revision_id = None - self.down_revision_ids = util.to_tuple(down_revisions, default=()) - - @property - def is_migration(self) -> bool: - """True/False: indicates whether this operation is a migration. - - At present this is true if and only the migration is not a stamp. - If other operation types are added in the future, both this attribute - and :attr:`~.MigrationInfo.is_stamp` will be false. - """ - return not self.is_stamp - - @property - def source_revision_ids(self) -> Tuple[str, ...]: - """Active revisions before this migration step is applied.""" - return ( - self.down_revision_ids if self.is_upgrade else self.up_revision_ids - ) - - @property - def destination_revision_ids(self) -> Tuple[str, ...]: - """Active revisions after this migration step is applied.""" - return ( - self.up_revision_ids if self.is_upgrade else self.down_revision_ids - ) - - @property - def up_revision(self) -> Optional[Revision]: - """Get :attr:`~.MigrationInfo.up_revision_id` as - a :class:`.Revision`. - - """ - return self.revision_map.get_revision(self.up_revision_id) - - @property - def up_revisions(self) -> Tuple[Optional[_RevisionOrBase], ...]: - """Get :attr:`~.MigrationInfo.up_revision_ids` as a - :class:`.Revision`.""" - return self.revision_map.get_revisions(self.up_revision_ids) - - @property - def down_revisions(self) -> Tuple[Optional[_RevisionOrBase], ...]: - """Get :attr:`~.MigrationInfo.down_revision_ids` as a tuple of - :class:`Revisions <.Revision>`.""" - return self.revision_map.get_revisions(self.down_revision_ids) - - @property - def source_revisions(self) -> Tuple[Optional[_RevisionOrBase], ...]: - """Get :attr:`~MigrationInfo.source_revision_ids` as a tuple of - :class:`Revisions <.Revision>`.""" - return self.revision_map.get_revisions(self.source_revision_ids) - - @property - def destination_revisions(self) -> Tuple[Optional[_RevisionOrBase], ...]: - """Get :attr:`~MigrationInfo.destination_revision_ids` as a tuple of - :class:`Revisions <.Revision>`.""" - return self.revision_map.get_revisions(self.destination_revision_ids) - - -class MigrationStep: - from_revisions_no_deps: Tuple[str, ...] - to_revisions_no_deps: Tuple[str, ...] - is_upgrade: bool - migration_fn: Any - - if TYPE_CHECKING: - - @property - def doc(self) -> Optional[str]: ... - - @property - def name(self) -> str: - return self.migration_fn.__name__ - - @classmethod - def upgrade_from_script( - cls, revision_map: RevisionMap, script: Script - ) -> RevisionStep: - return RevisionStep(revision_map, script, True) - - @classmethod - def downgrade_from_script( - cls, revision_map: RevisionMap, script: Script - ) -> RevisionStep: - return RevisionStep(revision_map, script, False) - - @property - def is_downgrade(self) -> bool: - return not self.is_upgrade - - @property - def short_log(self) -> str: - return "%s %s -> %s" % ( - self.name, - util.format_as_comma(self.from_revisions_no_deps), - util.format_as_comma(self.to_revisions_no_deps), - ) - - def __str__(self): - if self.doc: - return "%s %s -> %s, %s" % ( - self.name, - util.format_as_comma(self.from_revisions_no_deps), - util.format_as_comma(self.to_revisions_no_deps), - self.doc, - ) - else: - return self.short_log - - -class RevisionStep(MigrationStep): - def __init__( - self, revision_map: RevisionMap, revision: Script, is_upgrade: bool - ) -> None: - self.revision_map = revision_map - self.revision = revision - self.is_upgrade = is_upgrade - if is_upgrade: - self.migration_fn = revision.module.upgrade - else: - self.migration_fn = revision.module.downgrade - - def __repr__(self): - return "RevisionStep(%r, is_upgrade=%r)" % ( - self.revision.revision, - self.is_upgrade, - ) - - def __eq__(self, other: object) -> bool: - return ( - isinstance(other, RevisionStep) - and other.revision == self.revision - and self.is_upgrade == other.is_upgrade - ) - - @property - def doc(self) -> Optional[str]: - return self.revision.doc - - @property - def from_revisions(self) -> Tuple[str, ...]: - if self.is_upgrade: - return self.revision._normalized_down_revisions - else: - return (self.revision.revision,) - - @property - def from_revisions_no_deps( # type:ignore[override] - self, - ) -> Tuple[str, ...]: - if self.is_upgrade: - return self.revision._versioned_down_revisions - else: - return (self.revision.revision,) - - @property - def to_revisions(self) -> Tuple[str, ...]: - if self.is_upgrade: - return (self.revision.revision,) - else: - return self.revision._normalized_down_revisions - - @property - def to_revisions_no_deps( # type:ignore[override] - self, - ) -> Tuple[str, ...]: - if self.is_upgrade: - return (self.revision.revision,) - else: - return self.revision._versioned_down_revisions - - @property - def _has_scalar_down_revision(self) -> bool: - return len(self.revision._normalized_down_revisions) == 1 - - def should_delete_branch(self, heads: Set[str]) -> bool: - """A delete is when we are a. in a downgrade and b. - we are going to the "base" or we are going to a version that - is implied as a dependency on another version that is remaining. - - """ - if not self.is_downgrade: - return False - - if self.revision.revision not in heads: - return False - - downrevs = self.revision._normalized_down_revisions - - if not downrevs: - # is a base - return True - else: - # determine what the ultimate "to_revisions" for an - # unmerge would be. If there are none, then we're a delete. - to_revisions = self._unmerge_to_revisions(heads) - return not to_revisions - - def merge_branch_idents( - self, heads: Set[str] - ) -> Tuple[List[str], str, str]: - other_heads = set(heads).difference(self.from_revisions) - - if other_heads: - ancestors = { - r.revision - for r in self.revision_map._get_ancestor_nodes( - self.revision_map.get_revisions(other_heads), check=False - ) - } - from_revisions = list( - set(self.from_revisions).difference(ancestors) - ) - else: - from_revisions = list(self.from_revisions) - - return ( - # delete revs, update from rev, update to rev - list(from_revisions[0:-1]), - from_revisions[-1], - self.to_revisions[0], - ) - - def _unmerge_to_revisions(self, heads: Set[str]) -> Tuple[str, ...]: - other_heads = set(heads).difference([self.revision.revision]) - if other_heads: - ancestors = { - r.revision - for r in self.revision_map._get_ancestor_nodes( - self.revision_map.get_revisions(other_heads), check=False - ) - } - return tuple(set(self.to_revisions).difference(ancestors)) - else: - # for each revision we plan to return, compute its ancestors - # (excluding self), and remove those from the final output since - # they are already accounted for. - ancestors = { - r.revision - for to_revision in self.to_revisions - for r in self.revision_map._get_ancestor_nodes( - self.revision_map.get_revisions(to_revision), check=False - ) - if r.revision != to_revision - } - return tuple(set(self.to_revisions).difference(ancestors)) - - def unmerge_branch_idents( - self, heads: Set[str] - ) -> Tuple[str, str, Tuple[str, ...]]: - to_revisions = self._unmerge_to_revisions(heads) - - return ( - # update from rev, update to rev, insert revs - self.from_revisions[0], - to_revisions[-1], - to_revisions[0:-1], - ) - - def should_create_branch(self, heads: Set[str]) -> bool: - if not self.is_upgrade: - return False - - downrevs = self.revision._normalized_down_revisions - - if not downrevs: - # is a base - return True - else: - # none of our downrevs are present, so... - # we have to insert our version. This is true whether - # or not there is only one downrev, or multiple (in the latter - # case, we're a merge point.) - if not heads.intersection(downrevs): - return True - else: - return False - - def should_merge_branches(self, heads: Set[str]) -> bool: - if not self.is_upgrade: - return False - - downrevs = self.revision._normalized_down_revisions - - if len(downrevs) > 1 and len(heads.intersection(downrevs)) > 1: - return True - - return False - - def should_unmerge_branches(self, heads: Set[str]) -> bool: - if not self.is_downgrade: - return False - - downrevs = self.revision._normalized_down_revisions - - if self.revision.revision in heads and len(downrevs) > 1: - return True - - return False - - def update_version_num(self, heads: Set[str]) -> Tuple[str, str]: - if not self._has_scalar_down_revision: - downrev = heads.intersection( - self.revision._normalized_down_revisions - ) - assert ( - len(downrev) == 1 - ), "Can't do an UPDATE because downrevision is ambiguous" - down_revision = list(downrev)[0] - else: - down_revision = self.revision._normalized_down_revisions[0] - - if self.is_upgrade: - return down_revision, self.revision.revision - else: - return self.revision.revision, down_revision - - @property - def delete_version_num(self) -> str: - return self.revision.revision - - @property - def insert_version_num(self) -> str: - return self.revision.revision - - @property - def info(self) -> MigrationInfo: - return MigrationInfo( - revision_map=self.revision_map, - up_revisions=self.revision.revision, - down_revisions=self.revision._normalized_down_revisions, - is_upgrade=self.is_upgrade, - is_stamp=False, - ) - - -class StampStep(MigrationStep): - def __init__( - self, - from_: Optional[Union[str, Collection[str]]], - to_: Optional[Union[str, Collection[str]]], - is_upgrade: bool, - branch_move: bool, - revision_map: Optional[RevisionMap] = None, - ) -> None: - self.from_: Tuple[str, ...] = util.to_tuple(from_, default=()) - self.to_: Tuple[str, ...] = util.to_tuple(to_, default=()) - self.is_upgrade = is_upgrade - self.branch_move = branch_move - self.migration_fn = self.stamp_revision - self.revision_map = revision_map - - doc: Optional[str] = None - - def stamp_revision(self, **kw: Any) -> None: - return None - - def __eq__(self, other): - return ( - isinstance(other, StampStep) - and other.from_revisions == self.from_revisions - and other.to_revisions == self.to_revisions - and other.branch_move == self.branch_move - and self.is_upgrade == other.is_upgrade - ) - - @property - def from_revisions(self): - return self.from_ - - @property - def to_revisions(self) -> Tuple[str, ...]: - return self.to_ - - @property - def from_revisions_no_deps( # type:ignore[override] - self, - ) -> Tuple[str, ...]: - return self.from_ - - @property - def to_revisions_no_deps( # type:ignore[override] - self, - ) -> Tuple[str, ...]: - return self.to_ - - @property - def delete_version_num(self) -> str: - assert len(self.from_) == 1 - return self.from_[0] - - @property - def insert_version_num(self) -> str: - assert len(self.to_) == 1 - return self.to_[0] - - def update_version_num(self, heads: Set[str]) -> Tuple[str, str]: - assert len(self.from_) == 1 - assert len(self.to_) == 1 - return self.from_[0], self.to_[0] - - def merge_branch_idents( - self, heads: Union[Set[str], List[str]] - ) -> Union[Tuple[List[Any], str, str], Tuple[List[str], str, str]]: - return ( - # delete revs, update from rev, update to rev - list(self.from_[0:-1]), - self.from_[-1], - self.to_[0], - ) - - def unmerge_branch_idents( - self, heads: Set[str] - ) -> Tuple[str, str, List[str]]: - return ( - # update from rev, update to rev, insert revs - self.from_[0], - self.to_[-1], - list(self.to_[0:-1]), - ) - - def should_delete_branch(self, heads: Set[str]) -> bool: - # TODO: we probably need to look for self.to_ inside of heads, - # in a similar manner as should_create_branch, however we have - # no tests for this yet (stamp downgrades w/ branches) - return self.is_downgrade and self.branch_move - - def should_create_branch(self, heads: Set[str]) -> Union[Set[str], bool]: - return ( - self.is_upgrade - and (self.branch_move or set(self.from_).difference(heads)) - and set(self.to_).difference(heads) - ) - - def should_merge_branches(self, heads: Set[str]) -> bool: - return len(self.from_) > 1 - - def should_unmerge_branches(self, heads: Set[str]) -> bool: - return len(self.to_) > 1 - - @property - def info(self) -> MigrationInfo: - up, down = ( - (self.to_, self.from_) - if self.is_upgrade - else (self.from_, self.to_) - ) - assert self.revision_map is not None - return MigrationInfo( - revision_map=self.revision_map, - up_revisions=up, - down_revisions=down, - is_upgrade=self.is_upgrade, - is_stamp=True, - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/script/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/script/__init__.py deleted file mode 100644 index d78f3f1..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/script/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .base import Script -from .base import ScriptDirectory - -__all__ = ["ScriptDirectory", "Script"] diff --git a/backend/venv/lib/python3.12/site-packages/alembic/script/base.py b/backend/venv/lib/python3.12/site-packages/alembic/script/base.py deleted file mode 100644 index 30df6dd..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/script/base.py +++ /dev/null @@ -1,1066 +0,0 @@ -from __future__ import annotations - -from contextlib import contextmanager -import datetime -import os -import re -import shutil -import sys -from types import ModuleType -from typing import Any -from typing import cast -from typing import Iterator -from typing import List -from typing import Mapping -from typing import Optional -from typing import Sequence -from typing import Set -from typing import Tuple -from typing import TYPE_CHECKING -from typing import Union - -from . import revision -from . import write_hooks -from .. import util -from ..runtime import migration -from ..util import compat -from ..util import not_none - -if TYPE_CHECKING: - from .revision import _GetRevArg - from .revision import _RevIdType - from .revision import Revision - from ..config import Config - from ..config import MessagingOptions - from ..runtime.migration import RevisionStep - from ..runtime.migration import StampStep - -try: - if compat.py39: - from zoneinfo import ZoneInfo - from zoneinfo import ZoneInfoNotFoundError - else: - from backports.zoneinfo import ZoneInfo # type: ignore[import-not-found,no-redef] # noqa: E501 - from backports.zoneinfo import ZoneInfoNotFoundError # type: ignore[no-redef] # noqa: E501 -except ImportError: - ZoneInfo = None # type: ignore[assignment, misc] - -_sourceless_rev_file = re.compile(r"(?!\.\#|__init__)(.*\.py)(c|o)?$") -_only_source_rev_file = re.compile(r"(?!\.\#|__init__)(.*\.py)$") -_legacy_rev = re.compile(r"([a-f0-9]+)\.py$") -_slug_re = re.compile(r"\w+") -_default_file_template = "%(rev)s_%(slug)s" -_split_on_space_comma = re.compile(r", *|(?: +)") - -_split_on_space_comma_colon = re.compile(r", *|(?: +)|\:") - - -class ScriptDirectory: - """Provides operations upon an Alembic script directory. - - This object is useful to get information as to current revisions, - most notably being able to get at the "head" revision, for schemes - that want to test if the current revision in the database is the most - recent:: - - from alembic.script import ScriptDirectory - from alembic.config import Config - config = Config() - config.set_main_option("script_location", "myapp:migrations") - script = ScriptDirectory.from_config(config) - - head_revision = script.get_current_head() - - - - """ - - def __init__( - self, - dir: str, # noqa - file_template: str = _default_file_template, - truncate_slug_length: Optional[int] = 40, - version_locations: Optional[List[str]] = None, - sourceless: bool = False, - output_encoding: str = "utf-8", - timezone: Optional[str] = None, - hook_config: Optional[Mapping[str, str]] = None, - recursive_version_locations: bool = False, - messaging_opts: MessagingOptions = cast( - "MessagingOptions", util.EMPTY_DICT - ), - ) -> None: - self.dir = dir - self.file_template = file_template - self.version_locations = version_locations - self.truncate_slug_length = truncate_slug_length or 40 - self.sourceless = sourceless - self.output_encoding = output_encoding - self.revision_map = revision.RevisionMap(self._load_revisions) - self.timezone = timezone - self.hook_config = hook_config - self.recursive_version_locations = recursive_version_locations - self.messaging_opts = messaging_opts - - if not os.access(dir, os.F_OK): - raise util.CommandError( - "Path doesn't exist: %r. Please use " - "the 'init' command to create a new " - "scripts folder." % os.path.abspath(dir) - ) - - @property - def versions(self) -> str: - loc = self._version_locations - if len(loc) > 1: - raise util.CommandError("Multiple version_locations present") - else: - return loc[0] - - @util.memoized_property - def _version_locations(self) -> Sequence[str]: - if self.version_locations: - return [ - os.path.abspath(util.coerce_resource_to_filename(location)) - for location in self.version_locations - ] - else: - return (os.path.abspath(os.path.join(self.dir, "versions")),) - - def _load_revisions(self) -> Iterator[Script]: - if self.version_locations: - paths = [ - vers - for vers in self._version_locations - if os.path.exists(vers) - ] - else: - paths = [self.versions] - - dupes = set() - for vers in paths: - for file_path in Script._list_py_dir(self, vers): - real_path = os.path.realpath(file_path) - if real_path in dupes: - util.warn( - "File %s loaded twice! ignoring. Please ensure " - "version_locations is unique." % real_path - ) - continue - dupes.add(real_path) - - filename = os.path.basename(real_path) - dir_name = os.path.dirname(real_path) - script = Script._from_filename(self, dir_name, filename) - if script is None: - continue - yield script - - @classmethod - def from_config(cls, config: Config) -> ScriptDirectory: - """Produce a new :class:`.ScriptDirectory` given a :class:`.Config` - instance. - - The :class:`.Config` need only have the ``script_location`` key - present. - - """ - script_location = config.get_main_option("script_location") - if script_location is None: - raise util.CommandError( - "No 'script_location' key " "found in configuration." - ) - truncate_slug_length: Optional[int] - tsl = config.get_main_option("truncate_slug_length") - if tsl is not None: - truncate_slug_length = int(tsl) - else: - truncate_slug_length = None - - version_locations_str = config.get_main_option("version_locations") - version_locations: Optional[List[str]] - if version_locations_str: - version_path_separator = config.get_main_option( - "version_path_separator" - ) - - split_on_path = { - None: None, - "space": " ", - "newline": "\n", - "os": os.pathsep, - ":": ":", - ";": ";", - } - - try: - split_char: Optional[str] = split_on_path[ - version_path_separator - ] - except KeyError as ke: - raise ValueError( - "'%s' is not a valid value for " - "version_path_separator; " - "expected 'space', 'newline', 'os', ':', ';'" - % version_path_separator - ) from ke - else: - if split_char is None: - # legacy behaviour for backwards compatibility - version_locations = _split_on_space_comma.split( - version_locations_str - ) - else: - version_locations = [ - x.strip() - for x in version_locations_str.split(split_char) - if x - ] - else: - version_locations = None - - prepend_sys_path = config.get_main_option("prepend_sys_path") - if prepend_sys_path: - sys.path[:0] = list( - _split_on_space_comma_colon.split(prepend_sys_path) - ) - - rvl = config.get_main_option("recursive_version_locations") == "true" - return ScriptDirectory( - util.coerce_resource_to_filename(script_location), - file_template=config.get_main_option( - "file_template", _default_file_template - ), - truncate_slug_length=truncate_slug_length, - sourceless=config.get_main_option("sourceless") == "true", - output_encoding=config.get_main_option("output_encoding", "utf-8"), - version_locations=version_locations, - timezone=config.get_main_option("timezone"), - hook_config=config.get_section("post_write_hooks", {}), - recursive_version_locations=rvl, - messaging_opts=config.messaging_opts, - ) - - @contextmanager - def _catch_revision_errors( - self, - ancestor: Optional[str] = None, - multiple_heads: Optional[str] = None, - start: Optional[str] = None, - end: Optional[str] = None, - resolution: Optional[str] = None, - ) -> Iterator[None]: - try: - yield - except revision.RangeNotAncestorError as rna: - if start is None: - start = cast(Any, rna.lower) - if end is None: - end = cast(Any, rna.upper) - if not ancestor: - ancestor = ( - "Requested range %(start)s:%(end)s does not refer to " - "ancestor/descendant revisions along the same branch" - ) - ancestor = ancestor % {"start": start, "end": end} - raise util.CommandError(ancestor) from rna - except revision.MultipleHeads as mh: - if not multiple_heads: - multiple_heads = ( - "Multiple head revisions are present for given " - "argument '%(head_arg)s'; please " - "specify a specific target revision, " - "'@%(head_arg)s' to " - "narrow to a specific head, or 'heads' for all heads" - ) - multiple_heads = multiple_heads % { - "head_arg": end or mh.argument, - "heads": util.format_as_comma(mh.heads), - } - raise util.CommandError(multiple_heads) from mh - except revision.ResolutionError as re: - if resolution is None: - resolution = "Can't locate revision identified by '%s'" % ( - re.argument - ) - raise util.CommandError(resolution) from re - except revision.RevisionError as err: - raise util.CommandError(err.args[0]) from err - - def walk_revisions( - self, base: str = "base", head: str = "heads" - ) -> Iterator[Script]: - """Iterate through all revisions. - - :param base: the base revision, or "base" to start from the - empty revision. - - :param head: the head revision; defaults to "heads" to indicate - all head revisions. May also be "head" to indicate a single - head revision. - - """ - with self._catch_revision_errors(start=base, end=head): - for rev in self.revision_map.iterate_revisions( - head, base, inclusive=True, assert_relative_length=False - ): - yield cast(Script, rev) - - def get_revisions(self, id_: _GetRevArg) -> Tuple[Script, ...]: - """Return the :class:`.Script` instance with the given rev identifier, - symbolic name, or sequence of identifiers. - - """ - with self._catch_revision_errors(): - return cast( - Tuple[Script, ...], - self.revision_map.get_revisions(id_), - ) - - def get_all_current(self, id_: Tuple[str, ...]) -> Set[Script]: - with self._catch_revision_errors(): - return cast(Set[Script], self.revision_map._get_all_current(id_)) - - def get_revision(self, id_: str) -> Script: - """Return the :class:`.Script` instance with the given rev id. - - .. seealso:: - - :meth:`.ScriptDirectory.get_revisions` - - """ - - with self._catch_revision_errors(): - return cast(Script, self.revision_map.get_revision(id_)) - - def as_revision_number( - self, id_: Optional[str] - ) -> Optional[Union[str, Tuple[str, ...]]]: - """Convert a symbolic revision, i.e. 'head' or 'base', into - an actual revision number.""" - - with self._catch_revision_errors(): - rev, branch_name = self.revision_map._resolve_revision_number(id_) - - if not rev: - # convert () to None - return None - elif id_ == "heads": - return rev - else: - return rev[0] - - def iterate_revisions( - self, - upper: Union[str, Tuple[str, ...], None], - lower: Union[str, Tuple[str, ...], None], - **kw: Any, - ) -> Iterator[Script]: - """Iterate through script revisions, starting at the given - upper revision identifier and ending at the lower. - - The traversal uses strictly the `down_revision` - marker inside each migration script, so - it is a requirement that upper >= lower, - else you'll get nothing back. - - The iterator yields :class:`.Script` objects. - - .. seealso:: - - :meth:`.RevisionMap.iterate_revisions` - - """ - return cast( - Iterator[Script], - self.revision_map.iterate_revisions(upper, lower, **kw), - ) - - def get_current_head(self) -> Optional[str]: - """Return the current head revision. - - If the script directory has multiple heads - due to branching, an error is raised; - :meth:`.ScriptDirectory.get_heads` should be - preferred. - - :return: a string revision number. - - .. seealso:: - - :meth:`.ScriptDirectory.get_heads` - - """ - with self._catch_revision_errors( - multiple_heads=( - "The script directory has multiple heads (due to branching)." - "Please use get_heads(), or merge the branches using " - "alembic merge." - ) - ): - return self.revision_map.get_current_head() - - def get_heads(self) -> List[str]: - """Return all "versioned head" revisions as strings. - - This is normally a list of length one, - unless branches are present. The - :meth:`.ScriptDirectory.get_current_head()` method - can be used normally when a script directory - has only one head. - - :return: a tuple of string revision numbers. - """ - return list(self.revision_map.heads) - - def get_base(self) -> Optional[str]: - """Return the "base" revision as a string. - - This is the revision number of the script that - has a ``down_revision`` of None. - - If the script directory has multiple bases, an error is raised; - :meth:`.ScriptDirectory.get_bases` should be - preferred. - - """ - bases = self.get_bases() - if len(bases) > 1: - raise util.CommandError( - "The script directory has multiple bases. " - "Please use get_bases()." - ) - elif bases: - return bases[0] - else: - return None - - def get_bases(self) -> List[str]: - """return all "base" revisions as strings. - - This is the revision number of all scripts that - have a ``down_revision`` of None. - - """ - return list(self.revision_map.bases) - - def _upgrade_revs( - self, destination: str, current_rev: str - ) -> List[RevisionStep]: - with self._catch_revision_errors( - ancestor="Destination %(end)s is not a valid upgrade " - "target from current head(s)", - end=destination, - ): - revs = self.iterate_revisions( - destination, current_rev, implicit_base=True - ) - return [ - migration.MigrationStep.upgrade_from_script( - self.revision_map, script - ) - for script in reversed(list(revs)) - ] - - def _downgrade_revs( - self, destination: str, current_rev: Optional[str] - ) -> List[RevisionStep]: - with self._catch_revision_errors( - ancestor="Destination %(end)s is not a valid downgrade " - "target from current head(s)", - end=destination, - ): - revs = self.iterate_revisions( - current_rev, destination, select_for_downgrade=True - ) - return [ - migration.MigrationStep.downgrade_from_script( - self.revision_map, script - ) - for script in revs - ] - - def _stamp_revs( - self, revision: _RevIdType, heads: _RevIdType - ) -> List[StampStep]: - with self._catch_revision_errors( - multiple_heads="Multiple heads are present; please specify a " - "single target revision" - ): - heads_revs = self.get_revisions(heads) - - steps = [] - - if not revision: - revision = "base" - - filtered_heads: List[Script] = [] - for rev in util.to_tuple(revision): - if rev: - filtered_heads.extend( - self.revision_map.filter_for_lineage( - cast(Sequence[Script], heads_revs), - rev, - include_dependencies=True, - ) - ) - filtered_heads = util.unique_list(filtered_heads) - - dests = self.get_revisions(revision) or [None] - - for dest in dests: - if dest is None: - # dest is 'base'. Return a "delete branch" migration - # for all applicable heads. - steps.extend( - [ - migration.StampStep( - head.revision, - None, - False, - True, - self.revision_map, - ) - for head in filtered_heads - ] - ) - continue - elif dest in filtered_heads: - # the dest is already in the version table, do nothing. - continue - - # figure out if the dest is a descendant or an - # ancestor of the selected nodes - descendants = set( - self.revision_map._get_descendant_nodes([dest]) - ) - ancestors = set(self.revision_map._get_ancestor_nodes([dest])) - - if descendants.intersection(filtered_heads): - # heads are above the target, so this is a downgrade. - # we can treat them as a "merge", single step. - assert not ancestors.intersection(filtered_heads) - todo_heads = [head.revision for head in filtered_heads] - step = migration.StampStep( - todo_heads, - dest.revision, - False, - False, - self.revision_map, - ) - steps.append(step) - continue - elif ancestors.intersection(filtered_heads): - # heads are below the target, so this is an upgrade. - # we can treat them as a "merge", single step. - todo_heads = [head.revision for head in filtered_heads] - step = migration.StampStep( - todo_heads, - dest.revision, - True, - False, - self.revision_map, - ) - steps.append(step) - continue - else: - # destination is in a branch not represented, - # treat it as new branch - step = migration.StampStep( - (), dest.revision, True, True, self.revision_map - ) - steps.append(step) - continue - - return steps - - def run_env(self) -> None: - """Run the script environment. - - This basically runs the ``env.py`` script present - in the migration environment. It is called exclusively - by the command functions in :mod:`alembic.command`. - - - """ - util.load_python_file(self.dir, "env.py") - - @property - def env_py_location(self) -> str: - return os.path.abspath(os.path.join(self.dir, "env.py")) - - def _generate_template(self, src: str, dest: str, **kw: Any) -> None: - with util.status( - f"Generating {os.path.abspath(dest)}", **self.messaging_opts - ): - util.template_to_file(src, dest, self.output_encoding, **kw) - - def _copy_file(self, src: str, dest: str) -> None: - with util.status( - f"Generating {os.path.abspath(dest)}", **self.messaging_opts - ): - shutil.copy(src, dest) - - def _ensure_directory(self, path: str) -> None: - path = os.path.abspath(path) - if not os.path.exists(path): - with util.status( - f"Creating directory {path}", **self.messaging_opts - ): - os.makedirs(path) - - def _generate_create_date(self) -> datetime.datetime: - if self.timezone is not None: - if ZoneInfo is None: - raise util.CommandError( - "Python >= 3.9 is required for timezone support or " - "the 'backports.zoneinfo' package must be installed." - ) - # First, assume correct capitalization - try: - tzinfo = ZoneInfo(self.timezone) - except ZoneInfoNotFoundError: - tzinfo = None - if tzinfo is None: - try: - tzinfo = ZoneInfo(self.timezone.upper()) - except ZoneInfoNotFoundError: - raise util.CommandError( - "Can't locate timezone: %s" % self.timezone - ) from None - create_date = ( - datetime.datetime.utcnow() - .replace(tzinfo=datetime.timezone.utc) - .astimezone(tzinfo) - ) - else: - create_date = datetime.datetime.now() - return create_date - - def generate_revision( - self, - revid: str, - message: Optional[str], - head: Optional[_RevIdType] = None, - splice: Optional[bool] = False, - branch_labels: Optional[_RevIdType] = None, - version_path: Optional[str] = None, - depends_on: Optional[_RevIdType] = None, - **kw: Any, - ) -> Optional[Script]: - """Generate a new revision file. - - This runs the ``script.py.mako`` template, given - template arguments, and creates a new file. - - :param revid: String revision id. Typically this - comes from ``alembic.util.rev_id()``. - :param message: the revision message, the one passed - by the -m argument to the ``revision`` command. - :param head: the head revision to generate against. Defaults - to the current "head" if no branches are present, else raises - an exception. - :param splice: if True, allow the "head" version to not be an - actual head; otherwise, the selected head must be a head - (e.g. endpoint) revision. - - """ - if head is None: - head = "head" - - try: - Script.verify_rev_id(revid) - except revision.RevisionError as err: - raise util.CommandError(err.args[0]) from err - - with self._catch_revision_errors( - multiple_heads=( - "Multiple heads are present; please specify the head " - "revision on which the new revision should be based, " - "or perform a merge." - ) - ): - heads = cast( - Tuple[Optional["Revision"], ...], - self.revision_map.get_revisions(head), - ) - for h in heads: - assert h != "base" # type: ignore[comparison-overlap] - - if len(set(heads)) != len(heads): - raise util.CommandError("Duplicate head revisions specified") - - create_date = self._generate_create_date() - - if version_path is None: - if len(self._version_locations) > 1: - for head_ in heads: - if head_ is not None: - assert isinstance(head_, Script) - version_path = os.path.dirname(head_.path) - break - else: - raise util.CommandError( - "Multiple version locations present, " - "please specify --version-path" - ) - else: - version_path = self.versions - - norm_path = os.path.normpath(os.path.abspath(version_path)) - for vers_path in self._version_locations: - if os.path.normpath(vers_path) == norm_path: - break - else: - raise util.CommandError( - "Path %s is not represented in current " - "version locations" % version_path - ) - - if self.version_locations: - self._ensure_directory(version_path) - - path = self._rev_path(version_path, revid, message, create_date) - - if not splice: - for head_ in heads: - if head_ is not None and not head_.is_head: - raise util.CommandError( - "Revision %s is not a head revision; please specify " - "--splice to create a new branch from this revision" - % head_.revision - ) - - resolved_depends_on: Optional[List[str]] - if depends_on: - with self._catch_revision_errors(): - resolved_depends_on = [ - ( - dep - if dep in rev.branch_labels # maintain branch labels - else rev.revision - ) # resolve partial revision identifiers - for rev, dep in [ - (not_none(self.revision_map.get_revision(dep)), dep) - for dep in util.to_list(depends_on) - ] - ] - else: - resolved_depends_on = None - - self._generate_template( - os.path.join(self.dir, "script.py.mako"), - path, - up_revision=str(revid), - down_revision=revision.tuple_rev_as_scalar( - tuple(h.revision if h is not None else None for h in heads) - ), - branch_labels=util.to_tuple(branch_labels), - depends_on=revision.tuple_rev_as_scalar(resolved_depends_on), - create_date=create_date, - comma=util.format_as_comma, - message=message if message is not None else ("empty message"), - **kw, - ) - - post_write_hooks = self.hook_config - if post_write_hooks: - write_hooks._run_hooks(path, post_write_hooks) - - try: - script = Script._from_path(self, path) - except revision.RevisionError as err: - raise util.CommandError(err.args[0]) from err - if script is None: - return None - if branch_labels and not script.branch_labels: - raise util.CommandError( - "Version %s specified branch_labels %s, however the " - "migration file %s does not have them; have you upgraded " - "your script.py.mako to include the " - "'branch_labels' section?" - % (script.revision, branch_labels, script.path) - ) - self.revision_map.add_revision(script) - return script - - def _rev_path( - self, - path: str, - rev_id: str, - message: Optional[str], - create_date: datetime.datetime, - ) -> str: - epoch = int(create_date.timestamp()) - slug = "_".join(_slug_re.findall(message or "")).lower() - if len(slug) > self.truncate_slug_length: - slug = slug[: self.truncate_slug_length].rsplit("_", 1)[0] + "_" - filename = "%s.py" % ( - self.file_template - % { - "rev": rev_id, - "slug": slug, - "epoch": epoch, - "year": create_date.year, - "month": create_date.month, - "day": create_date.day, - "hour": create_date.hour, - "minute": create_date.minute, - "second": create_date.second, - } - ) - return os.path.join(path, filename) - - -class Script(revision.Revision): - """Represent a single revision file in a ``versions/`` directory. - - The :class:`.Script` instance is returned by methods - such as :meth:`.ScriptDirectory.iterate_revisions`. - - """ - - def __init__(self, module: ModuleType, rev_id: str, path: str): - self.module = module - self.path = path - super().__init__( - rev_id, - module.down_revision, - branch_labels=util.to_tuple( - getattr(module, "branch_labels", None), default=() - ), - dependencies=util.to_tuple( - getattr(module, "depends_on", None), default=() - ), - ) - - module: ModuleType - """The Python module representing the actual script itself.""" - - path: str - """Filesystem path of the script.""" - - _db_current_indicator: Optional[bool] = None - """Utility variable which when set will cause string output to indicate - this is a "current" version in some database""" - - @property - def doc(self) -> str: - """Return the docstring given in the script.""" - - return re.split("\n\n", self.longdoc)[0] - - @property - def longdoc(self) -> str: - """Return the docstring given in the script.""" - - doc = self.module.__doc__ - if doc: - if hasattr(self.module, "_alembic_source_encoding"): - doc = doc.decode( # type: ignore[attr-defined] - self.module._alembic_source_encoding - ) - return doc.strip() # type: ignore[union-attr] - else: - return "" - - @property - def log_entry(self) -> str: - entry = "Rev: %s%s%s%s%s\n" % ( - self.revision, - " (head)" if self.is_head else "", - " (branchpoint)" if self.is_branch_point else "", - " (mergepoint)" if self.is_merge_point else "", - " (current)" if self._db_current_indicator else "", - ) - if self.is_merge_point: - entry += "Merges: %s\n" % (self._format_down_revision(),) - else: - entry += "Parent: %s\n" % (self._format_down_revision(),) - - if self.dependencies: - entry += "Also depends on: %s\n" % ( - util.format_as_comma(self.dependencies) - ) - - if self.is_branch_point: - entry += "Branches into: %s\n" % ( - util.format_as_comma(self.nextrev) - ) - - if self.branch_labels: - entry += "Branch names: %s\n" % ( - util.format_as_comma(self.branch_labels), - ) - - entry += "Path: %s\n" % (self.path,) - - entry += "\n%s\n" % ( - "\n".join(" %s" % para for para in self.longdoc.splitlines()) - ) - return entry - - def __str__(self) -> str: - return "%s -> %s%s%s%s, %s" % ( - self._format_down_revision(), - self.revision, - " (head)" if self.is_head else "", - " (branchpoint)" if self.is_branch_point else "", - " (mergepoint)" if self.is_merge_point else "", - self.doc, - ) - - def _head_only( - self, - include_branches: bool = False, - include_doc: bool = False, - include_parents: bool = False, - tree_indicators: bool = True, - head_indicators: bool = True, - ) -> str: - text = self.revision - if include_parents: - if self.dependencies: - text = "%s (%s) -> %s" % ( - self._format_down_revision(), - util.format_as_comma(self.dependencies), - text, - ) - else: - text = "%s -> %s" % (self._format_down_revision(), text) - assert text is not None - if include_branches and self.branch_labels: - text += " (%s)" % util.format_as_comma(self.branch_labels) - if head_indicators or tree_indicators: - text += "%s%s%s" % ( - " (head)" if self._is_real_head else "", - ( - " (effective head)" - if self.is_head and not self._is_real_head - else "" - ), - " (current)" if self._db_current_indicator else "", - ) - if tree_indicators: - text += "%s%s" % ( - " (branchpoint)" if self.is_branch_point else "", - " (mergepoint)" if self.is_merge_point else "", - ) - if include_doc: - text += ", %s" % self.doc - return text - - def cmd_format( - self, - verbose: bool, - include_branches: bool = False, - include_doc: bool = False, - include_parents: bool = False, - tree_indicators: bool = True, - ) -> str: - if verbose: - return self.log_entry - else: - return self._head_only( - include_branches, include_doc, include_parents, tree_indicators - ) - - def _format_down_revision(self) -> str: - if not self.down_revision: - return "" - else: - return util.format_as_comma(self._versioned_down_revisions) - - @classmethod - def _from_path( - cls, scriptdir: ScriptDirectory, path: str - ) -> Optional[Script]: - dir_, filename = os.path.split(path) - return cls._from_filename(scriptdir, dir_, filename) - - @classmethod - def _list_py_dir(cls, scriptdir: ScriptDirectory, path: str) -> List[str]: - paths = [] - for root, dirs, files in os.walk(path, topdown=True): - if root.endswith("__pycache__"): - # a special case - we may include these files - # if a `sourceless` option is specified - continue - - for filename in sorted(files): - paths.append(os.path.join(root, filename)) - - if scriptdir.sourceless: - # look for __pycache__ - py_cache_path = os.path.join(root, "__pycache__") - if os.path.exists(py_cache_path): - # add all files from __pycache__ whose filename is not - # already in the names we got from the version directory. - # add as relative paths including __pycache__ token - names = {filename.split(".")[0] for filename in files} - paths.extend( - os.path.join(py_cache_path, pyc) - for pyc in os.listdir(py_cache_path) - if pyc.split(".")[0] not in names - ) - - if not scriptdir.recursive_version_locations: - break - - # the real script order is defined by revision, - # but it may be undefined if there are many files with a same - # `down_revision`, for a better user experience (ex. debugging), - # we use a deterministic order - dirs.sort() - - return paths - - @classmethod - def _from_filename( - cls, scriptdir: ScriptDirectory, dir_: str, filename: str - ) -> Optional[Script]: - if scriptdir.sourceless: - py_match = _sourceless_rev_file.match(filename) - else: - py_match = _only_source_rev_file.match(filename) - - if not py_match: - return None - - py_filename = py_match.group(1) - - if scriptdir.sourceless: - is_c = py_match.group(2) == "c" - is_o = py_match.group(2) == "o" - else: - is_c = is_o = False - - if is_o or is_c: - py_exists = os.path.exists(os.path.join(dir_, py_filename)) - pyc_exists = os.path.exists(os.path.join(dir_, py_filename + "c")) - - # prefer .py over .pyc because we'd like to get the - # source encoding; prefer .pyc over .pyo because we'd like to - # have the docstrings which a -OO file would not have - if py_exists or is_o and pyc_exists: - return None - - module = util.load_python_file(dir_, filename) - - if not hasattr(module, "revision"): - # attempt to get the revision id from the script name, - # this for legacy only - m = _legacy_rev.match(filename) - if not m: - raise util.CommandError( - "Could not determine revision id from filename %s. " - "Be sure the 'revision' variable is " - "declared inside the script (please see 'Upgrading " - "from Alembic 0.1 to 0.2' in the documentation)." - % filename - ) - else: - revision = m.group(1) - else: - revision = module.revision - return Script(module, revision, os.path.join(dir_, filename)) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/script/revision.py b/backend/venv/lib/python3.12/site-packages/alembic/script/revision.py deleted file mode 100644 index c3108e9..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/script/revision.py +++ /dev/null @@ -1,1728 +0,0 @@ -from __future__ import annotations - -import collections -import re -from typing import Any -from typing import Callable -from typing import cast -from typing import Collection -from typing import Deque -from typing import Dict -from typing import FrozenSet -from typing import Iterable -from typing import Iterator -from typing import List -from typing import Optional -from typing import overload -from typing import Protocol -from typing import Sequence -from typing import Set -from typing import Tuple -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union - -from sqlalchemy import util as sqlautil - -from .. import util -from ..util import not_none - -if TYPE_CHECKING: - from typing import Literal - -_RevIdType = Union[str, List[str], Tuple[str, ...]] -_GetRevArg = Union[ - str, - Iterable[Optional[str]], - Iterable[str], -] -_RevisionIdentifierType = Union[str, Tuple[str, ...], None] -_RevisionOrStr = Union["Revision", str] -_RevisionOrBase = Union["Revision", "Literal['base']"] -_InterimRevisionMapType = Dict[str, "Revision"] -_RevisionMapType = Dict[Union[None, str, Tuple[()]], Optional["Revision"]] -_T = TypeVar("_T") -_TR = TypeVar("_TR", bound=Optional[_RevisionOrStr]) - -_relative_destination = re.compile(r"(?:(.+?)@)?(\w+)?((?:\+|-)\d+)") -_revision_illegal_chars = ["@", "-", "+"] - - -class _CollectRevisionsProtocol(Protocol): - def __call__( - self, - upper: _RevisionIdentifierType, - lower: _RevisionIdentifierType, - inclusive: bool, - implicit_base: bool, - assert_relative_length: bool, - ) -> Tuple[Set[Revision], Tuple[Optional[_RevisionOrBase], ...]]: ... - - -class RevisionError(Exception): - pass - - -class RangeNotAncestorError(RevisionError): - def __init__( - self, lower: _RevisionIdentifierType, upper: _RevisionIdentifierType - ) -> None: - self.lower = lower - self.upper = upper - super().__init__( - "Revision %s is not an ancestor of revision %s" - % (lower or "base", upper or "base") - ) - - -class MultipleHeads(RevisionError): - def __init__(self, heads: Sequence[str], argument: Optional[str]) -> None: - self.heads = heads - self.argument = argument - super().__init__( - "Multiple heads are present for given argument '%s'; " - "%s" % (argument, ", ".join(heads)) - ) - - -class ResolutionError(RevisionError): - def __init__(self, message: str, argument: str) -> None: - super().__init__(message) - self.argument = argument - - -class CycleDetected(RevisionError): - kind = "Cycle" - - def __init__(self, revisions: Sequence[str]) -> None: - self.revisions = revisions - super().__init__( - "%s is detected in revisions (%s)" - % (self.kind, ", ".join(revisions)) - ) - - -class DependencyCycleDetected(CycleDetected): - kind = "Dependency cycle" - - def __init__(self, revisions: Sequence[str]) -> None: - super().__init__(revisions) - - -class LoopDetected(CycleDetected): - kind = "Self-loop" - - def __init__(self, revision: str) -> None: - super().__init__([revision]) - - -class DependencyLoopDetected(DependencyCycleDetected, LoopDetected): - kind = "Dependency self-loop" - - def __init__(self, revision: Sequence[str]) -> None: - super().__init__(revision) - - -class RevisionMap: - """Maintains a map of :class:`.Revision` objects. - - :class:`.RevisionMap` is used by :class:`.ScriptDirectory` to maintain - and traverse the collection of :class:`.Script` objects, which are - themselves instances of :class:`.Revision`. - - """ - - def __init__(self, generator: Callable[[], Iterable[Revision]]) -> None: - """Construct a new :class:`.RevisionMap`. - - :param generator: a zero-arg callable that will generate an iterable - of :class:`.Revision` instances to be used. These are typically - :class:`.Script` subclasses within regular Alembic use. - - """ - self._generator = generator - - @util.memoized_property - def heads(self) -> Tuple[str, ...]: - """All "head" revisions as strings. - - This is normally a tuple of length one, - unless unmerged branches are present. - - :return: a tuple of string revision numbers. - - """ - self._revision_map - return self.heads - - @util.memoized_property - def bases(self) -> Tuple[str, ...]: - """All "base" revisions as strings. - - These are revisions that have a ``down_revision`` of None, - or empty tuple. - - :return: a tuple of string revision numbers. - - """ - self._revision_map - return self.bases - - @util.memoized_property - def _real_heads(self) -> Tuple[str, ...]: - """All "real" head revisions as strings. - - :return: a tuple of string revision numbers. - - """ - self._revision_map - return self._real_heads - - @util.memoized_property - def _real_bases(self) -> Tuple[str, ...]: - """All "real" base revisions as strings. - - :return: a tuple of string revision numbers. - - """ - self._revision_map - return self._real_bases - - @util.memoized_property - def _revision_map(self) -> _RevisionMapType: - """memoized attribute, initializes the revision map from the - initial collection. - - """ - # Ordering required for some tests to pass (but not required in - # general) - map_: _InterimRevisionMapType = sqlautil.OrderedDict() - - heads: Set[Revision] = sqlautil.OrderedSet() - _real_heads: Set[Revision] = sqlautil.OrderedSet() - bases: Tuple[Revision, ...] = () - _real_bases: Tuple[Revision, ...] = () - - has_branch_labels = set() - all_revisions = set() - - for revision in self._generator(): - all_revisions.add(revision) - - if revision.revision in map_: - util.warn( - "Revision %s is present more than once" % revision.revision - ) - map_[revision.revision] = revision - if revision.branch_labels: - has_branch_labels.add(revision) - - heads.add(revision) - _real_heads.add(revision) - if revision.is_base: - bases += (revision,) - if revision._is_real_base: - _real_bases += (revision,) - - # add the branch_labels to the map_. We'll need these - # to resolve the dependencies. - rev_map = map_.copy() - self._map_branch_labels( - has_branch_labels, cast(_RevisionMapType, map_) - ) - - # resolve dependency names from branch labels and symbolic - # names - self._add_depends_on(all_revisions, cast(_RevisionMapType, map_)) - - for rev in map_.values(): - for downrev in rev._all_down_revisions: - if downrev not in map_: - util.warn( - "Revision %s referenced from %s is not present" - % (downrev, rev) - ) - down_revision = map_[downrev] - down_revision.add_nextrev(rev) - if downrev in rev._versioned_down_revisions: - heads.discard(down_revision) - _real_heads.discard(down_revision) - - # once the map has downrevisions populated, the dependencies - # can be further refined to include only those which are not - # already ancestors - self._normalize_depends_on(all_revisions, cast(_RevisionMapType, map_)) - self._detect_cycles(rev_map, heads, bases, _real_heads, _real_bases) - - revision_map: _RevisionMapType = dict(map_.items()) - revision_map[None] = revision_map[()] = None - self.heads = tuple(rev.revision for rev in heads) - self._real_heads = tuple(rev.revision for rev in _real_heads) - self.bases = tuple(rev.revision for rev in bases) - self._real_bases = tuple(rev.revision for rev in _real_bases) - - self._add_branches(has_branch_labels, revision_map) - return revision_map - - def _detect_cycles( - self, - rev_map: _InterimRevisionMapType, - heads: Set[Revision], - bases: Tuple[Revision, ...], - _real_heads: Set[Revision], - _real_bases: Tuple[Revision, ...], - ) -> None: - if not rev_map: - return - if not heads or not bases: - raise CycleDetected(list(rev_map)) - total_space = { - rev.revision - for rev in self._iterate_related_revisions( - lambda r: r._versioned_down_revisions, - heads, - map_=cast(_RevisionMapType, rev_map), - ) - }.intersection( - rev.revision - for rev in self._iterate_related_revisions( - lambda r: r.nextrev, - bases, - map_=cast(_RevisionMapType, rev_map), - ) - ) - deleted_revs = set(rev_map.keys()) - total_space - if deleted_revs: - raise CycleDetected(sorted(deleted_revs)) - - if not _real_heads or not _real_bases: - raise DependencyCycleDetected(list(rev_map)) - total_space = { - rev.revision - for rev in self._iterate_related_revisions( - lambda r: r._all_down_revisions, - _real_heads, - map_=cast(_RevisionMapType, rev_map), - ) - }.intersection( - rev.revision - for rev in self._iterate_related_revisions( - lambda r: r._all_nextrev, - _real_bases, - map_=cast(_RevisionMapType, rev_map), - ) - ) - deleted_revs = set(rev_map.keys()) - total_space - if deleted_revs: - raise DependencyCycleDetected(sorted(deleted_revs)) - - def _map_branch_labels( - self, revisions: Collection[Revision], map_: _RevisionMapType - ) -> None: - for revision in revisions: - if revision.branch_labels: - assert revision._orig_branch_labels is not None - for branch_label in revision._orig_branch_labels: - if branch_label in map_: - map_rev = map_[branch_label] - assert map_rev is not None - raise RevisionError( - "Branch name '%s' in revision %s already " - "used by revision %s" - % ( - branch_label, - revision.revision, - map_rev.revision, - ) - ) - map_[branch_label] = revision - - def _add_branches( - self, revisions: Collection[Revision], map_: _RevisionMapType - ) -> None: - for revision in revisions: - if revision.branch_labels: - revision.branch_labels.update(revision.branch_labels) - for node in self._get_descendant_nodes( - [revision], map_, include_dependencies=False - ): - node.branch_labels.update(revision.branch_labels) - - parent = node - while ( - parent - and not parent._is_real_branch_point - and not parent.is_merge_point - ): - parent.branch_labels.update(revision.branch_labels) - if parent.down_revision: - parent = map_[parent.down_revision] - else: - break - - def _add_depends_on( - self, revisions: Collection[Revision], map_: _RevisionMapType - ) -> None: - """Resolve the 'dependencies' for each revision in a collection - in terms of actual revision ids, as opposed to branch labels or other - symbolic names. - - The collection is then assigned to the _resolved_dependencies - attribute on each revision object. - - """ - - for revision in revisions: - if revision.dependencies: - deps = [ - map_[dep] for dep in util.to_tuple(revision.dependencies) - ] - revision._resolved_dependencies = tuple( - [d.revision for d in deps if d is not None] - ) - else: - revision._resolved_dependencies = () - - def _normalize_depends_on( - self, revisions: Collection[Revision], map_: _RevisionMapType - ) -> None: - """Create a collection of "dependencies" that omits dependencies - that are already ancestor nodes for each revision in a given - collection. - - This builds upon the _resolved_dependencies collection created in the - _add_depends_on() method, looking in the fully populated revision map - for ancestors, and omitting them as the _resolved_dependencies - collection as it is copied to a new collection. The new collection is - then assigned to the _normalized_resolved_dependencies attribute on - each revision object. - - The collection is then used to determine the immediate "down revision" - identifiers for this revision. - - """ - - for revision in revisions: - if revision._resolved_dependencies: - normalized_resolved = set(revision._resolved_dependencies) - for rev in self._get_ancestor_nodes( - [revision], - include_dependencies=False, - map_=map_, - ): - if rev is revision: - continue - elif rev._resolved_dependencies: - normalized_resolved.difference_update( - rev._resolved_dependencies - ) - - revision._normalized_resolved_dependencies = tuple( - normalized_resolved - ) - else: - revision._normalized_resolved_dependencies = () - - def add_revision(self, revision: Revision, _replace: bool = False) -> None: - """add a single revision to an existing map. - - This method is for single-revision use cases, it's not - appropriate for fully populating an entire revision map. - - """ - map_ = self._revision_map - if not _replace and revision.revision in map_: - util.warn( - "Revision %s is present more than once" % revision.revision - ) - elif _replace and revision.revision not in map_: - raise Exception("revision %s not in map" % revision.revision) - - map_[revision.revision] = revision - - revisions = [revision] - self._add_branches(revisions, map_) - self._map_branch_labels(revisions, map_) - self._add_depends_on(revisions, map_) - - if revision.is_base: - self.bases += (revision.revision,) - if revision._is_real_base: - self._real_bases += (revision.revision,) - - for downrev in revision._all_down_revisions: - if downrev not in map_: - util.warn( - "Revision %s referenced from %s is not present" - % (downrev, revision) - ) - not_none(map_[downrev]).add_nextrev(revision) - - self._normalize_depends_on(revisions, map_) - - if revision._is_real_head: - self._real_heads = tuple( - head - for head in self._real_heads - if head - not in set(revision._all_down_revisions).union( - [revision.revision] - ) - ) + (revision.revision,) - if revision.is_head: - self.heads = tuple( - head - for head in self.heads - if head - not in set(revision._versioned_down_revisions).union( - [revision.revision] - ) - ) + (revision.revision,) - - def get_current_head( - self, branch_label: Optional[str] = None - ) -> Optional[str]: - """Return the current head revision. - - If the script directory has multiple heads - due to branching, an error is raised; - :meth:`.ScriptDirectory.get_heads` should be - preferred. - - :param branch_label: optional branch name which will limit the - heads considered to those which include that branch_label. - - :return: a string revision number. - - .. seealso:: - - :meth:`.ScriptDirectory.get_heads` - - """ - current_heads: Sequence[str] = self.heads - if branch_label: - current_heads = self.filter_for_lineage( - current_heads, branch_label - ) - if len(current_heads) > 1: - raise MultipleHeads( - current_heads, - "%s@head" % branch_label if branch_label else "head", - ) - - if current_heads: - return current_heads[0] - else: - return None - - def _get_base_revisions(self, identifier: str) -> Tuple[str, ...]: - return self.filter_for_lineage(self.bases, identifier) - - def get_revisions( - self, id_: Optional[_GetRevArg] - ) -> Tuple[Optional[_RevisionOrBase], ...]: - """Return the :class:`.Revision` instances with the given rev id - or identifiers. - - May be given a single identifier, a sequence of identifiers, or the - special symbols "head" or "base". The result is a tuple of one - or more identifiers, or an empty tuple in the case of "base". - - In the cases where 'head', 'heads' is requested and the - revision map is empty, returns an empty tuple. - - Supports partial identifiers, where the given identifier - is matched against all identifiers that start with the given - characters; if there is exactly one match, that determines the - full revision. - - """ - - if isinstance(id_, (list, tuple, set, frozenset)): - return sum([self.get_revisions(id_elem) for id_elem in id_], ()) - else: - resolved_id, branch_label = self._resolve_revision_number(id_) - if len(resolved_id) == 1: - try: - rint = int(resolved_id[0]) - if rint < 0: - # branch@-n -> walk down from heads - select_heads = self.get_revisions("heads") - if branch_label is not None: - select_heads = tuple( - head - for head in select_heads - if branch_label - in is_revision(head).branch_labels - ) - return tuple( - self._walk(head, steps=rint) - for head in select_heads - ) - except ValueError: - # couldn't resolve as integer - pass - return tuple( - self._revision_for_ident(rev_id, branch_label) - for rev_id in resolved_id - ) - - def get_revision(self, id_: Optional[str]) -> Optional[Revision]: - """Return the :class:`.Revision` instance with the given rev id. - - If a symbolic name such as "head" or "base" is given, resolves - the identifier into the current head or base revision. If the symbolic - name refers to multiples, :class:`.MultipleHeads` is raised. - - Supports partial identifiers, where the given identifier - is matched against all identifiers that start with the given - characters; if there is exactly one match, that determines the - full revision. - - """ - - resolved_id, branch_label = self._resolve_revision_number(id_) - if len(resolved_id) > 1: - raise MultipleHeads(resolved_id, id_) - - resolved: Union[str, Tuple[()]] = resolved_id[0] if resolved_id else () - return self._revision_for_ident(resolved, branch_label) - - def _resolve_branch(self, branch_label: str) -> Optional[Revision]: - try: - branch_rev = self._revision_map[branch_label] - except KeyError: - try: - nonbranch_rev = self._revision_for_ident(branch_label) - except ResolutionError as re: - raise ResolutionError( - "No such branch: '%s'" % branch_label, branch_label - ) from re - - else: - return nonbranch_rev - else: - return branch_rev - - def _revision_for_ident( - self, - resolved_id: Union[str, Tuple[()], None], - check_branch: Optional[str] = None, - ) -> Optional[Revision]: - branch_rev: Optional[Revision] - if check_branch: - branch_rev = self._resolve_branch(check_branch) - else: - branch_rev = None - - revision: Union[Optional[Revision], Literal[False]] - try: - revision = self._revision_map[resolved_id] - except KeyError: - # break out to avoid misleading py3k stack traces - revision = False - revs: Sequence[str] - if revision is False: - assert resolved_id - # do a partial lookup - revs = [ - x - for x in self._revision_map - if x and len(x) > 3 and x.startswith(resolved_id) - ] - - if branch_rev: - revs = self.filter_for_lineage(revs, check_branch) - if not revs: - raise ResolutionError( - "No such revision or branch '%s'%s" - % ( - resolved_id, - ( - "; please ensure at least four characters are " - "present for partial revision identifier matches" - if len(resolved_id) < 4 - else "" - ), - ), - resolved_id, - ) - elif len(revs) > 1: - raise ResolutionError( - "Multiple revisions start " - "with '%s': %s..." - % (resolved_id, ", ".join("'%s'" % r for r in revs[0:3])), - resolved_id, - ) - else: - revision = self._revision_map[revs[0]] - - if check_branch and revision is not None: - assert branch_rev is not None - assert resolved_id - if not self._shares_lineage( - revision.revision, branch_rev.revision - ): - raise ResolutionError( - "Revision %s is not a member of branch '%s'" - % (revision.revision, check_branch), - resolved_id, - ) - return revision - - def _filter_into_branch_heads( - self, targets: Iterable[Optional[_RevisionOrBase]] - ) -> Set[Optional[_RevisionOrBase]]: - targets = set(targets) - - for rev in list(targets): - assert rev - if targets.intersection( - self._get_descendant_nodes([rev], include_dependencies=False) - ).difference([rev]): - targets.discard(rev) - return targets - - def filter_for_lineage( - self, - targets: Iterable[_TR], - check_against: Optional[str], - include_dependencies: bool = False, - ) -> Tuple[_TR, ...]: - id_, branch_label = self._resolve_revision_number(check_against) - - shares = [] - if branch_label: - shares.append(branch_label) - if id_: - shares.extend(id_) - - return tuple( - tg - for tg in targets - if self._shares_lineage( - tg, shares, include_dependencies=include_dependencies - ) - ) - - def _shares_lineage( - self, - target: Optional[_RevisionOrStr], - test_against_revs: Sequence[_RevisionOrStr], - include_dependencies: bool = False, - ) -> bool: - if not test_against_revs: - return True - if not isinstance(target, Revision): - resolved_target = not_none(self._revision_for_ident(target)) - else: - resolved_target = target - - resolved_test_against_revs = [ - ( - self._revision_for_ident(test_against_rev) - if not isinstance(test_against_rev, Revision) - else test_against_rev - ) - for test_against_rev in util.to_tuple( - test_against_revs, default=() - ) - ] - - return bool( - set( - self._get_descendant_nodes( - [resolved_target], - include_dependencies=include_dependencies, - ) - ) - .union( - self._get_ancestor_nodes( - [resolved_target], - include_dependencies=include_dependencies, - ) - ) - .intersection(resolved_test_against_revs) - ) - - def _resolve_revision_number( - self, id_: Optional[_GetRevArg] - ) -> Tuple[Tuple[str, ...], Optional[str]]: - branch_label: Optional[str] - if isinstance(id_, str) and "@" in id_: - branch_label, id_ = id_.split("@", 1) - - elif id_ is not None and ( - (isinstance(id_, tuple) and id_ and not isinstance(id_[0], str)) - or not isinstance(id_, (str, tuple)) - ): - raise RevisionError( - "revision identifier %r is not a string; ensure database " - "driver settings are correct" % (id_,) - ) - - else: - branch_label = None - - # ensure map is loaded - self._revision_map - if id_ == "heads": - if branch_label: - return ( - self.filter_for_lineage(self.heads, branch_label), - branch_label, - ) - else: - return self._real_heads, branch_label - elif id_ == "head": - current_head = self.get_current_head(branch_label) - if current_head: - return (current_head,), branch_label - else: - return (), branch_label - elif id_ == "base" or id_ is None: - return (), branch_label - else: - return util.to_tuple(id_, default=None), branch_label - - def iterate_revisions( - self, - upper: _RevisionIdentifierType, - lower: _RevisionIdentifierType, - implicit_base: bool = False, - inclusive: bool = False, - assert_relative_length: bool = True, - select_for_downgrade: bool = False, - ) -> Iterator[Revision]: - """Iterate through script revisions, starting at the given - upper revision identifier and ending at the lower. - - The traversal uses strictly the `down_revision` - marker inside each migration script, so - it is a requirement that upper >= lower, - else you'll get nothing back. - - The iterator yields :class:`.Revision` objects. - - """ - fn: _CollectRevisionsProtocol - if select_for_downgrade: - fn = self._collect_downgrade_revisions - else: - fn = self._collect_upgrade_revisions - - revisions, heads = fn( - upper, - lower, - inclusive=inclusive, - implicit_base=implicit_base, - assert_relative_length=assert_relative_length, - ) - - for node in self._topological_sort(revisions, heads): - yield not_none(self.get_revision(node)) - - def _get_descendant_nodes( - self, - targets: Collection[Optional[_RevisionOrBase]], - map_: Optional[_RevisionMapType] = None, - check: bool = False, - omit_immediate_dependencies: bool = False, - include_dependencies: bool = True, - ) -> Iterator[Any]: - if omit_immediate_dependencies: - - def fn(rev: Revision) -> Iterable[str]: - if rev not in targets: - return rev._all_nextrev - else: - return rev.nextrev - - elif include_dependencies: - - def fn(rev: Revision) -> Iterable[str]: - return rev._all_nextrev - - else: - - def fn(rev: Revision) -> Iterable[str]: - return rev.nextrev - - return self._iterate_related_revisions( - fn, targets, map_=map_, check=check - ) - - def _get_ancestor_nodes( - self, - targets: Collection[Optional[_RevisionOrBase]], - map_: Optional[_RevisionMapType] = None, - check: bool = False, - include_dependencies: bool = True, - ) -> Iterator[Revision]: - if include_dependencies: - - def fn(rev: Revision) -> Iterable[str]: - return rev._normalized_down_revisions - - else: - - def fn(rev: Revision) -> Iterable[str]: - return rev._versioned_down_revisions - - return self._iterate_related_revisions( - fn, targets, map_=map_, check=check - ) - - def _iterate_related_revisions( - self, - fn: Callable[[Revision], Iterable[str]], - targets: Collection[Optional[_RevisionOrBase]], - map_: Optional[_RevisionMapType], - check: bool = False, - ) -> Iterator[Revision]: - if map_ is None: - map_ = self._revision_map - - seen = set() - todo: Deque[Revision] = collections.deque() - for target_for in targets: - target = is_revision(target_for) - todo.append(target) - if check: - per_target = set() - - while todo: - rev = todo.pop() - if check: - per_target.add(rev) - - if rev in seen: - continue - seen.add(rev) - # Check for map errors before collecting. - for rev_id in fn(rev): - next_rev = map_[rev_id] - assert next_rev is not None - if next_rev.revision != rev_id: - raise RevisionError( - "Dependency resolution failed; broken map" - ) - todo.append(next_rev) - yield rev - if check: - overlaps = per_target.intersection(targets).difference( - [target] - ) - if overlaps: - raise RevisionError( - "Requested revision %s overlaps with " - "other requested revisions %s" - % ( - target.revision, - ", ".join(r.revision for r in overlaps), - ) - ) - - def _topological_sort( - self, - revisions: Collection[Revision], - heads: Any, - ) -> List[str]: - """Yield revision ids of a collection of Revision objects in - topological sorted order (i.e. revisions always come after their - down_revisions and dependencies). Uses the order of keys in - _revision_map to sort. - - """ - - id_to_rev = self._revision_map - - def get_ancestors(rev_id: str) -> Set[str]: - return { - r.revision - for r in self._get_ancestor_nodes([id_to_rev[rev_id]]) - } - - todo = {d.revision for d in revisions} - - # Use revision map (ordered dict) key order to pre-sort. - inserted_order = list(self._revision_map) - - current_heads = list( - sorted( - {d.revision for d in heads if d.revision in todo}, - key=inserted_order.index, - ) - ) - ancestors_by_idx = [get_ancestors(rev_id) for rev_id in current_heads] - - output = [] - - current_candidate_idx = 0 - while current_heads: - candidate = current_heads[current_candidate_idx] - - for check_head_index, ancestors in enumerate(ancestors_by_idx): - # scan all the heads. see if we can continue walking - # down the current branch indicated by current_candidate_idx. - if ( - check_head_index != current_candidate_idx - and candidate in ancestors - ): - current_candidate_idx = check_head_index - # nope, another head is dependent on us, they have - # to be traversed first - break - else: - # yup, we can emit - if candidate in todo: - output.append(candidate) - todo.remove(candidate) - - # now update the heads with our ancestors. - - candidate_rev = id_to_rev[candidate] - assert candidate_rev is not None - - heads_to_add = [ - r - for r in candidate_rev._normalized_down_revisions - if r in todo and r not in current_heads - ] - - if not heads_to_add: - # no ancestors, so remove this head from the list - del current_heads[current_candidate_idx] - del ancestors_by_idx[current_candidate_idx] - current_candidate_idx = max(current_candidate_idx - 1, 0) - else: - if ( - not candidate_rev._normalized_resolved_dependencies - and len(candidate_rev._versioned_down_revisions) == 1 - ): - current_heads[current_candidate_idx] = heads_to_add[0] - - # for plain movement down a revision line without - # any mergepoints, branchpoints, or deps, we - # can update the ancestors collection directly - # by popping out the candidate we just emitted - ancestors_by_idx[current_candidate_idx].discard( - candidate - ) - - else: - # otherwise recalculate it again, things get - # complicated otherwise. This can possibly be - # improved to not run the whole ancestor thing - # each time but it was getting complicated - current_heads[current_candidate_idx] = heads_to_add[0] - current_heads.extend(heads_to_add[1:]) - ancestors_by_idx[current_candidate_idx] = ( - get_ancestors(heads_to_add[0]) - ) - ancestors_by_idx.extend( - get_ancestors(head) for head in heads_to_add[1:] - ) - - assert not todo - return output - - def _walk( - self, - start: Optional[Union[str, Revision]], - steps: int, - branch_label: Optional[str] = None, - no_overwalk: bool = True, - ) -> Optional[_RevisionOrBase]: - """ - Walk the requested number of :steps up (steps > 0) or down (steps < 0) - the revision tree. - - :branch_label is used to select branches only when walking up. - - If the walk goes past the boundaries of the tree and :no_overwalk is - True, None is returned, otherwise the walk terminates early. - - A RevisionError is raised if there is no unambiguous revision to - walk to. - """ - initial: Optional[_RevisionOrBase] - if isinstance(start, str): - initial = self.get_revision(start) - else: - initial = start - - children: Sequence[Optional[_RevisionOrBase]] - for _ in range(abs(steps)): - if steps > 0: - assert initial != "base" # type: ignore[comparison-overlap] - # Walk up - walk_up = [ - is_revision(rev) - for rev in self.get_revisions( - self.bases if initial is None else initial.nextrev - ) - ] - if branch_label: - children = self.filter_for_lineage(walk_up, branch_label) - else: - children = walk_up - else: - # Walk down - if initial == "base": # type: ignore[comparison-overlap] - children = () - else: - children = self.get_revisions( - self.heads - if initial is None - else initial.down_revision - ) - if not children: - children = ("base",) - if not children: - # This will return an invalid result if no_overwalk, otherwise - # further steps will stay where we are. - ret = None if no_overwalk else initial - return ret - elif len(children) > 1: - raise RevisionError("Ambiguous walk") - initial = children[0] - - return initial - - def _parse_downgrade_target( - self, - current_revisions: _RevisionIdentifierType, - target: _RevisionIdentifierType, - assert_relative_length: bool, - ) -> Tuple[Optional[str], Optional[_RevisionOrBase]]: - """ - Parse downgrade command syntax :target to retrieve the target revision - and branch label (if any) given the :current_revisions stamp of the - database. - - Returns a tuple (branch_label, target_revision) where branch_label - is a string from the command specifying the branch to consider (or - None if no branch given), and target_revision is a Revision object - which the command refers to. target_revisions is None if the command - refers to 'base'. The target may be specified in absolute form, or - relative to :current_revisions. - """ - if target is None: - return None, None - assert isinstance( - target, str - ), "Expected downgrade target in string form" - match = _relative_destination.match(target) - if match: - branch_label, symbol, relative = match.groups() - rel_int = int(relative) - if rel_int >= 0: - if symbol is None: - # Downgrading to current + n is not valid. - raise RevisionError( - "Relative revision %s didn't " - "produce %d migrations" % (relative, abs(rel_int)) - ) - # Find target revision relative to given symbol. - rev = self._walk( - symbol, - rel_int, - branch_label, - no_overwalk=assert_relative_length, - ) - if rev is None: - raise RevisionError("Walked too far") - return branch_label, rev - else: - relative_revision = symbol is None - if relative_revision: - # Find target revision relative to current state. - if branch_label: - cr_tuple = util.to_tuple(current_revisions) - symbol_list: Sequence[str] - symbol_list = self.filter_for_lineage( - cr_tuple, branch_label - ) - if not symbol_list: - # check the case where there are multiple branches - # but there is currently a single heads, since all - # other branch heads are dependent of the current - # single heads. - all_current = cast( - Set[Revision], self._get_all_current(cr_tuple) - ) - sl_all_current = self.filter_for_lineage( - all_current, branch_label - ) - symbol_list = [ - r.revision if r else r # type: ignore[misc] - for r in sl_all_current - ] - - assert len(symbol_list) == 1 - symbol = symbol_list[0] - else: - current_revisions = util.to_tuple(current_revisions) - if not current_revisions: - raise RevisionError( - "Relative revision %s didn't " - "produce %d migrations" - % (relative, abs(rel_int)) - ) - # Have to check uniques here for duplicate rows test. - if len(set(current_revisions)) > 1: - util.warn( - "downgrade -1 from multiple heads is " - "ambiguous; " - "this usage will be disallowed in a future " - "release." - ) - symbol = current_revisions[0] - # Restrict iteration to just the selected branch when - # ambiguous branches are involved. - branch_label = symbol - # Walk down the tree to find downgrade target. - rev = self._walk( - start=( - self.get_revision(symbol) - if branch_label is None - else self.get_revision( - "%s@%s" % (branch_label, symbol) - ) - ), - steps=rel_int, - no_overwalk=assert_relative_length, - ) - if rev is None: - if relative_revision: - raise RevisionError( - "Relative revision %s didn't " - "produce %d migrations" % (relative, abs(rel_int)) - ) - else: - raise RevisionError("Walked too far") - return branch_label, rev - - # No relative destination given, revision specified is absolute. - branch_label, _, symbol = target.rpartition("@") - if not branch_label: - branch_label = None - return branch_label, self.get_revision(symbol) - - def _parse_upgrade_target( - self, - current_revisions: _RevisionIdentifierType, - target: _RevisionIdentifierType, - assert_relative_length: bool, - ) -> Tuple[Optional[_RevisionOrBase], ...]: - """ - Parse upgrade command syntax :target to retrieve the target revision - and given the :current_revisions stamp of the database. - - Returns a tuple of Revision objects which should be iterated/upgraded - to. The target may be specified in absolute form, or relative to - :current_revisions. - """ - if isinstance(target, str): - match = _relative_destination.match(target) - else: - match = None - - if not match: - # No relative destination, target is absolute. - return self.get_revisions(target) - - current_revisions_tup: Union[str, Tuple[Optional[str], ...], None] - current_revisions_tup = util.to_tuple(current_revisions) - - branch_label, symbol, relative_str = match.groups() - relative = int(relative_str) - if relative > 0: - if symbol is None: - if not current_revisions_tup: - current_revisions_tup = (None,) - # Try to filter to a single target (avoid ambiguous branches). - start_revs = current_revisions_tup - if branch_label: - start_revs = self.filter_for_lineage( - self.get_revisions(current_revisions_tup), # type: ignore[arg-type] # noqa: E501 - branch_label, - ) - if not start_revs: - # The requested branch is not a head, so we need to - # backtrack to find a branchpoint. - active_on_branch = self.filter_for_lineage( - self._get_ancestor_nodes( - self.get_revisions(current_revisions_tup) - ), - branch_label, - ) - # Find the tips of this set of revisions (revisions - # without children within the set). - start_revs = tuple( - {rev.revision for rev in active_on_branch} - - { - down - for rev in active_on_branch - for down in rev._normalized_down_revisions - } - ) - if not start_revs: - # We must need to go right back to base to find - # a starting point for this branch. - start_revs = (None,) - if len(start_revs) > 1: - raise RevisionError( - "Ambiguous upgrade from multiple current revisions" - ) - # Walk up from unique target revision. - rev = self._walk( - start=start_revs[0], - steps=relative, - branch_label=branch_label, - no_overwalk=assert_relative_length, - ) - if rev is None: - raise RevisionError( - "Relative revision %s didn't " - "produce %d migrations" % (relative_str, abs(relative)) - ) - return (rev,) - else: - # Walk is relative to a given revision, not the current state. - return ( - self._walk( - start=self.get_revision(symbol), - steps=relative, - branch_label=branch_label, - no_overwalk=assert_relative_length, - ), - ) - else: - if symbol is None: - # Upgrading to current - n is not valid. - raise RevisionError( - "Relative revision %s didn't " - "produce %d migrations" % (relative, abs(relative)) - ) - return ( - self._walk( - start=( - self.get_revision(symbol) - if branch_label is None - else self.get_revision( - "%s@%s" % (branch_label, symbol) - ) - ), - steps=relative, - no_overwalk=assert_relative_length, - ), - ) - - def _collect_downgrade_revisions( - self, - upper: _RevisionIdentifierType, - lower: _RevisionIdentifierType, - inclusive: bool, - implicit_base: bool, - assert_relative_length: bool, - ) -> Tuple[Set[Revision], Tuple[Optional[_RevisionOrBase], ...]]: - """ - Compute the set of current revisions specified by :upper, and the - downgrade target specified by :target. Return all dependents of target - which are currently active. - - :inclusive=True includes the target revision in the set - """ - - branch_label, target_revision = self._parse_downgrade_target( - current_revisions=upper, - target=lower, - assert_relative_length=assert_relative_length, - ) - if target_revision == "base": - target_revision = None - assert target_revision is None or isinstance(target_revision, Revision) - - roots: List[Revision] - # Find candidates to drop. - if target_revision is None: - # Downgrading back to base: find all tree roots. - roots = [ - rev - for rev in self._revision_map.values() - if rev is not None and rev.down_revision is None - ] - elif inclusive: - # inclusive implies target revision should also be dropped - roots = [target_revision] - else: - # Downgrading to fixed target: find all direct children. - roots = [ - is_revision(rev) - for rev in self.get_revisions(target_revision.nextrev) - ] - - if branch_label and len(roots) > 1: - # Need to filter roots. - ancestors = { - rev.revision - for rev in self._get_ancestor_nodes( - [self._resolve_branch(branch_label)], - include_dependencies=False, - ) - } - # Intersection gives the root revisions we are trying to - # rollback with the downgrade. - roots = [ - is_revision(rev) - for rev in self.get_revisions( - {rev.revision for rev in roots}.intersection(ancestors) - ) - ] - - # Ensure we didn't throw everything away when filtering branches. - if len(roots) == 0: - raise RevisionError( - "Not a valid downgrade target from current heads" - ) - - heads = self.get_revisions(upper) - - # Aim is to drop :branch_revision; to do so we also need to drop its - # descendents and anything dependent on it. - downgrade_revisions = set( - self._get_descendant_nodes( - roots, - include_dependencies=True, - omit_immediate_dependencies=False, - ) - ) - active_revisions = set( - self._get_ancestor_nodes(heads, include_dependencies=True) - ) - - # Emit revisions to drop in reverse topological sorted order. - downgrade_revisions.intersection_update(active_revisions) - - if implicit_base: - # Wind other branches back to base. - downgrade_revisions.update( - active_revisions.difference(self._get_ancestor_nodes(roots)) - ) - - if ( - target_revision is not None - and not downgrade_revisions - and target_revision not in heads - ): - # Empty intersection: target revs are not present. - - raise RangeNotAncestorError("Nothing to drop", upper) - - return downgrade_revisions, heads - - def _collect_upgrade_revisions( - self, - upper: _RevisionIdentifierType, - lower: _RevisionIdentifierType, - inclusive: bool, - implicit_base: bool, - assert_relative_length: bool, - ) -> Tuple[Set[Revision], Tuple[Revision, ...]]: - """ - Compute the set of required revisions specified by :upper, and the - current set of active revisions specified by :lower. Find the - difference between the two to compute the required upgrades. - - :inclusive=True includes the current/lower revisions in the set - - :implicit_base=False only returns revisions which are downstream - of the current/lower revisions. Dependencies from branches with - different bases will not be included. - """ - targets: Collection[Revision] = [ - is_revision(rev) - for rev in self._parse_upgrade_target( - current_revisions=lower, - target=upper, - assert_relative_length=assert_relative_length, - ) - ] - - # assert type(targets) is tuple, "targets should be a tuple" - - # Handled named bases (e.g. branch@... -> heads should only produce - # targets on the given branch) - if isinstance(lower, str) and "@" in lower: - branch, _, _ = lower.partition("@") - branch_rev = self.get_revision(branch) - if branch_rev is not None and branch_rev.revision == branch: - # A revision was used as a label; get its branch instead - assert len(branch_rev.branch_labels) == 1 - branch = next(iter(branch_rev.branch_labels)) - targets = { - need for need in targets if branch in need.branch_labels - } - - required_node_set = set( - self._get_ancestor_nodes( - targets, check=True, include_dependencies=True - ) - ).union(targets) - - current_revisions = self.get_revisions(lower) - if not implicit_base and any( - rev not in required_node_set - for rev in current_revisions - if rev is not None - ): - raise RangeNotAncestorError(lower, upper) - assert ( - type(current_revisions) is tuple - ), "current_revisions should be a tuple" - - # Special case where lower = a relative value (get_revisions can't - # find it) - if current_revisions and current_revisions[0] is None: - _, rev = self._parse_downgrade_target( - current_revisions=upper, - target=lower, - assert_relative_length=assert_relative_length, - ) - assert rev - if rev == "base": - current_revisions = tuple() - lower = None - else: - current_revisions = (rev,) - lower = rev.revision - - current_node_set = set( - self._get_ancestor_nodes( - current_revisions, check=True, include_dependencies=True - ) - ).union(current_revisions) - - needs = required_node_set.difference(current_node_set) - - # Include the lower revision (=current_revisions?) in the iteration - if inclusive: - needs.update(is_revision(rev) for rev in self.get_revisions(lower)) - # By default, base is implicit as we want all dependencies returned. - # Base is also implicit if lower = base - # implicit_base=False -> only return direct downstreams of - # current_revisions - if current_revisions and not implicit_base: - lower_descendents = self._get_descendant_nodes( - [is_revision(rev) for rev in current_revisions], - check=True, - include_dependencies=False, - ) - needs.intersection_update(lower_descendents) - - return needs, tuple(targets) - - def _get_all_current( - self, id_: Tuple[str, ...] - ) -> Set[Optional[_RevisionOrBase]]: - top_revs: Set[Optional[_RevisionOrBase]] - top_revs = set(self.get_revisions(id_)) - top_revs.update( - self._get_ancestor_nodes(list(top_revs), include_dependencies=True) - ) - return self._filter_into_branch_heads(top_revs) - - -class Revision: - """Base class for revisioned objects. - - The :class:`.Revision` class is the base of the more public-facing - :class:`.Script` object, which represents a migration script. - The mechanics of revision management and traversal are encapsulated - within :class:`.Revision`, while :class:`.Script` applies this logic - to Python files in a version directory. - - """ - - nextrev: FrozenSet[str] = frozenset() - """following revisions, based on down_revision only.""" - - _all_nextrev: FrozenSet[str] = frozenset() - - revision: str = None # type: ignore[assignment] - """The string revision number.""" - - down_revision: Optional[_RevIdType] = None - """The ``down_revision`` identifier(s) within the migration script. - - Note that the total set of "down" revisions is - down_revision + dependencies. - - """ - - dependencies: Optional[_RevIdType] = None - """Additional revisions which this revision is dependent on. - - From a migration standpoint, these dependencies are added to the - down_revision to form the full iteration. However, the separation - of down_revision from "dependencies" is to assist in navigating - a history that contains many branches, typically a multi-root scenario. - - """ - - branch_labels: Set[str] = None # type: ignore[assignment] - """Optional string/tuple of symbolic names to apply to this - revision's branch""" - - _resolved_dependencies: Tuple[str, ...] - _normalized_resolved_dependencies: Tuple[str, ...] - - @classmethod - def verify_rev_id(cls, revision: str) -> None: - illegal_chars = set(revision).intersection(_revision_illegal_chars) - if illegal_chars: - raise RevisionError( - "Character(s) '%s' not allowed in revision identifier '%s'" - % (", ".join(sorted(illegal_chars)), revision) - ) - - def __init__( - self, - revision: str, - down_revision: Optional[Union[str, Tuple[str, ...]]], - dependencies: Optional[Union[str, Tuple[str, ...]]] = None, - branch_labels: Optional[Union[str, Tuple[str, ...]]] = None, - ) -> None: - if down_revision and revision in util.to_tuple(down_revision): - raise LoopDetected(revision) - elif dependencies is not None and revision in util.to_tuple( - dependencies - ): - raise DependencyLoopDetected(revision) - - self.verify_rev_id(revision) - self.revision = revision - self.down_revision = tuple_rev_as_scalar(util.to_tuple(down_revision)) - self.dependencies = tuple_rev_as_scalar(util.to_tuple(dependencies)) - self._orig_branch_labels = util.to_tuple(branch_labels, default=()) - self.branch_labels = set(self._orig_branch_labels) - - def __repr__(self) -> str: - args = [repr(self.revision), repr(self.down_revision)] - if self.dependencies: - args.append("dependencies=%r" % (self.dependencies,)) - if self.branch_labels: - args.append("branch_labels=%r" % (self.branch_labels,)) - return "%s(%s)" % (self.__class__.__name__, ", ".join(args)) - - def add_nextrev(self, revision: Revision) -> None: - self._all_nextrev = self._all_nextrev.union([revision.revision]) - if self.revision in revision._versioned_down_revisions: - self.nextrev = self.nextrev.union([revision.revision]) - - @property - def _all_down_revisions(self) -> Tuple[str, ...]: - return util.dedupe_tuple( - util.to_tuple(self.down_revision, default=()) - + self._resolved_dependencies - ) - - @property - def _normalized_down_revisions(self) -> Tuple[str, ...]: - """return immediate down revisions for a rev, omitting dependencies - that are still dependencies of ancestors. - - """ - return util.dedupe_tuple( - util.to_tuple(self.down_revision, default=()) - + self._normalized_resolved_dependencies - ) - - @property - def _versioned_down_revisions(self) -> Tuple[str, ...]: - return util.to_tuple(self.down_revision, default=()) - - @property - def is_head(self) -> bool: - """Return True if this :class:`.Revision` is a 'head' revision. - - This is determined based on whether any other :class:`.Script` - within the :class:`.ScriptDirectory` refers to this - :class:`.Script`. Multiple heads can be present. - - """ - return not bool(self.nextrev) - - @property - def _is_real_head(self) -> bool: - return not bool(self._all_nextrev) - - @property - def is_base(self) -> bool: - """Return True if this :class:`.Revision` is a 'base' revision.""" - - return self.down_revision is None - - @property - def _is_real_base(self) -> bool: - """Return True if this :class:`.Revision` is a "real" base revision, - e.g. that it has no dependencies either.""" - - # we use self.dependencies here because this is called up - # in initialization where _real_dependencies isn't set up - # yet - return self.down_revision is None and self.dependencies is None - - @property - def is_branch_point(self) -> bool: - """Return True if this :class:`.Script` is a branch point. - - A branchpoint is defined as a :class:`.Script` which is referred - to by more than one succeeding :class:`.Script`, that is more - than one :class:`.Script` has a `down_revision` identifier pointing - here. - - """ - return len(self.nextrev) > 1 - - @property - def _is_real_branch_point(self) -> bool: - """Return True if this :class:`.Script` is a 'real' branch point, - taking into account dependencies as well. - - """ - return len(self._all_nextrev) > 1 - - @property - def is_merge_point(self) -> bool: - """Return True if this :class:`.Script` is a merge point.""" - - return len(self._versioned_down_revisions) > 1 - - -@overload -def tuple_rev_as_scalar(rev: None) -> None: ... - - -@overload -def tuple_rev_as_scalar( - rev: Union[Tuple[_T, ...], List[_T]] -) -> Union[_T, Tuple[_T, ...], List[_T]]: ... - - -def tuple_rev_as_scalar( - rev: Optional[Sequence[_T]], -) -> Union[_T, Sequence[_T], None]: - if not rev: - return None - elif len(rev) == 1: - return rev[0] - else: - return rev - - -def is_revision(rev: Any) -> Revision: - assert isinstance(rev, Revision) - return rev diff --git a/backend/venv/lib/python3.12/site-packages/alembic/script/write_hooks.py b/backend/venv/lib/python3.12/site-packages/alembic/script/write_hooks.py deleted file mode 100644 index 9977147..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/script/write_hooks.py +++ /dev/null @@ -1,179 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import shlex -import subprocess -import sys -from typing import Any -from typing import Callable -from typing import Dict -from typing import List -from typing import Mapping -from typing import Optional -from typing import Union - -from .. import util -from ..util import compat - - -REVISION_SCRIPT_TOKEN = "REVISION_SCRIPT_FILENAME" - -_registry: dict = {} - - -def register(name: str) -> Callable: - """A function decorator that will register that function as a write hook. - - See the documentation linked below for an example. - - .. seealso:: - - :ref:`post_write_hooks_custom` - - - """ - - def decorate(fn): - _registry[name] = fn - return fn - - return decorate - - -def _invoke( - name: str, revision: str, options: Mapping[str, Union[str, int]] -) -> Any: - """Invokes the formatter registered for the given name. - - :param name: The name of a formatter in the registry - :param revision: A :class:`.MigrationRevision` instance - :param options: A dict containing kwargs passed to the - specified formatter. - :raises: :class:`alembic.util.CommandError` - """ - try: - hook = _registry[name] - except KeyError as ke: - raise util.CommandError( - f"No formatter with name '{name}' registered" - ) from ke - else: - return hook(revision, options) - - -def _run_hooks(path: str, hook_config: Mapping[str, str]) -> None: - """Invoke hooks for a generated revision.""" - - from .base import _split_on_space_comma - - names = _split_on_space_comma.split(hook_config.get("hooks", "")) - - for name in names: - if not name: - continue - opts = { - key[len(name) + 1 :]: hook_config[key] - for key in hook_config - if key.startswith(name + ".") - } - opts["_hook_name"] = name - try: - type_ = opts["type"] - except KeyError as ke: - raise util.CommandError( - f"Key {name}.type is required for post write hook {name!r}" - ) from ke - else: - with util.status( - f"Running post write hook {name!r}", newline=True - ): - _invoke(type_, path, opts) - - -def _parse_cmdline_options(cmdline_options_str: str, path: str) -> List[str]: - """Parse options from a string into a list. - - Also substitutes the revision script token with the actual filename of - the revision script. - - If the revision script token doesn't occur in the options string, it is - automatically prepended. - """ - if REVISION_SCRIPT_TOKEN not in cmdline_options_str: - cmdline_options_str = REVISION_SCRIPT_TOKEN + " " + cmdline_options_str - cmdline_options_list = shlex.split( - cmdline_options_str, posix=compat.is_posix - ) - cmdline_options_list = [ - option.replace(REVISION_SCRIPT_TOKEN, path) - for option in cmdline_options_list - ] - return cmdline_options_list - - -@register("console_scripts") -def console_scripts( - path: str, options: dict, ignore_output: bool = False -) -> None: - try: - entrypoint_name = options["entrypoint"] - except KeyError as ke: - raise util.CommandError( - f"Key {options['_hook_name']}.entrypoint is required for post " - f"write hook {options['_hook_name']!r}" - ) from ke - for entry in compat.importlib_metadata_get("console_scripts"): - if entry.name == entrypoint_name: - impl: Any = entry - break - else: - raise util.CommandError( - f"Could not find entrypoint console_scripts.{entrypoint_name}" - ) - cwd: Optional[str] = options.get("cwd", None) - cmdline_options_str = options.get("options", "") - cmdline_options_list = _parse_cmdline_options(cmdline_options_str, path) - - kw: Dict[str, Any] = {} - if ignore_output: - kw["stdout"] = kw["stderr"] = subprocess.DEVNULL - - subprocess.run( - [ - sys.executable, - "-c", - f"import {impl.module}; {impl.module}.{impl.attr}()", - ] - + cmdline_options_list, - cwd=cwd, - **kw, - ) - - -@register("exec") -def exec_(path: str, options: dict, ignore_output: bool = False) -> None: - try: - executable = options["executable"] - except KeyError as ke: - raise util.CommandError( - f"Key {options['_hook_name']}.executable is required for post " - f"write hook {options['_hook_name']!r}" - ) from ke - cwd: Optional[str] = options.get("cwd", None) - cmdline_options_str = options.get("options", "") - cmdline_options_list = _parse_cmdline_options(cmdline_options_str, path) - - kw: Dict[str, Any] = {} - if ignore_output: - kw["stdout"] = kw["stderr"] = subprocess.DEVNULL - - subprocess.run( - [ - executable, - *cmdline_options_list, - ], - cwd=cwd, - **kw, - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/README b/backend/venv/lib/python3.12/site-packages/alembic/templates/async/README deleted file mode 100644 index e0d0858..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/README +++ /dev/null @@ -1 +0,0 @@ -Generic single-database configuration with an async dbapi. \ No newline at end of file diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/alembic.ini.mako b/backend/venv/lib/python3.12/site-packages/alembic/templates/async/alembic.ini.mako deleted file mode 100644 index 46a0904..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/alembic.ini.mako +++ /dev/null @@ -1,115 +0,0 @@ -# A generic, single database configuration. - -[alembic] -# path to migration scripts. -# Use forward slashes (/) also on windows to provide an os agnostic path -script_location = ${script_location} - -# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s -# Uncomment the line below if you want the files to be prepended with date and time -# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s - -# sys.path path, will be prepended to sys.path if present. -# defaults to the current working directory. -prepend_sys_path = . - -# timezone to use when rendering the date within the migration file -# as well as the filename. -# If specified, requires the python>=3.9 or backports.zoneinfo library. -# Any required deps can installed by adding `alembic[tz]` to the pip requirements -# string value is passed to ZoneInfo() -# leave blank for localtime -# timezone = - -# max length of characters to apply to the "slug" field -# truncate_slug_length = 40 - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - -# set to 'true' to allow .pyc and .pyo files without -# a source .py file to be detected as revisions in the -# versions/ directory -# sourceless = false - -# version location specification; This defaults -# to ${script_location}/versions. When using multiple version -# directories, initial revisions must be specified with --version-path. -# The path separator used here should be the separator specified by "version_path_separator" below. -# version_locations = %(here)s/bar:%(here)s/bat:${script_location}/versions - -# version path separator; As mentioned above, this is the character used to split -# version_locations. The default within new alembic.ini files is "os", which uses os.pathsep. -# If this key is omitted entirely, it falls back to the legacy behavior of splitting on spaces and/or commas. -# Valid values for version_path_separator are: -# -# version_path_separator = : -# version_path_separator = ; -# version_path_separator = space -# version_path_separator = newline -version_path_separator = os # Use os.pathsep. Default configuration used for new projects. - -# set to 'true' to search source files recursively -# in each "version_locations" directory -# new in Alembic version 1.10 -# recursive_version_locations = false - -# the output encoding used when revision files -# are written from script.py.mako -# output_encoding = utf-8 - -sqlalchemy.url = driver://user:pass@localhost/dbname - - -[post_write_hooks] -# post_write_hooks defines scripts or Python functions that are run -# on newly generated revision scripts. See the documentation for further -# detail and examples - -# format using "black" - use the console_scripts runner, against the "black" entrypoint -# hooks = black -# black.type = console_scripts -# black.entrypoint = black -# black.options = -l 79 REVISION_SCRIPT_FILENAME - -# lint with attempts to fix using "ruff" - use the exec runner, execute a binary -# hooks = ruff -# ruff.type = exec -# ruff.executable = %(here)s/.venv/bin/ruff -# ruff.options = --fix REVISION_SCRIPT_FILENAME - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/env.py b/backend/venv/lib/python3.12/site-packages/alembic/templates/async/env.py deleted file mode 100644 index 9f2d519..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/env.py +++ /dev/null @@ -1,89 +0,0 @@ -import asyncio -from logging.config import fileConfig - -from sqlalchemy import pool -from sqlalchemy.engine import Connection -from sqlalchemy.ext.asyncio import async_engine_from_config - -from alembic import context - -# this is the Alembic Config object, which provides -# access to the values within the .ini file in use. -config = context.config - -# Interpret the config file for Python logging. -# This line sets up loggers basically. -if config.config_file_name is not None: - fileConfig(config.config_file_name) - -# add your model's MetaData object here -# for 'autogenerate' support -# from myapp import mymodel -# target_metadata = mymodel.Base.metadata -target_metadata = None - -# other values from the config, defined by the needs of env.py, -# can be acquired: -# my_important_option = config.get_main_option("my_important_option") -# ... etc. - - -def run_migrations_offline() -> None: - """Run migrations in 'offline' mode. - - This configures the context with just a URL - and not an Engine, though an Engine is acceptable - here as well. By skipping the Engine creation - we don't even need a DBAPI to be available. - - Calls to context.execute() here emit the given string to the - script output. - - """ - url = config.get_main_option("sqlalchemy.url") - context.configure( - url=url, - target_metadata=target_metadata, - literal_binds=True, - dialect_opts={"paramstyle": "named"}, - ) - - with context.begin_transaction(): - context.run_migrations() - - -def do_run_migrations(connection: Connection) -> None: - context.configure(connection=connection, target_metadata=target_metadata) - - with context.begin_transaction(): - context.run_migrations() - - -async def run_async_migrations() -> None: - """In this scenario we need to create an Engine - and associate a connection with the context. - - """ - - connectable = async_engine_from_config( - config.get_section(config.config_ini_section, {}), - prefix="sqlalchemy.", - poolclass=pool.NullPool, - ) - - async with connectable.connect() as connection: - await connection.run_sync(do_run_migrations) - - await connectable.dispose() - - -def run_migrations_online() -> None: - """Run migrations in 'online' mode.""" - - asyncio.run(run_async_migrations()) - - -if context.is_offline_mode(): - run_migrations_offline() -else: - run_migrations_online() diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/script.py.mako b/backend/venv/lib/python3.12/site-packages/alembic/templates/async/script.py.mako deleted file mode 100644 index fbc4b07..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/async/script.py.mako +++ /dev/null @@ -1,26 +0,0 @@ -"""${message} - -Revision ID: ${up_revision} -Revises: ${down_revision | comma,n} -Create Date: ${create_date} - -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa -${imports if imports else ""} - -# revision identifiers, used by Alembic. -revision: str = ${repr(up_revision)} -down_revision: Union[str, None] = ${repr(down_revision)} -branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} -depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} - - -def upgrade() -> None: - ${upgrades if upgrades else "pass"} - - -def downgrade() -> None: - ${downgrades if downgrades else "pass"} diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/README b/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/README deleted file mode 100644 index 98e4f9c..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/README +++ /dev/null @@ -1 +0,0 @@ -Generic single-database configuration. \ No newline at end of file diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/alembic.ini.mako b/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/alembic.ini.mako deleted file mode 100644 index dd4ea58..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/alembic.ini.mako +++ /dev/null @@ -1,117 +0,0 @@ -# A generic, single database configuration. - -[alembic] -# path to migration scripts -# Use forward slashes (/) also on windows to provide an os agnostic path -script_location = ${script_location} - -# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s -# Uncomment the line below if you want the files to be prepended with date and time -# see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file -# for all available tokens -# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s - -# sys.path path, will be prepended to sys.path if present. -# defaults to the current working directory. -prepend_sys_path = . - -# timezone to use when rendering the date within the migration file -# as well as the filename. -# If specified, requires the python>=3.9 or backports.zoneinfo library. -# Any required deps can installed by adding `alembic[tz]` to the pip requirements -# string value is passed to ZoneInfo() -# leave blank for localtime -# timezone = - -# max length of characters to apply to the "slug" field -# truncate_slug_length = 40 - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - -# set to 'true' to allow .pyc and .pyo files without -# a source .py file to be detected as revisions in the -# versions/ directory -# sourceless = false - -# version location specification; This defaults -# to ${script_location}/versions. When using multiple version -# directories, initial revisions must be specified with --version-path. -# The path separator used here should be the separator specified by "version_path_separator" below. -# version_locations = %(here)s/bar:%(here)s/bat:${script_location}/versions - -# version path separator; As mentioned above, this is the character used to split -# version_locations. The default within new alembic.ini files is "os", which uses os.pathsep. -# If this key is omitted entirely, it falls back to the legacy behavior of splitting on spaces and/or commas. -# Valid values for version_path_separator are: -# -# version_path_separator = : -# version_path_separator = ; -# version_path_separator = space -# version_path_separator = newline -version_path_separator = os # Use os.pathsep. Default configuration used for new projects. - -# set to 'true' to search source files recursively -# in each "version_locations" directory -# new in Alembic version 1.10 -# recursive_version_locations = false - -# the output encoding used when revision files -# are written from script.py.mako -# output_encoding = utf-8 - -sqlalchemy.url = driver://user:pass@localhost/dbname - - -[post_write_hooks] -# post_write_hooks defines scripts or Python functions that are run -# on newly generated revision scripts. See the documentation for further -# detail and examples - -# format using "black" - use the console_scripts runner, against the "black" entrypoint -# hooks = black -# black.type = console_scripts -# black.entrypoint = black -# black.options = -l 79 REVISION_SCRIPT_FILENAME - -# lint with attempts to fix using "ruff" - use the exec runner, execute a binary -# hooks = ruff -# ruff.type = exec -# ruff.executable = %(here)s/.venv/bin/ruff -# ruff.options = --fix REVISION_SCRIPT_FILENAME - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/env.py b/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/env.py deleted file mode 100644 index 36112a3..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/env.py +++ /dev/null @@ -1,78 +0,0 @@ -from logging.config import fileConfig - -from sqlalchemy import engine_from_config -from sqlalchemy import pool - -from alembic import context - -# this is the Alembic Config object, which provides -# access to the values within the .ini file in use. -config = context.config - -# Interpret the config file for Python logging. -# This line sets up loggers basically. -if config.config_file_name is not None: - fileConfig(config.config_file_name) - -# add your model's MetaData object here -# for 'autogenerate' support -# from myapp import mymodel -# target_metadata = mymodel.Base.metadata -target_metadata = None - -# other values from the config, defined by the needs of env.py, -# can be acquired: -# my_important_option = config.get_main_option("my_important_option") -# ... etc. - - -def run_migrations_offline() -> None: - """Run migrations in 'offline' mode. - - This configures the context with just a URL - and not an Engine, though an Engine is acceptable - here as well. By skipping the Engine creation - we don't even need a DBAPI to be available. - - Calls to context.execute() here emit the given string to the - script output. - - """ - url = config.get_main_option("sqlalchemy.url") - context.configure( - url=url, - target_metadata=target_metadata, - literal_binds=True, - dialect_opts={"paramstyle": "named"}, - ) - - with context.begin_transaction(): - context.run_migrations() - - -def run_migrations_online() -> None: - """Run migrations in 'online' mode. - - In this scenario we need to create an Engine - and associate a connection with the context. - - """ - connectable = engine_from_config( - config.get_section(config.config_ini_section, {}), - prefix="sqlalchemy.", - poolclass=pool.NullPool, - ) - - with connectable.connect() as connection: - context.configure( - connection=connection, target_metadata=target_metadata - ) - - with context.begin_transaction(): - context.run_migrations() - - -if context.is_offline_mode(): - run_migrations_offline() -else: - run_migrations_online() diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/script.py.mako b/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/script.py.mako deleted file mode 100644 index fbc4b07..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/generic/script.py.mako +++ /dev/null @@ -1,26 +0,0 @@ -"""${message} - -Revision ID: ${up_revision} -Revises: ${down_revision | comma,n} -Create Date: ${create_date} - -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa -${imports if imports else ""} - -# revision identifiers, used by Alembic. -revision: str = ${repr(up_revision)} -down_revision: Union[str, None] = ${repr(down_revision)} -branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} -depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} - - -def upgrade() -> None: - ${upgrades if upgrades else "pass"} - - -def downgrade() -> None: - ${downgrades if downgrades else "pass"} diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/README b/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/README deleted file mode 100644 index f046ec9..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/README +++ /dev/null @@ -1,12 +0,0 @@ -Rudimentary multi-database configuration. - -Multi-DB isn't vastly different from generic. The primary difference is that it -will run the migrations N times (depending on how many databases you have -configured), providing one engine name and associated context for each run. - -That engine name will then allow the migration to restrict what runs within it to -just the appropriate migrations for that engine. You can see this behavior within -the mako template. - -In the provided configuration, you'll need to have `databases` provided in -alembic's config, and an `sqlalchemy.url` provided for each engine name. diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/alembic.ini.mako b/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/alembic.ini.mako deleted file mode 100644 index d5cc86f..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/alembic.ini.mako +++ /dev/null @@ -1,122 +0,0 @@ -# a multi-database configuration. - -[alembic] -# path to migration scripts -# Use forward slashes (/) also on windows to provide an os agnostic path -script_location = ${script_location} - -# template used to generate migration file names; The default value is %%(rev)s_%%(slug)s -# Uncomment the line below if you want the files to be prepended with date and time -# see https://alembic.sqlalchemy.org/en/latest/tutorial.html#editing-the-ini-file -# for all available tokens -# file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s - -# sys.path path, will be prepended to sys.path if present. -# defaults to the current working directory. -prepend_sys_path = . - -# timezone to use when rendering the date within the migration file -# as well as the filename. -# If specified, requires the python>=3.9 or backports.zoneinfo library. -# Any required deps can installed by adding `alembic[tz]` to the pip requirements -# string value is passed to ZoneInfo() -# leave blank for localtime -# timezone = - -# max length of characters to apply to the "slug" field -# truncate_slug_length = 40 - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - -# set to 'true' to allow .pyc and .pyo files without -# a source .py file to be detected as revisions in the -# versions/ directory -# sourceless = false - -# version location specification; This defaults -# to ${script_location}/versions. When using multiple version -# directories, initial revisions must be specified with --version-path. -# The path separator used here should be the separator specified by "version_path_separator" below. -# version_locations = %(here)s/bar:%(here)s/bat:${script_location}/versions - -# version path separator; As mentioned above, this is the character used to split -# version_locations. The default within new alembic.ini files is "os", which uses os.pathsep. -# If this key is omitted entirely, it falls back to the legacy behavior of splitting on spaces and/or commas. -# Valid values for version_path_separator are: -# -# version_path_separator = : -# version_path_separator = ; -# version_path_separator = space -# version_path_separator = newline -version_path_separator = os # Use os.pathsep. Default configuration used for new projects. - -# set to 'true' to search source files recursively -# in each "version_locations" directory -# new in Alembic version 1.10 -# recursive_version_locations = false - -# the output encoding used when revision files -# are written from script.py.mako -# output_encoding = utf-8 - -databases = engine1, engine2 - -[engine1] -sqlalchemy.url = driver://user:pass@localhost/dbname - -[engine2] -sqlalchemy.url = driver://user:pass@localhost/dbname2 - -[post_write_hooks] -# post_write_hooks defines scripts or Python functions that are run -# on newly generated revision scripts. See the documentation for further -# detail and examples - -# format using "black" - use the console_scripts runner, against the "black" entrypoint -# hooks = black -# black.type = console_scripts -# black.entrypoint = black -# black.options = -l 79 REVISION_SCRIPT_FILENAME - -# lint with attempts to fix using "ruff" - use the exec runner, execute a binary -# hooks = ruff -# ruff.type = exec -# ruff.executable = %(here)s/.venv/bin/ruff -# ruff.options = --fix REVISION_SCRIPT_FILENAME - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/env.py b/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/env.py deleted file mode 100644 index e937b64..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/env.py +++ /dev/null @@ -1,140 +0,0 @@ -import logging -from logging.config import fileConfig -import re - -from sqlalchemy import engine_from_config -from sqlalchemy import pool - -from alembic import context - -USE_TWOPHASE = False - -# this is the Alembic Config object, which provides -# access to the values within the .ini file in use. -config = context.config - -# Interpret the config file for Python logging. -# This line sets up loggers basically. -if config.config_file_name is not None: - fileConfig(config.config_file_name) -logger = logging.getLogger("alembic.env") - -# gather section names referring to different -# databases. These are named "engine1", "engine2" -# in the sample .ini file. -db_names = config.get_main_option("databases", "") - -# add your model's MetaData objects here -# for 'autogenerate' support. These must be set -# up to hold just those tables targeting a -# particular database. table.tometadata() may be -# helpful here in case a "copy" of -# a MetaData is needed. -# from myapp import mymodel -# target_metadata = { -# 'engine1':mymodel.metadata1, -# 'engine2':mymodel.metadata2 -# } -target_metadata = {} - -# other values from the config, defined by the needs of env.py, -# can be acquired: -# my_important_option = config.get_main_option("my_important_option") -# ... etc. - - -def run_migrations_offline() -> None: - """Run migrations in 'offline' mode. - - This configures the context with just a URL - and not an Engine, though an Engine is acceptable - here as well. By skipping the Engine creation - we don't even need a DBAPI to be available. - - Calls to context.execute() here emit the given string to the - script output. - - """ - # for the --sql use case, run migrations for each URL into - # individual files. - - engines = {} - for name in re.split(r",\s*", db_names): - engines[name] = rec = {} - rec["url"] = context.config.get_section_option(name, "sqlalchemy.url") - - for name, rec in engines.items(): - logger.info("Migrating database %s" % name) - file_ = "%s.sql" % name - logger.info("Writing output to %s" % file_) - with open(file_, "w") as buffer: - context.configure( - url=rec["url"], - output_buffer=buffer, - target_metadata=target_metadata.get(name), - literal_binds=True, - dialect_opts={"paramstyle": "named"}, - ) - with context.begin_transaction(): - context.run_migrations(engine_name=name) - - -def run_migrations_online() -> None: - """Run migrations in 'online' mode. - - In this scenario we need to create an Engine - and associate a connection with the context. - - """ - - # for the direct-to-DB use case, start a transaction on all - # engines, then run all migrations, then commit all transactions. - - engines = {} - for name in re.split(r",\s*", db_names): - engines[name] = rec = {} - rec["engine"] = engine_from_config( - context.config.get_section(name, {}), - prefix="sqlalchemy.", - poolclass=pool.NullPool, - ) - - for name, rec in engines.items(): - engine = rec["engine"] - rec["connection"] = conn = engine.connect() - - if USE_TWOPHASE: - rec["transaction"] = conn.begin_twophase() - else: - rec["transaction"] = conn.begin() - - try: - for name, rec in engines.items(): - logger.info("Migrating database %s" % name) - context.configure( - connection=rec["connection"], - upgrade_token="%s_upgrades" % name, - downgrade_token="%s_downgrades" % name, - target_metadata=target_metadata.get(name), - ) - context.run_migrations(engine_name=name) - - if USE_TWOPHASE: - for rec in engines.values(): - rec["transaction"].prepare() - - for rec in engines.values(): - rec["transaction"].commit() - except: - for rec in engines.values(): - rec["transaction"].rollback() - raise - finally: - for rec in engines.values(): - rec["connection"].close() - - -if context.is_offline_mode(): - run_migrations_offline() -else: - run_migrations_online() diff --git a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/script.py.mako b/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/script.py.mako deleted file mode 100644 index 6108b8a..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/templates/multidb/script.py.mako +++ /dev/null @@ -1,47 +0,0 @@ -<%! -import re - -%>"""${message} - -Revision ID: ${up_revision} -Revises: ${down_revision | comma,n} -Create Date: ${create_date} - -""" -from typing import Sequence, Union - -from alembic import op -import sqlalchemy as sa -${imports if imports else ""} - -# revision identifiers, used by Alembic. -revision: str = ${repr(up_revision)} -down_revision: Union[str, None] = ${repr(down_revision)} -branch_labels: Union[str, Sequence[str], None] = ${repr(branch_labels)} -depends_on: Union[str, Sequence[str], None] = ${repr(depends_on)} - - -def upgrade(engine_name: str) -> None: - globals()["upgrade_%s" % engine_name]() - - -def downgrade(engine_name: str) -> None: - globals()["downgrade_%s" % engine_name]() - -<% - db_names = config.get_main_option("databases") -%> - -## generate an "upgrade_() / downgrade_()" function -## for each database name in the ini file. - -% for db_name in re.split(r',\s*', db_names): - -def upgrade_${db_name}() -> None: - ${context.get("%s_upgrades" % db_name, "pass")} - - -def downgrade_${db_name}() -> None: - ${context.get("%s_downgrades" % db_name, "pass")} - -% endfor diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/__init__.py deleted file mode 100644 index 0407adf..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/__init__.py +++ /dev/null @@ -1,29 +0,0 @@ -from sqlalchemy.testing import config -from sqlalchemy.testing import emits_warning -from sqlalchemy.testing import engines -from sqlalchemy.testing import exclusions -from sqlalchemy.testing import mock -from sqlalchemy.testing import provide_metadata -from sqlalchemy.testing import skip_if -from sqlalchemy.testing import uses_deprecated -from sqlalchemy.testing.config import combinations -from sqlalchemy.testing.config import fixture -from sqlalchemy.testing.config import requirements as requires - -from .assertions import assert_raises -from .assertions import assert_raises_message -from .assertions import emits_python_deprecation_warning -from .assertions import eq_ -from .assertions import eq_ignore_whitespace -from .assertions import expect_raises -from .assertions import expect_raises_message -from .assertions import expect_sqlalchemy_deprecated -from .assertions import expect_sqlalchemy_deprecated_20 -from .assertions import expect_warnings -from .assertions import is_ -from .assertions import is_false -from .assertions import is_not_ -from .assertions import is_true -from .assertions import ne_ -from .fixtures import TestBase -from .util import resolve_lambda diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/assertions.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/assertions.py deleted file mode 100644 index e071697..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/assertions.py +++ /dev/null @@ -1,176 +0,0 @@ -from __future__ import annotations - -import contextlib -import re -import sys -from typing import Any -from typing import Dict - -from sqlalchemy import exc as sa_exc -from sqlalchemy.engine import default -from sqlalchemy.testing.assertions import _expect_warnings -from sqlalchemy.testing.assertions import eq_ # noqa -from sqlalchemy.testing.assertions import is_ # noqa -from sqlalchemy.testing.assertions import is_false # noqa -from sqlalchemy.testing.assertions import is_not_ # noqa -from sqlalchemy.testing.assertions import is_true # noqa -from sqlalchemy.testing.assertions import ne_ # noqa -from sqlalchemy.util import decorator - -from ..util import sqla_compat - - -def _assert_proper_exception_context(exception): - """assert that any exception we're catching does not have a __context__ - without a __cause__, and that __suppress_context__ is never set. - - Python 3 will report nested as exceptions as "during the handling of - error X, error Y occurred". That's not what we want to do. we want - these exceptions in a cause chain. - - """ - - if ( - exception.__context__ is not exception.__cause__ - and not exception.__suppress_context__ - ): - assert False, ( - "Exception %r was correctly raised but did not set a cause, " - "within context %r as its cause." - % (exception, exception.__context__) - ) - - -def assert_raises(except_cls, callable_, *args, **kw): - return _assert_raises(except_cls, callable_, args, kw, check_context=True) - - -def assert_raises_context_ok(except_cls, callable_, *args, **kw): - return _assert_raises(except_cls, callable_, args, kw) - - -def assert_raises_message(except_cls, msg, callable_, *args, **kwargs): - return _assert_raises( - except_cls, callable_, args, kwargs, msg=msg, check_context=True - ) - - -def assert_raises_message_context_ok( - except_cls, msg, callable_, *args, **kwargs -): - return _assert_raises(except_cls, callable_, args, kwargs, msg=msg) - - -def _assert_raises( - except_cls, callable_, args, kwargs, msg=None, check_context=False -): - with _expect_raises(except_cls, msg, check_context) as ec: - callable_(*args, **kwargs) - return ec.error - - -class _ErrorContainer: - error: Any = None - - -@contextlib.contextmanager -def _expect_raises( - except_cls, msg=None, check_context=False, text_exact=False -): - ec = _ErrorContainer() - if check_context: - are_we_already_in_a_traceback = sys.exc_info()[0] - try: - yield ec - success = False - except except_cls as err: - ec.error = err - success = True - if msg is not None: - if text_exact: - assert str(err) == msg, f"{msg} != {err}" - else: - assert re.search(msg, str(err), re.UNICODE), f"{msg} !~ {err}" - if check_context and not are_we_already_in_a_traceback: - _assert_proper_exception_context(err) - print(str(err).encode("utf-8")) - - # assert outside the block so it works for AssertionError too ! - assert success, "Callable did not raise an exception" - - -def expect_raises(except_cls, check_context=True): - return _expect_raises(except_cls, check_context=check_context) - - -def expect_raises_message( - except_cls, msg, check_context=True, text_exact=False -): - return _expect_raises( - except_cls, msg=msg, check_context=check_context, text_exact=text_exact - ) - - -def eq_ignore_whitespace(a, b, msg=None): - a = re.sub(r"^\s+?|\n", "", a) - a = re.sub(r" {2,}", " ", a) - b = re.sub(r"^\s+?|\n", "", b) - b = re.sub(r" {2,}", " ", b) - - assert a == b, msg or "%r != %r" % (a, b) - - -_dialect_mods: Dict[Any, Any] = {} - - -def _get_dialect(name): - if name is None or name == "default": - return default.DefaultDialect() - else: - d = sqla_compat._create_url(name).get_dialect()() - - if name == "postgresql": - d.implicit_returning = True - elif name == "mssql": - d.legacy_schema_aliasing = False - return d - - -def expect_warnings(*messages, **kw): - """Context manager which expects one or more warnings. - - With no arguments, squelches all SAWarnings emitted via - sqlalchemy.util.warn and sqlalchemy.util.warn_limited. Otherwise - pass string expressions that will match selected warnings via regex; - all non-matching warnings are sent through. - - The expect version **asserts** that the warnings were in fact seen. - - Note that the test suite sets SAWarning warnings to raise exceptions. - - """ - return _expect_warnings(Warning, messages, **kw) - - -def emits_python_deprecation_warning(*messages): - """Decorator form of expect_warnings(). - - Note that emits_warning does **not** assert that the warnings - were in fact seen. - - """ - - @decorator - def decorate(fn, *args, **kw): - with _expect_warnings(DeprecationWarning, assert_=False, *messages): - return fn(*args, **kw) - - return decorate - - -def expect_sqlalchemy_deprecated(*messages, **kw): - return _expect_warnings(sa_exc.SADeprecationWarning, messages, **kw) - - -def expect_sqlalchemy_deprecated_20(*messages, **kw): - return _expect_warnings(sa_exc.RemovedIn20Warning, messages, **kw) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/env.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/env.py deleted file mode 100644 index 5df7ef8..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/env.py +++ /dev/null @@ -1,518 +0,0 @@ -import importlib.machinery -import os -import shutil -import textwrap - -from sqlalchemy.testing import config -from sqlalchemy.testing import provision - -from . import util as testing_util -from .. import command -from .. import script -from .. import util -from ..script import Script -from ..script import ScriptDirectory - - -def _get_staging_directory(): - if provision.FOLLOWER_IDENT: - return "scratch_%s" % provision.FOLLOWER_IDENT - else: - return "scratch" - - -def staging_env(create=True, template="generic", sourceless=False): - cfg = _testing_config() - if create: - path = os.path.join(_get_staging_directory(), "scripts") - assert not os.path.exists(path), ( - "staging directory %s already exists; poor cleanup?" % path - ) - - command.init(cfg, path, template=template) - if sourceless: - try: - # do an import so that a .pyc/.pyo is generated. - util.load_python_file(path, "env.py") - except AttributeError: - # we don't have the migration context set up yet - # so running the .env py throws this exception. - # theoretically we could be using py_compiler here to - # generate .pyc/.pyo without importing but not really - # worth it. - pass - assert sourceless in ( - "pep3147_envonly", - "simple", - "pep3147_everything", - ), sourceless - make_sourceless( - os.path.join(path, "env.py"), - "pep3147" if "pep3147" in sourceless else "simple", - ) - - sc = script.ScriptDirectory.from_config(cfg) - return sc - - -def clear_staging_env(): - from sqlalchemy.testing import engines - - engines.testing_reaper.close_all() - shutil.rmtree(_get_staging_directory(), True) - - -def script_file_fixture(txt): - dir_ = os.path.join(_get_staging_directory(), "scripts") - path = os.path.join(dir_, "script.py.mako") - with open(path, "w") as f: - f.write(txt) - - -def env_file_fixture(txt): - dir_ = os.path.join(_get_staging_directory(), "scripts") - txt = ( - """ -from alembic import context - -config = context.config -""" - + txt - ) - - path = os.path.join(dir_, "env.py") - pyc_path = util.pyc_file_from_path(path) - if pyc_path: - os.unlink(pyc_path) - - with open(path, "w") as f: - f.write(txt) - - -def _sqlite_file_db(tempname="foo.db", future=False, scope=None, **options): - dir_ = os.path.join(_get_staging_directory(), "scripts") - url = "sqlite:///%s/%s" % (dir_, tempname) - if scope and util.sqla_14: - options["scope"] = scope - return testing_util.testing_engine(url=url, future=future, options=options) - - -def _sqlite_testing_config(sourceless=False, future=False): - dir_ = os.path.join(_get_staging_directory(), "scripts") - url = "sqlite:///%s/foo.db" % dir_ - - sqlalchemy_future = future or ("future" in config.db.__class__.__module__) - - return _write_config_file( - """ -[alembic] -script_location = %s -sqlalchemy.url = %s -sourceless = %s -%s - -[loggers] -keys = root,sqlalchemy - -[handlers] -keys = console - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = DEBUG -handlers = -qualname = sqlalchemy.engine - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatters] -keys = generic - -[formatter_generic] -format = %%(levelname)-5.5s [%%(name)s] %%(message)s -datefmt = %%H:%%M:%%S - """ - % ( - dir_, - url, - "true" if sourceless else "false", - "sqlalchemy.future = true" if sqlalchemy_future else "", - ) - ) - - -def _multi_dir_testing_config(sourceless=False, extra_version_location=""): - dir_ = os.path.join(_get_staging_directory(), "scripts") - sqlalchemy_future = "future" in config.db.__class__.__module__ - - url = "sqlite:///%s/foo.db" % dir_ - - return _write_config_file( - """ -[alembic] -script_location = %s -sqlalchemy.url = %s -sqlalchemy.future = %s -sourceless = %s -version_locations = %%(here)s/model1/ %%(here)s/model2/ %%(here)s/model3/ %s - -[loggers] -keys = root - -[handlers] -keys = console - -[logger_root] -level = WARN -handlers = console -qualname = - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatters] -keys = generic - -[formatter_generic] -format = %%(levelname)-5.5s [%%(name)s] %%(message)s -datefmt = %%H:%%M:%%S - """ - % ( - dir_, - url, - "true" if sqlalchemy_future else "false", - "true" if sourceless else "false", - extra_version_location, - ) - ) - - -def _no_sql_testing_config(dialect="postgresql", directives=""): - """use a postgresql url with no host so that - connections guaranteed to fail""" - dir_ = os.path.join(_get_staging_directory(), "scripts") - return _write_config_file( - """ -[alembic] -script_location = %s -sqlalchemy.url = %s:// -%s - -[loggers] -keys = root - -[handlers] -keys = console - -[logger_root] -level = WARN -handlers = console -qualname = - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatters] -keys = generic - -[formatter_generic] -format = %%(levelname)-5.5s [%%(name)s] %%(message)s -datefmt = %%H:%%M:%%S - -""" - % (dir_, dialect, directives) - ) - - -def _write_config_file(text): - cfg = _testing_config() - with open(cfg.config_file_name, "w") as f: - f.write(text) - return cfg - - -def _testing_config(): - from alembic.config import Config - - if not os.access(_get_staging_directory(), os.F_OK): - os.mkdir(_get_staging_directory()) - return Config(os.path.join(_get_staging_directory(), "test_alembic.ini")) - - -def write_script( - scriptdir, rev_id, content, encoding="ascii", sourceless=False -): - old = scriptdir.revision_map.get_revision(rev_id) - path = old.path - - content = textwrap.dedent(content) - if encoding: - content = content.encode(encoding) - with open(path, "wb") as fp: - fp.write(content) - pyc_path = util.pyc_file_from_path(path) - if pyc_path: - os.unlink(pyc_path) - script = Script._from_path(scriptdir, path) - old = scriptdir.revision_map.get_revision(script.revision) - if old.down_revision != script.down_revision: - raise Exception( - "Can't change down_revision " "on a refresh operation." - ) - scriptdir.revision_map.add_revision(script, _replace=True) - - if sourceless: - make_sourceless( - path, "pep3147" if sourceless == "pep3147_everything" else "simple" - ) - - -def make_sourceless(path, style): - import py_compile - - py_compile.compile(path) - - if style == "simple": - pyc_path = util.pyc_file_from_path(path) - suffix = importlib.machinery.BYTECODE_SUFFIXES[0] - filepath, ext = os.path.splitext(path) - simple_pyc_path = filepath + suffix - shutil.move(pyc_path, simple_pyc_path) - pyc_path = simple_pyc_path - else: - assert style in ("pep3147", "simple") - pyc_path = util.pyc_file_from_path(path) - - assert os.access(pyc_path, os.F_OK) - - os.unlink(path) - - -def three_rev_fixture(cfg): - a = util.rev_id() - b = util.rev_id() - c = util.rev_id() - - script = ScriptDirectory.from_config(cfg) - script.generate_revision(a, "revision a", refresh=True, head="base") - write_script( - script, - a, - """\ -"Rev A" -revision = '%s' -down_revision = None - -from alembic import op - - -def upgrade(): - op.execute("CREATE STEP 1") - - -def downgrade(): - op.execute("DROP STEP 1") - -""" - % a, - ) - - script.generate_revision(b, "revision b", refresh=True, head=a) - write_script( - script, - b, - f"""# coding: utf-8 -"Rev B, méil, %3" -revision = '{b}' -down_revision = '{a}' - -from alembic import op - - -def upgrade(): - op.execute("CREATE STEP 2") - - -def downgrade(): - op.execute("DROP STEP 2") - -""", - encoding="utf-8", - ) - - script.generate_revision(c, "revision c", refresh=True, head=b) - write_script( - script, - c, - """\ -"Rev C" -revision = '%s' -down_revision = '%s' - -from alembic import op - - -def upgrade(): - op.execute("CREATE STEP 3") - - -def downgrade(): - op.execute("DROP STEP 3") - -""" - % (c, b), - ) - return a, b, c - - -def multi_heads_fixture(cfg, a, b, c): - """Create a multiple head fixture from the three-revs fixture""" - - # a->b->c - # -> d -> e - # -> f - d = util.rev_id() - e = util.rev_id() - f = util.rev_id() - - script = ScriptDirectory.from_config(cfg) - script.generate_revision( - d, "revision d from b", head=b, splice=True, refresh=True - ) - write_script( - script, - d, - """\ -"Rev D" -revision = '%s' -down_revision = '%s' - -from alembic import op - - -def upgrade(): - op.execute("CREATE STEP 4") - - -def downgrade(): - op.execute("DROP STEP 4") - -""" - % (d, b), - ) - - script.generate_revision( - e, "revision e from d", head=d, splice=True, refresh=True - ) - write_script( - script, - e, - """\ -"Rev E" -revision = '%s' -down_revision = '%s' - -from alembic import op - - -def upgrade(): - op.execute("CREATE STEP 5") - - -def downgrade(): - op.execute("DROP STEP 5") - -""" - % (e, d), - ) - - script.generate_revision( - f, "revision f from b", head=b, splice=True, refresh=True - ) - write_script( - script, - f, - """\ -"Rev F" -revision = '%s' -down_revision = '%s' - -from alembic import op - - -def upgrade(): - op.execute("CREATE STEP 6") - - -def downgrade(): - op.execute("DROP STEP 6") - -""" - % (f, b), - ) - - return d, e, f - - -def _multidb_testing_config(engines): - """alembic.ini fixture to work exactly with the 'multidb' template""" - - dir_ = os.path.join(_get_staging_directory(), "scripts") - - sqlalchemy_future = "future" in config.db.__class__.__module__ - - databases = ", ".join(engines.keys()) - engines = "\n\n".join( - "[%s]\n" "sqlalchemy.url = %s" % (key, value.url) - for key, value in engines.items() - ) - - return _write_config_file( - """ -[alembic] -script_location = %s -sourceless = false -sqlalchemy.future = %s -databases = %s - -%s -[loggers] -keys = root - -[handlers] -keys = console - -[logger_root] -level = WARN -handlers = console -qualname = - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatters] -keys = generic - -[formatter_generic] -format = %%(levelname)-5.5s [%%(name)s] %%(message)s -datefmt = %%H:%%M:%%S - """ - % (dir_, "true" if sqlalchemy_future else "false", databases, engines) - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/fixtures.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/fixtures.py deleted file mode 100644 index 3b5ce59..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/fixtures.py +++ /dev/null @@ -1,318 +0,0 @@ -from __future__ import annotations - -import configparser -from contextlib import contextmanager -import io -import re -from typing import Any -from typing import Dict - -from sqlalchemy import Column -from sqlalchemy import inspect -from sqlalchemy import MetaData -from sqlalchemy import String -from sqlalchemy import Table -from sqlalchemy import testing -from sqlalchemy import text -from sqlalchemy.testing import config -from sqlalchemy.testing import mock -from sqlalchemy.testing.assertions import eq_ -from sqlalchemy.testing.fixtures import TablesTest as SQLAlchemyTablesTest -from sqlalchemy.testing.fixtures import TestBase as SQLAlchemyTestBase - -import alembic -from .assertions import _get_dialect -from ..environment import EnvironmentContext -from ..migration import MigrationContext -from ..operations import Operations -from ..util import sqla_compat -from ..util.sqla_compat import create_mock_engine -from ..util.sqla_compat import sqla_14 -from ..util.sqla_compat import sqla_2 - - -testing_config = configparser.ConfigParser() -testing_config.read(["test.cfg"]) - - -class TestBase(SQLAlchemyTestBase): - is_sqlalchemy_future = sqla_2 - - @testing.fixture() - def ops_context(self, migration_context): - with migration_context.begin_transaction(_per_migration=True): - yield Operations(migration_context) - - @testing.fixture - def migration_context(self, connection): - return MigrationContext.configure( - connection, opts=dict(transaction_per_migration=True) - ) - - @testing.fixture - def as_sql_migration_context(self, connection): - return MigrationContext.configure( - connection, opts=dict(transaction_per_migration=True, as_sql=True) - ) - - @testing.fixture - def connection(self): - with config.db.connect() as conn: - yield conn - - -class TablesTest(TestBase, SQLAlchemyTablesTest): - pass - - -if sqla_14: - from sqlalchemy.testing.fixtures import FutureEngineMixin -else: - - class FutureEngineMixin: # type:ignore[no-redef] - __requires__ = ("sqlalchemy_14",) - - -FutureEngineMixin.is_sqlalchemy_future = True - - -def capture_db(dialect="postgresql://"): - buf = [] - - def dump(sql, *multiparams, **params): - buf.append(str(sql.compile(dialect=engine.dialect))) - - engine = create_mock_engine(dialect, dump) - return engine, buf - - -_engs: Dict[Any, Any] = {} - - -@contextmanager -def capture_context_buffer(**kw): - if kw.pop("bytes_io", False): - buf = io.BytesIO() - else: - buf = io.StringIO() - - kw.update({"dialect_name": "sqlite", "output_buffer": buf}) - conf = EnvironmentContext.configure - - def configure(*arg, **opt): - opt.update(**kw) - return conf(*arg, **opt) - - with mock.patch.object(EnvironmentContext, "configure", configure): - yield buf - - -@contextmanager -def capture_engine_context_buffer(**kw): - from .env import _sqlite_file_db - from sqlalchemy import event - - buf = io.StringIO() - - eng = _sqlite_file_db() - - conn = eng.connect() - - @event.listens_for(conn, "before_cursor_execute") - def bce(conn, cursor, statement, parameters, context, executemany): - buf.write(statement + "\n") - - kw.update({"connection": conn}) - conf = EnvironmentContext.configure - - def configure(*arg, **opt): - opt.update(**kw) - return conf(*arg, **opt) - - with mock.patch.object(EnvironmentContext, "configure", configure): - yield buf - - -def op_fixture( - dialect="default", - as_sql=False, - naming_convention=None, - literal_binds=False, - native_boolean=None, -): - opts = {} - if naming_convention: - opts["target_metadata"] = MetaData(naming_convention=naming_convention) - - class buffer_: - def __init__(self): - self.lines = [] - - def write(self, msg): - msg = msg.strip() - msg = re.sub(r"[\n\t]", "", msg) - if as_sql: - # the impl produces soft tabs, - # so search for blocks of 4 spaces - msg = re.sub(r" ", "", msg) - msg = re.sub(r"\;\n*$", "", msg) - - self.lines.append(msg) - - def flush(self): - pass - - buf = buffer_() - - class ctx(MigrationContext): - def get_buf(self): - return buf - - def clear_assertions(self): - buf.lines[:] = [] - - def assert_(self, *sql): - # TODO: make this more flexible about - # whitespace and such - eq_(buf.lines, [re.sub(r"[\n\t]", "", s) for s in sql]) - - def assert_contains(self, sql): - for stmt in buf.lines: - if re.sub(r"[\n\t]", "", sql) in stmt: - return - else: - assert False, "Could not locate fragment %r in %r" % ( - sql, - buf.lines, - ) - - if as_sql: - opts["as_sql"] = as_sql - if literal_binds: - opts["literal_binds"] = literal_binds - if not sqla_14 and dialect == "mariadb": - ctx_dialect = _get_dialect("mysql") - ctx_dialect.server_version_info = (10, 4, 0, "MariaDB") - - else: - ctx_dialect = _get_dialect(dialect) - if native_boolean is not None: - ctx_dialect.supports_native_boolean = native_boolean - # this is new as of SQLAlchemy 1.2.7 and is used by SQL Server, - # which breaks assumptions in the alembic test suite - ctx_dialect.non_native_boolean_check_constraint = True - if not as_sql: - - def execute(stmt, *multiparam, **param): - if isinstance(stmt, str): - stmt = text(stmt) - assert stmt.supports_execution - sql = str(stmt.compile(dialect=ctx_dialect)) - - buf.write(sql) - - connection = mock.Mock(dialect=ctx_dialect, execute=execute) - else: - opts["output_buffer"] = buf - connection = None - context = ctx(ctx_dialect, connection, opts) - - alembic.op._proxy = Operations(context) - return context - - -class AlterColRoundTripFixture: - # since these tests are about syntax, use more recent SQLAlchemy as some of - # the type / server default compare logic might not work on older - # SQLAlchemy versions as seems to be the case for SQLAlchemy 1.1 on Oracle - - __requires__ = ("alter_column",) - - def setUp(self): - self.conn = config.db.connect() - self.ctx = MigrationContext.configure(self.conn) - self.op = Operations(self.ctx) - self.metadata = MetaData() - - def _compare_type(self, t1, t2): - c1 = Column("q", t1) - c2 = Column("q", t2) - assert not self.ctx.impl.compare_type( - c1, c2 - ), "Type objects %r and %r didn't compare as equivalent" % (t1, t2) - - def _compare_server_default(self, t1, s1, t2, s2): - c1 = Column("q", t1, server_default=s1) - c2 = Column("q", t2, server_default=s2) - assert not self.ctx.impl.compare_server_default( - c1, c2, s2, s1 - ), "server defaults %r and %r didn't compare as equivalent" % (s1, s2) - - def tearDown(self): - sqla_compat._safe_rollback_connection_transaction(self.conn) - with self.conn.begin(): - self.metadata.drop_all(self.conn) - self.conn.close() - - def _run_alter_col(self, from_, to_, compare=None): - column = Column( - from_.get("name", "colname"), - from_.get("type", String(10)), - nullable=from_.get("nullable", True), - server_default=from_.get("server_default", None), - # comment=from_.get("comment", None) - ) - t = Table("x", self.metadata, column) - - with sqla_compat._ensure_scope_for_ddl(self.conn): - t.create(self.conn) - insp = inspect(self.conn) - old_col = insp.get_columns("x")[0] - - # TODO: conditional comment support - self.op.alter_column( - "x", - column.name, - existing_type=column.type, - existing_server_default=( - column.server_default - if column.server_default is not None - else False - ), - existing_nullable=True if column.nullable else False, - # existing_comment=column.comment, - nullable=to_.get("nullable", None), - # modify_comment=False, - server_default=to_.get("server_default", False), - new_column_name=to_.get("name", None), - type_=to_.get("type", None), - ) - - insp = inspect(self.conn) - new_col = insp.get_columns("x")[0] - - if compare is None: - compare = to_ - - eq_( - new_col["name"], - compare["name"] if "name" in compare else column.name, - ) - self._compare_type( - new_col["type"], compare.get("type", old_col["type"]) - ) - eq_(new_col["nullable"], compare.get("nullable", column.nullable)) - self._compare_server_default( - new_col["type"], - new_col.get("default", None), - compare.get("type", old_col["type"]), - ( - compare["server_default"].text - if "server_default" in compare - else ( - column.server_default.arg.text - if column.server_default is not None - else None - ) - ), - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/plugin/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/plugin/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/plugin/bootstrap.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/plugin/bootstrap.py deleted file mode 100644 index d4a2c55..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/plugin/bootstrap.py +++ /dev/null @@ -1,4 +0,0 @@ -""" -Bootstrapper for test framework plugins. - -""" diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/requirements.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/requirements.py deleted file mode 100644 index 6e07e28..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/requirements.py +++ /dev/null @@ -1,210 +0,0 @@ -from sqlalchemy.testing.requirements import Requirements - -from alembic import util -from alembic.util import sqla_compat -from ..testing import exclusions - - -class SuiteRequirements(Requirements): - @property - def schemas(self): - """Target database must support external schemas, and have one - named 'test_schema'.""" - - return exclusions.open() - - @property - def autocommit_isolation(self): - """target database should support 'AUTOCOMMIT' isolation level""" - - return exclusions.closed() - - @property - def materialized_views(self): - """needed for sqlalchemy compat""" - return exclusions.closed() - - @property - def unique_constraint_reflection(self): - def doesnt_have_check_uq_constraints(config): - from sqlalchemy import inspect - - insp = inspect(config.db) - try: - insp.get_unique_constraints("x") - except NotImplementedError: - return True - except TypeError: - return True - except Exception: - pass - return False - - return exclusions.skip_if(doesnt_have_check_uq_constraints) - - @property - def sequences(self): - """Target database must support SEQUENCEs.""" - - return exclusions.only_if( - [lambda config: config.db.dialect.supports_sequences], - "no sequence support", - ) - - @property - def foreign_key_match(self): - return exclusions.open() - - @property - def foreign_key_constraint_reflection(self): - return exclusions.open() - - @property - def check_constraints_w_enforcement(self): - """Target database must support check constraints - and also enforce them.""" - - return exclusions.open() - - @property - def reflects_pk_names(self): - return exclusions.closed() - - @property - def reflects_fk_options(self): - return exclusions.closed() - - @property - def sqlalchemy_14(self): - return exclusions.skip_if( - lambda config: not util.sqla_14, - "SQLAlchemy 1.4 or greater required", - ) - - @property - def sqlalchemy_1x(self): - return exclusions.skip_if( - lambda config: util.sqla_2, - "SQLAlchemy 1.x test", - ) - - @property - def sqlalchemy_2(self): - return exclusions.skip_if( - lambda config: not util.sqla_2, - "SQLAlchemy 2.x test", - ) - - @property - def asyncio(self): - def go(config): - try: - import greenlet # noqa: F401 - except ImportError: - return False - else: - return True - - return self.sqlalchemy_14 + exclusions.only_if(go) - - @property - def comments(self): - return exclusions.only_if( - lambda config: config.db.dialect.supports_comments - ) - - @property - def alter_column(self): - return exclusions.open() - - @property - def computed_columns(self): - return exclusions.closed() - - @property - def computed_columns_api(self): - return exclusions.only_if( - exclusions.BooleanPredicate(sqla_compat.has_computed) - ) - - @property - def computed_reflects_normally(self): - return exclusions.only_if( - exclusions.BooleanPredicate(sqla_compat.has_computed_reflection) - ) - - @property - def computed_reflects_as_server_default(self): - return exclusions.closed() - - @property - def computed_doesnt_reflect_as_server_default(self): - return exclusions.closed() - - @property - def autoincrement_on_composite_pk(self): - return exclusions.closed() - - @property - def fk_ondelete_is_reflected(self): - return exclusions.closed() - - @property - def fk_onupdate_is_reflected(self): - return exclusions.closed() - - @property - def fk_onupdate(self): - return exclusions.open() - - @property - def fk_ondelete_restrict(self): - return exclusions.open() - - @property - def fk_onupdate_restrict(self): - return exclusions.open() - - @property - def fk_ondelete_noaction(self): - return exclusions.open() - - @property - def fk_initially(self): - return exclusions.closed() - - @property - def fk_deferrable(self): - return exclusions.closed() - - @property - def fk_deferrable_is_reflected(self): - return exclusions.closed() - - @property - def fk_names(self): - return exclusions.open() - - @property - def integer_subtype_comparisons(self): - return exclusions.open() - - @property - def no_name_normalize(self): - return exclusions.skip_if( - lambda config: config.db.dialect.requires_name_normalize - ) - - @property - def identity_columns(self): - return exclusions.closed() - - @property - def identity_columns_alter(self): - return exclusions.closed() - - @property - def identity_columns_api(self): - return exclusions.only_if( - exclusions.BooleanPredicate(sqla_compat.has_identity) - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/schemacompare.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/schemacompare.py deleted file mode 100644 index 204cc4d..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/schemacompare.py +++ /dev/null @@ -1,169 +0,0 @@ -from itertools import zip_longest - -from sqlalchemy import schema -from sqlalchemy.sql.elements import ClauseList - - -class CompareTable: - def __init__(self, table): - self.table = table - - def __eq__(self, other): - if self.table.name != other.name or self.table.schema != other.schema: - return False - - for c1, c2 in zip_longest(self.table.c, other.c): - if (c1 is None and c2 is not None) or ( - c2 is None and c1 is not None - ): - return False - if CompareColumn(c1) != c2: - return False - - return True - - # TODO: compare constraints, indexes - - def __ne__(self, other): - return not self.__eq__(other) - - -class CompareColumn: - def __init__(self, column): - self.column = column - - def __eq__(self, other): - return ( - self.column.name == other.name - and self.column.nullable == other.nullable - ) - # TODO: datatypes etc - - def __ne__(self, other): - return not self.__eq__(other) - - -class CompareIndex: - def __init__(self, index, name_only=False): - self.index = index - self.name_only = name_only - - def __eq__(self, other): - if self.name_only: - return self.index.name == other.name - else: - return ( - str(schema.CreateIndex(self.index)) - == str(schema.CreateIndex(other)) - and self.index.dialect_kwargs == other.dialect_kwargs - ) - - def __ne__(self, other): - return not self.__eq__(other) - - def __repr__(self): - expr = ClauseList(*self.index.expressions) - try: - expr_str = expr.compile().string - except Exception: - expr_str = str(expr) - return f"" - - -class CompareCheckConstraint: - def __init__(self, constraint): - self.constraint = constraint - - def __eq__(self, other): - return ( - isinstance(other, schema.CheckConstraint) - and self.constraint.name == other.name - and (str(self.constraint.sqltext) == str(other.sqltext)) - and (other.table.name == self.constraint.table.name) - and other.table.schema == self.constraint.table.schema - ) - - def __ne__(self, other): - return not self.__eq__(other) - - -class CompareForeignKey: - def __init__(self, constraint): - self.constraint = constraint - - def __eq__(self, other): - r1 = ( - isinstance(other, schema.ForeignKeyConstraint) - and self.constraint.name == other.name - and (other.table.name == self.constraint.table.name) - and other.table.schema == self.constraint.table.schema - ) - if not r1: - return False - for c1, c2 in zip_longest(self.constraint.columns, other.columns): - if (c1 is None and c2 is not None) or ( - c2 is None and c1 is not None - ): - return False - if CompareColumn(c1) != c2: - return False - return True - - def __ne__(self, other): - return not self.__eq__(other) - - -class ComparePrimaryKey: - def __init__(self, constraint): - self.constraint = constraint - - def __eq__(self, other): - r1 = ( - isinstance(other, schema.PrimaryKeyConstraint) - and self.constraint.name == other.name - and (other.table.name == self.constraint.table.name) - and other.table.schema == self.constraint.table.schema - ) - if not r1: - return False - - for c1, c2 in zip_longest(self.constraint.columns, other.columns): - if (c1 is None and c2 is not None) or ( - c2 is None and c1 is not None - ): - return False - if CompareColumn(c1) != c2: - return False - - return True - - def __ne__(self, other): - return not self.__eq__(other) - - -class CompareUniqueConstraint: - def __init__(self, constraint): - self.constraint = constraint - - def __eq__(self, other): - r1 = ( - isinstance(other, schema.UniqueConstraint) - and self.constraint.name == other.name - and (other.table.name == self.constraint.table.name) - and other.table.schema == self.constraint.table.schema - ) - if not r1: - return False - - for c1, c2 in zip_longest(self.constraint.columns, other.columns): - if (c1 is None and c2 is not None) or ( - c2 is None and c1 is not None - ): - return False - if CompareColumn(c1) != c2: - return False - - return True - - def __ne__(self, other): - return not self.__eq__(other) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/__init__.py deleted file mode 100644 index 3da498d..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .test_autogen_comments import * # noqa -from .test_autogen_computed import * # noqa -from .test_autogen_diffs import * # noqa -from .test_autogen_fks import * # noqa -from .test_autogen_identity import * # noqa -from .test_environment import * # noqa -from .test_op import * # noqa diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/_autogen_fixtures.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/_autogen_fixtures.py deleted file mode 100644 index d838ebe..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/_autogen_fixtures.py +++ /dev/null @@ -1,335 +0,0 @@ -from __future__ import annotations - -from typing import Any -from typing import Dict -from typing import Set - -from sqlalchemy import CHAR -from sqlalchemy import CheckConstraint -from sqlalchemy import Column -from sqlalchemy import event -from sqlalchemy import ForeignKey -from sqlalchemy import Index -from sqlalchemy import inspect -from sqlalchemy import Integer -from sqlalchemy import MetaData -from sqlalchemy import Numeric -from sqlalchemy import String -from sqlalchemy import Table -from sqlalchemy import Text -from sqlalchemy import text -from sqlalchemy import UniqueConstraint - -from ... import autogenerate -from ... import util -from ...autogenerate import api -from ...ddl.base import _fk_spec -from ...migration import MigrationContext -from ...operations import ops -from ...testing import config -from ...testing import eq_ -from ...testing.env import clear_staging_env -from ...testing.env import staging_env - -names_in_this_test: Set[Any] = set() - - -@event.listens_for(Table, "after_parent_attach") -def new_table(table, parent): - names_in_this_test.add(table.name) - - -def _default_include_object(obj, name, type_, reflected, compare_to): - if type_ == "table": - return name in names_in_this_test - else: - return True - - -_default_object_filters: Any = _default_include_object - -_default_name_filters: Any = None - - -class ModelOne: - __requires__ = ("unique_constraint_reflection",) - - schema: Any = None - - @classmethod - def _get_db_schema(cls): - schema = cls.schema - - m = MetaData(schema=schema) - - Table( - "user", - m, - Column("id", Integer, primary_key=True), - Column("name", String(50)), - Column("a1", Text), - Column("pw", String(50)), - Index("pw_idx", "pw"), - ) - - Table( - "address", - m, - Column("id", Integer, primary_key=True), - Column("email_address", String(100), nullable=False), - ) - - Table( - "order", - m, - Column("order_id", Integer, primary_key=True), - Column( - "amount", - Numeric(8, 2), - nullable=False, - server_default=text("0"), - ), - CheckConstraint("amount >= 0", name="ck_order_amount"), - ) - - Table( - "extra", - m, - Column("x", CHAR), - Column("uid", Integer, ForeignKey("user.id")), - ) - - return m - - @classmethod - def _get_model_schema(cls): - schema = cls.schema - - m = MetaData(schema=schema) - - Table( - "user", - m, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", Text, server_default="x"), - ) - - Table( - "address", - m, - Column("id", Integer, primary_key=True), - Column("email_address", String(100), nullable=False), - Column("street", String(50)), - UniqueConstraint("email_address", name="uq_email"), - ) - - Table( - "order", - m, - Column("order_id", Integer, primary_key=True), - Column( - "amount", - Numeric(10, 2), - nullable=True, - server_default=text("0"), - ), - Column("user_id", Integer, ForeignKey("user.id")), - CheckConstraint("amount > -1", name="ck_order_amount"), - ) - - Table( - "item", - m, - Column("id", Integer, primary_key=True), - Column("description", String(100)), - Column("order_id", Integer, ForeignKey("order.order_id")), - CheckConstraint("len(description) > 5"), - ) - return m - - -class _ComparesFKs: - def _assert_fk_diff( - self, - diff, - type_, - source_table, - source_columns, - target_table, - target_columns, - name=None, - conditional_name=None, - source_schema=None, - onupdate=None, - ondelete=None, - initially=None, - deferrable=None, - ): - # the public API for ForeignKeyConstraint was not very rich - # in 0.7, 0.8, so here we use the well-known but slightly - # private API to get at its elements - ( - fk_source_schema, - fk_source_table, - fk_source_columns, - fk_target_schema, - fk_target_table, - fk_target_columns, - fk_onupdate, - fk_ondelete, - fk_deferrable, - fk_initially, - ) = _fk_spec(diff[1]) - - eq_(diff[0], type_) - eq_(fk_source_table, source_table) - eq_(fk_source_columns, source_columns) - eq_(fk_target_table, target_table) - eq_(fk_source_schema, source_schema) - eq_(fk_onupdate, onupdate) - eq_(fk_ondelete, ondelete) - eq_(fk_initially, initially) - eq_(fk_deferrable, deferrable) - - eq_([elem.column.name for elem in diff[1].elements], target_columns) - if conditional_name is not None: - if conditional_name == "servergenerated": - fks = inspect(self.bind).get_foreign_keys(source_table) - server_fk_name = fks[0]["name"] - eq_(diff[1].name, server_fk_name) - else: - eq_(diff[1].name, conditional_name) - else: - eq_(diff[1].name, name) - - -class AutogenTest(_ComparesFKs): - def _flatten_diffs(self, diffs): - for d in diffs: - if isinstance(d, list): - yield from self._flatten_diffs(d) - else: - yield d - - @classmethod - def _get_bind(cls): - return config.db - - configure_opts: Dict[Any, Any] = {} - - @classmethod - def setup_class(cls): - staging_env() - cls.bind = cls._get_bind() - cls.m1 = cls._get_db_schema() - cls.m1.create_all(cls.bind) - cls.m2 = cls._get_model_schema() - - @classmethod - def teardown_class(cls): - cls.m1.drop_all(cls.bind) - clear_staging_env() - - def setUp(self): - self.conn = conn = self.bind.connect() - ctx_opts = { - "compare_type": True, - "compare_server_default": True, - "target_metadata": self.m2, - "upgrade_token": "upgrades", - "downgrade_token": "downgrades", - "alembic_module_prefix": "op.", - "sqlalchemy_module_prefix": "sa.", - "include_object": _default_object_filters, - "include_name": _default_name_filters, - } - if self.configure_opts: - ctx_opts.update(self.configure_opts) - self.context = context = MigrationContext.configure( - connection=conn, opts=ctx_opts - ) - - self.autogen_context = api.AutogenContext(context, self.m2) - - def tearDown(self): - self.conn.close() - - def _update_context( - self, object_filters=None, name_filters=None, include_schemas=None - ): - if include_schemas is not None: - self.autogen_context.opts["include_schemas"] = include_schemas - if object_filters is not None: - self.autogen_context._object_filters = [object_filters] - if name_filters is not None: - self.autogen_context._name_filters = [name_filters] - return self.autogen_context - - -class AutogenFixtureTest(_ComparesFKs): - def _fixture( - self, - m1, - m2, - include_schemas=False, - opts=None, - object_filters=_default_object_filters, - name_filters=_default_name_filters, - return_ops=False, - max_identifier_length=None, - ): - if max_identifier_length: - dialect = self.bind.dialect - existing_length = dialect.max_identifier_length - dialect.max_identifier_length = ( - dialect._user_defined_max_identifier_length - ) = max_identifier_length - try: - self._alembic_metadata, model_metadata = m1, m2 - for m in util.to_list(self._alembic_metadata): - m.create_all(self.bind) - - with self.bind.connect() as conn: - ctx_opts = { - "compare_type": True, - "compare_server_default": True, - "target_metadata": model_metadata, - "upgrade_token": "upgrades", - "downgrade_token": "downgrades", - "alembic_module_prefix": "op.", - "sqlalchemy_module_prefix": "sa.", - "include_object": object_filters, - "include_name": name_filters, - "include_schemas": include_schemas, - } - if opts: - ctx_opts.update(opts) - self.context = context = MigrationContext.configure( - connection=conn, opts=ctx_opts - ) - - autogen_context = api.AutogenContext(context, model_metadata) - uo = ops.UpgradeOps(ops=[]) - autogenerate._produce_net_changes(autogen_context, uo) - - if return_ops: - return uo - else: - return uo.as_diffs() - finally: - if max_identifier_length: - dialect = self.bind.dialect - dialect.max_identifier_length = ( - dialect._user_defined_max_identifier_length - ) = existing_length - - def setUp(self): - staging_env() - self.bind = config.db - - def tearDown(self): - if hasattr(self, "_alembic_metadata"): - for m in util.to_list(self._alembic_metadata): - m.drop_all(self.bind) - clear_staging_env() diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_comments.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_comments.py deleted file mode 100644 index 7ef074f..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_comments.py +++ /dev/null @@ -1,242 +0,0 @@ -from sqlalchemy import Column -from sqlalchemy import Float -from sqlalchemy import MetaData -from sqlalchemy import String -from sqlalchemy import Table - -from ._autogen_fixtures import AutogenFixtureTest -from ...testing import eq_ -from ...testing import mock -from ...testing import TestBase - - -class AutogenerateCommentsTest(AutogenFixtureTest, TestBase): - __backend__ = True - - __requires__ = ("comments",) - - def test_existing_table_comment_no_change(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - comment="this is some table", - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - comment="this is some table", - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs, []) - - def test_add_table_comment(self): - m1 = MetaData() - m2 = MetaData() - - Table("some_table", m1, Column("test", String(10), primary_key=True)) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - comment="this is some table", - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0], "add_table_comment") - eq_(diffs[0][1].comment, "this is some table") - eq_(diffs[0][2], None) - - def test_remove_table_comment(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - comment="this is some table", - ) - - Table("some_table", m2, Column("test", String(10), primary_key=True)) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0], "remove_table_comment") - eq_(diffs[0][1].comment, None) - - def test_alter_table_comment(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - comment="this is some table", - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - comment="this is also some table", - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0], "add_table_comment") - eq_(diffs[0][1].comment, "this is also some table") - eq_(diffs[0][2], "this is some table") - - def test_existing_column_comment_no_change(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - Column("amount", Float, comment="the amount"), - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - Column("amount", Float, comment="the amount"), - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs, []) - - def test_add_column_comment(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - Column("amount", Float), - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - Column("amount", Float, comment="the amount"), - ) - - diffs = self._fixture(m1, m2) - eq_( - diffs, - [ - [ - ( - "modify_comment", - None, - "some_table", - "amount", - { - "existing_nullable": True, - "existing_type": mock.ANY, - "existing_server_default": False, - }, - None, - "the amount", - ) - ] - ], - ) - - def test_remove_column_comment(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - Column("amount", Float, comment="the amount"), - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - Column("amount", Float), - ) - - diffs = self._fixture(m1, m2) - eq_( - diffs, - [ - [ - ( - "modify_comment", - None, - "some_table", - "amount", - { - "existing_nullable": True, - "existing_type": mock.ANY, - "existing_server_default": False, - }, - "the amount", - None, - ) - ] - ], - ) - - def test_alter_column_comment(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - Column("amount", Float, comment="the amount"), - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - Column("amount", Float, comment="the adjusted amount"), - ) - - diffs = self._fixture(m1, m2) - - eq_( - diffs, - [ - [ - ( - "modify_comment", - None, - "some_table", - "amount", - { - "existing_nullable": True, - "existing_type": mock.ANY, - "existing_server_default": False, - }, - "the amount", - "the adjusted amount", - ) - ] - ], - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_computed.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_computed.py deleted file mode 100644 index 04a3caf..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_computed.py +++ /dev/null @@ -1,204 +0,0 @@ -import sqlalchemy as sa -from sqlalchemy import Column -from sqlalchemy import Integer -from sqlalchemy import MetaData -from sqlalchemy import Table - -from ._autogen_fixtures import AutogenFixtureTest -from ... import testing -from ...testing import config -from ...testing import eq_ -from ...testing import exclusions -from ...testing import is_ -from ...testing import is_true -from ...testing import mock -from ...testing import TestBase - - -class AutogenerateComputedTest(AutogenFixtureTest, TestBase): - __requires__ = ("computed_columns",) - __backend__ = True - - def test_add_computed_column(self): - m1 = MetaData() - m2 = MetaData() - - Table("user", m1, Column("id", Integer, primary_key=True)) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("foo", Integer, sa.Computed("5")), - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0], "add_column") - eq_(diffs[0][2], "user") - eq_(diffs[0][3].name, "foo") - c = diffs[0][3].computed - - is_true(isinstance(c, sa.Computed)) - is_(c.persisted, None) - eq_(str(c.sqltext), "5") - - def test_remove_computed_column(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("foo", Integer, sa.Computed("5")), - ) - - Table("user", m2, Column("id", Integer, primary_key=True)) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0], "remove_column") - eq_(diffs[0][2], "user") - c = diffs[0][3] - eq_(c.name, "foo") - - if config.requirements.computed_reflects_normally.enabled: - is_true(isinstance(c.computed, sa.Computed)) - else: - is_(c.computed, None) - - if config.requirements.computed_reflects_as_server_default.enabled: - is_true(isinstance(c.server_default, sa.DefaultClause)) - eq_(str(c.server_default.arg.text), "5") - elif config.requirements.computed_reflects_normally.enabled: - is_true(isinstance(c.computed, sa.Computed)) - else: - is_(c.computed, None) - - @testing.combinations( - lambda: (None, sa.Computed("bar*5")), - (lambda: (sa.Computed("bar*5"), None)), - lambda: ( - sa.Computed("bar*5"), - sa.Computed("bar * 42", persisted=True), - ), - lambda: (sa.Computed("bar*5"), sa.Computed("bar * 42")), - ) - @config.requirements.computed_reflects_normally - def test_cant_change_computed_warning(self, test_case): - arg_before, arg_after = testing.resolve_lambda(test_case, **locals()) - m1 = MetaData() - m2 = MetaData() - - arg_before = [] if arg_before is None else [arg_before] - arg_after = [] if arg_after is None else [arg_after] - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("bar", Integer), - Column("foo", Integer, *arg_before), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("bar", Integer), - Column("foo", Integer, *arg_after), - ) - - with mock.patch("alembic.util.warn") as mock_warn: - diffs = self._fixture(m1, m2) - - eq_( - mock_warn.mock_calls, - [mock.call("Computed default on user.foo cannot be modified")], - ) - - eq_(list(diffs), []) - - @testing.combinations( - lambda: (None, None), - lambda: (sa.Computed("5"), sa.Computed("5")), - lambda: (sa.Computed("bar*5"), sa.Computed("bar*5")), - lambda: (sa.Computed("bar*5"), sa.Computed("bar * \r\n\t5")), - ( - lambda: (sa.Computed("bar*5"), None), - config.requirements.computed_doesnt_reflect_as_server_default, - ), - ) - def test_computed_unchanged(self, test_case): - arg_before, arg_after = testing.resolve_lambda(test_case, **locals()) - m1 = MetaData() - m2 = MetaData() - - arg_before = [] if arg_before is None else [arg_before] - arg_after = [] if arg_after is None else [arg_after] - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("bar", Integer), - Column("foo", Integer, *arg_before), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("bar", Integer), - Column("foo", Integer, *arg_after), - ) - - with mock.patch("alembic.util.warn") as mock_warn: - diffs = self._fixture(m1, m2) - eq_(mock_warn.mock_calls, []) - - eq_(list(diffs), []) - - @config.requirements.computed_reflects_as_server_default - def test_remove_computed_default_on_computed(self): - """Asserts the current behavior which is that on PG and Oracle, - the GENERATED ALWAYS AS is reflected as a server default which we can't - tell is actually "computed", so these come out as a modification to - the server default. - - """ - m1 = MetaData() - m2 = MetaData() - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("bar", Integer), - Column("foo", Integer, sa.Computed("bar + 42")), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("bar", Integer), - Column("foo", Integer), - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0][0], "modify_default") - eq_(diffs[0][0][2], "user") - eq_(diffs[0][0][3], "foo") - old = diffs[0][0][-2] - new = diffs[0][0][-1] - - is_(new, None) - is_true(isinstance(old, sa.DefaultClause)) - - if exclusions.against(config, "postgresql"): - eq_(str(old.arg.text), "(bar + 42)") - elif exclusions.against(config, "oracle"): - eq_(str(old.arg.text), '"BAR"+42') diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_diffs.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_diffs.py deleted file mode 100644 index 75bcd37..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_diffs.py +++ /dev/null @@ -1,273 +0,0 @@ -from sqlalchemy import BigInteger -from sqlalchemy import Column -from sqlalchemy import Integer -from sqlalchemy import MetaData -from sqlalchemy import Table -from sqlalchemy.testing import in_ - -from ._autogen_fixtures import AutogenFixtureTest -from ... import testing -from ...testing import config -from ...testing import eq_ -from ...testing import is_ -from ...testing import TestBase - - -class AlterColumnTest(AutogenFixtureTest, TestBase): - __backend__ = True - - @testing.combinations((True,), (False,)) - @config.requirements.comments - def test_all_existings_filled(self, pk): - m1 = MetaData() - m2 = MetaData() - - Table("a", m1, Column("x", Integer, primary_key=pk)) - Table("a", m2, Column("x", Integer, comment="x", primary_key=pk)) - - alter_col = self._assert_alter_col(m1, m2, pk) - eq_(alter_col.modify_comment, "x") - - @testing.combinations((True,), (False,)) - @config.requirements.comments - def test_all_existings_filled_in_notnull(self, pk): - m1 = MetaData() - m2 = MetaData() - - Table("a", m1, Column("x", Integer, nullable=False, primary_key=pk)) - Table( - "a", - m2, - Column("x", Integer, nullable=False, comment="x", primary_key=pk), - ) - - self._assert_alter_col(m1, m2, pk, nullable=False) - - @testing.combinations((True,), (False,)) - @config.requirements.comments - def test_all_existings_filled_in_comment(self, pk): - m1 = MetaData() - m2 = MetaData() - - Table("a", m1, Column("x", Integer, comment="old", primary_key=pk)) - Table("a", m2, Column("x", Integer, comment="new", primary_key=pk)) - - alter_col = self._assert_alter_col(m1, m2, pk) - eq_(alter_col.existing_comment, "old") - - @testing.combinations((True,), (False,)) - @config.requirements.comments - def test_all_existings_filled_in_server_default(self, pk): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", m1, Column("x", Integer, server_default="5", primary_key=pk) - ) - Table( - "a", - m2, - Column( - "x", Integer, server_default="5", comment="new", primary_key=pk - ), - ) - - alter_col = self._assert_alter_col(m1, m2, pk) - in_("5", alter_col.existing_server_default.arg.text) - - def _assert_alter_col(self, m1, m2, pk, nullable=None): - ops = self._fixture(m1, m2, return_ops=True) - modify_table = ops.ops[-1] - alter_col = modify_table.ops[0] - - if nullable is None: - eq_(alter_col.existing_nullable, not pk) - else: - eq_(alter_col.existing_nullable, nullable) - assert alter_col.existing_type._compare_type_affinity(Integer()) - return alter_col - - -class AutoincrementTest(AutogenFixtureTest, TestBase): - __backend__ = True - __requires__ = ("integer_subtype_comparisons",) - - def test_alter_column_autoincrement_none(self): - m1 = MetaData() - m2 = MetaData() - - Table("a", m1, Column("x", Integer, nullable=False)) - Table("a", m2, Column("x", Integer, nullable=True)) - - ops = self._fixture(m1, m2, return_ops=True) - assert "autoincrement" not in ops.ops[0].ops[0].kw - - def test_alter_column_autoincrement_pk_false(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", - m1, - Column("x", Integer, primary_key=True, autoincrement=False), - ) - Table( - "a", - m2, - Column("x", BigInteger, primary_key=True, autoincrement=False), - ) - - ops = self._fixture(m1, m2, return_ops=True) - is_(ops.ops[0].ops[0].kw["autoincrement"], False) - - def test_alter_column_autoincrement_pk_implicit_true(self): - m1 = MetaData() - m2 = MetaData() - - Table("a", m1, Column("x", Integer, primary_key=True)) - Table("a", m2, Column("x", BigInteger, primary_key=True)) - - ops = self._fixture(m1, m2, return_ops=True) - is_(ops.ops[0].ops[0].kw["autoincrement"], True) - - def test_alter_column_autoincrement_pk_explicit_true(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", m1, Column("x", Integer, primary_key=True, autoincrement=True) - ) - Table( - "a", - m2, - Column("x", BigInteger, primary_key=True, autoincrement=True), - ) - - ops = self._fixture(m1, m2, return_ops=True) - is_(ops.ops[0].ops[0].kw["autoincrement"], True) - - def test_alter_column_autoincrement_nonpk_false(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", - m1, - Column("id", Integer, primary_key=True), - Column("x", Integer, autoincrement=False), - ) - Table( - "a", - m2, - Column("id", Integer, primary_key=True), - Column("x", BigInteger, autoincrement=False), - ) - - ops = self._fixture(m1, m2, return_ops=True) - is_(ops.ops[0].ops[0].kw["autoincrement"], False) - - def test_alter_column_autoincrement_nonpk_implicit_false(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", - m1, - Column("id", Integer, primary_key=True), - Column("x", Integer), - ) - Table( - "a", - m2, - Column("id", Integer, primary_key=True), - Column("x", BigInteger), - ) - - ops = self._fixture(m1, m2, return_ops=True) - assert "autoincrement" not in ops.ops[0].ops[0].kw - - def test_alter_column_autoincrement_nonpk_explicit_true(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", - m1, - Column("id", Integer, primary_key=True, autoincrement=False), - Column("x", Integer, autoincrement=True), - ) - Table( - "a", - m2, - Column("id", Integer, primary_key=True, autoincrement=False), - Column("x", BigInteger, autoincrement=True), - ) - - ops = self._fixture(m1, m2, return_ops=True) - is_(ops.ops[0].ops[0].kw["autoincrement"], True) - - def test_alter_column_autoincrement_compositepk_false(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", - m1, - Column("id", Integer, primary_key=True), - Column("x", Integer, primary_key=True, autoincrement=False), - ) - Table( - "a", - m2, - Column("id", Integer, primary_key=True), - Column("x", BigInteger, primary_key=True, autoincrement=False), - ) - - ops = self._fixture(m1, m2, return_ops=True) - is_(ops.ops[0].ops[0].kw["autoincrement"], False) - - def test_alter_column_autoincrement_compositepk_implicit_false(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", - m1, - Column("id", Integer, primary_key=True), - Column("x", Integer, primary_key=True), - ) - Table( - "a", - m2, - Column("id", Integer, primary_key=True), - Column("x", BigInteger, primary_key=True), - ) - - ops = self._fixture(m1, m2, return_ops=True) - assert "autoincrement" not in ops.ops[0].ops[0].kw - - @config.requirements.autoincrement_on_composite_pk - def test_alter_column_autoincrement_compositepk_explicit_true(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "a", - m1, - Column("id", Integer, primary_key=True, autoincrement=False), - Column("x", Integer, primary_key=True, autoincrement=True), - # on SQLA 1.0 and earlier, this being present - # trips the "add KEY for the primary key" so that the - # AUTO_INCREMENT keyword is accepted by MySQL. SQLA 1.1 and - # greater the columns are just reorganized. - mysql_engine="InnoDB", - ) - Table( - "a", - m2, - Column("id", Integer, primary_key=True, autoincrement=False), - Column("x", BigInteger, primary_key=True, autoincrement=True), - ) - - ops = self._fixture(m1, m2, return_ops=True) - is_(ops.ops[0].ops[0].kw["autoincrement"], True) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_fks.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_fks.py deleted file mode 100644 index 0240b98..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_fks.py +++ /dev/null @@ -1,1190 +0,0 @@ -from sqlalchemy import Column -from sqlalchemy import ForeignKeyConstraint -from sqlalchemy import Integer -from sqlalchemy import MetaData -from sqlalchemy import String -from sqlalchemy import Table - -from ._autogen_fixtures import AutogenFixtureTest -from ...testing import combinations -from ...testing import config -from ...testing import eq_ -from ...testing import mock -from ...testing import TestBase - - -class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase): - __backend__ = True - __requires__ = ("foreign_key_constraint_reflection",) - - def test_remove_fk(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", String(10)), - ForeignKeyConstraint(["test2"], ["some_table.test"]), - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", String(10)), - ) - - diffs = self._fixture(m1, m2) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["test2"], - "some_table", - ["test"], - conditional_name="servergenerated", - ) - - def test_add_fk(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id", Integer, primary_key=True), - Column("test", String(10)), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", String(10)), - ) - - Table( - "some_table", - m2, - Column("id", Integer, primary_key=True), - Column("test", String(10)), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", String(10)), - ForeignKeyConstraint(["test2"], ["some_table.test"]), - ) - - diffs = self._fixture(m1, m2) - - self._assert_fk_diff( - diffs[0], "add_fk", "user", ["test2"], "some_table", ["test"] - ) - - def test_no_change(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id", Integer, primary_key=True), - Column("test", String(10)), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", Integer), - ForeignKeyConstraint(["test2"], ["some_table.id"]), - ) - - Table( - "some_table", - m2, - Column("id", Integer, primary_key=True), - Column("test", String(10)), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", Integer), - ForeignKeyConstraint(["test2"], ["some_table.id"]), - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs, []) - - def test_no_change_composite_fk(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ForeignKeyConstraint( - ["other_id_1", "other_id_2"], - ["some_table.id_1", "some_table.id_2"], - ), - ) - - Table( - "some_table", - m2, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ForeignKeyConstraint( - ["other_id_1", "other_id_2"], - ["some_table.id_1", "some_table.id_2"], - ), - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs, []) - - def test_casing_convention_changed_so_put_drops_first(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("test", String(10), primary_key=True), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", String(10)), - ForeignKeyConstraint(["test2"], ["some_table.test"], name="MyFK"), - ) - - Table( - "some_table", - m2, - Column("test", String(10), primary_key=True), - ) - - # foreign key autogen currently does not take "name" into account, - # so change the def just for the purposes of testing the - # add/drop order for now. - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("test2", String(10)), - ForeignKeyConstraint(["a1"], ["some_table.test"], name="myfk"), - ) - - diffs = self._fixture(m1, m2) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["test2"], - "some_table", - ["test"], - name="MyFK" if config.requirements.fk_names.enabled else None, - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["a1"], - "some_table", - ["test"], - name="myfk", - ) - - def test_add_composite_fk_with_name(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ) - - Table( - "some_table", - m2, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ForeignKeyConstraint( - ["other_id_1", "other_id_2"], - ["some_table.id_1", "some_table.id_2"], - name="fk_test_name", - ), - ) - - diffs = self._fixture(m1, m2) - self._assert_fk_diff( - diffs[0], - "add_fk", - "user", - ["other_id_1", "other_id_2"], - "some_table", - ["id_1", "id_2"], - name="fk_test_name", - ) - - @config.requirements.no_name_normalize - def test_remove_composite_fk(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ForeignKeyConstraint( - ["other_id_1", "other_id_2"], - ["some_table.id_1", "some_table.id_2"], - name="fk_test_name", - ), - ) - - Table( - "some_table", - m2, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("a1", String(10), server_default="x"), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ) - - diffs = self._fixture(m1, m2) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["other_id_1", "other_id_2"], - "some_table", - ["id_1", "id_2"], - conditional_name="fk_test_name", - ) - - def test_add_fk_colkeys(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ) - - Table( - "some_table", - m2, - Column("id_1", String(10), key="tid1", primary_key=True), - Column("id_2", String(10), key="tid2", primary_key=True), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("other_id_1", String(10), key="oid1"), - Column("other_id_2", String(10), key="oid2"), - ForeignKeyConstraint( - ["oid1", "oid2"], - ["some_table.tid1", "some_table.tid2"], - name="fk_test_name", - ), - ) - - diffs = self._fixture(m1, m2) - - self._assert_fk_diff( - diffs[0], - "add_fk", - "user", - ["other_id_1", "other_id_2"], - "some_table", - ["id_1", "id_2"], - name="fk_test_name", - ) - - def test_no_change_colkeys(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id_1", String(10), primary_key=True), - Column("id_2", String(10), primary_key=True), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("other_id_1", String(10)), - Column("other_id_2", String(10)), - ForeignKeyConstraint( - ["other_id_1", "other_id_2"], - ["some_table.id_1", "some_table.id_2"], - ), - ) - - Table( - "some_table", - m2, - Column("id_1", String(10), key="tid1", primary_key=True), - Column("id_2", String(10), key="tid2", primary_key=True), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("other_id_1", String(10), key="oid1"), - Column("other_id_2", String(10), key="oid2"), - ForeignKeyConstraint( - ["oid1", "oid2"], ["some_table.tid1", "some_table.tid2"] - ), - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs, []) - - -class IncludeHooksTest(AutogenFixtureTest, TestBase): - __backend__ = True - __requires__ = ("fk_names",) - - @combinations(("object",), ("name",)) - @config.requirements.no_name_normalize - def test_remove_connection_fk(self, hook_type): - m1 = MetaData() - m2 = MetaData() - - ref = Table( - "ref", - m1, - Column("id", Integer, primary_key=True), - ) - t1 = Table( - "t", - m1, - Column("x", Integer), - Column("y", Integer), - ) - t1.append_constraint( - ForeignKeyConstraint([t1.c.x], [ref.c.id], name="fk1") - ) - t1.append_constraint( - ForeignKeyConstraint([t1.c.y], [ref.c.id], name="fk2") - ) - - ref = Table( - "ref", - m2, - Column("id", Integer, primary_key=True), - ) - Table( - "t", - m2, - Column("x", Integer), - Column("y", Integer), - ) - - if hook_type == "object": - - def include_object(object_, name, type_, reflected, compare_to): - return not ( - isinstance(object_, ForeignKeyConstraint) - and type_ == "foreign_key_constraint" - and reflected - and name == "fk1" - ) - - diffs = self._fixture(m1, m2, object_filters=include_object) - elif hook_type == "name": - - def include_name(name, type_, parent_names): - if name == "fk1": - if type_ == "index": # MariaDB thing - return True - eq_(type_, "foreign_key_constraint") - eq_( - parent_names, - { - "schema_name": None, - "table_name": "t", - "schema_qualified_table_name": "t", - }, - ) - return False - else: - return True - - diffs = self._fixture(m1, m2, name_filters=include_name) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "t", - ["y"], - "ref", - ["id"], - conditional_name="fk2", - ) - eq_(len(diffs), 1) - - def test_add_metadata_fk(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "ref", - m1, - Column("id", Integer, primary_key=True), - ) - Table( - "t", - m1, - Column("x", Integer), - Column("y", Integer), - ) - - ref = Table( - "ref", - m2, - Column("id", Integer, primary_key=True), - ) - t2 = Table( - "t", - m2, - Column("x", Integer), - Column("y", Integer), - ) - t2.append_constraint( - ForeignKeyConstraint([t2.c.x], [ref.c.id], name="fk1") - ) - t2.append_constraint( - ForeignKeyConstraint([t2.c.y], [ref.c.id], name="fk2") - ) - - def include_object(object_, name, type_, reflected, compare_to): - return not ( - isinstance(object_, ForeignKeyConstraint) - and type_ == "foreign_key_constraint" - and not reflected - and name == "fk1" - ) - - diffs = self._fixture(m1, m2, object_filters=include_object) - - self._assert_fk_diff( - diffs[0], "add_fk", "t", ["y"], "ref", ["id"], name="fk2" - ) - eq_(len(diffs), 1) - - @combinations(("object",), ("name",)) - @config.requirements.no_name_normalize - def test_change_fk(self, hook_type): - m1 = MetaData() - m2 = MetaData() - - r1a = Table( - "ref_a", - m1, - Column("a", Integer, primary_key=True), - ) - Table( - "ref_b", - m1, - Column("a", Integer, primary_key=True), - Column("b", Integer, primary_key=True), - ) - t1 = Table( - "t", - m1, - Column("x", Integer), - Column("y", Integer), - Column("z", Integer), - ) - t1.append_constraint( - ForeignKeyConstraint([t1.c.x], [r1a.c.a], name="fk1") - ) - t1.append_constraint( - ForeignKeyConstraint([t1.c.y], [r1a.c.a], name="fk2") - ) - - Table( - "ref_a", - m2, - Column("a", Integer, primary_key=True), - ) - r2b = Table( - "ref_b", - m2, - Column("a", Integer, primary_key=True), - Column("b", Integer, primary_key=True), - ) - t2 = Table( - "t", - m2, - Column("x", Integer), - Column("y", Integer), - Column("z", Integer), - ) - t2.append_constraint( - ForeignKeyConstraint( - [t2.c.x, t2.c.z], [r2b.c.a, r2b.c.b], name="fk1" - ) - ) - t2.append_constraint( - ForeignKeyConstraint( - [t2.c.y, t2.c.z], [r2b.c.a, r2b.c.b], name="fk2" - ) - ) - - if hook_type == "object": - - def include_object(object_, name, type_, reflected, compare_to): - return not ( - isinstance(object_, ForeignKeyConstraint) - and type_ == "foreign_key_constraint" - and name == "fk1" - ) - - diffs = self._fixture(m1, m2, object_filters=include_object) - elif hook_type == "name": - - def include_name(name, type_, parent_names): - if type_ == "index": - return True # MariaDB thing - - if name == "fk1": - eq_(type_, "foreign_key_constraint") - eq_( - parent_names, - { - "schema_name": None, - "table_name": "t", - "schema_qualified_table_name": "t", - }, - ) - return False - else: - return True - - diffs = self._fixture(m1, m2, name_filters=include_name) - - if hook_type == "object": - self._assert_fk_diff( - diffs[0], "remove_fk", "t", ["y"], "ref_a", ["a"], name="fk2" - ) - self._assert_fk_diff( - diffs[1], - "add_fk", - "t", - ["y", "z"], - "ref_b", - ["a", "b"], - name="fk2", - ) - eq_(len(diffs), 2) - elif hook_type == "name": - eq_( - {(d[0], d[1].name) for d in diffs}, - {("add_fk", "fk2"), ("add_fk", "fk1"), ("remove_fk", "fk2")}, - ) - - -class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase): - __backend__ = True - - def _fk_opts_fixture(self, old_opts, new_opts): - m1 = MetaData() - m2 = MetaData() - - Table( - "some_table", - m1, - Column("id", Integer, primary_key=True), - Column("test", String(10)), - ) - - Table( - "user", - m1, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("tid", Integer), - ForeignKeyConstraint(["tid"], ["some_table.id"], **old_opts), - ) - - Table( - "some_table", - m2, - Column("id", Integer, primary_key=True), - Column("test", String(10)), - ) - - Table( - "user", - m2, - Column("id", Integer, primary_key=True), - Column("name", String(50), nullable=False), - Column("tid", Integer), - ForeignKeyConstraint(["tid"], ["some_table.id"], **new_opts), - ) - - return self._fixture(m1, m2) - - @config.requirements.fk_ondelete_is_reflected - def test_add_ondelete(self): - diffs = self._fk_opts_fixture({}, {"ondelete": "cascade"}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - ondelete=None, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - ondelete="cascade", - ) - - @config.requirements.fk_ondelete_is_reflected - def test_remove_ondelete(self): - diffs = self._fk_opts_fixture({"ondelete": "CASCADE"}, {}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - ondelete="CASCADE", - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - ondelete=None, - ) - - def test_nochange_ondelete(self): - """test case sensitivity""" - diffs = self._fk_opts_fixture( - {"ondelete": "caSCAde"}, {"ondelete": "CasCade"} - ) - eq_(diffs, []) - - @config.requirements.fk_onupdate_is_reflected - def test_add_onupdate(self): - diffs = self._fk_opts_fixture({}, {"onupdate": "cascade"}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate=None, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate="cascade", - ) - - @config.requirements.fk_onupdate_is_reflected - def test_remove_onupdate(self): - diffs = self._fk_opts_fixture({"onupdate": "CASCADE"}, {}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate="CASCADE", - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate=None, - ) - - @config.requirements.fk_onupdate - def test_nochange_onupdate(self): - """test case sensitivity""" - diffs = self._fk_opts_fixture( - {"onupdate": "caSCAde"}, {"onupdate": "CasCade"} - ) - eq_(diffs, []) - - @config.requirements.fk_ondelete_restrict - def test_nochange_ondelete_restrict(self): - """test the RESTRICT option which MySQL doesn't report on""" - - diffs = self._fk_opts_fixture( - {"ondelete": "restrict"}, {"ondelete": "restrict"} - ) - eq_(diffs, []) - - @config.requirements.fk_onupdate_restrict - def test_nochange_onupdate_restrict(self): - """test the RESTRICT option which MySQL doesn't report on""" - - diffs = self._fk_opts_fixture( - {"onupdate": "restrict"}, {"onupdate": "restrict"} - ) - eq_(diffs, []) - - @config.requirements.fk_ondelete_noaction - def test_nochange_ondelete_noaction(self): - """test the NO ACTION option which generally comes back as None""" - - diffs = self._fk_opts_fixture( - {"ondelete": "no action"}, {"ondelete": "no action"} - ) - eq_(diffs, []) - - @config.requirements.fk_onupdate - def test_nochange_onupdate_noaction(self): - """test the NO ACTION option which generally comes back as None""" - - diffs = self._fk_opts_fixture( - {"onupdate": "no action"}, {"onupdate": "no action"} - ) - eq_(diffs, []) - - @config.requirements.fk_ondelete_restrict - def test_change_ondelete_from_restrict(self): - """test the RESTRICT option which MySQL doesn't report on""" - - # note that this is impossible to detect if we change - # from RESTRICT to NO ACTION on MySQL. - diffs = self._fk_opts_fixture( - {"ondelete": "restrict"}, {"ondelete": "cascade"} - ) - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate=None, - ondelete=mock.ANY, # MySQL reports None, PG reports RESTRICT - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate=None, - ondelete="cascade", - ) - - @config.requirements.fk_ondelete_restrict - def test_change_onupdate_from_restrict(self): - """test the RESTRICT option which MySQL doesn't report on""" - - # note that this is impossible to detect if we change - # from RESTRICT to NO ACTION on MySQL. - diffs = self._fk_opts_fixture( - {"onupdate": "restrict"}, {"onupdate": "cascade"} - ) - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate=mock.ANY, # MySQL reports None, PG reports RESTRICT - ondelete=None, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate="cascade", - ondelete=None, - ) - - @config.requirements.fk_ondelete_is_reflected - @config.requirements.fk_onupdate_is_reflected - def test_ondelete_onupdate_combo(self): - diffs = self._fk_opts_fixture( - {"onupdate": "CASCADE", "ondelete": "SET NULL"}, - {"onupdate": "RESTRICT", "ondelete": "RESTRICT"}, - ) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate="CASCADE", - ondelete="SET NULL", - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - onupdate="RESTRICT", - ondelete="RESTRICT", - ) - - @config.requirements.fk_initially - def test_add_initially_deferred(self): - diffs = self._fk_opts_fixture({}, {"initially": "deferred"}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially=None, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially="deferred", - ) - - @config.requirements.fk_initially - def test_remove_initially_deferred(self): - diffs = self._fk_opts_fixture({"initially": "deferred"}, {}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially="DEFERRED", - deferrable=True, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially=None, - ) - - @config.requirements.fk_deferrable - @config.requirements.fk_initially - def test_add_initially_immediate_plus_deferrable(self): - diffs = self._fk_opts_fixture( - {}, {"initially": "immediate", "deferrable": True} - ) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially=None, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially="immediate", - deferrable=True, - ) - - @config.requirements.fk_deferrable - @config.requirements.fk_initially - def test_remove_initially_immediate_plus_deferrable(self): - diffs = self._fk_opts_fixture( - {"initially": "immediate", "deferrable": True}, {} - ) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially=None, # immediate is the default - deferrable=True, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - initially=None, - deferrable=None, - ) - - @config.requirements.fk_initially - @config.requirements.fk_deferrable - def test_add_initially_deferrable_nochange_one(self): - diffs = self._fk_opts_fixture( - {"deferrable": True, "initially": "immediate"}, - {"deferrable": True, "initially": "immediate"}, - ) - - eq_(diffs, []) - - @config.requirements.fk_initially - @config.requirements.fk_deferrable - def test_add_initially_deferrable_nochange_two(self): - diffs = self._fk_opts_fixture( - {"deferrable": True, "initially": "deferred"}, - {"deferrable": True, "initially": "deferred"}, - ) - - eq_(diffs, []) - - @config.requirements.fk_initially - @config.requirements.fk_deferrable - def test_add_initially_deferrable_nochange_three(self): - diffs = self._fk_opts_fixture( - {"deferrable": None, "initially": "deferred"}, - {"deferrable": None, "initially": "deferred"}, - ) - - eq_(diffs, []) - - @config.requirements.fk_deferrable - def test_add_deferrable(self): - diffs = self._fk_opts_fixture({}, {"deferrable": True}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - deferrable=None, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - deferrable=True, - ) - - @config.requirements.fk_deferrable_is_reflected - def test_remove_deferrable(self): - diffs = self._fk_opts_fixture({"deferrable": True}, {}) - - self._assert_fk_diff( - diffs[0], - "remove_fk", - "user", - ["tid"], - "some_table", - ["id"], - deferrable=True, - conditional_name="servergenerated", - ) - - self._assert_fk_diff( - diffs[1], - "add_fk", - "user", - ["tid"], - "some_table", - ["id"], - deferrable=None, - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_identity.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_identity.py deleted file mode 100644 index 3dee9fc..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_identity.py +++ /dev/null @@ -1,226 +0,0 @@ -import sqlalchemy as sa -from sqlalchemy import Column -from sqlalchemy import Integer -from sqlalchemy import MetaData -from sqlalchemy import Table - -from alembic.util import sqla_compat -from ._autogen_fixtures import AutogenFixtureTest -from ... import testing -from ...testing import config -from ...testing import eq_ -from ...testing import is_true -from ...testing import TestBase - - -class AutogenerateIdentityTest(AutogenFixtureTest, TestBase): - __requires__ = ("identity_columns",) - __backend__ = True - - def test_add_identity_column(self): - m1 = MetaData() - m2 = MetaData() - - Table("user", m1, Column("other", sa.Text)) - - Table( - "user", - m2, - Column("other", sa.Text), - Column( - "id", - Integer, - sa.Identity(start=5, increment=7), - primary_key=True, - ), - ) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0], "add_column") - eq_(diffs[0][2], "user") - eq_(diffs[0][3].name, "id") - i = diffs[0][3].identity - - is_true(isinstance(i, sa.Identity)) - eq_(i.start, 5) - eq_(i.increment, 7) - - def test_remove_identity_column(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "user", - m1, - Column( - "id", - Integer, - sa.Identity(start=2, increment=3), - primary_key=True, - ), - ) - - Table("user", m2) - - diffs = self._fixture(m1, m2) - - eq_(diffs[0][0], "remove_column") - eq_(diffs[0][2], "user") - c = diffs[0][3] - eq_(c.name, "id") - - is_true(isinstance(c.identity, sa.Identity)) - eq_(c.identity.start, 2) - eq_(c.identity.increment, 3) - - def test_no_change_identity_column(self): - m1 = MetaData() - m2 = MetaData() - - for m in (m1, m2): - id_ = sa.Identity(start=2) - Table("user", m, Column("id", Integer, id_)) - - diffs = self._fixture(m1, m2) - - eq_(diffs, []) - - def test_dialect_kwargs_changes(self): - m1 = MetaData() - m2 = MetaData() - - if sqla_compat.identity_has_dialect_kwargs: - args = {"oracle_on_null": True, "oracle_order": True} - else: - args = {"on_null": True, "order": True} - - Table("user", m1, Column("id", Integer, sa.Identity(start=2))) - id_ = sa.Identity(start=2, **args) - Table("user", m2, Column("id", Integer, id_)) - - diffs = self._fixture(m1, m2) - if config.db.name == "oracle": - is_true(len(diffs), 1) - eq_(diffs[0][0][0], "modify_default") - else: - eq_(diffs, []) - - @testing.combinations( - (None, dict(start=2)), - (dict(start=2), None), - (dict(start=2), dict(start=2, increment=7)), - (dict(always=False), dict(always=True)), - ( - dict(start=1, minvalue=0, maxvalue=100, cycle=True), - dict(start=1, minvalue=0, maxvalue=100, cycle=False), - ), - ( - dict(start=10, increment=3, maxvalue=9999), - dict(start=10, increment=1, maxvalue=3333), - ), - ) - @config.requirements.identity_columns_alter - def test_change_identity(self, before, after): - arg_before = (sa.Identity(**before),) if before else () - arg_after = (sa.Identity(**after),) if after else () - - m1 = MetaData() - m2 = MetaData() - - Table( - "user", - m1, - Column("id", Integer, *arg_before), - Column("other", sa.Text), - ) - - Table( - "user", - m2, - Column("id", Integer, *arg_after), - Column("other", sa.Text), - ) - - diffs = self._fixture(m1, m2) - - eq_(len(diffs[0]), 1) - diffs = diffs[0][0] - eq_(diffs[0], "modify_default") - eq_(diffs[2], "user") - eq_(diffs[3], "id") - old = diffs[5] - new = diffs[6] - - def check(kw, idt): - if kw: - is_true(isinstance(idt, sa.Identity)) - for k, v in kw.items(): - eq_(getattr(idt, k), v) - else: - is_true(idt in (None, False)) - - check(before, old) - check(after, new) - - def test_add_identity_to_column(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "user", - m1, - Column("id", Integer), - Column("other", sa.Text), - ) - - Table( - "user", - m2, - Column("id", Integer, sa.Identity(start=2, maxvalue=1000)), - Column("other", sa.Text), - ) - - diffs = self._fixture(m1, m2) - - eq_(len(diffs[0]), 1) - diffs = diffs[0][0] - eq_(diffs[0], "modify_default") - eq_(diffs[2], "user") - eq_(diffs[3], "id") - eq_(diffs[5], None) - added = diffs[6] - - is_true(isinstance(added, sa.Identity)) - eq_(added.start, 2) - eq_(added.maxvalue, 1000) - - def test_remove_identity_from_column(self): - m1 = MetaData() - m2 = MetaData() - - Table( - "user", - m1, - Column("id", Integer, sa.Identity(start=2, maxvalue=1000)), - Column("other", sa.Text), - ) - - Table( - "user", - m2, - Column("id", Integer), - Column("other", sa.Text), - ) - - diffs = self._fixture(m1, m2) - - eq_(len(diffs[0]), 1) - diffs = diffs[0][0] - eq_(diffs[0], "modify_default") - eq_(diffs[2], "user") - eq_(diffs[3], "id") - eq_(diffs[6], None) - removed = diffs[5] - - is_true(isinstance(removed, sa.Identity)) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_environment.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_environment.py deleted file mode 100644 index df2d9af..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_environment.py +++ /dev/null @@ -1,364 +0,0 @@ -import io - -from ...migration import MigrationContext -from ...testing import assert_raises -from ...testing import config -from ...testing import eq_ -from ...testing import is_ -from ...testing import is_false -from ...testing import is_not_ -from ...testing import is_true -from ...testing import ne_ -from ...testing.fixtures import TestBase - - -class MigrationTransactionTest(TestBase): - __backend__ = True - - conn = None - - def _fixture(self, opts): - self.conn = conn = config.db.connect() - - if opts.get("as_sql", False): - self.context = MigrationContext.configure( - dialect=conn.dialect, opts=opts - ) - self.context.output_buffer = self.context.impl.output_buffer = ( - io.StringIO() - ) - else: - self.context = MigrationContext.configure( - connection=conn, opts=opts - ) - return self.context - - def teardown_method(self): - if self.conn: - self.conn.close() - - def test_proxy_transaction_rollback(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": True} - ) - - is_false(self.conn.in_transaction()) - proxy = context.begin_transaction(_per_migration=True) - is_true(self.conn.in_transaction()) - proxy.rollback() - is_false(self.conn.in_transaction()) - - def test_proxy_transaction_commit(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": True} - ) - proxy = context.begin_transaction(_per_migration=True) - is_true(self.conn.in_transaction()) - proxy.commit() - is_false(self.conn.in_transaction()) - - def test_proxy_transaction_contextmanager_commit(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": True} - ) - proxy = context.begin_transaction(_per_migration=True) - is_true(self.conn.in_transaction()) - with proxy: - pass - is_false(self.conn.in_transaction()) - - def test_proxy_transaction_contextmanager_rollback(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": True} - ) - proxy = context.begin_transaction(_per_migration=True) - is_true(self.conn.in_transaction()) - - def go(): - with proxy: - raise Exception("hi") - - assert_raises(Exception, go) - is_false(self.conn.in_transaction()) - - def test_proxy_transaction_contextmanager_explicit_rollback(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": True} - ) - proxy = context.begin_transaction(_per_migration=True) - is_true(self.conn.in_transaction()) - - with proxy: - is_true(self.conn.in_transaction()) - proxy.rollback() - is_false(self.conn.in_transaction()) - - is_false(self.conn.in_transaction()) - - def test_proxy_transaction_contextmanager_explicit_commit(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": True} - ) - proxy = context.begin_transaction(_per_migration=True) - is_true(self.conn.in_transaction()) - - with proxy: - is_true(self.conn.in_transaction()) - proxy.commit() - is_false(self.conn.in_transaction()) - - is_false(self.conn.in_transaction()) - - def test_transaction_per_migration_transactional_ddl(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": True} - ) - - is_false(self.conn.in_transaction()) - - with context.begin_transaction(): - is_false(self.conn.in_transaction()) - with context.begin_transaction(_per_migration=True): - is_true(self.conn.in_transaction()) - - is_false(self.conn.in_transaction()) - is_false(self.conn.in_transaction()) - - def test_transaction_per_migration_non_transactional_ddl(self): - context = self._fixture( - {"transaction_per_migration": True, "transactional_ddl": False} - ) - - is_false(self.conn.in_transaction()) - - with context.begin_transaction(): - is_false(self.conn.in_transaction()) - with context.begin_transaction(_per_migration=True): - is_true(self.conn.in_transaction()) - - is_false(self.conn.in_transaction()) - is_false(self.conn.in_transaction()) - - def test_transaction_per_all_transactional_ddl(self): - context = self._fixture({"transactional_ddl": True}) - - is_false(self.conn.in_transaction()) - - with context.begin_transaction(): - is_true(self.conn.in_transaction()) - with context.begin_transaction(_per_migration=True): - is_true(self.conn.in_transaction()) - - is_true(self.conn.in_transaction()) - is_false(self.conn.in_transaction()) - - def test_transaction_per_all_non_transactional_ddl(self): - context = self._fixture({"transactional_ddl": False}) - - is_false(self.conn.in_transaction()) - - with context.begin_transaction(): - is_false(self.conn.in_transaction()) - with context.begin_transaction(_per_migration=True): - is_true(self.conn.in_transaction()) - - is_false(self.conn.in_transaction()) - is_false(self.conn.in_transaction()) - - def test_transaction_per_all_sqlmode(self): - context = self._fixture({"as_sql": True}) - - context.execute("step 1") - with context.begin_transaction(): - context.execute("step 2") - with context.begin_transaction(_per_migration=True): - context.execute("step 3") - - context.execute("step 4") - context.execute("step 5") - - if context.impl.transactional_ddl: - self._assert_impl_steps( - "step 1", - "BEGIN", - "step 2", - "step 3", - "step 4", - "COMMIT", - "step 5", - ) - else: - self._assert_impl_steps( - "step 1", "step 2", "step 3", "step 4", "step 5" - ) - - def test_transaction_per_migration_sqlmode(self): - context = self._fixture( - {"as_sql": True, "transaction_per_migration": True} - ) - - context.execute("step 1") - with context.begin_transaction(): - context.execute("step 2") - with context.begin_transaction(_per_migration=True): - context.execute("step 3") - - context.execute("step 4") - context.execute("step 5") - - if context.impl.transactional_ddl: - self._assert_impl_steps( - "step 1", - "step 2", - "BEGIN", - "step 3", - "COMMIT", - "step 4", - "step 5", - ) - else: - self._assert_impl_steps( - "step 1", "step 2", "step 3", "step 4", "step 5" - ) - - @config.requirements.autocommit_isolation - def test_autocommit_block(self): - context = self._fixture({"transaction_per_migration": True}) - - is_false(self.conn.in_transaction()) - - with context.begin_transaction(): - is_false(self.conn.in_transaction()) - with context.begin_transaction(_per_migration=True): - is_true(self.conn.in_transaction()) - - with context.autocommit_block(): - # in 1.x, self.conn is separate due to the - # execution_options call. however for future they are the - # same connection and there is a "transaction" block - # despite autocommit - if self.is_sqlalchemy_future: - is_(context.connection, self.conn) - else: - is_not_(context.connection, self.conn) - is_false(self.conn.in_transaction()) - - eq_( - context.connection._execution_options[ - "isolation_level" - ], - "AUTOCOMMIT", - ) - - ne_( - context.connection._execution_options.get( - "isolation_level", None - ), - "AUTOCOMMIT", - ) - is_true(self.conn.in_transaction()) - - is_false(self.conn.in_transaction()) - is_false(self.conn.in_transaction()) - - @config.requirements.autocommit_isolation - def test_autocommit_block_no_transaction(self): - context = self._fixture({"transaction_per_migration": True}) - - is_false(self.conn.in_transaction()) - - with context.autocommit_block(): - is_true(context.connection.in_transaction()) - - # in 1.x, self.conn is separate due to the execution_options - # call. however for future they are the same connection and there - # is a "transaction" block despite autocommit - if self.is_sqlalchemy_future: - is_(context.connection, self.conn) - else: - is_not_(context.connection, self.conn) - is_false(self.conn.in_transaction()) - - eq_( - context.connection._execution_options["isolation_level"], - "AUTOCOMMIT", - ) - - ne_( - context.connection._execution_options.get("isolation_level", None), - "AUTOCOMMIT", - ) - - is_false(self.conn.in_transaction()) - - def test_autocommit_block_transactional_ddl_sqlmode(self): - context = self._fixture( - { - "transaction_per_migration": True, - "transactional_ddl": True, - "as_sql": True, - } - ) - - with context.begin_transaction(): - context.execute("step 1") - with context.begin_transaction(_per_migration=True): - context.execute("step 2") - - with context.autocommit_block(): - context.execute("step 3") - - context.execute("step 4") - - context.execute("step 5") - - self._assert_impl_steps( - "step 1", - "BEGIN", - "step 2", - "COMMIT", - "step 3", - "BEGIN", - "step 4", - "COMMIT", - "step 5", - ) - - def test_autocommit_block_nontransactional_ddl_sqlmode(self): - context = self._fixture( - { - "transaction_per_migration": True, - "transactional_ddl": False, - "as_sql": True, - } - ) - - with context.begin_transaction(): - context.execute("step 1") - with context.begin_transaction(_per_migration=True): - context.execute("step 2") - - with context.autocommit_block(): - context.execute("step 3") - - context.execute("step 4") - - context.execute("step 5") - - self._assert_impl_steps( - "step 1", "step 2", "step 3", "step 4", "step 5" - ) - - def _assert_impl_steps(self, *steps): - to_check = self.context.output_buffer.getvalue() - - self.context.impl.output_buffer = buf = io.StringIO() - for step in steps: - if step == "BEGIN": - self.context.impl.emit_begin() - elif step == "COMMIT": - self.context.impl.emit_commit() - else: - self.context.impl._exec(step) - - eq_(to_check, buf.getvalue()) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_op.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_op.py deleted file mode 100644 index a63b3f2..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/suite/test_op.py +++ /dev/null @@ -1,42 +0,0 @@ -"""Test against the builders in the op.* module.""" - -from sqlalchemy import Column -from sqlalchemy import event -from sqlalchemy import Integer -from sqlalchemy import String -from sqlalchemy import Table -from sqlalchemy.sql import text - -from ...testing.fixtures import AlterColRoundTripFixture -from ...testing.fixtures import TestBase - - -@event.listens_for(Table, "after_parent_attach") -def _add_cols(table, metadata): - if table.name == "tbl_with_auto_appended_column": - table.append_column(Column("bat", Integer)) - - -class BackendAlterColumnTest(AlterColRoundTripFixture, TestBase): - __backend__ = True - - def test_rename_column(self): - self._run_alter_col({}, {"name": "newname"}) - - def test_modify_type_int_str(self): - self._run_alter_col({"type": Integer()}, {"type": String(50)}) - - def test_add_server_default_int(self): - self._run_alter_col({"type": Integer}, {"server_default": text("5")}) - - def test_modify_server_default_int(self): - self._run_alter_col( - {"type": Integer, "server_default": text("2")}, - {"server_default": text("5")}, - ) - - def test_modify_nullable_to_non(self): - self._run_alter_col({}, {"nullable": False}) - - def test_modify_non_nullable_to_nullable(self): - self._run_alter_col({"nullable": False}, {"nullable": True}) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/util.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/util.py deleted file mode 100644 index 4517a69..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/util.py +++ /dev/null @@ -1,126 +0,0 @@ -# testing/util.py -# Copyright (C) 2005-2019 the SQLAlchemy authors and contributors -# -# -# This module is part of SQLAlchemy and is released under -# the MIT License: http://www.opensource.org/licenses/mit-license.php -from __future__ import annotations - -import types -from typing import Union - -from sqlalchemy.util import inspect_getfullargspec - -from ..util import sqla_2 - - -def flag_combinations(*combinations): - """A facade around @testing.combinations() oriented towards boolean - keyword-based arguments. - - Basically generates a nice looking identifier based on the keywords - and also sets up the argument names. - - E.g.:: - - @testing.flag_combinations( - dict(lazy=False, passive=False), - dict(lazy=True, passive=False), - dict(lazy=False, passive=True), - dict(lazy=False, passive=True, raiseload=True), - ) - - - would result in:: - - @testing.combinations( - ('', False, False, False), - ('lazy', True, False, False), - ('lazy_passive', True, True, False), - ('lazy_passive', True, True, True), - id_='iaaa', - argnames='lazy,passive,raiseload' - ) - - """ - from sqlalchemy.testing import config - - keys = set() - - for d in combinations: - keys.update(d) - - keys = sorted(keys) - - return config.combinations( - *[ - ("_".join(k for k in keys if d.get(k, False)),) - + tuple(d.get(k, False) for k in keys) - for d in combinations - ], - id_="i" + ("a" * len(keys)), - argnames=",".join(keys), - ) - - -def resolve_lambda(__fn, **kw): - """Given a no-arg lambda and a namespace, return a new lambda that - has all the values filled in. - - This is used so that we can have module-level fixtures that - refer to instance-level variables using lambdas. - - """ - - pos_args = inspect_getfullargspec(__fn)[0] - pass_pos_args = {arg: kw.pop(arg) for arg in pos_args} - glb = dict(__fn.__globals__) - glb.update(kw) - new_fn = types.FunctionType(__fn.__code__, glb) - return new_fn(**pass_pos_args) - - -def metadata_fixture(ddl="function"): - """Provide MetaData for a pytest fixture.""" - - from sqlalchemy.testing import config - from . import fixture_functions - - def decorate(fn): - def run_ddl(self): - from sqlalchemy import schema - - metadata = self.metadata = schema.MetaData() - try: - result = fn(self, metadata) - metadata.create_all(config.db) - # TODO: - # somehow get a per-function dml erase fixture here - yield result - finally: - metadata.drop_all(config.db) - - return fixture_functions.fixture(scope=ddl)(run_ddl) - - return decorate - - -def _safe_int(value: str) -> Union[int, str]: - try: - return int(value) - except: - return value - - -def testing_engine(url=None, options=None, future=False): - from sqlalchemy.testing import config - from sqlalchemy.testing.engines import testing_engine - - if not future: - future = getattr(config._current.options, "future_engine", False) - - if not sqla_2: - kw = {"future": future} if future else {} - else: - kw = {} - return testing_engine(url, options, **kw) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/testing/warnings.py b/backend/venv/lib/python3.12/site-packages/alembic/testing/warnings.py deleted file mode 100644 index e87136b..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/testing/warnings.py +++ /dev/null @@ -1,40 +0,0 @@ -# testing/warnings.py -# Copyright (C) 2005-2021 the SQLAlchemy authors and contributors -# -# -# This module is part of SQLAlchemy and is released under -# the MIT License: http://www.opensource.org/licenses/mit-license.php - - -import warnings - -from sqlalchemy import exc as sa_exc - -from ..util import sqla_14 - - -def setup_filters(): - """Set global warning behavior for the test suite.""" - - warnings.resetwarnings() - - warnings.filterwarnings("error", category=sa_exc.SADeprecationWarning) - warnings.filterwarnings("error", category=sa_exc.SAWarning) - - # some selected deprecations... - warnings.filterwarnings("error", category=DeprecationWarning) - if not sqla_14: - # 1.3 uses pkg_resources in PluginLoader - warnings.filterwarnings( - "ignore", - "pkg_resources is deprecated as an API", - DeprecationWarning, - ) - try: - import pytest - except ImportError: - pass - else: - warnings.filterwarnings( - "once", category=pytest.PytestDeprecationWarning - ) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/__init__.py b/backend/venv/lib/python3.12/site-packages/alembic/util/__init__.py deleted file mode 100644 index 4724e1f..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -from .editor import open_in_editor as open_in_editor -from .exc import AutogenerateDiffsDetected as AutogenerateDiffsDetected -from .exc import CommandError as CommandError -from .langhelpers import _with_legacy_names as _with_legacy_names -from .langhelpers import asbool as asbool -from .langhelpers import dedupe_tuple as dedupe_tuple -from .langhelpers import Dispatcher as Dispatcher -from .langhelpers import EMPTY_DICT as EMPTY_DICT -from .langhelpers import immutabledict as immutabledict -from .langhelpers import memoized_property as memoized_property -from .langhelpers import ModuleClsProxy as ModuleClsProxy -from .langhelpers import not_none as not_none -from .langhelpers import rev_id as rev_id -from .langhelpers import to_list as to_list -from .langhelpers import to_tuple as to_tuple -from .langhelpers import unique_list as unique_list -from .messaging import err as err -from .messaging import format_as_comma as format_as_comma -from .messaging import msg as msg -from .messaging import obfuscate_url_pw as obfuscate_url_pw -from .messaging import status as status -from .messaging import warn as warn -from .messaging import write_outstream as write_outstream -from .pyfiles import coerce_resource_to_filename as coerce_resource_to_filename -from .pyfiles import load_python_file as load_python_file -from .pyfiles import pyc_file_from_path as pyc_file_from_path -from .pyfiles import template_to_file as template_to_file -from .sqla_compat import has_computed as has_computed -from .sqla_compat import sqla_13 as sqla_13 -from .sqla_compat import sqla_14 as sqla_14 -from .sqla_compat import sqla_2 as sqla_2 - - -if not sqla_13: - raise CommandError("SQLAlchemy 1.3.0 or greater is required.") diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/compat.py b/backend/venv/lib/python3.12/site-packages/alembic/util/compat.py deleted file mode 100644 index e185cc4..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/compat.py +++ /dev/null @@ -1,89 +0,0 @@ -# mypy: no-warn-unused-ignores - -from __future__ import annotations - -from configparser import ConfigParser -import io -import os -import sys -import typing -from typing import Any -from typing import List -from typing import Optional -from typing import Sequence -from typing import Union - -if True: - # zimports hack for too-long names - from sqlalchemy.util import ( # noqa: F401 - inspect_getfullargspec as inspect_getfullargspec, - ) - from sqlalchemy.util.compat import ( # noqa: F401 - inspect_formatargspec as inspect_formatargspec, - ) - -is_posix = os.name == "posix" - -py311 = sys.version_info >= (3, 11) -py310 = sys.version_info >= (3, 10) -py39 = sys.version_info >= (3, 9) - - -# produce a wrapper that allows encoded text to stream -# into a given buffer, but doesn't close it. -# not sure of a more idiomatic approach to this. -class EncodedIO(io.TextIOWrapper): - def close(self) -> None: - pass - - -if py39: - from importlib import resources as _resources - - importlib_resources = _resources - from importlib import metadata as _metadata - - importlib_metadata = _metadata - from importlib.metadata import EntryPoint as EntryPoint -else: - import importlib_resources # type:ignore # noqa - import importlib_metadata # type:ignore # noqa - from importlib_metadata import EntryPoint # type:ignore # noqa - - -def importlib_metadata_get(group: str) -> Sequence[EntryPoint]: - ep = importlib_metadata.entry_points() - if hasattr(ep, "select"): - return ep.select(group=group) - else: - return ep.get(group, ()) # type: ignore - - -def formatannotation_fwdref( - annotation: Any, base_module: Optional[Any] = None -) -> str: - """vendored from python 3.7""" - # copied over _formatannotation from sqlalchemy 2.0 - - if isinstance(annotation, str): - return annotation - - if getattr(annotation, "__module__", None) == "typing": - return repr(annotation).replace("typing.", "").replace("~", "") - if isinstance(annotation, type): - if annotation.__module__ in ("builtins", base_module): - return repr(annotation.__qualname__) - return annotation.__module__ + "." + annotation.__qualname__ - elif isinstance(annotation, typing.TypeVar): - return repr(annotation).replace("~", "") - return repr(annotation).replace("~", "") - - -def read_config_parser( - file_config: ConfigParser, - file_argument: Sequence[Union[str, os.PathLike[str]]], -) -> List[str]: - if py310: - return file_config.read(file_argument, encoding="locale") - else: - return file_config.read(file_argument) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/editor.py b/backend/venv/lib/python3.12/site-packages/alembic/util/editor.py deleted file mode 100644 index f1d1557..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/editor.py +++ /dev/null @@ -1,81 +0,0 @@ -from __future__ import annotations - -import os -from os.path import exists -from os.path import join -from os.path import splitext -from subprocess import check_call -from typing import Dict -from typing import List -from typing import Mapping -from typing import Optional - -from .compat import is_posix -from .exc import CommandError - - -def open_in_editor( - filename: str, environ: Optional[Dict[str, str]] = None -) -> None: - """ - Opens the given file in a text editor. If the environment variable - ``EDITOR`` is set, this is taken as preference. - - Otherwise, a list of commonly installed editors is tried. - - If no editor matches, an :py:exc:`OSError` is raised. - - :param filename: The filename to open. Will be passed verbatim to the - editor command. - :param environ: An optional drop-in replacement for ``os.environ``. Used - mainly for testing. - """ - env = os.environ if environ is None else environ - try: - editor = _find_editor(env) - check_call([editor, filename]) - except Exception as exc: - raise CommandError("Error executing editor (%s)" % (exc,)) from exc - - -def _find_editor(environ: Mapping[str, str]) -> str: - candidates = _default_editors() - for i, var in enumerate(("EDITOR", "VISUAL")): - if var in environ: - user_choice = environ[var] - if exists(user_choice): - return user_choice - if os.sep not in user_choice: - candidates.insert(i, user_choice) - - for candidate in candidates: - path = _find_executable(candidate, environ) - if path is not None: - return path - raise OSError( - "No suitable editor found. Please set the " - '"EDITOR" or "VISUAL" environment variables' - ) - - -def _find_executable( - candidate: str, environ: Mapping[str, str] -) -> Optional[str]: - # Assuming this is on the PATH, we need to determine it's absolute - # location. Otherwise, ``check_call`` will fail - if not is_posix and splitext(candidate)[1] != ".exe": - candidate += ".exe" - for path in environ.get("PATH", "").split(os.pathsep): - value = join(path, candidate) - if exists(value): - return value - return None - - -def _default_editors() -> List[str]: - # Look for an editor. Prefer the user's choice by env-var, fall back to - # most commonly installed editor (nano/vim) - if is_posix: - return ["sensible-editor", "editor", "nano", "vim", "code"] - else: - return ["code.exe", "notepad++.exe", "notepad.exe"] diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/exc.py b/backend/venv/lib/python3.12/site-packages/alembic/util/exc.py deleted file mode 100644 index 0d0496b..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/exc.py +++ /dev/null @@ -1,6 +0,0 @@ -class CommandError(Exception): - pass - - -class AutogenerateDiffsDetected(CommandError): - pass diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/langhelpers.py b/backend/venv/lib/python3.12/site-packages/alembic/util/langhelpers.py deleted file mode 100644 index 80d88cb..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/langhelpers.py +++ /dev/null @@ -1,332 +0,0 @@ -from __future__ import annotations - -import collections -from collections.abc import Iterable -import textwrap -from typing import Any -from typing import Callable -from typing import cast -from typing import Dict -from typing import List -from typing import Mapping -from typing import MutableMapping -from typing import NoReturn -from typing import Optional -from typing import overload -from typing import Sequence -from typing import Set -from typing import Tuple -from typing import Type -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union -import uuid -import warnings - -from sqlalchemy.util import asbool as asbool # noqa: F401 -from sqlalchemy.util import immutabledict as immutabledict # noqa: F401 -from sqlalchemy.util import to_list as to_list # noqa: F401 -from sqlalchemy.util import unique_list as unique_list - -from .compat import inspect_getfullargspec - -if True: - # zimports workaround :( - from sqlalchemy.util import ( # noqa: F401 - memoized_property as memoized_property, - ) - - -EMPTY_DICT: Mapping[Any, Any] = immutabledict() -_T = TypeVar("_T", bound=Any) - -_C = TypeVar("_C", bound=Callable[..., Any]) - - -class _ModuleClsMeta(type): - def __setattr__(cls, key: str, value: Callable[..., Any]) -> None: - super().__setattr__(key, value) - cls._update_module_proxies(key) # type: ignore - - -class ModuleClsProxy(metaclass=_ModuleClsMeta): - """Create module level proxy functions for the - methods on a given class. - - The functions will have a compatible signature - as the methods. - - """ - - _setups: Dict[ - Type[Any], - Tuple[ - Set[str], - List[Tuple[MutableMapping[str, Any], MutableMapping[str, Any]]], - ], - ] = collections.defaultdict(lambda: (set(), [])) - - @classmethod - def _update_module_proxies(cls, name: str) -> None: - attr_names, modules = cls._setups[cls] - for globals_, locals_ in modules: - cls._add_proxied_attribute(name, globals_, locals_, attr_names) - - def _install_proxy(self) -> None: - attr_names, modules = self._setups[self.__class__] - for globals_, locals_ in modules: - globals_["_proxy"] = self - for attr_name in attr_names: - globals_[attr_name] = getattr(self, attr_name) - - def _remove_proxy(self) -> None: - attr_names, modules = self._setups[self.__class__] - for globals_, locals_ in modules: - globals_["_proxy"] = None - for attr_name in attr_names: - del globals_[attr_name] - - @classmethod - def create_module_class_proxy( - cls, - globals_: MutableMapping[str, Any], - locals_: MutableMapping[str, Any], - ) -> None: - attr_names, modules = cls._setups[cls] - modules.append((globals_, locals_)) - cls._setup_proxy(globals_, locals_, attr_names) - - @classmethod - def _setup_proxy( - cls, - globals_: MutableMapping[str, Any], - locals_: MutableMapping[str, Any], - attr_names: Set[str], - ) -> None: - for methname in dir(cls): - cls._add_proxied_attribute(methname, globals_, locals_, attr_names) - - @classmethod - def _add_proxied_attribute( - cls, - methname: str, - globals_: MutableMapping[str, Any], - locals_: MutableMapping[str, Any], - attr_names: Set[str], - ) -> None: - if not methname.startswith("_"): - meth = getattr(cls, methname) - if callable(meth): - locals_[methname] = cls._create_method_proxy( - methname, globals_, locals_ - ) - else: - attr_names.add(methname) - - @classmethod - def _create_method_proxy( - cls, - name: str, - globals_: MutableMapping[str, Any], - locals_: MutableMapping[str, Any], - ) -> Callable[..., Any]: - fn = getattr(cls, name) - - def _name_error(name: str, from_: Exception) -> NoReturn: - raise NameError( - "Can't invoke function '%s', as the proxy object has " - "not yet been " - "established for the Alembic '%s' class. " - "Try placing this code inside a callable." - % (name, cls.__name__) - ) from from_ - - globals_["_name_error"] = _name_error - - translations = getattr(fn, "_legacy_translations", []) - if translations: - spec = inspect_getfullargspec(fn) - if spec[0] and spec[0][0] == "self": - spec[0].pop(0) - - outer_args = inner_args = "*args, **kw" - translate_str = "args, kw = _translate(%r, %r, %r, args, kw)" % ( - fn.__name__, - tuple(spec), - translations, - ) - - def translate( - fn_name: str, spec: Any, translations: Any, args: Any, kw: Any - ) -> Any: - return_kw = {} - return_args = [] - - for oldname, newname in translations: - if oldname in kw: - warnings.warn( - "Argument %r is now named %r " - "for method %s()." % (oldname, newname, fn_name) - ) - return_kw[newname] = kw.pop(oldname) - return_kw.update(kw) - - args = list(args) - if spec[3]: - pos_only = spec[0][: -len(spec[3])] - else: - pos_only = spec[0] - for arg in pos_only: - if arg not in return_kw: - try: - return_args.append(args.pop(0)) - except IndexError: - raise TypeError( - "missing required positional argument: %s" - % arg - ) - return_args.extend(args) - - return return_args, return_kw - - globals_["_translate"] = translate - else: - outer_args = "*args, **kw" - inner_args = "*args, **kw" - translate_str = "" - - func_text = textwrap.dedent( - """\ - def %(name)s(%(args)s): - %(doc)r - %(translate)s - try: - p = _proxy - except NameError as ne: - _name_error('%(name)s', ne) - return _proxy.%(name)s(%(apply_kw)s) - e - """ - % { - "name": name, - "translate": translate_str, - "args": outer_args, - "apply_kw": inner_args, - "doc": fn.__doc__, - } - ) - lcl: MutableMapping[str, Any] = {} - - exec(func_text, cast("Dict[str, Any]", globals_), lcl) - return cast("Callable[..., Any]", lcl[name]) - - -def _with_legacy_names(translations: Any) -> Any: - def decorate(fn: _C) -> _C: - fn._legacy_translations = translations # type: ignore[attr-defined] - return fn - - return decorate - - -def rev_id() -> str: - return uuid.uuid4().hex[-12:] - - -@overload -def to_tuple(x: Any, default: Tuple[Any, ...]) -> Tuple[Any, ...]: ... - - -@overload -def to_tuple(x: None, default: Optional[_T] = ...) -> _T: ... - - -@overload -def to_tuple( - x: Any, default: Optional[Tuple[Any, ...]] = None -) -> Tuple[Any, ...]: ... - - -def to_tuple( - x: Any, default: Optional[Tuple[Any, ...]] = None -) -> Optional[Tuple[Any, ...]]: - if x is None: - return default - elif isinstance(x, str): - return (x,) - elif isinstance(x, Iterable): - return tuple(x) - else: - return (x,) - - -def dedupe_tuple(tup: Tuple[str, ...]) -> Tuple[str, ...]: - return tuple(unique_list(tup)) - - -class Dispatcher: - def __init__(self, uselist: bool = False) -> None: - self._registry: Dict[Tuple[Any, ...], Any] = {} - self.uselist = uselist - - def dispatch_for( - self, target: Any, qualifier: str = "default" - ) -> Callable[[_C], _C]: - def decorate(fn: _C) -> _C: - if self.uselist: - self._registry.setdefault((target, qualifier), []).append(fn) - else: - assert (target, qualifier) not in self._registry - self._registry[(target, qualifier)] = fn - return fn - - return decorate - - def dispatch(self, obj: Any, qualifier: str = "default") -> Any: - if isinstance(obj, str): - targets: Sequence[Any] = [obj] - elif isinstance(obj, type): - targets = obj.__mro__ - else: - targets = type(obj).__mro__ - - for spcls in targets: - if qualifier != "default" and (spcls, qualifier) in self._registry: - return self._fn_or_list(self._registry[(spcls, qualifier)]) - elif (spcls, "default") in self._registry: - return self._fn_or_list(self._registry[(spcls, "default")]) - else: - raise ValueError("no dispatch function for object: %s" % obj) - - def _fn_or_list( - self, fn_or_list: Union[List[Callable[..., Any]], Callable[..., Any]] - ) -> Callable[..., Any]: - if self.uselist: - - def go(*arg: Any, **kw: Any) -> None: - if TYPE_CHECKING: - assert isinstance(fn_or_list, Sequence) - for fn in fn_or_list: - fn(*arg, **kw) - - return go - else: - return fn_or_list # type: ignore - - def branch(self) -> Dispatcher: - """Return a copy of this dispatcher that is independently - writable.""" - - d = Dispatcher() - if self.uselist: - d._registry.update( - (k, [fn for fn in self._registry[k]]) for k in self._registry - ) - else: - d._registry.update(self._registry) - return d - - -def not_none(value: Optional[_T]) -> _T: - assert value is not None - return value diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/messaging.py b/backend/venv/lib/python3.12/site-packages/alembic/util/messaging.py deleted file mode 100644 index 6618fa7..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/messaging.py +++ /dev/null @@ -1,121 +0,0 @@ -from __future__ import annotations - -from collections.abc import Iterable -from contextlib import contextmanager -import logging -import sys -import textwrap -from typing import Iterator -from typing import Optional -from typing import TextIO -from typing import Union -import warnings - -from sqlalchemy.engine import url - -from . import sqla_compat - -log = logging.getLogger(__name__) - -# disable "no handler found" errors -logging.getLogger("alembic").addHandler(logging.NullHandler()) - - -try: - import fcntl - import termios - import struct - - ioctl = fcntl.ioctl(0, termios.TIOCGWINSZ, struct.pack("HHHH", 0, 0, 0, 0)) - _h, TERMWIDTH, _hp, _wp = struct.unpack("HHHH", ioctl) - if TERMWIDTH <= 0: # can occur if running in emacs pseudo-tty - TERMWIDTH = None -except (ImportError, OSError): - TERMWIDTH = None - - -def write_outstream( - stream: TextIO, *text: Union[str, bytes], quiet: bool = False -) -> None: - if quiet: - return - encoding = getattr(stream, "encoding", "ascii") or "ascii" - for t in text: - if not isinstance(t, bytes): - t = t.encode(encoding, "replace") - t = t.decode(encoding) - try: - stream.write(t) - except OSError: - # suppress "broken pipe" errors. - # no known way to handle this on Python 3 however - # as the exception is "ignored" (noisily) in TextIOWrapper. - break - - -@contextmanager -def status( - status_msg: str, newline: bool = False, quiet: bool = False -) -> Iterator[None]: - msg(status_msg + " ...", newline, flush=True, quiet=quiet) - try: - yield - except: - if not quiet: - write_outstream(sys.stdout, " FAILED\n") - raise - else: - if not quiet: - write_outstream(sys.stdout, " done\n") - - -def err(message: str, quiet: bool = False) -> None: - log.error(message) - msg(f"FAILED: {message}", quiet=quiet) - sys.exit(-1) - - -def obfuscate_url_pw(input_url: str) -> str: - u = url.make_url(input_url) - return sqla_compat.url_render_as_string(u, hide_password=True) # type: ignore # noqa: E501 - - -def warn(msg: str, stacklevel: int = 2) -> None: - warnings.warn(msg, UserWarning, stacklevel=stacklevel) - - -def msg( - msg: str, newline: bool = True, flush: bool = False, quiet: bool = False -) -> None: - if quiet: - return - if TERMWIDTH is None: - write_outstream(sys.stdout, msg) - if newline: - write_outstream(sys.stdout, "\n") - else: - # left indent output lines - indent = " " - lines = textwrap.wrap( - msg, - TERMWIDTH, - initial_indent=indent, - subsequent_indent=indent, - ) - if len(lines) > 1: - for line in lines[0:-1]: - write_outstream(sys.stdout, line, "\n") - write_outstream(sys.stdout, lines[-1], ("\n" if newline else "")) - if flush: - sys.stdout.flush() - - -def format_as_comma(value: Optional[Union[str, Iterable[str]]]) -> str: - if value is None: - return "" - elif isinstance(value, str): - return value - elif isinstance(value, Iterable): - return ", ".join(value) - else: - raise ValueError("Don't know how to comma-format %r" % value) diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/pyfiles.py b/backend/venv/lib/python3.12/site-packages/alembic/util/pyfiles.py deleted file mode 100644 index 973bd45..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/pyfiles.py +++ /dev/null @@ -1,114 +0,0 @@ -from __future__ import annotations - -import atexit -from contextlib import ExitStack -import importlib -import importlib.machinery -import importlib.util -import os -import re -import tempfile -from types import ModuleType -from typing import Any -from typing import Optional - -from mako import exceptions -from mako.template import Template - -from . import compat -from .exc import CommandError - - -def template_to_file( - template_file: str, dest: str, output_encoding: str, **kw: Any -) -> None: - template = Template(filename=template_file) - try: - output = template.render_unicode(**kw).encode(output_encoding) - except: - with tempfile.NamedTemporaryFile(suffix=".txt", delete=False) as ntf: - ntf.write( - exceptions.text_error_template() - .render_unicode() - .encode(output_encoding) - ) - fname = ntf.name - raise CommandError( - "Template rendering failed; see %s for a " - "template-oriented traceback." % fname - ) - else: - with open(dest, "wb") as f: - f.write(output) - - -def coerce_resource_to_filename(fname: str) -> str: - """Interpret a filename as either a filesystem location or as a package - resource. - - Names that are non absolute paths and contain a colon - are interpreted as resources and coerced to a file location. - - """ - if not os.path.isabs(fname) and ":" in fname: - tokens = fname.split(":") - - # from https://importlib-resources.readthedocs.io/en/latest/migration.html#pkg-resources-resource-filename # noqa E501 - - file_manager = ExitStack() - atexit.register(file_manager.close) - - ref = compat.importlib_resources.files(tokens[0]) - for tok in tokens[1:]: - ref = ref / tok - fname = file_manager.enter_context( # type: ignore[assignment] - compat.importlib_resources.as_file(ref) - ) - return fname - - -def pyc_file_from_path(path: str) -> Optional[str]: - """Given a python source path, locate the .pyc.""" - - candidate = importlib.util.cache_from_source(path) - if os.path.exists(candidate): - return candidate - - # even for pep3147, fall back to the old way of finding .pyc files, - # to support sourceless operation - filepath, ext = os.path.splitext(path) - for ext in importlib.machinery.BYTECODE_SUFFIXES: - if os.path.exists(filepath + ext): - return filepath + ext - else: - return None - - -def load_python_file(dir_: str, filename: str) -> ModuleType: - """Load a file from the given path as a Python module.""" - - module_id = re.sub(r"\W", "_", filename) - path = os.path.join(dir_, filename) - _, ext = os.path.splitext(filename) - if ext == ".py": - if os.path.exists(path): - module = load_module_py(module_id, path) - else: - pyc_path = pyc_file_from_path(path) - if pyc_path is None: - raise ImportError("Can't find Python file %s" % path) - else: - module = load_module_py(module_id, pyc_path) - elif ext in (".pyc", ".pyo"): - module = load_module_py(module_id, path) - else: - assert False - return module - - -def load_module_py(module_id: str, path: str) -> ModuleType: - spec = importlib.util.spec_from_file_location(module_id, path) - assert spec - module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(module) # type: ignore - return module diff --git a/backend/venv/lib/python3.12/site-packages/alembic/util/sqla_compat.py b/backend/venv/lib/python3.12/site-packages/alembic/util/sqla_compat.py deleted file mode 100644 index d4ed0fd..0000000 --- a/backend/venv/lib/python3.12/site-packages/alembic/util/sqla_compat.py +++ /dev/null @@ -1,663 +0,0 @@ -# mypy: allow-untyped-defs, allow-incomplete-defs, allow-untyped-calls -# mypy: no-warn-return-any, allow-any-generics - -from __future__ import annotations - -import contextlib -import re -from typing import Any -from typing import Callable -from typing import Dict -from typing import Iterable -from typing import Iterator -from typing import Mapping -from typing import Optional -from typing import Protocol -from typing import Set -from typing import Type -from typing import TYPE_CHECKING -from typing import TypeVar -from typing import Union - -from sqlalchemy import __version__ -from sqlalchemy import inspect -from sqlalchemy import schema -from sqlalchemy import sql -from sqlalchemy import types as sqltypes -from sqlalchemy.engine import url -from sqlalchemy.schema import CheckConstraint -from sqlalchemy.schema import Column -from sqlalchemy.schema import ForeignKeyConstraint -from sqlalchemy.sql import visitors -from sqlalchemy.sql.base import DialectKWArgs -from sqlalchemy.sql.elements import BindParameter -from sqlalchemy.sql.elements import ColumnClause -from sqlalchemy.sql.elements import quoted_name -from sqlalchemy.sql.elements import TextClause -from sqlalchemy.sql.elements import UnaryExpression -from sqlalchemy.sql.visitors import traverse -from typing_extensions import TypeGuard - -if TYPE_CHECKING: - from sqlalchemy import ClauseElement - from sqlalchemy import Index - from sqlalchemy import Table - from sqlalchemy.engine import Connection - from sqlalchemy.engine import Dialect - from sqlalchemy.engine import Transaction - from sqlalchemy.engine.reflection import Inspector - from sqlalchemy.sql.base import ColumnCollection - from sqlalchemy.sql.compiler import SQLCompiler - from sqlalchemy.sql.dml import Insert - from sqlalchemy.sql.elements import ColumnElement - from sqlalchemy.sql.schema import Constraint - from sqlalchemy.sql.schema import SchemaItem - from sqlalchemy.sql.selectable import Select - from sqlalchemy.sql.selectable import TableClause - -_CE = TypeVar("_CE", bound=Union["ColumnElement[Any]", "SchemaItem"]) - - -class _CompilerProtocol(Protocol): - def __call__(self, element: Any, compiler: Any, **kw: Any) -> str: ... - - -def _safe_int(value: str) -> Union[int, str]: - try: - return int(value) - except: - return value - - -_vers = tuple( - [_safe_int(x) for x in re.findall(r"(\d+|[abc]\d)", __version__)] -) -sqla_13 = _vers >= (1, 3) -sqla_14 = _vers >= (1, 4) -# https://docs.sqlalchemy.org/en/latest/changelog/changelog_14.html#change-0c6e0cc67dfe6fac5164720e57ef307d -sqla_14_18 = _vers >= (1, 4, 18) -sqla_14_26 = _vers >= (1, 4, 26) -sqla_2 = _vers >= (2,) -sqlalchemy_version = __version__ - -try: - from sqlalchemy.sql.naming import _NONE_NAME as _NONE_NAME # type: ignore[attr-defined] # noqa: E501 -except ImportError: - from sqlalchemy.sql.elements import _NONE_NAME as _NONE_NAME # type: ignore # noqa: E501 - - -class _Unsupported: - "Placeholder for unsupported SQLAlchemy classes" - - -if TYPE_CHECKING: - - def compiles( - element: Type[ClauseElement], *dialects: str - ) -> Callable[[_CompilerProtocol], _CompilerProtocol]: ... - -else: - from sqlalchemy.ext.compiler import compiles - -try: - from sqlalchemy import Computed as Computed -except ImportError: - if not TYPE_CHECKING: - - class Computed(_Unsupported): - pass - - has_computed = False - has_computed_reflection = False -else: - has_computed = True - has_computed_reflection = _vers >= (1, 3, 16) - -try: - from sqlalchemy import Identity as Identity -except ImportError: - if not TYPE_CHECKING: - - class Identity(_Unsupported): - pass - - has_identity = False -else: - identity_has_dialect_kwargs = issubclass(Identity, DialectKWArgs) - - def _get_identity_options_dict( - identity: Union[Identity, schema.Sequence, None], - dialect_kwargs: bool = False, - ) -> Dict[str, Any]: - if identity is None: - return {} - elif identity_has_dialect_kwargs: - as_dict = identity._as_dict() # type: ignore - if dialect_kwargs: - assert isinstance(identity, DialectKWArgs) - as_dict.update(identity.dialect_kwargs) - else: - as_dict = {} - if isinstance(identity, Identity): - # always=None means something different than always=False - as_dict["always"] = identity.always - if identity.on_null is not None: - as_dict["on_null"] = identity.on_null - # attributes common to Identity and Sequence - attrs = ( - "start", - "increment", - "minvalue", - "maxvalue", - "nominvalue", - "nomaxvalue", - "cycle", - "cache", - "order", - ) - as_dict.update( - { - key: getattr(identity, key, None) - for key in attrs - if getattr(identity, key, None) is not None - } - ) - return as_dict - - has_identity = True - -if sqla_2: - from sqlalchemy.sql.base import _NoneName -else: - from sqlalchemy.util import symbol as _NoneName # type: ignore[assignment] - - -_ConstraintName = Union[None, str, _NoneName] - -_ConstraintNameDefined = Union[str, _NoneName] - - -def constraint_name_defined( - name: _ConstraintName, -) -> TypeGuard[_ConstraintNameDefined]: - return name is _NONE_NAME or isinstance(name, (str, _NoneName)) - - -def constraint_name_string( - name: _ConstraintName, -) -> TypeGuard[str]: - return isinstance(name, str) - - -def constraint_name_or_none( - name: _ConstraintName, -) -> Optional[str]: - return name if constraint_name_string(name) else None - - -AUTOINCREMENT_DEFAULT = "auto" - - -@contextlib.contextmanager -def _ensure_scope_for_ddl( - connection: Optional[Connection], -) -> Iterator[None]: - try: - in_transaction = connection.in_transaction # type: ignore[union-attr] - except AttributeError: - # catch for MockConnection, None - in_transaction = None - pass - - # yield outside the catch - if in_transaction is None: - yield - else: - if not in_transaction(): - assert connection is not None - with connection.begin(): - yield - else: - yield - - -def url_render_as_string(url, hide_password=True): - if sqla_14: - return url.render_as_string(hide_password=hide_password) - else: - return url.__to_string__(hide_password=hide_password) - - -def _safe_begin_connection_transaction( - connection: Connection, -) -> Transaction: - transaction = _get_connection_transaction(connection) - if transaction: - return transaction - else: - return connection.begin() - - -def _safe_commit_connection_transaction( - connection: Connection, -) -> None: - transaction = _get_connection_transaction(connection) - if transaction: - transaction.commit() - - -def _safe_rollback_connection_transaction( - connection: Connection, -) -> None: - transaction = _get_connection_transaction(connection) - if transaction: - transaction.rollback() - - -def _get_connection_in_transaction(connection: Optional[Connection]) -> bool: - try: - in_transaction = connection.in_transaction # type: ignore - except AttributeError: - # catch for MockConnection - return False - else: - return in_transaction() - - -def _idx_table_bound_expressions(idx: Index) -> Iterable[ColumnElement[Any]]: - return idx.expressions # type: ignore - - -def _copy(schema_item: _CE, **kw) -> _CE: - if hasattr(schema_item, "_copy"): - return schema_item._copy(**kw) - else: - return schema_item.copy(**kw) # type: ignore[union-attr] - - -def _get_connection_transaction( - connection: Connection, -) -> Optional[Transaction]: - if sqla_14: - return connection.get_transaction() - else: - r = connection._root # type: ignore[attr-defined] - return r._Connection__transaction - - -def _create_url(*arg, **kw) -> url.URL: - if hasattr(url.URL, "create"): - return url.URL.create(*arg, **kw) - else: - return url.URL(*arg, **kw) - - -def _connectable_has_table( - connectable: Connection, tablename: str, schemaname: Union[str, None] -) -> bool: - if sqla_14: - return inspect(connectable).has_table(tablename, schemaname) - else: - return connectable.dialect.has_table( - connectable, tablename, schemaname - ) - - -def _exec_on_inspector(inspector, statement, **params): - if sqla_14: - with inspector._operation_context() as conn: - return conn.execute(statement, params) - else: - return inspector.bind.execute(statement, params) - - -def _nullability_might_be_unset(metadata_column): - if not sqla_14: - return metadata_column.nullable - else: - from sqlalchemy.sql import schema - - return ( - metadata_column._user_defined_nullable is schema.NULL_UNSPECIFIED - ) - - -def _server_default_is_computed(*server_default) -> bool: - if not has_computed: - return False - else: - return any(isinstance(sd, Computed) for sd in server_default) - - -def _server_default_is_identity(*server_default) -> bool: - if not sqla_14: - return False - else: - return any(isinstance(sd, Identity) for sd in server_default) - - -def _table_for_constraint(constraint: Constraint) -> Table: - if isinstance(constraint, ForeignKeyConstraint): - table = constraint.parent - assert table is not None - return table # type: ignore[return-value] - else: - return constraint.table - - -def _columns_for_constraint(constraint): - if isinstance(constraint, ForeignKeyConstraint): - return [fk.parent for fk in constraint.elements] - elif isinstance(constraint, CheckConstraint): - return _find_columns(constraint.sqltext) - else: - return list(constraint.columns) - - -def _reflect_table(inspector: Inspector, table: Table) -> None: - if sqla_14: - return inspector.reflect_table(table, None) - else: - return inspector.reflecttable( # type: ignore[attr-defined] - table, None - ) - - -def _resolve_for_variant(type_, dialect): - if _type_has_variants(type_): - base_type, mapping = _get_variant_mapping(type_) - return mapping.get(dialect.name, base_type) - else: - return type_ - - -if hasattr(sqltypes.TypeEngine, "_variant_mapping"): - - def _type_has_variants(type_): - return bool(type_._variant_mapping) - - def _get_variant_mapping(type_): - return type_, type_._variant_mapping - -else: - - def _type_has_variants(type_): - return type(type_) is sqltypes.Variant - - def _get_variant_mapping(type_): - return type_.impl, type_.mapping - - -def _fk_spec(constraint: ForeignKeyConstraint) -> Any: - if TYPE_CHECKING: - assert constraint.columns is not None - assert constraint.elements is not None - assert isinstance(constraint.parent, Table) - - source_columns = [ - constraint.columns[key].name for key in constraint.column_keys - ] - - source_table = constraint.parent.name - source_schema = constraint.parent.schema - target_schema = constraint.elements[0].column.table.schema - target_table = constraint.elements[0].column.table.name - target_columns = [element.column.name for element in constraint.elements] - ondelete = constraint.ondelete - onupdate = constraint.onupdate - deferrable = constraint.deferrable - initially = constraint.initially - return ( - source_schema, - source_table, - source_columns, - target_schema, - target_table, - target_columns, - onupdate, - ondelete, - deferrable, - initially, - ) - - -def _fk_is_self_referential(constraint: ForeignKeyConstraint) -> bool: - spec = constraint.elements[0]._get_colspec() - tokens = spec.split(".") - tokens.pop(-1) # colname - tablekey = ".".join(tokens) - assert constraint.parent is not None - return tablekey == constraint.parent.key - - -def _is_type_bound(constraint: Constraint) -> bool: - # this deals with SQLAlchemy #3260, don't copy CHECK constraints - # that will be generated by the type. - # new feature added for #3260 - return constraint._type_bound - - -def _find_columns(clause): - """locate Column objects within the given expression.""" - - cols: Set[ColumnElement[Any]] = set() - traverse(clause, {}, {"column": cols.add}) - return cols - - -def _remove_column_from_collection( - collection: ColumnCollection, column: Union[Column[Any], ColumnClause[Any]] -) -> None: - """remove a column from a ColumnCollection.""" - - # workaround for older SQLAlchemy, remove the - # same object that's present - assert column.key is not None - to_remove = collection[column.key] - - # SQLAlchemy 2.0 will use more ReadOnlyColumnCollection - # (renamed from ImmutableColumnCollection) - if hasattr(collection, "_immutable") or hasattr(collection, "_readonly"): - collection._parent.remove(to_remove) - else: - collection.remove(to_remove) - - -def _textual_index_column( - table: Table, text_: Union[str, TextClause, ColumnElement[Any]] -) -> Union[ColumnElement[Any], Column[Any]]: - """a workaround for the Index construct's severe lack of flexibility""" - if isinstance(text_, str): - c = Column(text_, sqltypes.NULLTYPE) - table.append_column(c) - return c - elif isinstance(text_, TextClause): - return _textual_index_element(table, text_) - elif isinstance(text_, _textual_index_element): - return _textual_index_column(table, text_.text) - elif isinstance(text_, sql.ColumnElement): - return _copy_expression(text_, table) - else: - raise ValueError("String or text() construct expected") - - -def _copy_expression(expression: _CE, target_table: Table) -> _CE: - def replace(col): - if ( - isinstance(col, Column) - and col.table is not None - and col.table is not target_table - ): - if col.name in target_table.c: - return target_table.c[col.name] - else: - c = _copy(col) - target_table.append_column(c) - return c - else: - return None - - return visitors.replacement_traverse( # type: ignore[call-overload] - expression, {}, replace - ) - - -class _textual_index_element(sql.ColumnElement): - """Wrap around a sqlalchemy text() construct in such a way that - we appear like a column-oriented SQL expression to an Index - construct. - - The issue here is that currently the Postgresql dialect, the biggest - recipient of functional indexes, keys all the index expressions to - the corresponding column expressions when rendering CREATE INDEX, - so the Index we create here needs to have a .columns collection that - is the same length as the .expressions collection. Ultimately - SQLAlchemy should support text() expressions in indexes. - - See SQLAlchemy issue 3174. - - """ - - __visit_name__ = "_textual_idx_element" - - def __init__(self, table: Table, text: TextClause) -> None: - self.table = table - self.text = text - self.key = text.text - self.fake_column = schema.Column(self.text.text, sqltypes.NULLTYPE) - table.append_column(self.fake_column) - - def get_children(self, **kw): - return [self.fake_column] - - -@compiles(_textual_index_element) -def _render_textual_index_column( - element: _textual_index_element, compiler: SQLCompiler, **kw -) -> str: - return compiler.process(element.text, **kw) - - -class _literal_bindparam(BindParameter): - pass - - -@compiles(_literal_bindparam) -def _render_literal_bindparam( - element: _literal_bindparam, compiler: SQLCompiler, **kw -) -> str: - return compiler.render_literal_bindparam(element, **kw) - - -def _column_kwargs(col: Column) -> Mapping: - if sqla_13: - return col.kwargs - else: - return {} - - -def _get_constraint_final_name( - constraint: Union[Index, Constraint], dialect: Optional[Dialect] -) -> Optional[str]: - if constraint.name is None: - return None - assert dialect is not None - if sqla_14: - # for SQLAlchemy 1.4 we would like to have the option to expand - # the use of "deferred" names for constraints as well as to have - # some flexibility with "None" name and similar; make use of new - # SQLAlchemy API to return what would be the final compiled form of - # the name for this dialect. - return dialect.identifier_preparer.format_constraint( - constraint, _alembic_quote=False - ) - else: - # prior to SQLAlchemy 1.4, work around quoting logic to get at the - # final compiled name without quotes. - if hasattr(constraint.name, "quote"): - # might be quoted_name, might be truncated_name, keep it the - # same - quoted_name_cls: type = type(constraint.name) - else: - quoted_name_cls = quoted_name - - new_name = quoted_name_cls(str(constraint.name), quote=False) - constraint = constraint.__class__(name=new_name) - - if isinstance(constraint, schema.Index): - # name should not be quoted. - d = dialect.ddl_compiler(dialect, None) # type: ignore[arg-type] - return d._prepared_index_name(constraint) - else: - # name should not be quoted. - return dialect.identifier_preparer.format_constraint(constraint) - - -def _constraint_is_named( - constraint: Union[Constraint, Index], dialect: Optional[Dialect] -) -> bool: - if sqla_14: - if constraint.name is None: - return False - assert dialect is not None - name = dialect.identifier_preparer.format_constraint( - constraint, _alembic_quote=False - ) - return name is not None - else: - return constraint.name is not None - - -def _is_mariadb(mysql_dialect: Dialect) -> bool: - if sqla_14: - return mysql_dialect.is_mariadb # type: ignore[attr-defined] - else: - return bool( - mysql_dialect.server_version_info - and mysql_dialect._is_mariadb # type: ignore[attr-defined] - ) - - -def _mariadb_normalized_version_info(mysql_dialect): - return mysql_dialect._mariadb_normalized_version_info - - -def _insert_inline(table: Union[TableClause, Table]) -> Insert: - if sqla_14: - return table.insert().inline() - else: - return table.insert(inline=True) # type: ignore[call-arg] - - -if sqla_14: - from sqlalchemy import create_mock_engine - - # weird mypy workaround - from sqlalchemy import select as _sa_select - - _select = _sa_select -else: - from sqlalchemy import create_engine - - def create_mock_engine(url, executor, **kw): # type: ignore[misc] - return create_engine( - "postgresql://", strategy="mock", executor=executor - ) - - def _select(*columns, **kw) -> Select: - return sql.select(list(columns), **kw) # type: ignore[call-overload] - - -def is_expression_index(index: Index) -> bool: - for expr in index.expressions: - if is_expression(expr): - return True - return False - - -def is_expression(expr: Any) -> bool: - while isinstance(expr, UnaryExpression): - expr = expr.element - if not isinstance(expr, ColumnClause) or expr.is_literal: - return True - return False diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA deleted file mode 100644 index 3ac05cf..0000000 --- a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA +++ /dev/null @@ -1,295 +0,0 @@ -Metadata-Version: 2.3 -Name: annotated-types -Version: 0.7.0 -Summary: Reusable constraint types to use with typing.Annotated -Project-URL: Homepage, https://github.com/annotated-types/annotated-types -Project-URL: Source, https://github.com/annotated-types/annotated-types -Project-URL: Changelog, https://github.com/annotated-types/annotated-types/releases -Author-email: Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, Samuel Colvin , Zac Hatfield-Dodds -License-File: LICENSE -Classifier: Development Status :: 4 - Beta -Classifier: Environment :: Console -Classifier: Environment :: MacOS X -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: Information Technology -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: POSIX :: Linux -Classifier: Operating System :: Unix -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Typing :: Typed -Requires-Python: >=3.8 -Requires-Dist: typing-extensions>=4.0.0; python_version < '3.9' -Description-Content-Type: text/markdown - -# annotated-types - -[![CI](https://github.com/annotated-types/annotated-types/workflows/CI/badge.svg?event=push)](https://github.com/annotated-types/annotated-types/actions?query=event%3Apush+branch%3Amain+workflow%3ACI) -[![pypi](https://img.shields.io/pypi/v/annotated-types.svg)](https://pypi.python.org/pypi/annotated-types) -[![versions](https://img.shields.io/pypi/pyversions/annotated-types.svg)](https://github.com/annotated-types/annotated-types) -[![license](https://img.shields.io/github/license/annotated-types/annotated-types.svg)](https://github.com/annotated-types/annotated-types/blob/main/LICENSE) - -[PEP-593](https://peps.python.org/pep-0593/) added `typing.Annotated` as a way of -adding context-specific metadata to existing types, and specifies that -`Annotated[T, x]` _should_ be treated as `T` by any tool or library without special -logic for `x`. - -This package provides metadata objects which can be used to represent common -constraints such as upper and lower bounds on scalar values and collection sizes, -a `Predicate` marker for runtime checks, and -descriptions of how we intend these metadata to be interpreted. In some cases, -we also note alternative representations which do not require this package. - -## Install - -```bash -pip install annotated-types -``` - -## Examples - -```python -from typing import Annotated -from annotated_types import Gt, Len, Predicate - -class MyClass: - age: Annotated[int, Gt(18)] # Valid: 19, 20, ... - # Invalid: 17, 18, "19", 19.0, ... - factors: list[Annotated[int, Predicate(is_prime)]] # Valid: 2, 3, 5, 7, 11, ... - # Invalid: 4, 8, -2, 5.0, "prime", ... - - my_list: Annotated[list[int], Len(0, 10)] # Valid: [], [10, 20, 30, 40, 50] - # Invalid: (1, 2), ["abc"], [0] * 20 -``` - -## Documentation - -_While `annotated-types` avoids runtime checks for performance, users should not -construct invalid combinations such as `MultipleOf("non-numeric")` or `Annotated[int, Len(3)]`. -Downstream implementors may choose to raise an error, emit a warning, silently ignore -a metadata item, etc., if the metadata objects described below are used with an -incompatible type - or for any other reason!_ - -### Gt, Ge, Lt, Le - -Express inclusive and/or exclusive bounds on orderable values - which may be numbers, -dates, times, strings, sets, etc. Note that the boundary value need not be of the -same type that was annotated, so long as they can be compared: `Annotated[int, Gt(1.5)]` -is fine, for example, and implies that the value is an integer x such that `x > 1.5`. - -We suggest that implementors may also interpret `functools.partial(operator.le, 1.5)` -as being equivalent to `Gt(1.5)`, for users who wish to avoid a runtime dependency on -the `annotated-types` package. - -To be explicit, these types have the following meanings: - -* `Gt(x)` - value must be "Greater Than" `x` - equivalent to exclusive minimum -* `Ge(x)` - value must be "Greater than or Equal" to `x` - equivalent to inclusive minimum -* `Lt(x)` - value must be "Less Than" `x` - equivalent to exclusive maximum -* `Le(x)` - value must be "Less than or Equal" to `x` - equivalent to inclusive maximum - -### Interval - -`Interval(gt, ge, lt, le)` allows you to specify an upper and lower bound with a single -metadata object. `None` attributes should be ignored, and non-`None` attributes -treated as per the single bounds above. - -### MultipleOf - -`MultipleOf(multiple_of=x)` might be interpreted in two ways: - -1. Python semantics, implying `value % multiple_of == 0`, or -2. [JSONschema semantics](https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.2.1), - where `int(value / multiple_of) == value / multiple_of`. - -We encourage users to be aware of these two common interpretations and their -distinct behaviours, especially since very large or non-integer numbers make -it easy to cause silent data corruption due to floating-point imprecision. - -We encourage libraries to carefully document which interpretation they implement. - -### MinLen, MaxLen, Len - -`Len()` implies that `min_length <= len(value) <= max_length` - lower and upper bounds are inclusive. - -As well as `Len()` which can optionally include upper and lower bounds, we also -provide `MinLen(x)` and `MaxLen(y)` which are equivalent to `Len(min_length=x)` -and `Len(max_length=y)` respectively. - -`Len`, `MinLen`, and `MaxLen` may be used with any type which supports `len(value)`. - -Examples of usage: - -* `Annotated[list, MaxLen(10)]` (or `Annotated[list, Len(max_length=10))`) - list must have a length of 10 or less -* `Annotated[str, MaxLen(10)]` - string must have a length of 10 or less -* `Annotated[list, MinLen(3))` (or `Annotated[list, Len(min_length=3))`) - list must have a length of 3 or more -* `Annotated[list, Len(4, 6)]` - list must have a length of 4, 5, or 6 -* `Annotated[list, Len(8, 8)]` - list must have a length of exactly 8 - -#### Changed in v0.4.0 - -* `min_inclusive` has been renamed to `min_length`, no change in meaning -* `max_exclusive` has been renamed to `max_length`, upper bound is now **inclusive** instead of **exclusive** -* The recommendation that slices are interpreted as `Len` has been removed due to ambiguity and different semantic - meaning of the upper bound in slices vs. `Len` - -See [issue #23](https://github.com/annotated-types/annotated-types/issues/23) for discussion. - -### Timezone - -`Timezone` can be used with a `datetime` or a `time` to express which timezones -are allowed. `Annotated[datetime, Timezone(None)]` must be a naive datetime. -`Timezone[...]` ([literal ellipsis](https://docs.python.org/3/library/constants.html#Ellipsis)) -expresses that any timezone-aware datetime is allowed. You may also pass a specific -timezone string or [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects) -object such as `Timezone(timezone.utc)` or `Timezone("Africa/Abidjan")` to express that you only -allow a specific timezone, though we note that this is often a symptom of fragile design. - -#### Changed in v0.x.x - -* `Timezone` accepts [`tzinfo`](https://docs.python.org/3/library/datetime.html#tzinfo-objects) objects instead of - `timezone`, extending compatibility to [`zoneinfo`](https://docs.python.org/3/library/zoneinfo.html) and third party libraries. - -### Unit - -`Unit(unit: str)` expresses that the annotated numeric value is the magnitude of -a quantity with the specified unit. For example, `Annotated[float, Unit("m/s")]` -would be a float representing a velocity in meters per second. - -Please note that `annotated_types` itself makes no attempt to parse or validate -the unit string in any way. That is left entirely to downstream libraries, -such as [`pint`](https://pint.readthedocs.io) or -[`astropy.units`](https://docs.astropy.org/en/stable/units/). - -An example of how a library might use this metadata: - -```python -from annotated_types import Unit -from typing import Annotated, TypeVar, Callable, Any, get_origin, get_args - -# given a type annotated with a unit: -Meters = Annotated[float, Unit("m")] - - -# you can cast the annotation to a specific unit type with any -# callable that accepts a string and returns the desired type -T = TypeVar("T") -def cast_unit(tp: Any, unit_cls: Callable[[str], T]) -> T | None: - if get_origin(tp) is Annotated: - for arg in get_args(tp): - if isinstance(arg, Unit): - return unit_cls(arg.unit) - return None - - -# using `pint` -import pint -pint_unit = cast_unit(Meters, pint.Unit) - - -# using `astropy.units` -import astropy.units as u -astropy_unit = cast_unit(Meters, u.Unit) -``` - -### Predicate - -`Predicate(func: Callable)` expresses that `func(value)` is truthy for valid values. -Users should prefer the statically inspectable metadata above, but if you need -the full power and flexibility of arbitrary runtime predicates... here it is. - -For some common constraints, we provide generic types: - -* `IsLower = Annotated[T, Predicate(str.islower)]` -* `IsUpper = Annotated[T, Predicate(str.isupper)]` -* `IsDigit = Annotated[T, Predicate(str.isdigit)]` -* `IsFinite = Annotated[T, Predicate(math.isfinite)]` -* `IsNotFinite = Annotated[T, Predicate(Not(math.isfinite))]` -* `IsNan = Annotated[T, Predicate(math.isnan)]` -* `IsNotNan = Annotated[T, Predicate(Not(math.isnan))]` -* `IsInfinite = Annotated[T, Predicate(math.isinf)]` -* `IsNotInfinite = Annotated[T, Predicate(Not(math.isinf))]` - -so that you can write e.g. `x: IsFinite[float] = 2.0` instead of the longer -(but exactly equivalent) `x: Annotated[float, Predicate(math.isfinite)] = 2.0`. - -Some libraries might have special logic to handle known or understandable predicates, -for example by checking for `str.isdigit` and using its presence to both call custom -logic to enforce digit-only strings, and customise some generated external schema. -Users are therefore encouraged to avoid indirection like `lambda s: s.lower()`, in -favor of introspectable methods such as `str.lower` or `re.compile("pattern").search`. - -To enable basic negation of commonly used predicates like `math.isnan` without introducing introspection that makes it impossible for implementers to introspect the predicate we provide a `Not` wrapper that simply negates the predicate in an introspectable manner. Several of the predicates listed above are created in this manner. - -We do not specify what behaviour should be expected for predicates that raise -an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently -skip invalid constraints, or statically raise an error; or it might try calling it -and then propagate or discard the resulting -`TypeError: descriptor 'isdigit' for 'str' objects doesn't apply to a 'int' object` -exception. We encourage libraries to document the behaviour they choose. - -### Doc - -`doc()` can be used to add documentation information in `Annotated`, for function and method parameters, variables, class attributes, return types, and any place where `Annotated` can be used. - -It expects a value that can be statically analyzed, as the main use case is for static analysis, editors, documentation generators, and similar tools. - -It returns a `DocInfo` class with a single attribute `documentation` containing the value passed to `doc()`. - -This is the early adopter's alternative form of the [`typing-doc` proposal](https://github.com/tiangolo/fastapi/blob/typing-doc/typing_doc.md). - -### Integrating downstream types with `GroupedMetadata` - -Implementers may choose to provide a convenience wrapper that groups multiple pieces of metadata. -This can help reduce verbosity and cognitive overhead for users. -For example, an implementer like Pydantic might provide a `Field` or `Meta` type that accepts keyword arguments and transforms these into low-level metadata: - -```python -from dataclasses import dataclass -from typing import Iterator -from annotated_types import GroupedMetadata, Ge - -@dataclass -class Field(GroupedMetadata): - ge: int | None = None - description: str | None = None - - def __iter__(self) -> Iterator[object]: - # Iterating over a GroupedMetadata object should yield annotated-types - # constraint metadata objects which describe it as fully as possible, - # and may include other unknown objects too. - if self.ge is not None: - yield Ge(self.ge) - if self.description is not None: - yield Description(self.description) -``` - -Libraries consuming annotated-types constraints should check for `GroupedMetadata` and unpack it by iterating over the object and treating the results as if they had been "unpacked" in the `Annotated` type. The same logic should be applied to the [PEP 646 `Unpack` type](https://peps.python.org/pep-0646/), so that `Annotated[T, Field(...)]`, `Annotated[T, Unpack[Field(...)]]` and `Annotated[T, *Field(...)]` are all treated consistently. - -Libraries consuming annotated-types should also ignore any metadata they do not recongize that came from unpacking a `GroupedMetadata`, just like they ignore unrecognized metadata in `Annotated` itself. - -Our own `annotated_types.Interval` class is a `GroupedMetadata` which unpacks itself into `Gt`, `Lt`, etc., so this is not an abstract concern. Similarly, `annotated_types.Len` is a `GroupedMetadata` which unpacks itself into `MinLen` (optionally) and `MaxLen`. - -### Consuming metadata - -We intend to not be prescriptive as to _how_ the metadata and constraints are used, but as an example of how one might parse constraints from types annotations see our [implementation in `test_main.py`](https://github.com/annotated-types/annotated-types/blob/f59cf6d1b5255a0fe359b93896759a180bec30ae/tests/test_main.py#L94-L103). - -It is up to the implementer to determine how this metadata is used. -You could use the metadata for runtime type checking, for generating schemas or to generate example data, amongst other use cases. - -## Design & History - -This package was designed at the PyCon 2022 sprints by the maintainers of Pydantic -and Hypothesis, with the goal of making it as easy as possible for end-users to -provide more informative annotations for use by runtime libraries. - -It is deliberately minimal, and following PEP-593 allows considerable downstream -discretion in what (if anything!) they choose to support. Nonetheless, we expect -that staying simple and covering _only_ the most common use-cases will give users -and maintainers the best experience we can. If you'd like more constraints for your -types - follow our lead, by defining them and documenting them downstream! diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD deleted file mode 100644 index a66e278..0000000 --- a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD +++ /dev/null @@ -1,10 +0,0 @@ -annotated_types-0.7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -annotated_types-0.7.0.dist-info/METADATA,sha256=7ltqxksJJ0wCYFGBNIQCWTlWQGeAH0hRFdnK3CB895E,15046 -annotated_types-0.7.0.dist-info/RECORD,, -annotated_types-0.7.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87 -annotated_types-0.7.0.dist-info/licenses/LICENSE,sha256=_hBJiEsaDZNCkB6I4H8ykl0ksxIdmXK2poBfuYJLCV0,1083 -annotated_types/__init__.py,sha256=RynLsRKUEGI0KimXydlD1fZEfEzWwDo0Uon3zOKhG1Q,13819 -annotated_types/__pycache__/__init__.cpython-312.pyc,, -annotated_types/__pycache__/test_cases.cpython-312.pyc,, -annotated_types/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -annotated_types/test_cases.py,sha256=zHFX6EpcMbGJ8FzBYDbO56bPwx_DYIVSKbZM-4B3_lg,6421 diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL deleted file mode 100644 index 516596c..0000000 --- a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL +++ /dev/null @@ -1,4 +0,0 @@ -Wheel-Version: 1.0 -Generator: hatchling 1.24.2 -Root-Is-Purelib: true -Tag: py3-none-any diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE b/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE deleted file mode 100644 index d99323a..0000000 --- a/backend/venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2022 the contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types/__init__.py b/backend/venv/lib/python3.12/site-packages/annotated_types/__init__.py deleted file mode 100644 index 74e0dee..0000000 --- a/backend/venv/lib/python3.12/site-packages/annotated_types/__init__.py +++ /dev/null @@ -1,432 +0,0 @@ -import math -import sys -import types -from dataclasses import dataclass -from datetime import tzinfo -from typing import TYPE_CHECKING, Any, Callable, Iterator, Optional, SupportsFloat, SupportsIndex, TypeVar, Union - -if sys.version_info < (3, 8): - from typing_extensions import Protocol, runtime_checkable -else: - from typing import Protocol, runtime_checkable - -if sys.version_info < (3, 9): - from typing_extensions import Annotated, Literal -else: - from typing import Annotated, Literal - -if sys.version_info < (3, 10): - EllipsisType = type(Ellipsis) - KW_ONLY = {} - SLOTS = {} -else: - from types import EllipsisType - - KW_ONLY = {"kw_only": True} - SLOTS = {"slots": True} - - -__all__ = ( - 'BaseMetadata', - 'GroupedMetadata', - 'Gt', - 'Ge', - 'Lt', - 'Le', - 'Interval', - 'MultipleOf', - 'MinLen', - 'MaxLen', - 'Len', - 'Timezone', - 'Predicate', - 'LowerCase', - 'UpperCase', - 'IsDigits', - 'IsFinite', - 'IsNotFinite', - 'IsNan', - 'IsNotNan', - 'IsInfinite', - 'IsNotInfinite', - 'doc', - 'DocInfo', - '__version__', -) - -__version__ = '0.7.0' - - -T = TypeVar('T') - - -# arguments that start with __ are considered -# positional only -# see https://peps.python.org/pep-0484/#positional-only-arguments - - -class SupportsGt(Protocol): - def __gt__(self: T, __other: T) -> bool: - ... - - -class SupportsGe(Protocol): - def __ge__(self: T, __other: T) -> bool: - ... - - -class SupportsLt(Protocol): - def __lt__(self: T, __other: T) -> bool: - ... - - -class SupportsLe(Protocol): - def __le__(self: T, __other: T) -> bool: - ... - - -class SupportsMod(Protocol): - def __mod__(self: T, __other: T) -> T: - ... - - -class SupportsDiv(Protocol): - def __div__(self: T, __other: T) -> T: - ... - - -class BaseMetadata: - """Base class for all metadata. - - This exists mainly so that implementers - can do `isinstance(..., BaseMetadata)` while traversing field annotations. - """ - - __slots__ = () - - -@dataclass(frozen=True, **SLOTS) -class Gt(BaseMetadata): - """Gt(gt=x) implies that the value must be greater than x. - - It can be used with any type that supports the ``>`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - gt: SupportsGt - - -@dataclass(frozen=True, **SLOTS) -class Ge(BaseMetadata): - """Ge(ge=x) implies that the value must be greater than or equal to x. - - It can be used with any type that supports the ``>=`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - ge: SupportsGe - - -@dataclass(frozen=True, **SLOTS) -class Lt(BaseMetadata): - """Lt(lt=x) implies that the value must be less than x. - - It can be used with any type that supports the ``<`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - lt: SupportsLt - - -@dataclass(frozen=True, **SLOTS) -class Le(BaseMetadata): - """Le(le=x) implies that the value must be less than or equal to x. - - It can be used with any type that supports the ``<=`` operator, - including numbers, dates and times, strings, sets, and so on. - """ - - le: SupportsLe - - -@runtime_checkable -class GroupedMetadata(Protocol): - """A grouping of multiple objects, like typing.Unpack. - - `GroupedMetadata` on its own is not metadata and has no meaning. - All of the constraints and metadata should be fully expressable - in terms of the `BaseMetadata`'s returned by `GroupedMetadata.__iter__()`. - - Concrete implementations should override `GroupedMetadata.__iter__()` - to add their own metadata. - For example: - - >>> @dataclass - >>> class Field(GroupedMetadata): - >>> gt: float | None = None - >>> description: str | None = None - ... - >>> def __iter__(self) -> Iterable[object]: - >>> if self.gt is not None: - >>> yield Gt(self.gt) - >>> if self.description is not None: - >>> yield Description(self.gt) - - Also see the implementation of `Interval` below for an example. - - Parsers should recognize this and unpack it so that it can be used - both with and without unpacking: - - - `Annotated[int, Field(...)]` (parser must unpack Field) - - `Annotated[int, *Field(...)]` (PEP-646) - """ # noqa: trailing-whitespace - - @property - def __is_annotated_types_grouped_metadata__(self) -> Literal[True]: - return True - - def __iter__(self) -> Iterator[object]: - ... - - if not TYPE_CHECKING: - __slots__ = () # allow subclasses to use slots - - def __init_subclass__(cls, *args: Any, **kwargs: Any) -> None: - # Basic ABC like functionality without the complexity of an ABC - super().__init_subclass__(*args, **kwargs) - if cls.__iter__ is GroupedMetadata.__iter__: - raise TypeError("Can't subclass GroupedMetadata without implementing __iter__") - - def __iter__(self) -> Iterator[object]: # noqa: F811 - raise NotImplementedError # more helpful than "None has no attribute..." type errors - - -@dataclass(frozen=True, **KW_ONLY, **SLOTS) -class Interval(GroupedMetadata): - """Interval can express inclusive or exclusive bounds with a single object. - - It accepts keyword arguments ``gt``, ``ge``, ``lt``, and/or ``le``, which - are interpreted the same way as the single-bound constraints. - """ - - gt: Union[SupportsGt, None] = None - ge: Union[SupportsGe, None] = None - lt: Union[SupportsLt, None] = None - le: Union[SupportsLe, None] = None - - def __iter__(self) -> Iterator[BaseMetadata]: - """Unpack an Interval into zero or more single-bounds.""" - if self.gt is not None: - yield Gt(self.gt) - if self.ge is not None: - yield Ge(self.ge) - if self.lt is not None: - yield Lt(self.lt) - if self.le is not None: - yield Le(self.le) - - -@dataclass(frozen=True, **SLOTS) -class MultipleOf(BaseMetadata): - """MultipleOf(multiple_of=x) might be interpreted in two ways: - - 1. Python semantics, implying ``value % multiple_of == 0``, or - 2. JSONschema semantics, where ``int(value / multiple_of) == value / multiple_of`` - - We encourage users to be aware of these two common interpretations, - and libraries to carefully document which they implement. - """ - - multiple_of: Union[SupportsDiv, SupportsMod] - - -@dataclass(frozen=True, **SLOTS) -class MinLen(BaseMetadata): - """ - MinLen() implies minimum inclusive length, - e.g. ``len(value) >= min_length``. - """ - - min_length: Annotated[int, Ge(0)] - - -@dataclass(frozen=True, **SLOTS) -class MaxLen(BaseMetadata): - """ - MaxLen() implies maximum inclusive length, - e.g. ``len(value) <= max_length``. - """ - - max_length: Annotated[int, Ge(0)] - - -@dataclass(frozen=True, **SLOTS) -class Len(GroupedMetadata): - """ - Len() implies that ``min_length <= len(value) <= max_length``. - - Upper bound may be omitted or ``None`` to indicate no upper length bound. - """ - - min_length: Annotated[int, Ge(0)] = 0 - max_length: Optional[Annotated[int, Ge(0)]] = None - - def __iter__(self) -> Iterator[BaseMetadata]: - """Unpack a Len into zone or more single-bounds.""" - if self.min_length > 0: - yield MinLen(self.min_length) - if self.max_length is not None: - yield MaxLen(self.max_length) - - -@dataclass(frozen=True, **SLOTS) -class Timezone(BaseMetadata): - """Timezone(tz=...) requires a datetime to be aware (or ``tz=None``, naive). - - ``Annotated[datetime, Timezone(None)]`` must be a naive datetime. - ``Timezone[...]`` (the ellipsis literal) expresses that the datetime must be - tz-aware but any timezone is allowed. - - You may also pass a specific timezone string or tzinfo object such as - ``Timezone(timezone.utc)`` or ``Timezone("Africa/Abidjan")`` to express that - you only allow a specific timezone, though we note that this is often - a symptom of poor design. - """ - - tz: Union[str, tzinfo, EllipsisType, None] - - -@dataclass(frozen=True, **SLOTS) -class Unit(BaseMetadata): - """Indicates that the value is a physical quantity with the specified unit. - - It is intended for usage with numeric types, where the value represents the - magnitude of the quantity. For example, ``distance: Annotated[float, Unit('m')]`` - or ``speed: Annotated[float, Unit('m/s')]``. - - Interpretation of the unit string is left to the discretion of the consumer. - It is suggested to follow conventions established by python libraries that work - with physical quantities, such as - - - ``pint`` : - - ``astropy.units``: - - For indicating a quantity with a certain dimensionality but without a specific unit - it is recommended to use square brackets, e.g. `Annotated[float, Unit('[time]')]`. - Note, however, ``annotated_types`` itself makes no use of the unit string. - """ - - unit: str - - -@dataclass(frozen=True, **SLOTS) -class Predicate(BaseMetadata): - """``Predicate(func: Callable)`` implies `func(value)` is truthy for valid values. - - Users should prefer statically inspectable metadata, but if you need the full - power and flexibility of arbitrary runtime predicates... here it is. - - We provide a few predefined predicates for common string constraints: - ``IsLower = Predicate(str.islower)``, ``IsUpper = Predicate(str.isupper)``, and - ``IsDigits = Predicate(str.isdigit)``. Users are encouraged to use methods which - can be given special handling, and avoid indirection like ``lambda s: s.lower()``. - - Some libraries might have special logic to handle certain predicates, e.g. by - checking for `str.isdigit` and using its presence to both call custom logic to - enforce digit-only strings, and customise some generated external schema. - - We do not specify what behaviour should be expected for predicates that raise - an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently - skip invalid constraints, or statically raise an error; or it might try calling it - and then propagate or discard the resulting exception. - """ - - func: Callable[[Any], bool] - - def __repr__(self) -> str: - if getattr(self.func, "__name__", "") == "": - return f"{self.__class__.__name__}({self.func!r})" - if isinstance(self.func, (types.MethodType, types.BuiltinMethodType)) and ( - namespace := getattr(self.func.__self__, "__name__", None) - ): - return f"{self.__class__.__name__}({namespace}.{self.func.__name__})" - if isinstance(self.func, type(str.isascii)): # method descriptor - return f"{self.__class__.__name__}({self.func.__qualname__})" - return f"{self.__class__.__name__}({self.func.__name__})" - - -@dataclass -class Not: - func: Callable[[Any], bool] - - def __call__(self, __v: Any) -> bool: - return not self.func(__v) - - -_StrType = TypeVar("_StrType", bound=str) - -LowerCase = Annotated[_StrType, Predicate(str.islower)] -""" -Return True if the string is a lowercase string, False otherwise. - -A string is lowercase if all cased characters in the string are lowercase and there is at least one cased character in the string. -""" # noqa: E501 -UpperCase = Annotated[_StrType, Predicate(str.isupper)] -""" -Return True if the string is an uppercase string, False otherwise. - -A string is uppercase if all cased characters in the string are uppercase and there is at least one cased character in the string. -""" # noqa: E501 -IsDigit = Annotated[_StrType, Predicate(str.isdigit)] -IsDigits = IsDigit # type: ignore # plural for backwards compatibility, see #63 -""" -Return True if the string is a digit string, False otherwise. - -A string is a digit string if all characters in the string are digits and there is at least one character in the string. -""" # noqa: E501 -IsAscii = Annotated[_StrType, Predicate(str.isascii)] -""" -Return True if all characters in the string are ASCII, False otherwise. - -ASCII characters have code points in the range U+0000-U+007F. Empty string is ASCII too. -""" - -_NumericType = TypeVar('_NumericType', bound=Union[SupportsFloat, SupportsIndex]) -IsFinite = Annotated[_NumericType, Predicate(math.isfinite)] -"""Return True if x is neither an infinity nor a NaN, and False otherwise.""" -IsNotFinite = Annotated[_NumericType, Predicate(Not(math.isfinite))] -"""Return True if x is one of infinity or NaN, and False otherwise""" -IsNan = Annotated[_NumericType, Predicate(math.isnan)] -"""Return True if x is a NaN (not a number), and False otherwise.""" -IsNotNan = Annotated[_NumericType, Predicate(Not(math.isnan))] -"""Return True if x is anything but NaN (not a number), and False otherwise.""" -IsInfinite = Annotated[_NumericType, Predicate(math.isinf)] -"""Return True if x is a positive or negative infinity, and False otherwise.""" -IsNotInfinite = Annotated[_NumericType, Predicate(Not(math.isinf))] -"""Return True if x is neither a positive or negative infinity, and False otherwise.""" - -try: - from typing_extensions import DocInfo, doc # type: ignore [attr-defined] -except ImportError: - - @dataclass(frozen=True, **SLOTS) - class DocInfo: # type: ignore [no-redef] - """ " - The return value of doc(), mainly to be used by tools that want to extract the - Annotated documentation at runtime. - """ - - documentation: str - """The documentation string passed to doc().""" - - def doc( - documentation: str, - ) -> DocInfo: - """ - Add documentation to a type annotation inside of Annotated. - - For example: - - >>> def hi(name: Annotated[int, doc("The name of the user")]) -> None: ... - """ - return DocInfo(documentation) diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types/py.typed b/backend/venv/lib/python3.12/site-packages/annotated_types/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/annotated_types/test_cases.py b/backend/venv/lib/python3.12/site-packages/annotated_types/test_cases.py deleted file mode 100644 index d9164d6..0000000 --- a/backend/venv/lib/python3.12/site-packages/annotated_types/test_cases.py +++ /dev/null @@ -1,151 +0,0 @@ -import math -import sys -from datetime import date, datetime, timedelta, timezone -from decimal import Decimal -from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Set, Tuple - -if sys.version_info < (3, 9): - from typing_extensions import Annotated -else: - from typing import Annotated - -import annotated_types as at - - -class Case(NamedTuple): - """ - A test case for `annotated_types`. - """ - - annotation: Any - valid_cases: Iterable[Any] - invalid_cases: Iterable[Any] - - -def cases() -> Iterable[Case]: - # Gt, Ge, Lt, Le - yield Case(Annotated[int, at.Gt(4)], (5, 6, 1000), (4, 0, -1)) - yield Case(Annotated[float, at.Gt(0.5)], (0.6, 0.7, 0.8, 0.9), (0.5, 0.0, -0.1)) - yield Case( - Annotated[datetime, at.Gt(datetime(2000, 1, 1))], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - [datetime(2000, 1, 1), datetime(1999, 12, 31)], - ) - yield Case( - Annotated[datetime, at.Gt(date(2000, 1, 1))], - [date(2000, 1, 2), date(2000, 1, 3)], - [date(2000, 1, 1), date(1999, 12, 31)], - ) - yield Case( - Annotated[datetime, at.Gt(Decimal('1.123'))], - [Decimal('1.1231'), Decimal('123')], - [Decimal('1.123'), Decimal('0')], - ) - - yield Case(Annotated[int, at.Ge(4)], (4, 5, 6, 1000, 4), (0, -1)) - yield Case(Annotated[float, at.Ge(0.5)], (0.5, 0.6, 0.7, 0.8, 0.9), (0.4, 0.0, -0.1)) - yield Case( - Annotated[datetime, at.Ge(datetime(2000, 1, 1))], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - [datetime(1998, 1, 1), datetime(1999, 12, 31)], - ) - - yield Case(Annotated[int, at.Lt(4)], (0, -1), (4, 5, 6, 1000, 4)) - yield Case(Annotated[float, at.Lt(0.5)], (0.4, 0.0, -0.1), (0.5, 0.6, 0.7, 0.8, 0.9)) - yield Case( - Annotated[datetime, at.Lt(datetime(2000, 1, 1))], - [datetime(1999, 12, 31), datetime(1999, 12, 31)], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - ) - - yield Case(Annotated[int, at.Le(4)], (4, 0, -1), (5, 6, 1000)) - yield Case(Annotated[float, at.Le(0.5)], (0.5, 0.0, -0.1), (0.6, 0.7, 0.8, 0.9)) - yield Case( - Annotated[datetime, at.Le(datetime(2000, 1, 1))], - [datetime(2000, 1, 1), datetime(1999, 12, 31)], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - ) - - # Interval - yield Case(Annotated[int, at.Interval(gt=4)], (5, 6, 1000), (4, 0, -1)) - yield Case(Annotated[int, at.Interval(gt=4, lt=10)], (5, 6), (4, 10, 1000, 0, -1)) - yield Case(Annotated[float, at.Interval(ge=0.5, le=1)], (0.5, 0.9, 1), (0.49, 1.1)) - yield Case( - Annotated[datetime, at.Interval(gt=datetime(2000, 1, 1), le=datetime(2000, 1, 3))], - [datetime(2000, 1, 2), datetime(2000, 1, 3)], - [datetime(2000, 1, 1), datetime(2000, 1, 4)], - ) - - yield Case(Annotated[int, at.MultipleOf(multiple_of=3)], (0, 3, 9), (1, 2, 4)) - yield Case(Annotated[float, at.MultipleOf(multiple_of=0.5)], (0, 0.5, 1, 1.5), (0.4, 1.1)) - - # lengths - - yield Case(Annotated[str, at.MinLen(3)], ('123', '1234', 'x' * 10), ('', '1', '12')) - yield Case(Annotated[str, at.Len(3)], ('123', '1234', 'x' * 10), ('', '1', '12')) - yield Case(Annotated[List[int], at.MinLen(3)], ([1, 2, 3], [1, 2, 3, 4], [1] * 10), ([], [1], [1, 2])) - yield Case(Annotated[List[int], at.Len(3)], ([1, 2, 3], [1, 2, 3, 4], [1] * 10), ([], [1], [1, 2])) - - yield Case(Annotated[str, at.MaxLen(4)], ('', '1234'), ('12345', 'x' * 10)) - yield Case(Annotated[str, at.Len(0, 4)], ('', '1234'), ('12345', 'x' * 10)) - yield Case(Annotated[List[str], at.MaxLen(4)], ([], ['a', 'bcdef'], ['a', 'b', 'c']), (['a'] * 5, ['b'] * 10)) - yield Case(Annotated[List[str], at.Len(0, 4)], ([], ['a', 'bcdef'], ['a', 'b', 'c']), (['a'] * 5, ['b'] * 10)) - - yield Case(Annotated[str, at.Len(3, 5)], ('123', '12345'), ('', '1', '12', '123456', 'x' * 10)) - yield Case(Annotated[str, at.Len(3, 3)], ('123',), ('12', '1234')) - - yield Case(Annotated[Dict[int, int], at.Len(2, 3)], [{1: 1, 2: 2}], [{}, {1: 1}, {1: 1, 2: 2, 3: 3, 4: 4}]) - yield Case(Annotated[Set[int], at.Len(2, 3)], ({1, 2}, {1, 2, 3}), (set(), {1}, {1, 2, 3, 4})) - yield Case(Annotated[Tuple[int, ...], at.Len(2, 3)], ((1, 2), (1, 2, 3)), ((), (1,), (1, 2, 3, 4))) - - # Timezone - - yield Case( - Annotated[datetime, at.Timezone(None)], [datetime(2000, 1, 1)], [datetime(2000, 1, 1, tzinfo=timezone.utc)] - ) - yield Case( - Annotated[datetime, at.Timezone(...)], [datetime(2000, 1, 1, tzinfo=timezone.utc)], [datetime(2000, 1, 1)] - ) - yield Case( - Annotated[datetime, at.Timezone(timezone.utc)], - [datetime(2000, 1, 1, tzinfo=timezone.utc)], - [datetime(2000, 1, 1), datetime(2000, 1, 1, tzinfo=timezone(timedelta(hours=6)))], - ) - yield Case( - Annotated[datetime, at.Timezone('Europe/London')], - [datetime(2000, 1, 1, tzinfo=timezone(timedelta(0), name='Europe/London'))], - [datetime(2000, 1, 1), datetime(2000, 1, 1, tzinfo=timezone(timedelta(hours=6)))], - ) - - # Quantity - - yield Case(Annotated[float, at.Unit(unit='m')], (5, 4.2), ('5m', '4.2m')) - - # predicate types - - yield Case(at.LowerCase[str], ['abc', 'foobar'], ['', 'A', 'Boom']) - yield Case(at.UpperCase[str], ['ABC', 'DEFO'], ['', 'a', 'abc', 'AbC']) - yield Case(at.IsDigit[str], ['123'], ['', 'ab', 'a1b2']) - yield Case(at.IsAscii[str], ['123', 'foo bar'], ['£100', '😊', 'whatever 👀']) - - yield Case(Annotated[int, at.Predicate(lambda x: x % 2 == 0)], [0, 2, 4], [1, 3, 5]) - - yield Case(at.IsFinite[float], [1.23], [math.nan, math.inf, -math.inf]) - yield Case(at.IsNotFinite[float], [math.nan, math.inf], [1.23]) - yield Case(at.IsNan[float], [math.nan], [1.23, math.inf]) - yield Case(at.IsNotNan[float], [1.23, math.inf], [math.nan]) - yield Case(at.IsInfinite[float], [math.inf], [math.nan, 1.23]) - yield Case(at.IsNotInfinite[float], [math.nan, 1.23], [math.inf]) - - # check stacked predicates - yield Case(at.IsInfinite[Annotated[float, at.Predicate(lambda x: x > 0)]], [math.inf], [-math.inf, 1.23, math.nan]) - - # doc - yield Case(Annotated[int, at.doc("A number")], [1, 2], []) - - # custom GroupedMetadata - class MyCustomGroupedMetadata(at.GroupedMetadata): - def __iter__(self) -> Iterator[at.Predicate]: - yield at.Predicate(lambda x: float(x).is_integer()) - - yield Case(Annotated[float, MyCustomGroupedMetadata()], [0, 2.0], [0.01, 1.5]) diff --git a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/METADATA deleted file mode 100644 index dbeb198..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/METADATA +++ /dev/null @@ -1,96 +0,0 @@ -Metadata-Version: 2.4 -Name: anyio -Version: 4.12.1 -Summary: High-level concurrency and networking framework on top of asyncio or Trio -Author-email: Alex Grönholm -License-Expression: MIT -Project-URL: Documentation, https://anyio.readthedocs.io/en/latest/ -Project-URL: Changelog, https://anyio.readthedocs.io/en/stable/versionhistory.html -Project-URL: Source code, https://github.com/agronholm/anyio -Project-URL: Issue tracker, https://github.com/agronholm/anyio/issues -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Framework :: AnyIO -Classifier: Typing :: Typed -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Requires-Python: >=3.9 -Description-Content-Type: text/x-rst -License-File: LICENSE -Requires-Dist: exceptiongroup>=1.0.2; python_version < "3.11" -Requires-Dist: idna>=2.8 -Requires-Dist: typing_extensions>=4.5; python_version < "3.13" -Provides-Extra: trio -Requires-Dist: trio>=0.32.0; python_version >= "3.10" and extra == "trio" -Requires-Dist: trio>=0.31.0; python_version < "3.10" and extra == "trio" -Dynamic: license-file - -.. image:: https://github.com/agronholm/anyio/actions/workflows/test.yml/badge.svg - :target: https://github.com/agronholm/anyio/actions/workflows/test.yml - :alt: Build Status -.. image:: https://coveralls.io/repos/github/agronholm/anyio/badge.svg?branch=master - :target: https://coveralls.io/github/agronholm/anyio?branch=master - :alt: Code Coverage -.. image:: https://readthedocs.org/projects/anyio/badge/?version=latest - :target: https://anyio.readthedocs.io/en/latest/?badge=latest - :alt: Documentation -.. image:: https://badges.gitter.im/gitterHQ/gitter.svg - :target: https://gitter.im/python-trio/AnyIO - :alt: Gitter chat - -AnyIO is an asynchronous networking and concurrency library that works on top of either asyncio_ or -Trio_. It implements Trio-like `structured concurrency`_ (SC) on top of asyncio and works in harmony -with the native SC of Trio itself. - -Applications and libraries written against AnyIO's API will run unmodified on either asyncio_ or -Trio_. AnyIO can also be adopted into a library or application incrementally – bit by bit, no full -refactoring necessary. It will blend in with the native libraries of your chosen backend. - -To find out why you might want to use AnyIO's APIs instead of asyncio's, you can read about it -`here `_. - -Documentation -------------- - -View full documentation at: https://anyio.readthedocs.io/ - -Features --------- - -AnyIO offers the following functionality: - -* Task groups (nurseries_ in trio terminology) -* High-level networking (TCP, UDP and UNIX sockets) - - * `Happy eyeballs`_ algorithm for TCP connections (more robust than that of asyncio on Python - 3.8) - * async/await style UDP sockets (unlike asyncio where you still have to use Transports and - Protocols) - -* A versatile API for byte streams and object streams -* Inter-task synchronization and communication (locks, conditions, events, semaphores, object - streams) -* Worker threads -* Subprocesses -* Subinterpreter support for code parallelization (on Python 3.13 and later) -* Asynchronous file I/O (using worker threads) -* Signal handling -* Asynchronous version of the functools_ module - -AnyIO also comes with its own pytest_ plugin which also supports asynchronous fixtures. -It even works with the popular Hypothesis_ library. - -.. _asyncio: https://docs.python.org/3/library/asyncio.html -.. _Trio: https://github.com/python-trio/trio -.. _structured concurrency: https://en.wikipedia.org/wiki/Structured_concurrency -.. _nurseries: https://trio.readthedocs.io/en/stable/reference-core.html#nurseries-and-spawning -.. _Happy eyeballs: https://en.wikipedia.org/wiki/Happy_Eyeballs -.. _pytest: https://docs.pytest.org/en/latest/ -.. _functools: https://docs.python.org/3/library/functools.html -.. _Hypothesis: https://hypothesis.works/ diff --git a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/RECORD deleted file mode 100644 index 4b3b57c..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/RECORD +++ /dev/null @@ -1,92 +0,0 @@ -anyio-4.12.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -anyio-4.12.1.dist-info/METADATA,sha256=DfiDab9Tmmcfy802lOLTMEHJQShkOSbopCwqCYbLuJk,4277 -anyio-4.12.1.dist-info/RECORD,, -anyio-4.12.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 -anyio-4.12.1.dist-info/entry_points.txt,sha256=_d6Yu6uiaZmNe0CydowirE9Cmg7zUL2g08tQpoS3Qvc,39 -anyio-4.12.1.dist-info/licenses/LICENSE,sha256=U2GsncWPLvX9LpsJxoKXwX8ElQkJu8gCO9uC6s8iwrA,1081 -anyio-4.12.1.dist-info/top_level.txt,sha256=QglSMiWX8_5dpoVAEIHdEYzvqFMdSYWmCj6tYw2ITkQ,6 -anyio/__init__.py,sha256=7iDVqMUprUuKNY91FuoKqayAhR-OY136YDPI6P78HHk,6170 -anyio/__pycache__/__init__.cpython-312.pyc,, -anyio/__pycache__/from_thread.cpython-312.pyc,, -anyio/__pycache__/functools.cpython-312.pyc,, -anyio/__pycache__/lowlevel.cpython-312.pyc,, -anyio/__pycache__/pytest_plugin.cpython-312.pyc,, -anyio/__pycache__/to_interpreter.cpython-312.pyc,, -anyio/__pycache__/to_process.cpython-312.pyc,, -anyio/__pycache__/to_thread.cpython-312.pyc,, -anyio/_backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/_backends/__pycache__/__init__.cpython-312.pyc,, -anyio/_backends/__pycache__/_asyncio.cpython-312.pyc,, -anyio/_backends/__pycache__/_trio.cpython-312.pyc,, -anyio/_backends/_asyncio.py,sha256=xG6qv60mgGnL0mK82dxjH2b8hlkMlJ-x2BqIq3qv70Y,98863 -anyio/_backends/_trio.py,sha256=30Rctb7lm8g63ZHljVPVnj5aH-uK6oQvphjwUBoAzuI,41456 -anyio/_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/_core/__pycache__/__init__.cpython-312.pyc,, -anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc,, -anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc,, -anyio/_core/__pycache__/_eventloop.cpython-312.pyc,, -anyio/_core/__pycache__/_exceptions.cpython-312.pyc,, -anyio/_core/__pycache__/_fileio.cpython-312.pyc,, -anyio/_core/__pycache__/_resources.cpython-312.pyc,, -anyio/_core/__pycache__/_signals.cpython-312.pyc,, -anyio/_core/__pycache__/_sockets.cpython-312.pyc,, -anyio/_core/__pycache__/_streams.cpython-312.pyc,, -anyio/_core/__pycache__/_subprocesses.cpython-312.pyc,, -anyio/_core/__pycache__/_synchronization.cpython-312.pyc,, -anyio/_core/__pycache__/_tasks.cpython-312.pyc,, -anyio/_core/__pycache__/_tempfile.cpython-312.pyc,, -anyio/_core/__pycache__/_testing.cpython-312.pyc,, -anyio/_core/__pycache__/_typedattr.cpython-312.pyc,, -anyio/_core/_asyncio_selector_thread.py,sha256=2PdxFM3cs02Kp6BSppbvmRT7q7asreTW5FgBxEsflBo,5626 -anyio/_core/_contextmanagers.py,sha256=YInBCabiEeS-UaP_Jdxa1CaFC71ETPW8HZTHIM8Rsc8,7215 -anyio/_core/_eventloop.py,sha256=c2EdcBX-xnKwxPcC4Pjn3_qG9I-x4IWFO2R9RqCGjM4,6448 -anyio/_core/_exceptions.py,sha256=Y3aq-Wxd7Q2HqwSg7nZPvRsHEuGazv_qeet6gqEBdPk,4407 -anyio/_core/_fileio.py,sha256=uc7t10Vb-If7GbdWM_zFf-ajUe6uek63fSt7IBLlZW0,25731 -anyio/_core/_resources.py,sha256=NbmU5O5UX3xEyACnkmYX28Fmwdl-f-ny0tHym26e0w0,435 -anyio/_core/_signals.py,sha256=mjTBB2hTKNPRlU0IhnijeQedpWOGERDiMjSlJQsFrug,1016 -anyio/_core/_sockets.py,sha256=RBXHcUqZt5gg_-OOfgHVv8uq2FSKk1uVUzTdpjBoI1o,34977 -anyio/_core/_streams.py,sha256=FczFwIgDpnkK0bODWJXMpsUJYdvAD04kaUaGzJU8DK0,1806 -anyio/_core/_subprocesses.py,sha256=EXm5igL7dj55iYkPlbYVAqtbqxJxjU-6OndSTIx9SRg,8047 -anyio/_core/_synchronization.py,sha256=MgVVqFzvt580tHC31LiOcq1G6aryut--xRG4Ff8KwxQ,20869 -anyio/_core/_tasks.py,sha256=pVB7K6AAulzUM8YgXAeqNZG44nSyZ1bYJjH8GznC00I,5435 -anyio/_core/_tempfile.py,sha256=lHb7CW4FyIlpkf5ADAf4VmLHCKwEHF9nxqNyBCFFUiA,19697 -anyio/_core/_testing.py,sha256=u7MPqGXwpTxqI7hclSdNA30z2GH1Nw258uwKvy_RfBg,2340 -anyio/_core/_typedattr.py,sha256=P4ozZikn3-DbpoYcvyghS_FOYAgbmUxeoU8-L_07pZM,2508 -anyio/abc/__init__.py,sha256=6mWhcl_pGXhrgZVHP_TCfMvIXIOp9mroEFM90fYCU_U,2869 -anyio/abc/__pycache__/__init__.cpython-312.pyc,, -anyio/abc/__pycache__/_eventloop.cpython-312.pyc,, -anyio/abc/__pycache__/_resources.cpython-312.pyc,, -anyio/abc/__pycache__/_sockets.cpython-312.pyc,, -anyio/abc/__pycache__/_streams.cpython-312.pyc,, -anyio/abc/__pycache__/_subprocesses.cpython-312.pyc,, -anyio/abc/__pycache__/_tasks.cpython-312.pyc,, -anyio/abc/__pycache__/_testing.cpython-312.pyc,, -anyio/abc/_eventloop.py,sha256=GlzgB3UJGgG6Kr7olpjOZ-o00PghecXuofVDQ_5611Q,10749 -anyio/abc/_resources.py,sha256=DrYvkNN1hH6Uvv5_5uKySvDsnknGVDe8FCKfko0VtN8,783 -anyio/abc/_sockets.py,sha256=ECTY0jLEF18gryANHR3vFzXzGdZ-xPwELq1QdgOb0Jo,13258 -anyio/abc/_streams.py,sha256=005GKSCXGprxnhucILboSqc2JFovECZk9m3p-qqxXVc,7640 -anyio/abc/_subprocesses.py,sha256=cumAPJTktOQtw63IqG0lDpyZqu_l1EElvQHMiwJgL08,2067 -anyio/abc/_tasks.py,sha256=KC7wrciE48AINOI-AhPutnFhe1ewfP7QnamFlDzqesQ,3721 -anyio/abc/_testing.py,sha256=tBJUzkSfOXJw23fe8qSJ03kJlShOYjjaEyFB6k6MYT8,1821 -anyio/from_thread.py,sha256=L-0w1HxJ6BSb-KuVi57k5Tkc3yzQrx3QK5tAxMPcY-0,19141 -anyio/functools.py,sha256=HWj7GBEmc0Z-mZg3uok7Z7ZJn0rEC_0Pzbt0nYUDaTQ,10973 -anyio/lowlevel.py,sha256=AyKLVK3LaWSoK39LkCKxE4_GDMLKZBNqTrLUgk63y80,5158 -anyio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/pytest_plugin.py,sha256=3jAFQn0jv_pyoWE2GBBlHaj9sqXj4e8vob0_hgrsXE8,10244 -anyio/streams/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/streams/__pycache__/__init__.cpython-312.pyc,, -anyio/streams/__pycache__/buffered.cpython-312.pyc,, -anyio/streams/__pycache__/file.cpython-312.pyc,, -anyio/streams/__pycache__/memory.cpython-312.pyc,, -anyio/streams/__pycache__/stapled.cpython-312.pyc,, -anyio/streams/__pycache__/text.cpython-312.pyc,, -anyio/streams/__pycache__/tls.cpython-312.pyc,, -anyio/streams/buffered.py,sha256=2R3PeJhe4EXrdYqz44Y6-Eg9R6DrmlsYrP36Ir43-po,6263 -anyio/streams/file.py,sha256=4WZ7XGz5WNu39FQHvqbe__TQ0HDP9OOhgO1mk9iVpVU,4470 -anyio/streams/memory.py,sha256=F0zwzvFJKAhX_LRZGoKzzqDC2oMM-f-yyTBrEYEGOaU,10740 -anyio/streams/stapled.py,sha256=T8Xqwf8K6EgURPxbt1N4i7A8BAk-gScv-GRhjLXIf_o,4390 -anyio/streams/text.py,sha256=BcVAGJw1VRvtIqnv-o0Rb0pwH7p8vwlvl21xHq522ag,5765 -anyio/streams/tls.py,sha256=Jpxy0Mfbcp1BxHCwE-YjSSFaLnIBbnnwur-excYThs4,15368 -anyio/to_interpreter.py,sha256=_mLngrMy97TMR6VbW4Y6YzDUk9ZuPcQMPlkuyRh3C9k,7100 -anyio/to_process.py,sha256=J7gAA_YOuoHqnpDAf5fm1Qu6kOmTzdFbiDNvnV755vk,9798 -anyio/to_thread.py,sha256=menEgXYmUV7Fjg_9WqCV95P9MAtQS8BzPGGcWB_QnfQ,2687 diff --git a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/WHEEL deleted file mode 100644 index e7fa31b..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (80.9.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/entry_points.txt b/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/entry_points.txt deleted file mode 100644 index 44dd9bd..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[pytest11] -anyio = anyio.pytest_plugin diff --git a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/licenses/LICENSE b/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/licenses/LICENSE deleted file mode 100644 index 104eebf..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/licenses/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2018 Alex Grönholm - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/top_level.txt b/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/top_level.txt deleted file mode 100644 index c77c069..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio-4.12.1.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -anyio diff --git a/backend/venv/lib/python3.12/site-packages/anyio/__init__.py b/backend/venv/lib/python3.12/site-packages/anyio/__init__.py deleted file mode 100644 index d23c5a5..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/__init__.py +++ /dev/null @@ -1,111 +0,0 @@ -from __future__ import annotations - -from ._core._contextmanagers import AsyncContextManagerMixin as AsyncContextManagerMixin -from ._core._contextmanagers import ContextManagerMixin as ContextManagerMixin -from ._core._eventloop import current_time as current_time -from ._core._eventloop import get_all_backends as get_all_backends -from ._core._eventloop import get_available_backends as get_available_backends -from ._core._eventloop import get_cancelled_exc_class as get_cancelled_exc_class -from ._core._eventloop import run as run -from ._core._eventloop import sleep as sleep -from ._core._eventloop import sleep_forever as sleep_forever -from ._core._eventloop import sleep_until as sleep_until -from ._core._exceptions import BrokenResourceError as BrokenResourceError -from ._core._exceptions import BrokenWorkerInterpreter as BrokenWorkerInterpreter -from ._core._exceptions import BrokenWorkerProcess as BrokenWorkerProcess -from ._core._exceptions import BusyResourceError as BusyResourceError -from ._core._exceptions import ClosedResourceError as ClosedResourceError -from ._core._exceptions import ConnectionFailed as ConnectionFailed -from ._core._exceptions import DelimiterNotFound as DelimiterNotFound -from ._core._exceptions import EndOfStream as EndOfStream -from ._core._exceptions import IncompleteRead as IncompleteRead -from ._core._exceptions import NoEventLoopError as NoEventLoopError -from ._core._exceptions import RunFinishedError as RunFinishedError -from ._core._exceptions import TypedAttributeLookupError as TypedAttributeLookupError -from ._core._exceptions import WouldBlock as WouldBlock -from ._core._fileio import AsyncFile as AsyncFile -from ._core._fileio import Path as Path -from ._core._fileio import open_file as open_file -from ._core._fileio import wrap_file as wrap_file -from ._core._resources import aclose_forcefully as aclose_forcefully -from ._core._signals import open_signal_receiver as open_signal_receiver -from ._core._sockets import TCPConnectable as TCPConnectable -from ._core._sockets import UNIXConnectable as UNIXConnectable -from ._core._sockets import as_connectable as as_connectable -from ._core._sockets import connect_tcp as connect_tcp -from ._core._sockets import connect_unix as connect_unix -from ._core._sockets import create_connected_udp_socket as create_connected_udp_socket -from ._core._sockets import ( - create_connected_unix_datagram_socket as create_connected_unix_datagram_socket, -) -from ._core._sockets import create_tcp_listener as create_tcp_listener -from ._core._sockets import create_udp_socket as create_udp_socket -from ._core._sockets import create_unix_datagram_socket as create_unix_datagram_socket -from ._core._sockets import create_unix_listener as create_unix_listener -from ._core._sockets import getaddrinfo as getaddrinfo -from ._core._sockets import getnameinfo as getnameinfo -from ._core._sockets import notify_closing as notify_closing -from ._core._sockets import wait_readable as wait_readable -from ._core._sockets import wait_socket_readable as wait_socket_readable -from ._core._sockets import wait_socket_writable as wait_socket_writable -from ._core._sockets import wait_writable as wait_writable -from ._core._streams import create_memory_object_stream as create_memory_object_stream -from ._core._subprocesses import open_process as open_process -from ._core._subprocesses import run_process as run_process -from ._core._synchronization import CapacityLimiter as CapacityLimiter -from ._core._synchronization import ( - CapacityLimiterStatistics as CapacityLimiterStatistics, -) -from ._core._synchronization import Condition as Condition -from ._core._synchronization import ConditionStatistics as ConditionStatistics -from ._core._synchronization import Event as Event -from ._core._synchronization import EventStatistics as EventStatistics -from ._core._synchronization import Lock as Lock -from ._core._synchronization import LockStatistics as LockStatistics -from ._core._synchronization import ResourceGuard as ResourceGuard -from ._core._synchronization import Semaphore as Semaphore -from ._core._synchronization import SemaphoreStatistics as SemaphoreStatistics -from ._core._tasks import TASK_STATUS_IGNORED as TASK_STATUS_IGNORED -from ._core._tasks import CancelScope as CancelScope -from ._core._tasks import create_task_group as create_task_group -from ._core._tasks import current_effective_deadline as current_effective_deadline -from ._core._tasks import fail_after as fail_after -from ._core._tasks import move_on_after as move_on_after -from ._core._tempfile import NamedTemporaryFile as NamedTemporaryFile -from ._core._tempfile import SpooledTemporaryFile as SpooledTemporaryFile -from ._core._tempfile import TemporaryDirectory as TemporaryDirectory -from ._core._tempfile import TemporaryFile as TemporaryFile -from ._core._tempfile import gettempdir as gettempdir -from ._core._tempfile import gettempdirb as gettempdirb -from ._core._tempfile import mkdtemp as mkdtemp -from ._core._tempfile import mkstemp as mkstemp -from ._core._testing import TaskInfo as TaskInfo -from ._core._testing import get_current_task as get_current_task -from ._core._testing import get_running_tasks as get_running_tasks -from ._core._testing import wait_all_tasks_blocked as wait_all_tasks_blocked -from ._core._typedattr import TypedAttributeProvider as TypedAttributeProvider -from ._core._typedattr import TypedAttributeSet as TypedAttributeSet -from ._core._typedattr import typed_attribute as typed_attribute - -# Re-export imports so they look like they live directly in this package -for __value in list(locals().values()): - if getattr(__value, "__module__", "").startswith("anyio."): - __value.__module__ = __name__ - - -del __value - - -def __getattr__(attr: str) -> type[BrokenWorkerInterpreter]: - """Support deprecated aliases.""" - if attr == "BrokenWorkerIntepreter": - import warnings - - warnings.warn( - "The 'BrokenWorkerIntepreter' alias is deprecated, use 'BrokenWorkerInterpreter' instead.", - DeprecationWarning, - stacklevel=2, - ) - return BrokenWorkerInterpreter - - raise AttributeError(f"module {__name__!r} has no attribute {attr!r}") diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_backends/__init__.py b/backend/venv/lib/python3.12/site-packages/anyio/_backends/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py b/backend/venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py deleted file mode 100644 index 8ff009e..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py +++ /dev/null @@ -1,2980 +0,0 @@ -from __future__ import annotations - -import array -import asyncio -import concurrent.futures -import contextvars -import math -import os -import socket -import sys -import threading -import weakref -from asyncio import ( - AbstractEventLoop, - CancelledError, - all_tasks, - create_task, - current_task, - get_running_loop, - sleep, -) -from asyncio.base_events import _run_until_complete_cb # type: ignore[attr-defined] -from collections import OrderedDict, deque -from collections.abc import ( - AsyncGenerator, - AsyncIterator, - Awaitable, - Callable, - Collection, - Coroutine, - Iterable, - Sequence, -) -from concurrent.futures import Future -from contextlib import AbstractContextManager, suppress -from contextvars import Context, copy_context -from dataclasses import dataclass, field -from functools import partial, wraps -from inspect import ( - CORO_RUNNING, - CORO_SUSPENDED, - getcoroutinestate, - iscoroutine, -) -from io import IOBase -from os import PathLike -from queue import Queue -from signal import Signals -from socket import AddressFamily, SocketKind -from threading import Thread -from types import CodeType, TracebackType -from typing import ( - IO, - TYPE_CHECKING, - Any, - Optional, - TypeVar, - cast, -) -from weakref import WeakKeyDictionary - -from .. import ( - CapacityLimiterStatistics, - EventStatistics, - LockStatistics, - TaskInfo, - abc, -) -from .._core._eventloop import ( - claim_worker_thread, - set_current_async_library, - threadlocals, -) -from .._core._exceptions import ( - BrokenResourceError, - BusyResourceError, - ClosedResourceError, - EndOfStream, - RunFinishedError, - WouldBlock, - iterate_exceptions, -) -from .._core._sockets import convert_ipv6_sockaddr -from .._core._streams import create_memory_object_stream -from .._core._synchronization import ( - CapacityLimiter as BaseCapacityLimiter, -) -from .._core._synchronization import Event as BaseEvent -from .._core._synchronization import Lock as BaseLock -from .._core._synchronization import ( - ResourceGuard, - SemaphoreStatistics, -) -from .._core._synchronization import Semaphore as BaseSemaphore -from .._core._tasks import CancelScope as BaseCancelScope -from ..abc import ( - AsyncBackend, - IPSockAddrType, - SocketListener, - UDPPacketType, - UNIXDatagramPacketType, -) -from ..abc._eventloop import StrOrBytesPath -from ..lowlevel import RunVar -from ..streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike -else: - FileDescriptorLike = object - -if sys.version_info >= (3, 10): - from typing import ParamSpec -else: - from typing_extensions import ParamSpec - -if sys.version_info >= (3, 11): - from asyncio import Runner - from typing import TypeVarTuple, Unpack -else: - import contextvars - import enum - import signal - from asyncio import coroutines, events, exceptions, tasks - - from exceptiongroup import BaseExceptionGroup - from typing_extensions import TypeVarTuple, Unpack - - class _State(enum.Enum): - CREATED = "created" - INITIALIZED = "initialized" - CLOSED = "closed" - - class Runner: - # Copied from CPython 3.11 - def __init__( - self, - *, - debug: bool | None = None, - loop_factory: Callable[[], AbstractEventLoop] | None = None, - ): - self._state = _State.CREATED - self._debug = debug - self._loop_factory = loop_factory - self._loop: AbstractEventLoop | None = None - self._context = None - self._interrupt_count = 0 - self._set_event_loop = False - - def __enter__(self) -> Runner: - self._lazy_init() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.close() - - def close(self) -> None: - """Shutdown and close event loop.""" - loop = self._loop - if self._state is not _State.INITIALIZED or loop is None: - return - try: - _cancel_all_tasks(loop) - loop.run_until_complete(loop.shutdown_asyncgens()) - if hasattr(loop, "shutdown_default_executor"): - loop.run_until_complete(loop.shutdown_default_executor()) - else: - loop.run_until_complete(_shutdown_default_executor(loop)) - finally: - if self._set_event_loop: - events.set_event_loop(None) - loop.close() - self._loop = None - self._state = _State.CLOSED - - def get_loop(self) -> AbstractEventLoop: - """Return embedded event loop.""" - self._lazy_init() - return self._loop - - def run(self, coro: Coroutine[T_Retval], *, context=None) -> T_Retval: - """Run a coroutine inside the embedded event loop.""" - if not coroutines.iscoroutine(coro): - raise ValueError(f"a coroutine was expected, got {coro!r}") - - if events._get_running_loop() is not None: - # fail fast with short traceback - raise RuntimeError( - "Runner.run() cannot be called from a running event loop" - ) - - self._lazy_init() - - if context is None: - context = self._context - task = context.run(self._loop.create_task, coro) - - if ( - threading.current_thread() is threading.main_thread() - and signal.getsignal(signal.SIGINT) is signal.default_int_handler - ): - sigint_handler = partial(self._on_sigint, main_task=task) - try: - signal.signal(signal.SIGINT, sigint_handler) - except ValueError: - # `signal.signal` may throw if `threading.main_thread` does - # not support signals (e.g. embedded interpreter with signals - # not registered - see gh-91880) - sigint_handler = None - else: - sigint_handler = None - - self._interrupt_count = 0 - try: - return self._loop.run_until_complete(task) - except exceptions.CancelledError: - if self._interrupt_count > 0: - uncancel = getattr(task, "uncancel", None) - if uncancel is not None and uncancel() == 0: - raise KeyboardInterrupt # noqa: B904 - raise # CancelledError - finally: - if ( - sigint_handler is not None - and signal.getsignal(signal.SIGINT) is sigint_handler - ): - signal.signal(signal.SIGINT, signal.default_int_handler) - - def _lazy_init(self) -> None: - if self._state is _State.CLOSED: - raise RuntimeError("Runner is closed") - if self._state is _State.INITIALIZED: - return - if self._loop_factory is None: - self._loop = events.new_event_loop() - if not self._set_event_loop: - # Call set_event_loop only once to avoid calling - # attach_loop multiple times on child watchers - events.set_event_loop(self._loop) - self._set_event_loop = True - else: - self._loop = self._loop_factory() - if self._debug is not None: - self._loop.set_debug(self._debug) - self._context = contextvars.copy_context() - self._state = _State.INITIALIZED - - def _on_sigint(self, signum, frame, main_task: asyncio.Task) -> None: - self._interrupt_count += 1 - if self._interrupt_count == 1 and not main_task.done(): - main_task.cancel() - # wakeup loop if it is blocked by select() with long timeout - self._loop.call_soon_threadsafe(lambda: None) - return - raise KeyboardInterrupt() - - def _cancel_all_tasks(loop: AbstractEventLoop) -> None: - to_cancel = tasks.all_tasks(loop) - if not to_cancel: - return - - for task in to_cancel: - task.cancel() - - loop.run_until_complete(tasks.gather(*to_cancel, return_exceptions=True)) - - for task in to_cancel: - if task.cancelled(): - continue - if task.exception() is not None: - loop.call_exception_handler( - { - "message": "unhandled exception during asyncio.run() shutdown", - "exception": task.exception(), - "task": task, - } - ) - - async def _shutdown_default_executor(loop: AbstractEventLoop) -> None: - """Schedule the shutdown of the default executor.""" - - def _do_shutdown(future: asyncio.futures.Future) -> None: - try: - loop._default_executor.shutdown(wait=True) # type: ignore[attr-defined] - loop.call_soon_threadsafe(future.set_result, None) - except Exception as ex: - loop.call_soon_threadsafe(future.set_exception, ex) - - loop._executor_shutdown_called = True - if loop._default_executor is None: - return - future = loop.create_future() - thread = threading.Thread(target=_do_shutdown, args=(future,)) - thread.start() - try: - await future - finally: - thread.join() - - -T_Retval = TypeVar("T_Retval") -T_contra = TypeVar("T_contra", contravariant=True) -PosArgsT = TypeVarTuple("PosArgsT") -P = ParamSpec("P") - -_root_task: RunVar[asyncio.Task | None] = RunVar("_root_task") - - -def find_root_task() -> asyncio.Task: - root_task = _root_task.get(None) - if root_task is not None and not root_task.done(): - return root_task - - # Look for a task that has been started via run_until_complete() - for task in all_tasks(): - if task._callbacks and not task.done(): - callbacks = [cb for cb, context in task._callbacks] - for cb in callbacks: - if ( - cb is _run_until_complete_cb - or getattr(cb, "__module__", None) == "uvloop.loop" - ): - _root_task.set(task) - return task - - # Look up the topmost task in the AnyIO task tree, if possible - task = cast(asyncio.Task, current_task()) - state = _task_states.get(task) - if state: - cancel_scope = state.cancel_scope - while cancel_scope and cancel_scope._parent_scope is not None: - cancel_scope = cancel_scope._parent_scope - - if cancel_scope is not None: - return cast(asyncio.Task, cancel_scope._host_task) - - return task - - -def get_callable_name(func: Callable) -> str: - module = getattr(func, "__module__", None) - qualname = getattr(func, "__qualname__", None) - return ".".join([x for x in (module, qualname) if x]) - - -# -# Event loop -# - -_run_vars: WeakKeyDictionary[asyncio.AbstractEventLoop, Any] = WeakKeyDictionary() - - -def _task_started(task: asyncio.Task) -> bool: - """Return ``True`` if the task has been started and has not finished.""" - # The task coro should never be None here, as we never add finished tasks to the - # task list - coro = task.get_coro() - assert coro is not None - try: - return getcoroutinestate(coro) in (CORO_RUNNING, CORO_SUSPENDED) - except AttributeError: - # task coro is async_genenerator_asend https://bugs.python.org/issue37771 - raise Exception(f"Cannot determine if task {task} has started or not") from None - - -# -# Timeouts and cancellation -# - - -def is_anyio_cancellation(exc: CancelledError) -> bool: - # Sometimes third party frameworks catch a CancelledError and raise a new one, so as - # a workaround we have to look at the previous ones in __context__ too for a - # matching cancel message - while True: - if ( - exc.args - and isinstance(exc.args[0], str) - and exc.args[0].startswith("Cancelled via cancel scope ") - ): - return True - - if isinstance(exc.__context__, CancelledError): - exc = exc.__context__ - continue - - return False - - -class CancelScope(BaseCancelScope): - def __new__( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - return object.__new__(cls) - - def __init__(self, deadline: float = math.inf, shield: bool = False): - self._deadline = deadline - self._shield = shield - self._parent_scope: CancelScope | None = None - self._child_scopes: set[CancelScope] = set() - self._cancel_called = False - self._cancel_reason: str | None = None - self._cancelled_caught = False - self._active = False - self._timeout_handle: asyncio.TimerHandle | None = None - self._cancel_handle: asyncio.Handle | None = None - self._tasks: set[asyncio.Task] = set() - self._host_task: asyncio.Task | None = None - if sys.version_info >= (3, 11): - self._pending_uncancellations: int | None = 0 - else: - self._pending_uncancellations = None - - def __enter__(self) -> CancelScope: - if self._active: - raise RuntimeError( - "Each CancelScope may only be used for a single 'with' block" - ) - - self._host_task = host_task = cast(asyncio.Task, current_task()) - self._tasks.add(host_task) - try: - task_state = _task_states[host_task] - except KeyError: - task_state = TaskState(None, self) - _task_states[host_task] = task_state - else: - self._parent_scope = task_state.cancel_scope - task_state.cancel_scope = self - if self._parent_scope is not None: - # If using an eager task factory, the parent scope may not even contain - # the host task - self._parent_scope._child_scopes.add(self) - self._parent_scope._tasks.discard(host_task) - - self._timeout() - self._active = True - - # Start cancelling the host task if the scope was cancelled before entering - if self._cancel_called: - self._deliver_cancellation(self) - - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - del exc_tb - - if not self._active: - raise RuntimeError("This cancel scope is not active") - if current_task() is not self._host_task: - raise RuntimeError( - "Attempted to exit cancel scope in a different task than it was " - "entered in" - ) - - assert self._host_task is not None - host_task_state = _task_states.get(self._host_task) - if host_task_state is None or host_task_state.cancel_scope is not self: - raise RuntimeError( - "Attempted to exit a cancel scope that isn't the current tasks's " - "current cancel scope" - ) - - try: - self._active = False - if self._timeout_handle: - self._timeout_handle.cancel() - self._timeout_handle = None - - self._tasks.remove(self._host_task) - if self._parent_scope is not None: - self._parent_scope._child_scopes.remove(self) - self._parent_scope._tasks.add(self._host_task) - - host_task_state.cancel_scope = self._parent_scope - - # Restart the cancellation effort in the closest visible, cancelled parent - # scope if necessary - self._restart_cancellation_in_parent() - - # We only swallow the exception iff it was an AnyIO CancelledError, either - # directly as exc_val or inside an exception group and there are no cancelled - # parent cancel scopes visible to us here - if self._cancel_called and not self._parent_cancellation_is_visible_to_us: - # For each level-cancel() call made on the host task, call uncancel() - while self._pending_uncancellations: - self._host_task.uncancel() - self._pending_uncancellations -= 1 - - # Update cancelled_caught and check for exceptions we must not swallow - cannot_swallow_exc_val = False - if exc_val is not None: - for exc in iterate_exceptions(exc_val): - if isinstance(exc, CancelledError) and is_anyio_cancellation( - exc - ): - self._cancelled_caught = True - else: - cannot_swallow_exc_val = True - - return self._cancelled_caught and not cannot_swallow_exc_val - else: - if self._pending_uncancellations: - assert self._parent_scope is not None - assert self._parent_scope._pending_uncancellations is not None - self._parent_scope._pending_uncancellations += ( - self._pending_uncancellations - ) - self._pending_uncancellations = 0 - - return False - finally: - self._host_task = None - del exc_val - - @property - def _effectively_cancelled(self) -> bool: - cancel_scope: CancelScope | None = self - while cancel_scope is not None: - if cancel_scope._cancel_called: - return True - - if cancel_scope.shield: - return False - - cancel_scope = cancel_scope._parent_scope - - return False - - @property - def _parent_cancellation_is_visible_to_us(self) -> bool: - return ( - self._parent_scope is not None - and not self.shield - and self._parent_scope._effectively_cancelled - ) - - def _timeout(self) -> None: - if self._deadline != math.inf: - loop = get_running_loop() - if loop.time() >= self._deadline: - self.cancel("deadline exceeded") - else: - self._timeout_handle = loop.call_at(self._deadline, self._timeout) - - def _deliver_cancellation(self, origin: CancelScope) -> bool: - """ - Deliver cancellation to directly contained tasks and nested cancel scopes. - - Schedule another run at the end if we still have tasks eligible for - cancellation. - - :param origin: the cancel scope that originated the cancellation - :return: ``True`` if the delivery needs to be retried on the next cycle - - """ - should_retry = False - current = current_task() - for task in self._tasks: - should_retry = True - if task._must_cancel: # type: ignore[attr-defined] - continue - - # The task is eligible for cancellation if it has started - if task is not current and (task is self._host_task or _task_started(task)): - waiter = task._fut_waiter # type: ignore[attr-defined] - if not isinstance(waiter, asyncio.Future) or not waiter.done(): - task.cancel(origin._cancel_reason) - if ( - task is origin._host_task - and origin._pending_uncancellations is not None - ): - origin._pending_uncancellations += 1 - - # Deliver cancellation to child scopes that aren't shielded or running their own - # cancellation callbacks - for scope in self._child_scopes: - if not scope._shield and not scope.cancel_called: - should_retry = scope._deliver_cancellation(origin) or should_retry - - # Schedule another callback if there are still tasks left - if origin is self: - if should_retry: - self._cancel_handle = get_running_loop().call_soon( - self._deliver_cancellation, origin - ) - else: - self._cancel_handle = None - - return should_retry - - def _restart_cancellation_in_parent(self) -> None: - """ - Restart the cancellation effort in the closest directly cancelled parent scope. - - """ - scope = self._parent_scope - while scope is not None: - if scope._cancel_called: - if scope._cancel_handle is None: - scope._deliver_cancellation(scope) - - break - - # No point in looking beyond any shielded scope - if scope._shield: - break - - scope = scope._parent_scope - - def cancel(self, reason: str | None = None) -> None: - if not self._cancel_called: - if self._timeout_handle: - self._timeout_handle.cancel() - self._timeout_handle = None - - self._cancel_called = True - self._cancel_reason = f"Cancelled via cancel scope {id(self):x}" - if task := current_task(): - self._cancel_reason += f" by {task}" - - if reason: - self._cancel_reason += f"; reason: {reason}" - - if self._host_task is not None: - self._deliver_cancellation(self) - - @property - def deadline(self) -> float: - return self._deadline - - @deadline.setter - def deadline(self, value: float) -> None: - self._deadline = float(value) - if self._timeout_handle is not None: - self._timeout_handle.cancel() - self._timeout_handle = None - - if self._active and not self._cancel_called: - self._timeout() - - @property - def cancel_called(self) -> bool: - return self._cancel_called - - @property - def cancelled_caught(self) -> bool: - return self._cancelled_caught - - @property - def shield(self) -> bool: - return self._shield - - @shield.setter - def shield(self, value: bool) -> None: - if self._shield != value: - self._shield = value - if not value: - self._restart_cancellation_in_parent() - - -# -# Task states -# - - -class TaskState: - """ - Encapsulates auxiliary task information that cannot be added to the Task instance - itself because there are no guarantees about its implementation. - """ - - __slots__ = "parent_id", "cancel_scope", "__weakref__" - - def __init__(self, parent_id: int | None, cancel_scope: CancelScope | None): - self.parent_id = parent_id - self.cancel_scope = cancel_scope - - -_task_states: WeakKeyDictionary[asyncio.Task, TaskState] = WeakKeyDictionary() - - -# -# Task groups -# - - -class _AsyncioTaskStatus(abc.TaskStatus): - def __init__(self, future: asyncio.Future, parent_id: int): - self._future = future - self._parent_id = parent_id - - def started(self, value: T_contra | None = None) -> None: - try: - self._future.set_result(value) - except asyncio.InvalidStateError: - if not self._future.cancelled(): - raise RuntimeError( - "called 'started' twice on the same task status" - ) from None - - task = cast(asyncio.Task, current_task()) - _task_states[task].parent_id = self._parent_id - - -if sys.version_info >= (3, 12): - _eager_task_factory_code: CodeType | None = asyncio.eager_task_factory.__code__ -else: - _eager_task_factory_code = None - - -class TaskGroup(abc.TaskGroup): - def __init__(self) -> None: - self.cancel_scope: CancelScope = CancelScope() - self._active = False - self._exceptions: list[BaseException] = [] - self._tasks: set[asyncio.Task] = set() - self._on_completed_fut: asyncio.Future[None] | None = None - - async def __aenter__(self) -> TaskGroup: - self.cancel_scope.__enter__() - self._active = True - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - try: - if exc_val is not None: - self.cancel_scope.cancel() - if not isinstance(exc_val, CancelledError): - self._exceptions.append(exc_val) - - loop = get_running_loop() - try: - if self._tasks: - with CancelScope() as wait_scope: - while self._tasks: - self._on_completed_fut = loop.create_future() - - try: - await self._on_completed_fut - except CancelledError as exc: - # Shield the scope against further cancellation attempts, - # as they're not productive (#695) - wait_scope.shield = True - self.cancel_scope.cancel() - - # Set exc_val from the cancellation exception if it was - # previously unset. However, we should not replace a native - # cancellation exception with one raise by a cancel scope. - if exc_val is None or ( - isinstance(exc_val, CancelledError) - and not is_anyio_cancellation(exc) - ): - exc_val = exc - - self._on_completed_fut = None - else: - # If there are no child tasks to wait on, run at least one checkpoint - # anyway - await AsyncIOBackend.cancel_shielded_checkpoint() - - self._active = False - if self._exceptions: - # The exception that got us here should already have been - # added to self._exceptions so it's ok to break exception - # chaining and avoid adding a "During handling of above..." - # for each nesting level. - raise BaseExceptionGroup( - "unhandled errors in a TaskGroup", self._exceptions - ) from None - elif exc_val: - raise exc_val - except BaseException as exc: - if self.cancel_scope.__exit__(type(exc), exc, exc.__traceback__): - return True - - raise - - return self.cancel_scope.__exit__(exc_type, exc_val, exc_tb) - finally: - del exc_val, exc_tb, self._exceptions - - def _spawn( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - args: tuple[Unpack[PosArgsT]], - name: object, - task_status_future: asyncio.Future | None = None, - ) -> asyncio.Task: - def task_done(_task: asyncio.Task) -> None: - if sys.version_info >= (3, 14) and self.cancel_scope._host_task is not None: - asyncio.future_discard_from_awaited_by( - _task, self.cancel_scope._host_task - ) - - task_state = _task_states[_task] - assert task_state.cancel_scope is not None - assert _task in task_state.cancel_scope._tasks - task_state.cancel_scope._tasks.remove(_task) - self._tasks.remove(task) - del _task_states[_task] - - if self._on_completed_fut is not None and not self._tasks: - try: - self._on_completed_fut.set_result(None) - except asyncio.InvalidStateError: - pass - - try: - exc = _task.exception() - except CancelledError as e: - while isinstance(e.__context__, CancelledError): - e = e.__context__ - - exc = e - - if exc is not None: - # The future can only be in the cancelled state if the host task was - # cancelled, so return immediately instead of adding one more - # CancelledError to the exceptions list - if task_status_future is not None and task_status_future.cancelled(): - return - - if task_status_future is None or task_status_future.done(): - if not isinstance(exc, CancelledError): - self._exceptions.append(exc) - - if not self.cancel_scope._effectively_cancelled: - self.cancel_scope.cancel() - else: - task_status_future.set_exception(exc) - elif task_status_future is not None and not task_status_future.done(): - task_status_future.set_exception( - RuntimeError("Child exited without calling task_status.started()") - ) - - if not self._active: - raise RuntimeError( - "This task group is not active; no new tasks can be started." - ) - - kwargs = {} - if task_status_future: - parent_id = id(current_task()) - kwargs["task_status"] = _AsyncioTaskStatus( - task_status_future, id(self.cancel_scope._host_task) - ) - else: - parent_id = id(self.cancel_scope._host_task) - - coro = func(*args, **kwargs) - if not iscoroutine(coro): - prefix = f"{func.__module__}." if hasattr(func, "__module__") else "" - raise TypeError( - f"Expected {prefix}{func.__qualname__}() to return a coroutine, but " - f"the return value ({coro!r}) is not a coroutine object" - ) - - name = get_callable_name(func) if name is None else str(name) - loop = asyncio.get_running_loop() - if ( - (factory := loop.get_task_factory()) - and getattr(factory, "__code__", None) is _eager_task_factory_code - and (closure := getattr(factory, "__closure__", None)) - ): - custom_task_constructor = closure[0].cell_contents - task = custom_task_constructor(coro, loop=loop, name=name) - else: - task = create_task(coro, name=name) - - # Make the spawned task inherit the task group's cancel scope - _task_states[task] = TaskState( - parent_id=parent_id, cancel_scope=self.cancel_scope - ) - self.cancel_scope._tasks.add(task) - self._tasks.add(task) - if sys.version_info >= (3, 14) and self.cancel_scope._host_task is not None: - asyncio.future_add_to_awaited_by(task, self.cancel_scope._host_task) - - task.add_done_callback(task_done) - return task - - def start_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> None: - self._spawn(func, args, name) - - async def start( - self, func: Callable[..., Awaitable[Any]], *args: object, name: object = None - ) -> Any: - future: asyncio.Future = asyncio.Future() - task = self._spawn(func, args, name, future) - - # If the task raises an exception after sending a start value without a switch - # point between, the task group is cancelled and this method never proceeds to - # process the completed future. That's why we have to have a shielded cancel - # scope here. - try: - return await future - except CancelledError: - # Cancel the task and wait for it to exit before returning - task.cancel() - with CancelScope(shield=True), suppress(CancelledError): - await task - - raise - - -# -# Threads -# - -_Retval_Queue_Type = tuple[Optional[T_Retval], Optional[BaseException]] - - -class WorkerThread(Thread): - MAX_IDLE_TIME = 10 # seconds - - def __init__( - self, - root_task: asyncio.Task, - workers: set[WorkerThread], - idle_workers: deque[WorkerThread], - ): - super().__init__(name="AnyIO worker thread") - self.root_task = root_task - self.workers = workers - self.idle_workers = idle_workers - self.loop = root_task._loop - self.queue: Queue[ - tuple[Context, Callable, tuple, asyncio.Future, CancelScope] | None - ] = Queue(2) - self.idle_since = AsyncIOBackend.current_time() - self.stopping = False - - def _report_result( - self, future: asyncio.Future, result: Any, exc: BaseException | None - ) -> None: - self.idle_since = AsyncIOBackend.current_time() - if not self.stopping: - self.idle_workers.append(self) - - if not future.cancelled(): - if exc is not None: - if isinstance(exc, StopIteration): - new_exc = RuntimeError("coroutine raised StopIteration") - new_exc.__cause__ = exc - exc = new_exc - - future.set_exception(exc) - else: - future.set_result(result) - - def run(self) -> None: - with claim_worker_thread(AsyncIOBackend, self.loop): - while True: - item = self.queue.get() - if item is None: - # Shutdown command received - return - - context, func, args, future, cancel_scope = item - if not future.cancelled(): - result = None - exception: BaseException | None = None - threadlocals.current_cancel_scope = cancel_scope - try: - result = context.run(func, *args) - except BaseException as exc: - exception = exc - finally: - del threadlocals.current_cancel_scope - - if not self.loop.is_closed(): - self.loop.call_soon_threadsafe( - self._report_result, future, result, exception - ) - - del result, exception - - self.queue.task_done() - del item, context, func, args, future, cancel_scope - - def stop(self, f: asyncio.Task | None = None) -> None: - self.stopping = True - self.queue.put_nowait(None) - self.workers.discard(self) - try: - self.idle_workers.remove(self) - except ValueError: - pass - - -_threadpool_idle_workers: RunVar[deque[WorkerThread]] = RunVar( - "_threadpool_idle_workers" -) -_threadpool_workers: RunVar[set[WorkerThread]] = RunVar("_threadpool_workers") - - -# -# Subprocesses -# - - -@dataclass(eq=False) -class StreamReaderWrapper(abc.ByteReceiveStream): - _stream: asyncio.StreamReader - - async def receive(self, max_bytes: int = 65536) -> bytes: - data = await self._stream.read(max_bytes) - if data: - return data - else: - raise EndOfStream - - async def aclose(self) -> None: - self._stream.set_exception(ClosedResourceError()) - await AsyncIOBackend.checkpoint() - - -@dataclass(eq=False) -class StreamWriterWrapper(abc.ByteSendStream): - _stream: asyncio.StreamWriter - _closed: bool = field(init=False, default=False) - - async def send(self, item: bytes) -> None: - await AsyncIOBackend.checkpoint_if_cancelled() - stream_paused = self._stream._protocol._paused # type: ignore[attr-defined] - try: - self._stream.write(item) - await self._stream.drain() - except (ConnectionResetError, BrokenPipeError, RuntimeError) as exc: - # If closed by us and/or the peer: - # * on stdlib, drain() raises ConnectionResetError or BrokenPipeError - # * on uvloop and Winloop, write() eventually starts raising RuntimeError - if self._closed: - raise ClosedResourceError from exc - elif self._stream.is_closing(): - raise BrokenResourceError from exc - - raise - - if not stream_paused: - await AsyncIOBackend.cancel_shielded_checkpoint() - - async def aclose(self) -> None: - self._closed = True - self._stream.close() - await AsyncIOBackend.checkpoint() - - -@dataclass(eq=False) -class Process(abc.Process): - _process: asyncio.subprocess.Process - _stdin: StreamWriterWrapper | None - _stdout: StreamReaderWrapper | None - _stderr: StreamReaderWrapper | None - - async def aclose(self) -> None: - with CancelScope(shield=True) as scope: - if self._stdin: - await self._stdin.aclose() - if self._stdout: - await self._stdout.aclose() - if self._stderr: - await self._stderr.aclose() - - scope.shield = False - try: - await self.wait() - except BaseException: - scope.shield = True - self.kill() - await self.wait() - raise - - async def wait(self) -> int: - return await self._process.wait() - - def terminate(self) -> None: - self._process.terminate() - - def kill(self) -> None: - self._process.kill() - - def send_signal(self, signal: int) -> None: - self._process.send_signal(signal) - - @property - def pid(self) -> int: - return self._process.pid - - @property - def returncode(self) -> int | None: - return self._process.returncode - - @property - def stdin(self) -> abc.ByteSendStream | None: - return self._stdin - - @property - def stdout(self) -> abc.ByteReceiveStream | None: - return self._stdout - - @property - def stderr(self) -> abc.ByteReceiveStream | None: - return self._stderr - - -def _forcibly_shutdown_process_pool_on_exit( - workers: set[Process], _task: object -) -> None: - """ - Forcibly shuts down worker processes belonging to this event loop.""" - child_watcher: asyncio.AbstractChildWatcher | None = None # type: ignore[name-defined] - if sys.version_info < (3, 12): - try: - child_watcher = asyncio.get_event_loop_policy().get_child_watcher() - except NotImplementedError: - pass - - # Close as much as possible (w/o async/await) to avoid warnings - for process in workers.copy(): - if process.returncode is None: - continue - - process._stdin._stream._transport.close() # type: ignore[union-attr] - process._stdout._stream._transport.close() # type: ignore[union-attr] - process._stderr._stream._transport.close() # type: ignore[union-attr] - process.kill() - if child_watcher: - child_watcher.remove_child_handler(process.pid) - - -async def _shutdown_process_pool_on_exit(workers: set[abc.Process]) -> None: - """ - Shuts down worker processes belonging to this event loop. - - NOTE: this only works when the event loop was started using asyncio.run() or - anyio.run(). - - """ - process: abc.Process - try: - await sleep(math.inf) - except asyncio.CancelledError: - workers = workers.copy() - for process in workers: - if process.returncode is None: - process.kill() - - for process in workers: - await process.aclose() - - -# -# Sockets and networking -# - - -class StreamProtocol(asyncio.Protocol): - read_queue: deque[bytes] - read_event: asyncio.Event - write_event: asyncio.Event - exception: Exception | None = None - is_at_eof: bool = False - - def connection_made(self, transport: asyncio.BaseTransport) -> None: - self.read_queue = deque() - self.read_event = asyncio.Event() - self.write_event = asyncio.Event() - self.write_event.set() - cast(asyncio.Transport, transport).set_write_buffer_limits(0) - - def connection_lost(self, exc: Exception | None) -> None: - if exc: - self.exception = BrokenResourceError() - self.exception.__cause__ = exc - - self.read_event.set() - self.write_event.set() - - def data_received(self, data: bytes) -> None: - # ProactorEventloop sometimes sends bytearray instead of bytes - self.read_queue.append(bytes(data)) - self.read_event.set() - - def eof_received(self) -> bool | None: - self.is_at_eof = True - self.read_event.set() - return True - - def pause_writing(self) -> None: - self.write_event = asyncio.Event() - - def resume_writing(self) -> None: - self.write_event.set() - - -class DatagramProtocol(asyncio.DatagramProtocol): - read_queue: deque[tuple[bytes, IPSockAddrType]] - read_event: asyncio.Event - write_event: asyncio.Event - exception: Exception | None = None - - def connection_made(self, transport: asyncio.BaseTransport) -> None: - self.read_queue = deque(maxlen=100) # arbitrary value - self.read_event = asyncio.Event() - self.write_event = asyncio.Event() - self.write_event.set() - - def connection_lost(self, exc: Exception | None) -> None: - self.read_event.set() - self.write_event.set() - - def datagram_received(self, data: bytes, addr: IPSockAddrType) -> None: - addr = convert_ipv6_sockaddr(addr) - self.read_queue.append((data, addr)) - self.read_event.set() - - def error_received(self, exc: Exception) -> None: - self.exception = exc - - def pause_writing(self) -> None: - self.write_event.clear() - - def resume_writing(self) -> None: - self.write_event.set() - - -class SocketStream(abc.SocketStream): - def __init__(self, transport: asyncio.Transport, protocol: StreamProtocol): - self._transport = transport - self._protocol = protocol - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - self._closed = False - - @property - def _raw_socket(self) -> socket.socket: - return self._transport.get_extra_info("socket") - - async def receive(self, max_bytes: int = 65536) -> bytes: - with self._receive_guard: - if ( - not self._protocol.read_event.is_set() - and not self._transport.is_closing() - and not self._protocol.is_at_eof - ): - self._transport.resume_reading() - await self._protocol.read_event.wait() - self._transport.pause_reading() - else: - await AsyncIOBackend.checkpoint() - - try: - chunk = self._protocol.read_queue.popleft() - except IndexError: - if self._closed: - raise ClosedResourceError from None - elif self._protocol.exception: - raise self._protocol.exception from None - else: - raise EndOfStream from None - - if len(chunk) > max_bytes: - # Split the oversized chunk - chunk, leftover = chunk[:max_bytes], chunk[max_bytes:] - self._protocol.read_queue.appendleft(leftover) - - # If the read queue is empty, clear the flag so that the next call will - # block until data is available - if not self._protocol.read_queue: - self._protocol.read_event.clear() - - return chunk - - async def send(self, item: bytes) -> None: - with self._send_guard: - await AsyncIOBackend.checkpoint() - - if self._closed: - raise ClosedResourceError - elif self._protocol.exception is not None: - raise self._protocol.exception - - try: - self._transport.write(item) - except RuntimeError as exc: - if self._transport.is_closing(): - raise BrokenResourceError from exc - else: - raise - - await self._protocol.write_event.wait() - - async def send_eof(self) -> None: - try: - self._transport.write_eof() - except OSError: - pass - - async def aclose(self) -> None: - self._closed = True - if not self._transport.is_closing(): - try: - self._transport.write_eof() - except OSError: - pass - - self._transport.close() - await sleep(0) - self._transport.abort() - - -class _RawSocketMixin: - _receive_future: asyncio.Future | None = None - _send_future: asyncio.Future | None = None - _closing = False - - def __init__(self, raw_socket: socket.socket): - self.__raw_socket = raw_socket - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - @property - def _raw_socket(self) -> socket.socket: - return self.__raw_socket - - def _wait_until_readable(self, loop: asyncio.AbstractEventLoop) -> asyncio.Future: - def callback(f: object) -> None: - del self._receive_future - loop.remove_reader(self.__raw_socket) - - f = self._receive_future = asyncio.Future() - loop.add_reader(self.__raw_socket, f.set_result, None) - f.add_done_callback(callback) - return f - - def _wait_until_writable(self, loop: asyncio.AbstractEventLoop) -> asyncio.Future: - def callback(f: object) -> None: - del self._send_future - loop.remove_writer(self.__raw_socket) - - f = self._send_future = asyncio.Future() - loop.add_writer(self.__raw_socket, f.set_result, None) - f.add_done_callback(callback) - return f - - async def aclose(self) -> None: - if not self._closing: - self._closing = True - if self.__raw_socket.fileno() != -1: - self.__raw_socket.close() - - if self._receive_future: - self._receive_future.set_result(None) - if self._send_future: - self._send_future.set_result(None) - - -class UNIXSocketStream(_RawSocketMixin, abc.UNIXSocketStream): - async def send_eof(self) -> None: - with self._send_guard: - self._raw_socket.shutdown(socket.SHUT_WR) - - async def receive(self, max_bytes: int = 65536) -> bytes: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - data = self._raw_socket.recv(max_bytes) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - if not data: - raise EndOfStream - - return data - - async def send(self, item: bytes) -> None: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._send_guard: - view = memoryview(item) - while view: - try: - bytes_sent = self._raw_socket.send(view) - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - view = view[bytes_sent:] - - async def receive_fds(self, msglen: int, maxfds: int) -> tuple[bytes, list[int]]: - if not isinstance(msglen, int) or msglen < 0: - raise ValueError("msglen must be a non-negative integer") - if not isinstance(maxfds, int) or maxfds < 1: - raise ValueError("maxfds must be a positive integer") - - loop = get_running_loop() - fds = array.array("i") - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - message, ancdata, flags, addr = self._raw_socket.recvmsg( - msglen, socket.CMSG_LEN(maxfds * fds.itemsize) - ) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - if not message and not ancdata: - raise EndOfStream - - break - - for cmsg_level, cmsg_type, cmsg_data in ancdata: - if cmsg_level != socket.SOL_SOCKET or cmsg_type != socket.SCM_RIGHTS: - raise RuntimeError( - f"Received unexpected ancillary data; message = {message!r}, " - f"cmsg_level = {cmsg_level}, cmsg_type = {cmsg_type}" - ) - - fds.frombytes(cmsg_data[: len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) - - return message, list(fds) - - async def send_fds(self, message: bytes, fds: Collection[int | IOBase]) -> None: - if not message: - raise ValueError("message must not be empty") - if not fds: - raise ValueError("fds must not be empty") - - loop = get_running_loop() - filenos: list[int] = [] - for fd in fds: - if isinstance(fd, int): - filenos.append(fd) - elif isinstance(fd, IOBase): - filenos.append(fd.fileno()) - - fdarray = array.array("i", filenos) - await AsyncIOBackend.checkpoint() - with self._send_guard: - while True: - try: - # The ignore can be removed after mypy picks up - # https://github.com/python/typeshed/pull/5545 - self._raw_socket.sendmsg( - [message], [(socket.SOL_SOCKET, socket.SCM_RIGHTS, fdarray)] - ) - break - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - - -class TCPSocketListener(abc.SocketListener): - _accept_scope: CancelScope | None = None - _closed = False - - def __init__(self, raw_socket: socket.socket): - self.__raw_socket = raw_socket - self._loop = cast(asyncio.BaseEventLoop, get_running_loop()) - self._accept_guard = ResourceGuard("accepting connections from") - - @property - def _raw_socket(self) -> socket.socket: - return self.__raw_socket - - async def accept(self) -> abc.SocketStream: - if self._closed: - raise ClosedResourceError - - with self._accept_guard: - await AsyncIOBackend.checkpoint() - with CancelScope() as self._accept_scope: - try: - client_sock, _addr = await self._loop.sock_accept(self._raw_socket) - except asyncio.CancelledError: - # Workaround for https://bugs.python.org/issue41317 - try: - self._loop.remove_reader(self._raw_socket) - except (ValueError, NotImplementedError): - pass - - if self._closed: - raise ClosedResourceError from None - - raise - finally: - self._accept_scope = None - - client_sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - transport, protocol = await self._loop.connect_accepted_socket( - StreamProtocol, client_sock - ) - return SocketStream(transport, protocol) - - async def aclose(self) -> None: - if self._closed: - return - - self._closed = True - if self._accept_scope: - # Workaround for https://bugs.python.org/issue41317 - try: - self._loop.remove_reader(self._raw_socket) - except (ValueError, NotImplementedError): - pass - - self._accept_scope.cancel() - await sleep(0) - - self._raw_socket.close() - - -class UNIXSocketListener(abc.SocketListener): - def __init__(self, raw_socket: socket.socket): - self.__raw_socket = raw_socket - self._loop = get_running_loop() - self._accept_guard = ResourceGuard("accepting connections from") - self._closed = False - - async def accept(self) -> abc.SocketStream: - await AsyncIOBackend.checkpoint() - with self._accept_guard: - while True: - try: - client_sock, _ = self.__raw_socket.accept() - client_sock.setblocking(False) - return UNIXSocketStream(client_sock) - except BlockingIOError: - f: asyncio.Future = asyncio.Future() - self._loop.add_reader(self.__raw_socket, f.set_result, None) - f.add_done_callback( - lambda _: self._loop.remove_reader(self.__raw_socket) - ) - await f - except OSError as exc: - if self._closed: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - - async def aclose(self) -> None: - self._closed = True - self.__raw_socket.close() - - @property - def _raw_socket(self) -> socket.socket: - return self.__raw_socket - - -class UDPSocket(abc.UDPSocket): - def __init__( - self, transport: asyncio.DatagramTransport, protocol: DatagramProtocol - ): - self._transport = transport - self._protocol = protocol - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - self._closed = False - - @property - def _raw_socket(self) -> socket.socket: - return self._transport.get_extra_info("socket") - - async def aclose(self) -> None: - self._closed = True - if not self._transport.is_closing(): - self._transport.close() - - async def receive(self) -> tuple[bytes, IPSockAddrType]: - with self._receive_guard: - await AsyncIOBackend.checkpoint() - - # If the buffer is empty, ask for more data - if not self._protocol.read_queue and not self._transport.is_closing(): - self._protocol.read_event.clear() - await self._protocol.read_event.wait() - - try: - return self._protocol.read_queue.popleft() - except IndexError: - if self._closed: - raise ClosedResourceError from None - else: - raise BrokenResourceError from None - - async def send(self, item: UDPPacketType) -> None: - with self._send_guard: - await AsyncIOBackend.checkpoint() - await self._protocol.write_event.wait() - if self._closed: - raise ClosedResourceError - elif self._transport.is_closing(): - raise BrokenResourceError - else: - self._transport.sendto(*item) - - -class ConnectedUDPSocket(abc.ConnectedUDPSocket): - def __init__( - self, transport: asyncio.DatagramTransport, protocol: DatagramProtocol - ): - self._transport = transport - self._protocol = protocol - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - self._closed = False - - @property - def _raw_socket(self) -> socket.socket: - return self._transport.get_extra_info("socket") - - async def aclose(self) -> None: - self._closed = True - if not self._transport.is_closing(): - self._transport.close() - - async def receive(self) -> bytes: - with self._receive_guard: - await AsyncIOBackend.checkpoint() - - # If the buffer is empty, ask for more data - if not self._protocol.read_queue and not self._transport.is_closing(): - self._protocol.read_event.clear() - await self._protocol.read_event.wait() - - try: - packet = self._protocol.read_queue.popleft() - except IndexError: - if self._closed: - raise ClosedResourceError from None - else: - raise BrokenResourceError from None - - return packet[0] - - async def send(self, item: bytes) -> None: - with self._send_guard: - await AsyncIOBackend.checkpoint() - await self._protocol.write_event.wait() - if self._closed: - raise ClosedResourceError - elif self._transport.is_closing(): - raise BrokenResourceError - else: - self._transport.sendto(item) - - -class UNIXDatagramSocket(_RawSocketMixin, abc.UNIXDatagramSocket): - async def receive(self) -> UNIXDatagramPacketType: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - data = self._raw_socket.recvfrom(65536) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return data - - async def send(self, item: UNIXDatagramPacketType) -> None: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._send_guard: - while True: - try: - self._raw_socket.sendto(*item) - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return - - -class ConnectedUNIXDatagramSocket(_RawSocketMixin, abc.ConnectedUNIXDatagramSocket): - async def receive(self) -> bytes: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._receive_guard: - while True: - try: - data = self._raw_socket.recv(65536) - except BlockingIOError: - await self._wait_until_readable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return data - - async def send(self, item: bytes) -> None: - loop = get_running_loop() - await AsyncIOBackend.checkpoint() - with self._send_guard: - while True: - try: - self._raw_socket.send(item) - except BlockingIOError: - await self._wait_until_writable(loop) - except OSError as exc: - if self._closing: - raise ClosedResourceError from None - else: - raise BrokenResourceError from exc - else: - return - - -_read_events: RunVar[dict[int, asyncio.Future[bool]]] = RunVar("read_events") -_write_events: RunVar[dict[int, asyncio.Future[bool]]] = RunVar("write_events") - - -# -# Synchronization -# - - -class Event(BaseEvent): - def __new__(cls) -> Event: - return object.__new__(cls) - - def __init__(self) -> None: - self._event = asyncio.Event() - - def set(self) -> None: - self._event.set() - - def is_set(self) -> bool: - return self._event.is_set() - - async def wait(self) -> None: - if self.is_set(): - await AsyncIOBackend.checkpoint() - else: - await self._event.wait() - - def statistics(self) -> EventStatistics: - return EventStatistics(len(self._event._waiters)) - - -class Lock(BaseLock): - def __new__(cls, *, fast_acquire: bool = False) -> Lock: - return object.__new__(cls) - - def __init__(self, *, fast_acquire: bool = False) -> None: - self._fast_acquire = fast_acquire - self._owner_task: asyncio.Task | None = None - self._waiters: deque[tuple[asyncio.Task, asyncio.Future]] = deque() - - async def acquire(self) -> None: - task = cast(asyncio.Task, current_task()) - if self._owner_task is None and not self._waiters: - await AsyncIOBackend.checkpoint_if_cancelled() - self._owner_task = task - - # Unless on the "fast path", yield control of the event loop so that other - # tasks can run too - if not self._fast_acquire: - try: - await AsyncIOBackend.cancel_shielded_checkpoint() - except CancelledError: - self.release() - raise - - return - - if self._owner_task == task: - raise RuntimeError("Attempted to acquire an already held Lock") - - fut: asyncio.Future[None] = asyncio.Future() - item = task, fut - self._waiters.append(item) - try: - await fut - except CancelledError: - self._waiters.remove(item) - if self._owner_task is task: - self.release() - - raise - - self._waiters.remove(item) - - def acquire_nowait(self) -> None: - task = cast(asyncio.Task, current_task()) - if self._owner_task is None and not self._waiters: - self._owner_task = task - return - - if self._owner_task is task: - raise RuntimeError("Attempted to acquire an already held Lock") - - raise WouldBlock - - def locked(self) -> bool: - return self._owner_task is not None - - def release(self) -> None: - if self._owner_task != current_task(): - raise RuntimeError("The current task is not holding this lock") - - for task, fut in self._waiters: - if not fut.cancelled(): - self._owner_task = task - fut.set_result(None) - return - - self._owner_task = None - - def statistics(self) -> LockStatistics: - task_info = AsyncIOTaskInfo(self._owner_task) if self._owner_task else None - return LockStatistics(self.locked(), task_info, len(self._waiters)) - - -class Semaphore(BaseSemaphore): - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - return object.__new__(cls) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ): - super().__init__(initial_value, max_value=max_value) - self._value = initial_value - self._max_value = max_value - self._fast_acquire = fast_acquire - self._waiters: deque[asyncio.Future[None]] = deque() - - async def acquire(self) -> None: - if self._value > 0 and not self._waiters: - await AsyncIOBackend.checkpoint_if_cancelled() - self._value -= 1 - - # Unless on the "fast path", yield control of the event loop so that other - # tasks can run too - if not self._fast_acquire: - try: - await AsyncIOBackend.cancel_shielded_checkpoint() - except CancelledError: - self.release() - raise - - return - - fut: asyncio.Future[None] = asyncio.Future() - self._waiters.append(fut) - try: - await fut - except CancelledError: - try: - self._waiters.remove(fut) - except ValueError: - self.release() - - raise - - def acquire_nowait(self) -> None: - if self._value == 0: - raise WouldBlock - - self._value -= 1 - - def release(self) -> None: - if self._max_value is not None and self._value == self._max_value: - raise ValueError("semaphore released too many times") - - for fut in self._waiters: - if not fut.cancelled(): - fut.set_result(None) - self._waiters.remove(fut) - return - - self._value += 1 - - @property - def value(self) -> int: - return self._value - - @property - def max_value(self) -> int | None: - return self._max_value - - def statistics(self) -> SemaphoreStatistics: - return SemaphoreStatistics(len(self._waiters)) - - -class CapacityLimiter(BaseCapacityLimiter): - _total_tokens: float = 0 - - def __new__(cls, total_tokens: float) -> CapacityLimiter: - return object.__new__(cls) - - def __init__(self, total_tokens: float): - self._borrowers: set[Any] = set() - self._wait_queue: OrderedDict[Any, asyncio.Event] = OrderedDict() - self.total_tokens = total_tokens - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - @property - def total_tokens(self) -> float: - return self._total_tokens - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - if not isinstance(value, int) and not math.isinf(value): - raise TypeError("total_tokens must be an int or math.inf") - - if value < 0: - raise ValueError("total_tokens must be >= 0") - - waiters_to_notify = max(value - self._total_tokens, 0) - self._total_tokens = value - - # Notify waiting tasks that they have acquired the limiter - while self._wait_queue and waiters_to_notify: - event = self._wait_queue.popitem(last=False)[1] - event.set() - waiters_to_notify -= 1 - - @property - def borrowed_tokens(self) -> int: - return len(self._borrowers) - - @property - def available_tokens(self) -> float: - return self._total_tokens - len(self._borrowers) - - def _notify_next_waiter(self) -> None: - """Notify the next task in line if this limiter has free capacity now.""" - if self._wait_queue and len(self._borrowers) < self._total_tokens: - event = self._wait_queue.popitem(last=False)[1] - event.set() - - def acquire_nowait(self) -> None: - self.acquire_on_behalf_of_nowait(current_task()) - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - if borrower in self._borrowers: - raise RuntimeError( - "this borrower is already holding one of this CapacityLimiter's tokens" - ) - - if self._wait_queue or len(self._borrowers) >= self._total_tokens: - raise WouldBlock - - self._borrowers.add(borrower) - - async def acquire(self) -> None: - return await self.acquire_on_behalf_of(current_task()) - - async def acquire_on_behalf_of(self, borrower: object) -> None: - await AsyncIOBackend.checkpoint_if_cancelled() - try: - self.acquire_on_behalf_of_nowait(borrower) - except WouldBlock: - event = asyncio.Event() - self._wait_queue[borrower] = event - try: - await event.wait() - except BaseException: - self._wait_queue.pop(borrower, None) - if event.is_set(): - self._notify_next_waiter() - - raise - - self._borrowers.add(borrower) - else: - try: - await AsyncIOBackend.cancel_shielded_checkpoint() - except BaseException: - self.release() - raise - - def release(self) -> None: - self.release_on_behalf_of(current_task()) - - def release_on_behalf_of(self, borrower: object) -> None: - try: - self._borrowers.remove(borrower) - except KeyError: - raise RuntimeError( - "this borrower isn't holding any of this CapacityLimiter's tokens" - ) from None - - self._notify_next_waiter() - - def statistics(self) -> CapacityLimiterStatistics: - return CapacityLimiterStatistics( - self.borrowed_tokens, - self.total_tokens, - tuple(self._borrowers), - len(self._wait_queue), - ) - - -_default_thread_limiter: RunVar[CapacityLimiter] = RunVar("_default_thread_limiter") - - -# -# Operating system signals -# - - -class _SignalReceiver: - def __init__(self, signals: tuple[Signals, ...]): - self._signals = signals - self._loop = get_running_loop() - self._signal_queue: deque[Signals] = deque() - self._future: asyncio.Future = asyncio.Future() - self._handled_signals: set[Signals] = set() - - def _deliver(self, signum: Signals) -> None: - self._signal_queue.append(signum) - if not self._future.done(): - self._future.set_result(None) - - def __enter__(self) -> _SignalReceiver: - for sig in set(self._signals): - self._loop.add_signal_handler(sig, self._deliver, sig) - self._handled_signals.add(sig) - - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - for sig in self._handled_signals: - self._loop.remove_signal_handler(sig) - - def __aiter__(self) -> _SignalReceiver: - return self - - async def __anext__(self) -> Signals: - await AsyncIOBackend.checkpoint() - if not self._signal_queue: - self._future = asyncio.Future() - await self._future - - return self._signal_queue.popleft() - - -# -# Testing and debugging -# - - -class AsyncIOTaskInfo(TaskInfo): - def __init__(self, task: asyncio.Task): - task_state = _task_states.get(task) - if task_state is None: - parent_id = None - else: - parent_id = task_state.parent_id - - coro = task.get_coro() - assert coro is not None, "created TaskInfo from a completed Task" - super().__init__(id(task), parent_id, task.get_name(), coro) - self._task = weakref.ref(task) - - def has_pending_cancellation(self) -> bool: - if not (task := self._task()): - # If the task isn't around anymore, it won't have a pending cancellation - return False - - if task._must_cancel: # type: ignore[attr-defined] - return True - elif ( - isinstance(task._fut_waiter, asyncio.Future) # type: ignore[attr-defined] - and task._fut_waiter.cancelled() # type: ignore[attr-defined] - ): - return True - - if task_state := _task_states.get(task): - if cancel_scope := task_state.cancel_scope: - return cancel_scope._effectively_cancelled - - return False - - -class TestRunner(abc.TestRunner): - _send_stream: MemoryObjectSendStream[tuple[Awaitable[Any], asyncio.Future[Any]]] - - def __init__( - self, - *, - debug: bool | None = None, - use_uvloop: bool = False, - loop_factory: Callable[[], AbstractEventLoop] | None = None, - ) -> None: - if use_uvloop and loop_factory is None: - if sys.platform != "win32": - import uvloop - - loop_factory = uvloop.new_event_loop - else: - import winloop - - loop_factory = winloop.new_event_loop - - self._runner = Runner(debug=debug, loop_factory=loop_factory) - self._exceptions: list[BaseException] = [] - self._runner_task: asyncio.Task | None = None - - def __enter__(self) -> TestRunner: - self._runner.__enter__() - self.get_loop().set_exception_handler(self._exception_handler) - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self._runner.__exit__(exc_type, exc_val, exc_tb) - - def get_loop(self) -> AbstractEventLoop: - return self._runner.get_loop() - - def _exception_handler( - self, loop: asyncio.AbstractEventLoop, context: dict[str, Any] - ) -> None: - if isinstance(context.get("exception"), Exception): - self._exceptions.append(context["exception"]) - else: - loop.default_exception_handler(context) - - def _raise_async_exceptions(self) -> None: - # Re-raise any exceptions raised in asynchronous callbacks - if self._exceptions: - exceptions, self._exceptions = self._exceptions, [] - if len(exceptions) == 1: - raise exceptions[0] - elif exceptions: - raise BaseExceptionGroup( - "Multiple exceptions occurred in asynchronous callbacks", exceptions - ) - - async def _run_tests_and_fixtures( - self, - receive_stream: MemoryObjectReceiveStream[ - tuple[Awaitable[T_Retval], asyncio.Future[T_Retval]] - ], - ) -> None: - from _pytest.outcomes import OutcomeException - - with receive_stream, self._send_stream: - async for coro, future in receive_stream: - try: - retval = await coro - except CancelledError as exc: - if not future.cancelled(): - future.cancel(*exc.args) - - raise - except BaseException as exc: - if not future.cancelled(): - future.set_exception(exc) - - if not isinstance(exc, (Exception, OutcomeException)): - raise - else: - if not future.cancelled(): - future.set_result(retval) - - async def _call_in_runner_task( - self, - func: Callable[P, Awaitable[T_Retval]], - *args: P.args, - **kwargs: P.kwargs, - ) -> T_Retval: - if not self._runner_task: - self._send_stream, receive_stream = create_memory_object_stream[ - tuple[Awaitable[Any], asyncio.Future] - ](1) - self._runner_task = self.get_loop().create_task( - self._run_tests_and_fixtures(receive_stream) - ) - - coro = func(*args, **kwargs) - future: asyncio.Future[T_Retval] = self.get_loop().create_future() - self._send_stream.send_nowait((coro, future)) - return await future - - def run_asyncgen_fixture( - self, - fixture_func: Callable[..., AsyncGenerator[T_Retval, Any]], - kwargs: dict[str, Any], - ) -> Iterable[T_Retval]: - asyncgen = fixture_func(**kwargs) - fixturevalue: T_Retval = self.get_loop().run_until_complete( - self._call_in_runner_task(asyncgen.asend, None) - ) - self._raise_async_exceptions() - - yield fixturevalue - - try: - self.get_loop().run_until_complete( - self._call_in_runner_task(asyncgen.asend, None) - ) - except StopAsyncIteration: - self._raise_async_exceptions() - else: - self.get_loop().run_until_complete(asyncgen.aclose()) - raise RuntimeError("Async generator fixture did not stop") - - def run_fixture( - self, - fixture_func: Callable[..., Coroutine[Any, Any, T_Retval]], - kwargs: dict[str, Any], - ) -> T_Retval: - retval = self.get_loop().run_until_complete( - self._call_in_runner_task(fixture_func, **kwargs) - ) - self._raise_async_exceptions() - return retval - - def run_test( - self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] - ) -> None: - try: - self.get_loop().run_until_complete( - self._call_in_runner_task(test_func, **kwargs) - ) - except Exception as exc: - self._exceptions.append(exc) - - self._raise_async_exceptions() - - -class AsyncIOBackend(AsyncBackend): - @classmethod - def run( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - options: dict[str, Any], - ) -> T_Retval: - @wraps(func) - async def wrapper() -> T_Retval: - task = cast(asyncio.Task, current_task()) - task.set_name(get_callable_name(func)) - _task_states[task] = TaskState(None, None) - - try: - return await func(*args) - finally: - del _task_states[task] - - debug = options.get("debug", None) - loop_factory = options.get("loop_factory", None) - if loop_factory is None and options.get("use_uvloop", False): - if sys.platform != "win32": - import uvloop - - loop_factory = uvloop.new_event_loop - else: - import winloop - - loop_factory = winloop.new_event_loop - - with Runner(debug=debug, loop_factory=loop_factory) as runner: - return runner.run(wrapper()) - - @classmethod - def current_token(cls) -> object: - return get_running_loop() - - @classmethod - def current_time(cls) -> float: - return get_running_loop().time() - - @classmethod - def cancelled_exception_class(cls) -> type[BaseException]: - return CancelledError - - @classmethod - async def checkpoint(cls) -> None: - await sleep(0) - - @classmethod - async def checkpoint_if_cancelled(cls) -> None: - task = current_task() - if task is None: - return - - try: - cancel_scope = _task_states[task].cancel_scope - except KeyError: - return - - while cancel_scope: - if cancel_scope.cancel_called: - await sleep(0) - elif cancel_scope.shield: - break - else: - cancel_scope = cancel_scope._parent_scope - - @classmethod - async def cancel_shielded_checkpoint(cls) -> None: - with CancelScope(shield=True): - await sleep(0) - - @classmethod - async def sleep(cls, delay: float) -> None: - await sleep(delay) - - @classmethod - def create_cancel_scope( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - return CancelScope(deadline=deadline, shield=shield) - - @classmethod - def current_effective_deadline(cls) -> float: - if (task := current_task()) is None: - return math.inf - - try: - cancel_scope = _task_states[task].cancel_scope - except KeyError: - return math.inf - - deadline = math.inf - while cancel_scope: - deadline = min(deadline, cancel_scope.deadline) - if cancel_scope._cancel_called: - deadline = -math.inf - break - elif cancel_scope.shield: - break - else: - cancel_scope = cancel_scope._parent_scope - - return deadline - - @classmethod - def create_task_group(cls) -> abc.TaskGroup: - return TaskGroup() - - @classmethod - def create_event(cls) -> abc.Event: - return Event() - - @classmethod - def create_lock(cls, *, fast_acquire: bool) -> abc.Lock: - return Lock(fast_acquire=fast_acquire) - - @classmethod - def create_semaphore( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> abc.Semaphore: - return Semaphore(initial_value, max_value=max_value, fast_acquire=fast_acquire) - - @classmethod - def create_capacity_limiter(cls, total_tokens: float) -> abc.CapacityLimiter: - return CapacityLimiter(total_tokens) - - @classmethod - async def run_sync_in_worker_thread( # type: ignore[return] - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - abandon_on_cancel: bool = False, - limiter: abc.CapacityLimiter | None = None, - ) -> T_Retval: - await cls.checkpoint() - - # If this is the first run in this event loop thread, set up the necessary - # variables - try: - idle_workers = _threadpool_idle_workers.get() - workers = _threadpool_workers.get() - except LookupError: - idle_workers = deque() - workers = set() - _threadpool_idle_workers.set(idle_workers) - _threadpool_workers.set(workers) - - async with limiter or cls.current_default_thread_limiter(): - with CancelScope(shield=not abandon_on_cancel) as scope: - future = asyncio.Future[T_Retval]() - root_task = find_root_task() - if not idle_workers: - worker = WorkerThread(root_task, workers, idle_workers) - worker.start() - workers.add(worker) - root_task.add_done_callback( - worker.stop, context=contextvars.Context() - ) - else: - worker = idle_workers.pop() - - # Prune any other workers that have been idle for MAX_IDLE_TIME - # seconds or longer - now = cls.current_time() - while idle_workers: - if ( - now - idle_workers[0].idle_since - < WorkerThread.MAX_IDLE_TIME - ): - break - - expired_worker = idle_workers.popleft() - expired_worker.root_task.remove_done_callback( - expired_worker.stop - ) - expired_worker.stop() - - context = copy_context() - context.run(set_current_async_library, None) - if abandon_on_cancel or scope._parent_scope is None: - worker_scope = scope - else: - worker_scope = scope._parent_scope - - worker.queue.put_nowait((context, func, args, future, worker_scope)) - return await future - - @classmethod - def check_cancelled(cls) -> None: - scope: CancelScope | None = threadlocals.current_cancel_scope - while scope is not None: - if scope.cancel_called: - raise CancelledError(f"Cancelled by cancel scope {id(scope):x}") - - if scope.shield: - return - - scope = scope._parent_scope - - @classmethod - def run_async_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - async def task_wrapper() -> T_Retval: - __tracebackhide__ = True - if scope is not None: - task = cast(asyncio.Task, current_task()) - _task_states[task] = TaskState(None, scope) - scope._tasks.add(task) - try: - return await func(*args) - except CancelledError as exc: - raise concurrent.futures.CancelledError(str(exc)) from None - finally: - if scope is not None: - scope._tasks.discard(task) - - loop = cast( - "AbstractEventLoop", token or threadlocals.current_token.native_token - ) - if loop.is_closed(): - raise RunFinishedError - - context = copy_context() - context.run(set_current_async_library, "asyncio") - scope = getattr(threadlocals, "current_cancel_scope", None) - f: concurrent.futures.Future[T_Retval] = context.run( - asyncio.run_coroutine_threadsafe, task_wrapper(), loop=loop - ) - return f.result() - - @classmethod - def run_sync_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - @wraps(func) - def wrapper() -> None: - try: - set_current_async_library("asyncio") - f.set_result(func(*args)) - except BaseException as exc: - f.set_exception(exc) - if not isinstance(exc, Exception): - raise - - loop = cast( - "AbstractEventLoop", token or threadlocals.current_token.native_token - ) - if loop.is_closed(): - raise RunFinishedError - - f: concurrent.futures.Future[T_Retval] = Future() - loop.call_soon_threadsafe(wrapper) - return f.result() - - @classmethod - async def open_process( - cls, - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None, - stdout: int | IO[Any] | None, - stderr: int | IO[Any] | None, - **kwargs: Any, - ) -> Process: - await cls.checkpoint() - if isinstance(command, PathLike): - command = os.fspath(command) - - if isinstance(command, (str, bytes)): - process = await asyncio.create_subprocess_shell( - command, - stdin=stdin, - stdout=stdout, - stderr=stderr, - **kwargs, - ) - else: - process = await asyncio.create_subprocess_exec( - *command, - stdin=stdin, - stdout=stdout, - stderr=stderr, - **kwargs, - ) - - stdin_stream = StreamWriterWrapper(process.stdin) if process.stdin else None - stdout_stream = StreamReaderWrapper(process.stdout) if process.stdout else None - stderr_stream = StreamReaderWrapper(process.stderr) if process.stderr else None - return Process(process, stdin_stream, stdout_stream, stderr_stream) - - @classmethod - def setup_process_pool_exit_at_shutdown(cls, workers: set[abc.Process]) -> None: - create_task( - _shutdown_process_pool_on_exit(workers), - name="AnyIO process pool shutdown task", - ) - find_root_task().add_done_callback( - partial(_forcibly_shutdown_process_pool_on_exit, workers) # type:ignore[arg-type] - ) - - @classmethod - async def connect_tcp( - cls, host: str, port: int, local_address: IPSockAddrType | None = None - ) -> abc.SocketStream: - transport, protocol = cast( - tuple[asyncio.Transport, StreamProtocol], - await get_running_loop().create_connection( - StreamProtocol, host, port, local_addr=local_address - ), - ) - transport.pause_reading() - return SocketStream(transport, protocol) - - @classmethod - async def connect_unix(cls, path: str | bytes) -> abc.UNIXSocketStream: - await cls.checkpoint() - loop = get_running_loop() - raw_socket = socket.socket(socket.AF_UNIX) - raw_socket.setblocking(False) - while True: - try: - raw_socket.connect(path) - except BlockingIOError: - f: asyncio.Future = asyncio.Future() - loop.add_writer(raw_socket, f.set_result, None) - f.add_done_callback(lambda _: loop.remove_writer(raw_socket)) - await f - except BaseException: - raw_socket.close() - raise - else: - return UNIXSocketStream(raw_socket) - - @classmethod - def create_tcp_listener(cls, sock: socket.socket) -> SocketListener: - return TCPSocketListener(sock) - - @classmethod - def create_unix_listener(cls, sock: socket.socket) -> SocketListener: - return UNIXSocketListener(sock) - - @classmethod - async def create_udp_socket( - cls, - family: AddressFamily, - local_address: IPSockAddrType | None, - remote_address: IPSockAddrType | None, - reuse_port: bool, - ) -> UDPSocket | ConnectedUDPSocket: - transport, protocol = await get_running_loop().create_datagram_endpoint( - DatagramProtocol, - local_addr=local_address, - remote_addr=remote_address, - family=family, - reuse_port=reuse_port, - ) - if protocol.exception: - transport.close() - raise protocol.exception - - if not remote_address: - return UDPSocket(transport, protocol) - else: - return ConnectedUDPSocket(transport, protocol) - - @classmethod - async def create_unix_datagram_socket( # type: ignore[override] - cls, raw_socket: socket.socket, remote_path: str | bytes | None - ) -> abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocket: - await cls.checkpoint() - loop = get_running_loop() - - if remote_path: - while True: - try: - raw_socket.connect(remote_path) - except BlockingIOError: - f: asyncio.Future = asyncio.Future() - loop.add_writer(raw_socket, f.set_result, None) - f.add_done_callback(lambda _: loop.remove_writer(raw_socket)) - await f - except BaseException: - raw_socket.close() - raise - else: - return ConnectedUNIXDatagramSocket(raw_socket) - else: - return UNIXDatagramSocket(raw_socket) - - @classmethod - async def getaddrinfo( - cls, - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, - ) -> Sequence[ - tuple[ - AddressFamily, - SocketKind, - int, - str, - tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes], - ] - ]: - return await get_running_loop().getaddrinfo( - host, port, family=family, type=type, proto=proto, flags=flags - ) - - @classmethod - async def getnameinfo( - cls, sockaddr: IPSockAddrType, flags: int = 0 - ) -> tuple[str, str]: - return await get_running_loop().getnameinfo(sockaddr, flags) - - @classmethod - async def wait_readable(cls, obj: FileDescriptorLike) -> None: - try: - read_events = _read_events.get() - except LookupError: - read_events = {} - _read_events.set(read_events) - - fd = obj if isinstance(obj, int) else obj.fileno() - if read_events.get(fd): - raise BusyResourceError("reading from") - - loop = get_running_loop() - fut: asyncio.Future[bool] = loop.create_future() - - def cb() -> None: - try: - del read_events[fd] - except KeyError: - pass - else: - remove_reader(fd) - - try: - fut.set_result(True) - except asyncio.InvalidStateError: - pass - - try: - loop.add_reader(fd, cb) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - selector = get_selector() - selector.add_reader(fd, cb) - remove_reader = selector.remove_reader - else: - remove_reader = loop.remove_reader - - read_events[fd] = fut - try: - success = await fut - finally: - try: - del read_events[fd] - except KeyError: - pass - else: - remove_reader(fd) - - if not success: - raise ClosedResourceError - - @classmethod - async def wait_writable(cls, obj: FileDescriptorLike) -> None: - try: - write_events = _write_events.get() - except LookupError: - write_events = {} - _write_events.set(write_events) - - fd = obj if isinstance(obj, int) else obj.fileno() - if write_events.get(fd): - raise BusyResourceError("writing to") - - loop = get_running_loop() - fut: asyncio.Future[bool] = loop.create_future() - - def cb() -> None: - try: - del write_events[fd] - except KeyError: - pass - else: - remove_writer(fd) - - try: - fut.set_result(True) - except asyncio.InvalidStateError: - pass - - try: - loop.add_writer(fd, cb) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - selector = get_selector() - selector.add_writer(fd, cb) - remove_writer = selector.remove_writer - else: - remove_writer = loop.remove_writer - - write_events[fd] = fut - try: - success = await fut - finally: - try: - del write_events[fd] - except KeyError: - pass - else: - remove_writer(fd) - - if not success: - raise ClosedResourceError - - @classmethod - def notify_closing(cls, obj: FileDescriptorLike) -> None: - fd = obj if isinstance(obj, int) else obj.fileno() - loop = get_running_loop() - - try: - write_events = _write_events.get() - except LookupError: - pass - else: - try: - fut = write_events.pop(fd) - except KeyError: - pass - else: - try: - fut.set_result(False) - except asyncio.InvalidStateError: - pass - - try: - loop.remove_writer(fd) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - get_selector().remove_writer(fd) - - try: - read_events = _read_events.get() - except LookupError: - pass - else: - try: - fut = read_events.pop(fd) - except KeyError: - pass - else: - try: - fut.set_result(False) - except asyncio.InvalidStateError: - pass - - try: - loop.remove_reader(fd) - except NotImplementedError: - from anyio._core._asyncio_selector_thread import get_selector - - get_selector().remove_reader(fd) - - @classmethod - async def wrap_listener_socket(cls, sock: socket.socket) -> SocketListener: - return TCPSocketListener(sock) - - @classmethod - async def wrap_stream_socket(cls, sock: socket.socket) -> SocketStream: - transport, protocol = await get_running_loop().create_connection( - StreamProtocol, sock=sock - ) - return SocketStream(transport, protocol) - - @classmethod - async def wrap_unix_stream_socket(cls, sock: socket.socket) -> UNIXSocketStream: - return UNIXSocketStream(sock) - - @classmethod - async def wrap_udp_socket(cls, sock: socket.socket) -> UDPSocket: - transport, protocol = await get_running_loop().create_datagram_endpoint( - DatagramProtocol, sock=sock - ) - return UDPSocket(transport, protocol) - - @classmethod - async def wrap_connected_udp_socket(cls, sock: socket.socket) -> ConnectedUDPSocket: - transport, protocol = await get_running_loop().create_datagram_endpoint( - DatagramProtocol, sock=sock - ) - return ConnectedUDPSocket(transport, protocol) - - @classmethod - async def wrap_unix_datagram_socket(cls, sock: socket.socket) -> UNIXDatagramSocket: - return UNIXDatagramSocket(sock) - - @classmethod - async def wrap_connected_unix_datagram_socket( - cls, sock: socket.socket - ) -> ConnectedUNIXDatagramSocket: - return ConnectedUNIXDatagramSocket(sock) - - @classmethod - def current_default_thread_limiter(cls) -> CapacityLimiter: - try: - return _default_thread_limiter.get() - except LookupError: - limiter = CapacityLimiter(40) - _default_thread_limiter.set(limiter) - return limiter - - @classmethod - def open_signal_receiver( - cls, *signals: Signals - ) -> AbstractContextManager[AsyncIterator[Signals]]: - return _SignalReceiver(signals) - - @classmethod - def get_current_task(cls) -> TaskInfo: - return AsyncIOTaskInfo(current_task()) # type: ignore[arg-type] - - @classmethod - def get_running_tasks(cls) -> Sequence[TaskInfo]: - return [AsyncIOTaskInfo(task) for task in all_tasks() if not task.done()] - - @classmethod - async def wait_all_tasks_blocked(cls) -> None: - await cls.checkpoint() - this_task = current_task() - while True: - for task in all_tasks(): - if task is this_task: - continue - - waiter = task._fut_waiter # type: ignore[attr-defined] - if waiter is None or waiter.done(): - await sleep(0.1) - break - else: - return - - @classmethod - def create_test_runner(cls, options: dict[str, Any]) -> TestRunner: - return TestRunner(**options) - - -backend_class = AsyncIOBackend diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_backends/_trio.py b/backend/venv/lib/python3.12/site-packages/anyio/_backends/_trio.py deleted file mode 100644 index f460a7f..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_backends/_trio.py +++ /dev/null @@ -1,1346 +0,0 @@ -from __future__ import annotations - -import array -import math -import os -import socket -import sys -import types -import weakref -from collections.abc import ( - AsyncGenerator, - AsyncIterator, - Awaitable, - Callable, - Collection, - Coroutine, - Iterable, - Sequence, -) -from contextlib import AbstractContextManager -from dataclasses import dataclass -from io import IOBase -from os import PathLike -from signal import Signals -from socket import AddressFamily, SocketKind -from types import TracebackType -from typing import ( - IO, - TYPE_CHECKING, - Any, - Generic, - NoReturn, - TypeVar, - cast, - overload, -) - -import trio.from_thread -import trio.lowlevel -from outcome import Error, Outcome, Value -from trio.lowlevel import ( - current_root_task, - current_task, - notify_closing, - wait_readable, - wait_writable, -) -from trio.socket import SocketType as TrioSocketType -from trio.to_thread import run_sync - -from .. import ( - CapacityLimiterStatistics, - EventStatistics, - LockStatistics, - RunFinishedError, - TaskInfo, - WouldBlock, - abc, -) -from .._core._eventloop import claim_worker_thread -from .._core._exceptions import ( - BrokenResourceError, - BusyResourceError, - ClosedResourceError, - EndOfStream, -) -from .._core._sockets import convert_ipv6_sockaddr -from .._core._streams import create_memory_object_stream -from .._core._synchronization import ( - CapacityLimiter as BaseCapacityLimiter, -) -from .._core._synchronization import Event as BaseEvent -from .._core._synchronization import Lock as BaseLock -from .._core._synchronization import ( - ResourceGuard, - SemaphoreStatistics, -) -from .._core._synchronization import Semaphore as BaseSemaphore -from .._core._tasks import CancelScope as BaseCancelScope -from ..abc import IPSockAddrType, UDPPacketType, UNIXDatagramPacketType -from ..abc._eventloop import AsyncBackend, StrOrBytesPath -from ..streams.memory import MemoryObjectSendStream - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike - -if sys.version_info >= (3, 10): - from typing import ParamSpec -else: - from typing_extensions import ParamSpec - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from exceptiongroup import BaseExceptionGroup - from typing_extensions import TypeVarTuple, Unpack - -T = TypeVar("T") -T_Retval = TypeVar("T_Retval") -T_SockAddr = TypeVar("T_SockAddr", str, IPSockAddrType) -PosArgsT = TypeVarTuple("PosArgsT") -P = ParamSpec("P") - - -# -# Event loop -# - -RunVar = trio.lowlevel.RunVar - - -# -# Timeouts and cancellation -# - - -class CancelScope(BaseCancelScope): - def __new__( - cls, original: trio.CancelScope | None = None, **kwargs: object - ) -> CancelScope: - return object.__new__(cls) - - def __init__(self, original: trio.CancelScope | None = None, **kwargs: Any) -> None: - self.__original = original or trio.CancelScope(**kwargs) - - def __enter__(self) -> CancelScope: - self.__original.__enter__() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - return self.__original.__exit__(exc_type, exc_val, exc_tb) - - def cancel(self, reason: str | None = None) -> None: - self.__original.cancel(reason) - - @property - def deadline(self) -> float: - return self.__original.deadline - - @deadline.setter - def deadline(self, value: float) -> None: - self.__original.deadline = value - - @property - def cancel_called(self) -> bool: - return self.__original.cancel_called - - @property - def cancelled_caught(self) -> bool: - return self.__original.cancelled_caught - - @property - def shield(self) -> bool: - return self.__original.shield - - @shield.setter - def shield(self, value: bool) -> None: - self.__original.shield = value - - -# -# Task groups -# - - -class TaskGroup(abc.TaskGroup): - def __init__(self) -> None: - self._active = False - self._nursery_manager = trio.open_nursery(strict_exception_groups=True) - self.cancel_scope = None # type: ignore[assignment] - - async def __aenter__(self) -> TaskGroup: - self._active = True - self._nursery = await self._nursery_manager.__aenter__() - self.cancel_scope = CancelScope(self._nursery.cancel_scope) - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - try: - # trio.Nursery.__exit__ returns bool; .open_nursery has wrong type - return await self._nursery_manager.__aexit__(exc_type, exc_val, exc_tb) # type: ignore[return-value] - except BaseExceptionGroup as exc: - if not exc.split(trio.Cancelled)[1]: - raise trio.Cancelled._create() from exc - - raise - finally: - del exc_val, exc_tb - self._active = False - - def start_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> None: - if not self._active: - raise RuntimeError( - "This task group is not active; no new tasks can be started." - ) - - self._nursery.start_soon(func, *args, name=name) - - async def start( - self, func: Callable[..., Awaitable[Any]], *args: object, name: object = None - ) -> Any: - if not self._active: - raise RuntimeError( - "This task group is not active; no new tasks can be started." - ) - - return await self._nursery.start(func, *args, name=name) - - -# -# Subprocesses -# - - -@dataclass(eq=False) -class ReceiveStreamWrapper(abc.ByteReceiveStream): - _stream: trio.abc.ReceiveStream - - async def receive(self, max_bytes: int | None = None) -> bytes: - try: - data = await self._stream.receive_some(max_bytes) - except trio.ClosedResourceError as exc: - raise ClosedResourceError from exc.__cause__ - except trio.BrokenResourceError as exc: - raise BrokenResourceError from exc.__cause__ - - if data: - return bytes(data) - else: - raise EndOfStream - - async def aclose(self) -> None: - await self._stream.aclose() - - -@dataclass(eq=False) -class SendStreamWrapper(abc.ByteSendStream): - _stream: trio.abc.SendStream - - async def send(self, item: bytes) -> None: - try: - await self._stream.send_all(item) - except trio.ClosedResourceError as exc: - raise ClosedResourceError from exc.__cause__ - except trio.BrokenResourceError as exc: - raise BrokenResourceError from exc.__cause__ - - async def aclose(self) -> None: - await self._stream.aclose() - - -@dataclass(eq=False) -class Process(abc.Process): - _process: trio.Process - _stdin: abc.ByteSendStream | None - _stdout: abc.ByteReceiveStream | None - _stderr: abc.ByteReceiveStream | None - - async def aclose(self) -> None: - with CancelScope(shield=True): - if self._stdin: - await self._stdin.aclose() - if self._stdout: - await self._stdout.aclose() - if self._stderr: - await self._stderr.aclose() - - try: - await self.wait() - except BaseException: - self.kill() - with CancelScope(shield=True): - await self.wait() - raise - - async def wait(self) -> int: - return await self._process.wait() - - def terminate(self) -> None: - self._process.terminate() - - def kill(self) -> None: - self._process.kill() - - def send_signal(self, signal: Signals) -> None: - self._process.send_signal(signal) - - @property - def pid(self) -> int: - return self._process.pid - - @property - def returncode(self) -> int | None: - return self._process.returncode - - @property - def stdin(self) -> abc.ByteSendStream | None: - return self._stdin - - @property - def stdout(self) -> abc.ByteReceiveStream | None: - return self._stdout - - @property - def stderr(self) -> abc.ByteReceiveStream | None: - return self._stderr - - -class _ProcessPoolShutdownInstrument(trio.abc.Instrument): - def after_run(self) -> None: - super().after_run() - - -current_default_worker_process_limiter: trio.lowlevel.RunVar = RunVar( - "current_default_worker_process_limiter" -) - - -async def _shutdown_process_pool(workers: set[abc.Process]) -> None: - try: - await trio.sleep(math.inf) - except trio.Cancelled: - for process in workers: - if process.returncode is None: - process.kill() - - with CancelScope(shield=True): - for process in workers: - await process.aclose() - - -# -# Sockets and networking -# - - -class _TrioSocketMixin(Generic[T_SockAddr]): - def __init__(self, trio_socket: TrioSocketType) -> None: - self._trio_socket = trio_socket - self._closed = False - - def _check_closed(self) -> None: - if self._closed: - raise ClosedResourceError - if self._trio_socket.fileno() < 0: - raise BrokenResourceError - - @property - def _raw_socket(self) -> socket.socket: - return self._trio_socket._sock # type: ignore[attr-defined] - - async def aclose(self) -> None: - if self._trio_socket.fileno() >= 0: - self._closed = True - self._trio_socket.close() - - def _convert_socket_error(self, exc: BaseException) -> NoReturn: - if isinstance(exc, trio.ClosedResourceError): - raise ClosedResourceError from exc - elif self._trio_socket.fileno() < 0 and self._closed: - raise ClosedResourceError from None - elif isinstance(exc, OSError): - raise BrokenResourceError from exc - else: - raise exc - - -class SocketStream(_TrioSocketMixin, abc.SocketStream): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self, max_bytes: int = 65536) -> bytes: - with self._receive_guard: - try: - data = await self._trio_socket.recv(max_bytes) - except BaseException as exc: - self._convert_socket_error(exc) - - if data: - return data - else: - raise EndOfStream - - async def send(self, item: bytes) -> None: - with self._send_guard: - view = memoryview(item) - while view: - try: - bytes_sent = await self._trio_socket.send(view) - except BaseException as exc: - self._convert_socket_error(exc) - - view = view[bytes_sent:] - - async def send_eof(self) -> None: - self._trio_socket.shutdown(socket.SHUT_WR) - - -class UNIXSocketStream(SocketStream, abc.UNIXSocketStream): - async def receive_fds(self, msglen: int, maxfds: int) -> tuple[bytes, list[int]]: - if not isinstance(msglen, int) or msglen < 0: - raise ValueError("msglen must be a non-negative integer") - if not isinstance(maxfds, int) or maxfds < 1: - raise ValueError("maxfds must be a positive integer") - - fds = array.array("i") - await trio.lowlevel.checkpoint() - with self._receive_guard: - while True: - try: - message, ancdata, flags, addr = await self._trio_socket.recvmsg( - msglen, socket.CMSG_LEN(maxfds * fds.itemsize) - ) - except BaseException as exc: - self._convert_socket_error(exc) - else: - if not message and not ancdata: - raise EndOfStream - - break - - for cmsg_level, cmsg_type, cmsg_data in ancdata: - if cmsg_level != socket.SOL_SOCKET or cmsg_type != socket.SCM_RIGHTS: - raise RuntimeError( - f"Received unexpected ancillary data; message = {message!r}, " - f"cmsg_level = {cmsg_level}, cmsg_type = {cmsg_type}" - ) - - fds.frombytes(cmsg_data[: len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) - - return message, list(fds) - - async def send_fds(self, message: bytes, fds: Collection[int | IOBase]) -> None: - if not message: - raise ValueError("message must not be empty") - if not fds: - raise ValueError("fds must not be empty") - - filenos: list[int] = [] - for fd in fds: - if isinstance(fd, int): - filenos.append(fd) - elif isinstance(fd, IOBase): - filenos.append(fd.fileno()) - - fdarray = array.array("i", filenos) - await trio.lowlevel.checkpoint() - with self._send_guard: - while True: - try: - await self._trio_socket.sendmsg( - [message], - [ - ( - socket.SOL_SOCKET, - socket.SCM_RIGHTS, - fdarray, - ) - ], - ) - break - except BaseException as exc: - self._convert_socket_error(exc) - - -class TCPSocketListener(_TrioSocketMixin, abc.SocketListener): - def __init__(self, raw_socket: socket.socket): - super().__init__(trio.socket.from_stdlib_socket(raw_socket)) - self._accept_guard = ResourceGuard("accepting connections from") - - async def accept(self) -> SocketStream: - with self._accept_guard: - try: - trio_socket, _addr = await self._trio_socket.accept() - except BaseException as exc: - self._convert_socket_error(exc) - - trio_socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - return SocketStream(trio_socket) - - -class UNIXSocketListener(_TrioSocketMixin, abc.SocketListener): - def __init__(self, raw_socket: socket.socket): - super().__init__(trio.socket.from_stdlib_socket(raw_socket)) - self._accept_guard = ResourceGuard("accepting connections from") - - async def accept(self) -> UNIXSocketStream: - with self._accept_guard: - try: - trio_socket, _addr = await self._trio_socket.accept() - except BaseException as exc: - self._convert_socket_error(exc) - - return UNIXSocketStream(trio_socket) - - -class UDPSocket(_TrioSocketMixin[IPSockAddrType], abc.UDPSocket): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> tuple[bytes, IPSockAddrType]: - with self._receive_guard: - try: - data, addr = await self._trio_socket.recvfrom(65536) - return data, convert_ipv6_sockaddr(addr) - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: UDPPacketType) -> None: - with self._send_guard: - try: - await self._trio_socket.sendto(*item) - except BaseException as exc: - self._convert_socket_error(exc) - - -class ConnectedUDPSocket(_TrioSocketMixin[IPSockAddrType], abc.ConnectedUDPSocket): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> bytes: - with self._receive_guard: - try: - return await self._trio_socket.recv(65536) - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: bytes) -> None: - with self._send_guard: - try: - await self._trio_socket.send(item) - except BaseException as exc: - self._convert_socket_error(exc) - - -class UNIXDatagramSocket(_TrioSocketMixin[str], abc.UNIXDatagramSocket): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> UNIXDatagramPacketType: - with self._receive_guard: - try: - data, addr = await self._trio_socket.recvfrom(65536) - return data, addr - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: UNIXDatagramPacketType) -> None: - with self._send_guard: - try: - await self._trio_socket.sendto(*item) - except BaseException as exc: - self._convert_socket_error(exc) - - -class ConnectedUNIXDatagramSocket( - _TrioSocketMixin[str], abc.ConnectedUNIXDatagramSocket -): - def __init__(self, trio_socket: TrioSocketType) -> None: - super().__init__(trio_socket) - self._receive_guard = ResourceGuard("reading from") - self._send_guard = ResourceGuard("writing to") - - async def receive(self) -> bytes: - with self._receive_guard: - try: - return await self._trio_socket.recv(65536) - except BaseException as exc: - self._convert_socket_error(exc) - - async def send(self, item: bytes) -> None: - with self._send_guard: - try: - await self._trio_socket.send(item) - except BaseException as exc: - self._convert_socket_error(exc) - - -# -# Synchronization -# - - -class Event(BaseEvent): - def __new__(cls) -> Event: - return object.__new__(cls) - - def __init__(self) -> None: - self.__original = trio.Event() - - def is_set(self) -> bool: - return self.__original.is_set() - - async def wait(self) -> None: - return await self.__original.wait() - - def statistics(self) -> EventStatistics: - orig_statistics = self.__original.statistics() - return EventStatistics(tasks_waiting=orig_statistics.tasks_waiting) - - def set(self) -> None: - self.__original.set() - - -class Lock(BaseLock): - def __new__(cls, *, fast_acquire: bool = False) -> Lock: - return object.__new__(cls) - - def __init__(self, *, fast_acquire: bool = False) -> None: - self._fast_acquire = fast_acquire - self.__original = trio.Lock() - - @staticmethod - def _convert_runtime_error_msg(exc: RuntimeError) -> None: - if exc.args == ("attempt to re-acquire an already held Lock",): - exc.args = ("Attempted to acquire an already held Lock",) - - async def acquire(self) -> None: - if not self._fast_acquire: - try: - await self.__original.acquire() - except RuntimeError as exc: - self._convert_runtime_error_msg(exc) - raise - - return - - # This is the "fast path" where we don't let other tasks run - await trio.lowlevel.checkpoint_if_cancelled() - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - await self.__original._lot.park() - except RuntimeError as exc: - self._convert_runtime_error_msg(exc) - raise - - def acquire_nowait(self) -> None: - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - raise WouldBlock from None - except RuntimeError as exc: - self._convert_runtime_error_msg(exc) - raise - - def locked(self) -> bool: - return self.__original.locked() - - def release(self) -> None: - self.__original.release() - - def statistics(self) -> LockStatistics: - orig_statistics = self.__original.statistics() - owner = TrioTaskInfo(orig_statistics.owner) if orig_statistics.owner else None - return LockStatistics( - orig_statistics.locked, owner, orig_statistics.tasks_waiting - ) - - -class Semaphore(BaseSemaphore): - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - return object.__new__(cls) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> None: - super().__init__(initial_value, max_value=max_value, fast_acquire=fast_acquire) - self.__original = trio.Semaphore(initial_value, max_value=max_value) - - async def acquire(self) -> None: - if not self._fast_acquire: - await self.__original.acquire() - return - - # This is the "fast path" where we don't let other tasks run - await trio.lowlevel.checkpoint_if_cancelled() - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - await self.__original._lot.park() - - def acquire_nowait(self) -> None: - try: - self.__original.acquire_nowait() - except trio.WouldBlock: - raise WouldBlock from None - - @property - def max_value(self) -> int | None: - return self.__original.max_value - - @property - def value(self) -> int: - return self.__original.value - - def release(self) -> None: - self.__original.release() - - def statistics(self) -> SemaphoreStatistics: - orig_statistics = self.__original.statistics() - return SemaphoreStatistics(orig_statistics.tasks_waiting) - - -class CapacityLimiter(BaseCapacityLimiter): - def __new__( - cls, - total_tokens: float | None = None, - *, - original: trio.CapacityLimiter | None = None, - ) -> CapacityLimiter: - return object.__new__(cls) - - def __init__( - self, - total_tokens: float | None = None, - *, - original: trio.CapacityLimiter | None = None, - ) -> None: - if original is not None: - self.__original = original - else: - assert total_tokens is not None - self.__original = trio.CapacityLimiter(total_tokens) - - async def __aenter__(self) -> None: - return await self.__original.__aenter__() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - await self.__original.__aexit__(exc_type, exc_val, exc_tb) - - @property - def total_tokens(self) -> float: - return self.__original.total_tokens - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - self.__original.total_tokens = value - - @property - def borrowed_tokens(self) -> int: - return self.__original.borrowed_tokens - - @property - def available_tokens(self) -> float: - return self.__original.available_tokens - - def acquire_nowait(self) -> None: - self.__original.acquire_nowait() - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - self.__original.acquire_on_behalf_of_nowait(borrower) - - async def acquire(self) -> None: - await self.__original.acquire() - - async def acquire_on_behalf_of(self, borrower: object) -> None: - await self.__original.acquire_on_behalf_of(borrower) - - def release(self) -> None: - return self.__original.release() - - def release_on_behalf_of(self, borrower: object) -> None: - return self.__original.release_on_behalf_of(borrower) - - def statistics(self) -> CapacityLimiterStatistics: - orig = self.__original.statistics() - return CapacityLimiterStatistics( - borrowed_tokens=orig.borrowed_tokens, - total_tokens=orig.total_tokens, - borrowers=tuple(orig.borrowers), - tasks_waiting=orig.tasks_waiting, - ) - - -_capacity_limiter_wrapper: trio.lowlevel.RunVar = RunVar("_capacity_limiter_wrapper") - - -# -# Signal handling -# - - -class _SignalReceiver: - _iterator: AsyncIterator[int] - - def __init__(self, signals: tuple[Signals, ...]): - self._signals = signals - - def __enter__(self) -> _SignalReceiver: - self._cm = trio.open_signal_receiver(*self._signals) - self._iterator = self._cm.__enter__() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool | None: - return self._cm.__exit__(exc_type, exc_val, exc_tb) - - def __aiter__(self) -> _SignalReceiver: - return self - - async def __anext__(self) -> Signals: - signum = await self._iterator.__anext__() - return Signals(signum) - - -# -# Testing and debugging -# - - -class TestRunner(abc.TestRunner): - def __init__(self, **options: Any) -> None: - from queue import Queue - - self._call_queue: Queue[Callable[[], object]] = Queue() - self._send_stream: MemoryObjectSendStream | None = None - self._options = options - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: types.TracebackType | None, - ) -> None: - if self._send_stream: - self._send_stream.close() - while self._send_stream is not None: - self._call_queue.get()() - - async def _run_tests_and_fixtures(self) -> None: - self._send_stream, receive_stream = create_memory_object_stream(1) - with receive_stream: - async for coro, outcome_holder in receive_stream: - try: - retval = await coro - except BaseException as exc: - outcome_holder.append(Error(exc)) - else: - outcome_holder.append(Value(retval)) - - def _main_task_finished(self, outcome: object) -> None: - self._send_stream = None - - def _call_in_runner_task( - self, - func: Callable[P, Awaitable[T_Retval]], - *args: P.args, - **kwargs: P.kwargs, - ) -> T_Retval: - if self._send_stream is None: - trio.lowlevel.start_guest_run( - self._run_tests_and_fixtures, - run_sync_soon_threadsafe=self._call_queue.put, - done_callback=self._main_task_finished, - **self._options, - ) - while self._send_stream is None: - self._call_queue.get()() - - outcome_holder: list[Outcome] = [] - self._send_stream.send_nowait((func(*args, **kwargs), outcome_holder)) - while not outcome_holder: - self._call_queue.get()() - - return outcome_holder[0].unwrap() - - def run_asyncgen_fixture( - self, - fixture_func: Callable[..., AsyncGenerator[T_Retval, Any]], - kwargs: dict[str, Any], - ) -> Iterable[T_Retval]: - asyncgen = fixture_func(**kwargs) - fixturevalue: T_Retval = self._call_in_runner_task(asyncgen.asend, None) - - yield fixturevalue - - try: - self._call_in_runner_task(asyncgen.asend, None) - except StopAsyncIteration: - pass - else: - self._call_in_runner_task(asyncgen.aclose) - raise RuntimeError("Async generator fixture did not stop") - - def run_fixture( - self, - fixture_func: Callable[..., Coroutine[Any, Any, T_Retval]], - kwargs: dict[str, Any], - ) -> T_Retval: - return self._call_in_runner_task(fixture_func, **kwargs) - - def run_test( - self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] - ) -> None: - self._call_in_runner_task(test_func, **kwargs) - - -class TrioTaskInfo(TaskInfo): - def __init__(self, task: trio.lowlevel.Task): - parent_id = None - if task.parent_nursery and task.parent_nursery.parent_task: - parent_id = id(task.parent_nursery.parent_task) - - super().__init__(id(task), parent_id, task.name, task.coro) - self._task = weakref.proxy(task) - - def has_pending_cancellation(self) -> bool: - try: - return self._task._cancel_status.effectively_cancelled - except ReferenceError: - # If the task is no longer around, it surely doesn't have a cancellation - # pending - return False - - -class TrioBackend(AsyncBackend): - @classmethod - def run( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - options: dict[str, Any], - ) -> T_Retval: - return trio.run(func, *args) - - @classmethod - def current_token(cls) -> object: - return trio.lowlevel.current_trio_token() - - @classmethod - def current_time(cls) -> float: - return trio.current_time() - - @classmethod - def cancelled_exception_class(cls) -> type[BaseException]: - return trio.Cancelled - - @classmethod - async def checkpoint(cls) -> None: - await trio.lowlevel.checkpoint() - - @classmethod - async def checkpoint_if_cancelled(cls) -> None: - await trio.lowlevel.checkpoint_if_cancelled() - - @classmethod - async def cancel_shielded_checkpoint(cls) -> None: - await trio.lowlevel.cancel_shielded_checkpoint() - - @classmethod - async def sleep(cls, delay: float) -> None: - await trio.sleep(delay) - - @classmethod - def create_cancel_scope( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> abc.CancelScope: - return CancelScope(deadline=deadline, shield=shield) - - @classmethod - def current_effective_deadline(cls) -> float: - return trio.current_effective_deadline() - - @classmethod - def create_task_group(cls) -> abc.TaskGroup: - return TaskGroup() - - @classmethod - def create_event(cls) -> abc.Event: - return Event() - - @classmethod - def create_lock(cls, *, fast_acquire: bool) -> Lock: - return Lock(fast_acquire=fast_acquire) - - @classmethod - def create_semaphore( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> abc.Semaphore: - return Semaphore(initial_value, max_value=max_value, fast_acquire=fast_acquire) - - @classmethod - def create_capacity_limiter(cls, total_tokens: float) -> CapacityLimiter: - return CapacityLimiter(total_tokens) - - @classmethod - async def run_sync_in_worker_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - abandon_on_cancel: bool = False, - limiter: abc.CapacityLimiter | None = None, - ) -> T_Retval: - def wrapper() -> T_Retval: - with claim_worker_thread(TrioBackend, token): - return func(*args) - - token = TrioBackend.current_token() - return await run_sync( - wrapper, - abandon_on_cancel=abandon_on_cancel, - limiter=cast(trio.CapacityLimiter, limiter), - ) - - @classmethod - def check_cancelled(cls) -> None: - trio.from_thread.check_cancelled() - - @classmethod - def run_async_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - trio_token = cast("trio.lowlevel.TrioToken | None", token) - try: - return trio.from_thread.run(func, *args, trio_token=trio_token) - except trio.RunFinishedError: - raise RunFinishedError from None - - @classmethod - def run_sync_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - trio_token = cast("trio.lowlevel.TrioToken | None", token) - try: - return trio.from_thread.run_sync(func, *args, trio_token=trio_token) - except trio.RunFinishedError: - raise RunFinishedError from None - - @classmethod - async def open_process( - cls, - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None, - stdout: int | IO[Any] | None, - stderr: int | IO[Any] | None, - **kwargs: Any, - ) -> Process: - def convert_item(item: StrOrBytesPath) -> str: - str_or_bytes = os.fspath(item) - if isinstance(str_or_bytes, str): - return str_or_bytes - else: - return os.fsdecode(str_or_bytes) - - if isinstance(command, (str, bytes, PathLike)): - process = await trio.lowlevel.open_process( - convert_item(command), - stdin=stdin, - stdout=stdout, - stderr=stderr, - shell=True, - **kwargs, - ) - else: - process = await trio.lowlevel.open_process( - [convert_item(item) for item in command], - stdin=stdin, - stdout=stdout, - stderr=stderr, - shell=False, - **kwargs, - ) - - stdin_stream = SendStreamWrapper(process.stdin) if process.stdin else None - stdout_stream = ReceiveStreamWrapper(process.stdout) if process.stdout else None - stderr_stream = ReceiveStreamWrapper(process.stderr) if process.stderr else None - return Process(process, stdin_stream, stdout_stream, stderr_stream) - - @classmethod - def setup_process_pool_exit_at_shutdown(cls, workers: set[abc.Process]) -> None: - trio.lowlevel.spawn_system_task(_shutdown_process_pool, workers) - - @classmethod - async def connect_tcp( - cls, host: str, port: int, local_address: IPSockAddrType | None = None - ) -> SocketStream: - family = socket.AF_INET6 if ":" in host else socket.AF_INET - trio_socket = trio.socket.socket(family) - trio_socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - if local_address: - await trio_socket.bind(local_address) - - try: - await trio_socket.connect((host, port)) - except BaseException: - trio_socket.close() - raise - - return SocketStream(trio_socket) - - @classmethod - async def connect_unix(cls, path: str | bytes) -> abc.UNIXSocketStream: - trio_socket = trio.socket.socket(socket.AF_UNIX) - try: - await trio_socket.connect(path) - except BaseException: - trio_socket.close() - raise - - return UNIXSocketStream(trio_socket) - - @classmethod - def create_tcp_listener(cls, sock: socket.socket) -> abc.SocketListener: - return TCPSocketListener(sock) - - @classmethod - def create_unix_listener(cls, sock: socket.socket) -> abc.SocketListener: - return UNIXSocketListener(sock) - - @classmethod - async def create_udp_socket( - cls, - family: socket.AddressFamily, - local_address: IPSockAddrType | None, - remote_address: IPSockAddrType | None, - reuse_port: bool, - ) -> UDPSocket | ConnectedUDPSocket: - trio_socket = trio.socket.socket(family=family, type=socket.SOCK_DGRAM) - - if reuse_port: - trio_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) - - if local_address: - await trio_socket.bind(local_address) - - if remote_address: - await trio_socket.connect(remote_address) - return ConnectedUDPSocket(trio_socket) - else: - return UDPSocket(trio_socket) - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket.socket, remote_path: None - ) -> abc.UNIXDatagramSocket: ... - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket.socket, remote_path: str | bytes - ) -> abc.ConnectedUNIXDatagramSocket: ... - - @classmethod - async def create_unix_datagram_socket( - cls, raw_socket: socket.socket, remote_path: str | bytes | None - ) -> abc.UNIXDatagramSocket | abc.ConnectedUNIXDatagramSocket: - trio_socket = trio.socket.from_stdlib_socket(raw_socket) - - if remote_path: - await trio_socket.connect(remote_path) - return ConnectedUNIXDatagramSocket(trio_socket) - else: - return UNIXDatagramSocket(trio_socket) - - @classmethod - async def getaddrinfo( - cls, - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, - ) -> Sequence[ - tuple[ - AddressFamily, - SocketKind, - int, - str, - tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes], - ] - ]: - return await trio.socket.getaddrinfo(host, port, family, type, proto, flags) - - @classmethod - async def getnameinfo( - cls, sockaddr: IPSockAddrType, flags: int = 0 - ) -> tuple[str, str]: - return await trio.socket.getnameinfo(sockaddr, flags) - - @classmethod - async def wait_readable(cls, obj: FileDescriptorLike) -> None: - try: - await wait_readable(obj) - except trio.ClosedResourceError as exc: - raise ClosedResourceError().with_traceback(exc.__traceback__) from None - except trio.BusyResourceError: - raise BusyResourceError("reading from") from None - - @classmethod - async def wait_writable(cls, obj: FileDescriptorLike) -> None: - try: - await wait_writable(obj) - except trio.ClosedResourceError as exc: - raise ClosedResourceError().with_traceback(exc.__traceback__) from None - except trio.BusyResourceError: - raise BusyResourceError("writing to") from None - - @classmethod - def notify_closing(cls, obj: FileDescriptorLike) -> None: - notify_closing(obj) - - @classmethod - async def wrap_listener_socket(cls, sock: socket.socket) -> abc.SocketListener: - return TCPSocketListener(sock) - - @classmethod - async def wrap_stream_socket(cls, sock: socket.socket) -> SocketStream: - trio_sock = trio.socket.from_stdlib_socket(sock) - return SocketStream(trio_sock) - - @classmethod - async def wrap_unix_stream_socket(cls, sock: socket.socket) -> UNIXSocketStream: - trio_sock = trio.socket.from_stdlib_socket(sock) - return UNIXSocketStream(trio_sock) - - @classmethod - async def wrap_udp_socket(cls, sock: socket.socket) -> UDPSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return UDPSocket(trio_sock) - - @classmethod - async def wrap_connected_udp_socket(cls, sock: socket.socket) -> ConnectedUDPSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return ConnectedUDPSocket(trio_sock) - - @classmethod - async def wrap_unix_datagram_socket(cls, sock: socket.socket) -> UNIXDatagramSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return UNIXDatagramSocket(trio_sock) - - @classmethod - async def wrap_connected_unix_datagram_socket( - cls, sock: socket.socket - ) -> ConnectedUNIXDatagramSocket: - trio_sock = trio.socket.from_stdlib_socket(sock) - return ConnectedUNIXDatagramSocket(trio_sock) - - @classmethod - def current_default_thread_limiter(cls) -> CapacityLimiter: - try: - return _capacity_limiter_wrapper.get() - except LookupError: - limiter = CapacityLimiter( - original=trio.to_thread.current_default_thread_limiter() - ) - _capacity_limiter_wrapper.set(limiter) - return limiter - - @classmethod - def open_signal_receiver( - cls, *signals: Signals - ) -> AbstractContextManager[AsyncIterator[Signals]]: - return _SignalReceiver(signals) - - @classmethod - def get_current_task(cls) -> TaskInfo: - task = current_task() - return TrioTaskInfo(task) - - @classmethod - def get_running_tasks(cls) -> Sequence[TaskInfo]: - root_task = current_root_task() - assert root_task - task_infos = [TrioTaskInfo(root_task)] - nurseries = root_task.child_nurseries - while nurseries: - new_nurseries: list[trio.Nursery] = [] - for nursery in nurseries: - for task in nursery.child_tasks: - task_infos.append(TrioTaskInfo(task)) - new_nurseries.extend(task.child_nurseries) - - nurseries = new_nurseries - - return task_infos - - @classmethod - async def wait_all_tasks_blocked(cls) -> None: - from trio.testing import wait_all_tasks_blocked - - await wait_all_tasks_blocked() - - @classmethod - def create_test_runner(cls, options: dict[str, Any]) -> TestRunner: - return TestRunner(**options) - - -backend_class = TrioBackend diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/__init__.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py deleted file mode 100644 index 9f35bae..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py +++ /dev/null @@ -1,167 +0,0 @@ -from __future__ import annotations - -import asyncio -import socket -import threading -from collections.abc import Callable -from selectors import EVENT_READ, EVENT_WRITE, DefaultSelector -from typing import TYPE_CHECKING, Any - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike - -_selector_lock = threading.Lock() -_selector: Selector | None = None - - -class Selector: - def __init__(self) -> None: - self._thread = threading.Thread(target=self.run, name="AnyIO socket selector") - self._selector = DefaultSelector() - self._send, self._receive = socket.socketpair() - self._send.setblocking(False) - self._receive.setblocking(False) - # This somewhat reduces the amount of memory wasted queueing up data - # for wakeups. With these settings, maximum number of 1-byte sends - # before getting BlockingIOError: - # Linux 4.8: 6 - # macOS (darwin 15.5): 1 - # Windows 10: 525347 - # Windows you're weird. (And on Windows setting SNDBUF to 0 makes send - # blocking, even on non-blocking sockets, so don't do that.) - self._receive.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1) - self._send.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, 1) - # On Windows this is a TCP socket so this might matter. On other - # platforms this fails b/c AF_UNIX sockets aren't actually TCP. - try: - self._send.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) - except OSError: - pass - - self._selector.register(self._receive, EVENT_READ) - self._closed = False - - def start(self) -> None: - self._thread.start() - threading._register_atexit(self._stop) # type: ignore[attr-defined] - - def _stop(self) -> None: - global _selector - self._closed = True - self._notify_self() - self._send.close() - self._thread.join() - self._selector.unregister(self._receive) - self._receive.close() - self._selector.close() - _selector = None - assert not self._selector.get_map(), ( - "selector still has registered file descriptors after shutdown" - ) - - def _notify_self(self) -> None: - try: - self._send.send(b"\x00") - except BlockingIOError: - pass - - def add_reader(self, fd: FileDescriptorLike, callback: Callable[[], Any]) -> None: - loop = asyncio.get_running_loop() - try: - key = self._selector.get_key(fd) - except KeyError: - self._selector.register(fd, EVENT_READ, {EVENT_READ: (loop, callback)}) - else: - if EVENT_READ in key.data: - raise ValueError( - "this file descriptor is already registered for reading" - ) - - key.data[EVENT_READ] = loop, callback - self._selector.modify(fd, key.events | EVENT_READ, key.data) - - self._notify_self() - - def add_writer(self, fd: FileDescriptorLike, callback: Callable[[], Any]) -> None: - loop = asyncio.get_running_loop() - try: - key = self._selector.get_key(fd) - except KeyError: - self._selector.register(fd, EVENT_WRITE, {EVENT_WRITE: (loop, callback)}) - else: - if EVENT_WRITE in key.data: - raise ValueError( - "this file descriptor is already registered for writing" - ) - - key.data[EVENT_WRITE] = loop, callback - self._selector.modify(fd, key.events | EVENT_WRITE, key.data) - - self._notify_self() - - def remove_reader(self, fd: FileDescriptorLike) -> bool: - try: - key = self._selector.get_key(fd) - except KeyError: - return False - - if new_events := key.events ^ EVENT_READ: - del key.data[EVENT_READ] - self._selector.modify(fd, new_events, key.data) - else: - self._selector.unregister(fd) - - return True - - def remove_writer(self, fd: FileDescriptorLike) -> bool: - try: - key = self._selector.get_key(fd) - except KeyError: - return False - - if new_events := key.events ^ EVENT_WRITE: - del key.data[EVENT_WRITE] - self._selector.modify(fd, new_events, key.data) - else: - self._selector.unregister(fd) - - return True - - def run(self) -> None: - while not self._closed: - for key, events in self._selector.select(): - if key.fileobj is self._receive: - try: - while self._receive.recv(4096): - pass - except BlockingIOError: - pass - - continue - - if events & EVENT_READ: - loop, callback = key.data[EVENT_READ] - self.remove_reader(key.fd) - try: - loop.call_soon_threadsafe(callback) - except RuntimeError: - pass # the loop was already closed - - if events & EVENT_WRITE: - loop, callback = key.data[EVENT_WRITE] - self.remove_writer(key.fd) - try: - loop.call_soon_threadsafe(callback) - except RuntimeError: - pass # the loop was already closed - - -def get_selector() -> Selector: - global _selector - - with _selector_lock: - if _selector is None: - _selector = Selector() - _selector.start() - - return _selector diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py deleted file mode 100644 index 302f32b..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py +++ /dev/null @@ -1,200 +0,0 @@ -from __future__ import annotations - -from abc import abstractmethod -from contextlib import AbstractAsyncContextManager, AbstractContextManager -from inspect import isasyncgen, iscoroutine, isgenerator -from types import TracebackType -from typing import Protocol, TypeVar, cast, final - -_T_co = TypeVar("_T_co", covariant=True) -_ExitT_co = TypeVar("_ExitT_co", covariant=True, bound="bool | None") - - -class _SupportsCtxMgr(Protocol[_T_co, _ExitT_co]): - def __contextmanager__(self) -> AbstractContextManager[_T_co, _ExitT_co]: ... - - -class _SupportsAsyncCtxMgr(Protocol[_T_co, _ExitT_co]): - def __asynccontextmanager__( - self, - ) -> AbstractAsyncContextManager[_T_co, _ExitT_co]: ... - - -class ContextManagerMixin: - """ - Mixin class providing context manager functionality via a generator-based - implementation. - - This class allows you to implement a context manager via :meth:`__contextmanager__` - which should return a generator. The mechanics are meant to mirror those of - :func:`@contextmanager `. - - .. note:: Classes using this mix-in are not reentrant as context managers, meaning - that once you enter it, you can't re-enter before first exiting it. - - .. seealso:: :doc:`contextmanagers` - """ - - __cm: AbstractContextManager[object, bool | None] | None = None - - @final - def __enter__(self: _SupportsCtxMgr[_T_co, bool | None]) -> _T_co: - # Needed for mypy to assume self still has the __cm member - assert isinstance(self, ContextManagerMixin) - if self.__cm is not None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has already been entered" - ) - - cm = self.__contextmanager__() - if not isinstance(cm, AbstractContextManager): - if isgenerator(cm): - raise TypeError( - "__contextmanager__() returned a generator object instead of " - "a context manager. Did you forget to add the @contextmanager " - "decorator?" - ) - - raise TypeError( - f"__contextmanager__() did not return a context manager object, " - f"but {cm.__class__!r}" - ) - - if cm is self: - raise TypeError( - f"{self.__class__.__qualname__}.__contextmanager__() returned " - f"self. Did you forget to add the @contextmanager decorator and a " - f"'yield' statement?" - ) - - value = cm.__enter__() - self.__cm = cm - return value - - @final - def __exit__( - self: _SupportsCtxMgr[object, _ExitT_co], - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> _ExitT_co: - # Needed for mypy to assume self still has the __cm member - assert isinstance(self, ContextManagerMixin) - if self.__cm is None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has not been entered yet" - ) - - # Prevent circular references - cm = self.__cm - del self.__cm - - return cast(_ExitT_co, cm.__exit__(exc_type, exc_val, exc_tb)) - - @abstractmethod - def __contextmanager__(self) -> AbstractContextManager[object, bool | None]: - """ - Implement your context manager logic here. - - This method **must** be decorated with - :func:`@contextmanager `. - - .. note:: Remember that the ``yield`` will raise any exception raised in the - enclosed context block, so use a ``finally:`` block to clean up resources! - - :return: a context manager object - """ - - -class AsyncContextManagerMixin: - """ - Mixin class providing async context manager functionality via a generator-based - implementation. - - This class allows you to implement a context manager via - :meth:`__asynccontextmanager__`. The mechanics are meant to mirror those of - :func:`@asynccontextmanager `. - - .. note:: Classes using this mix-in are not reentrant as context managers, meaning - that once you enter it, you can't re-enter before first exiting it. - - .. seealso:: :doc:`contextmanagers` - """ - - __cm: AbstractAsyncContextManager[object, bool | None] | None = None - - @final - async def __aenter__(self: _SupportsAsyncCtxMgr[_T_co, bool | None]) -> _T_co: - # Needed for mypy to assume self still has the __cm member - assert isinstance(self, AsyncContextManagerMixin) - if self.__cm is not None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has already been entered" - ) - - cm = self.__asynccontextmanager__() - if not isinstance(cm, AbstractAsyncContextManager): - if isasyncgen(cm): - raise TypeError( - "__asynccontextmanager__() returned an async generator instead of " - "an async context manager. Did you forget to add the " - "@asynccontextmanager decorator?" - ) - elif iscoroutine(cm): - cm.close() - raise TypeError( - "__asynccontextmanager__() returned a coroutine object instead of " - "an async context manager. Did you forget to add the " - "@asynccontextmanager decorator and a 'yield' statement?" - ) - - raise TypeError( - f"__asynccontextmanager__() did not return an async context manager, " - f"but {cm.__class__!r}" - ) - - if cm is self: - raise TypeError( - f"{self.__class__.__qualname__}.__asynccontextmanager__() returned " - f"self. Did you forget to add the @asynccontextmanager decorator and a " - f"'yield' statement?" - ) - - value = await cm.__aenter__() - self.__cm = cm - return value - - @final - async def __aexit__( - self: _SupportsAsyncCtxMgr[object, _ExitT_co], - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> _ExitT_co: - assert isinstance(self, AsyncContextManagerMixin) - if self.__cm is None: - raise RuntimeError( - f"this {self.__class__.__qualname__} has not been entered yet" - ) - - # Prevent circular references - cm = self.__cm - del self.__cm - - return cast(_ExitT_co, await cm.__aexit__(exc_type, exc_val, exc_tb)) - - @abstractmethod - def __asynccontextmanager__( - self, - ) -> AbstractAsyncContextManager[object, bool | None]: - """ - Implement your async context manager logic here. - - This method **must** be decorated with - :func:`@asynccontextmanager `. - - .. note:: Remember that the ``yield`` will raise any exception raised in the - enclosed context block, so use a ``finally:`` block to clean up resources! - - :return: an async context manager object - """ diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py deleted file mode 100644 index 59a69cc..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py +++ /dev/null @@ -1,234 +0,0 @@ -from __future__ import annotations - -import math -import sys -import threading -from collections.abc import Awaitable, Callable, Generator -from contextlib import contextmanager -from contextvars import Token -from importlib import import_module -from typing import TYPE_CHECKING, Any, TypeVar - -from ._exceptions import NoEventLoopError - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -sniffio: Any -try: - import sniffio -except ModuleNotFoundError: - sniffio = None - -if TYPE_CHECKING: - from ..abc import AsyncBackend - -# This must be updated when new backends are introduced -BACKENDS = "asyncio", "trio" - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - -threadlocals = threading.local() -loaded_backends: dict[str, type[AsyncBackend]] = {} - - -def run( - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - backend: str = "asyncio", - backend_options: dict[str, Any] | None = None, -) -> T_Retval: - """ - Run the given coroutine function in an asynchronous event loop. - - The current thread must not be already running an event loop. - - :param func: a coroutine function - :param args: positional arguments to ``func`` - :param backend: name of the asynchronous event loop implementation – currently - either ``asyncio`` or ``trio`` - :param backend_options: keyword arguments to call the backend ``run()`` - implementation with (documented :ref:`here `) - :return: the return value of the coroutine function - :raises RuntimeError: if an asynchronous event loop is already running in this - thread - :raises LookupError: if the named backend is not found - - """ - if asynclib_name := current_async_library(): - raise RuntimeError(f"Already running {asynclib_name} in this thread") - - try: - async_backend = get_async_backend(backend) - except ImportError as exc: - raise LookupError(f"No such backend: {backend}") from exc - - token = None - if asynclib_name is None: - # Since we're in control of the event loop, we can cache the name of the async - # library - token = set_current_async_library(backend) - - try: - backend_options = backend_options or {} - return async_backend.run(func, args, {}, backend_options) - finally: - reset_current_async_library(token) - - -async def sleep(delay: float) -> None: - """ - Pause the current task for the specified duration. - - :param delay: the duration, in seconds - - """ - return await get_async_backend().sleep(delay) - - -async def sleep_forever() -> None: - """ - Pause the current task until it's cancelled. - - This is a shortcut for ``sleep(math.inf)``. - - .. versionadded:: 3.1 - - """ - await sleep(math.inf) - - -async def sleep_until(deadline: float) -> None: - """ - Pause the current task until the given time. - - :param deadline: the absolute time to wake up at (according to the internal - monotonic clock of the event loop) - - .. versionadded:: 3.1 - - """ - now = current_time() - await sleep(max(deadline - now, 0)) - - -def current_time() -> float: - """ - Return the current value of the event loop's internal clock. - - :return: the clock value (seconds) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().current_time() - - -def get_all_backends() -> tuple[str, ...]: - """Return a tuple of the names of all built-in backends.""" - return BACKENDS - - -def get_available_backends() -> tuple[str, ...]: - """ - Test for the availability of built-in backends. - - :return a tuple of the built-in backend names that were successfully imported - - .. versionadded:: 4.12 - - """ - available_backends: list[str] = [] - for backend_name in get_all_backends(): - try: - get_async_backend(backend_name) - except ImportError: - continue - - available_backends.append(backend_name) - - return tuple(available_backends) - - -def get_cancelled_exc_class() -> type[BaseException]: - """ - Return the current async library's cancellation exception class. - - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().cancelled_exception_class() - - -# -# Private API -# - - -@contextmanager -def claim_worker_thread( - backend_class: type[AsyncBackend], token: object -) -> Generator[Any, None, None]: - from ..lowlevel import EventLoopToken - - threadlocals.current_token = EventLoopToken(backend_class, token) - try: - yield - finally: - del threadlocals.current_token - - -def get_async_backend(asynclib_name: str | None = None) -> type[AsyncBackend]: - if asynclib_name is None: - asynclib_name = current_async_library() - if not asynclib_name: - raise NoEventLoopError( - f"Not currently running on any asynchronous event loop. " - f"Available async backends: {', '.join(get_all_backends())}" - ) - - # We use our own dict instead of sys.modules to get the already imported back-end - # class because the appropriate modules in sys.modules could potentially be only - # partially initialized - try: - return loaded_backends[asynclib_name] - except KeyError: - module = import_module(f"anyio._backends._{asynclib_name}") - loaded_backends[asynclib_name] = module.backend_class - return module.backend_class - - -def current_async_library() -> str | None: - if sniffio is None: - # If sniffio is not installed, we assume we're either running asyncio or nothing - import asyncio - - try: - asyncio.get_running_loop() - return "asyncio" - except RuntimeError: - pass - else: - try: - return sniffio.current_async_library() - except sniffio.AsyncLibraryNotFoundError: - pass - - return None - - -def set_current_async_library(asynclib_name: str | None) -> Token | None: - # no-op if sniffio is not installed - if sniffio is None: - return None - - return sniffio.current_async_library_cvar.set(asynclib_name) - - -def reset_current_async_library(token: Token | None) -> None: - if token is not None: - sniffio.current_async_library_cvar.reset(token) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py deleted file mode 100644 index 3776bed..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py +++ /dev/null @@ -1,156 +0,0 @@ -from __future__ import annotations - -import sys -from collections.abc import Generator -from textwrap import dedent -from typing import Any - -if sys.version_info < (3, 11): - from exceptiongroup import BaseExceptionGroup - - -class BrokenResourceError(Exception): - """ - Raised when trying to use a resource that has been rendered unusable due to external - causes (e.g. a send stream whose peer has disconnected). - """ - - -class BrokenWorkerProcess(Exception): - """ - Raised by :meth:`~anyio.to_process.run_sync` if the worker process terminates abruptly or - otherwise misbehaves. - """ - - -class BrokenWorkerInterpreter(Exception): - """ - Raised by :meth:`~anyio.to_interpreter.run_sync` if an unexpected exception is - raised in the subinterpreter. - """ - - def __init__(self, excinfo: Any): - # This was adapted from concurrent.futures.interpreter.ExecutionFailed - msg = excinfo.formatted - if not msg: - if excinfo.type and excinfo.msg: - msg = f"{excinfo.type.__name__}: {excinfo.msg}" - else: - msg = excinfo.type.__name__ or excinfo.msg - - super().__init__(msg) - self.excinfo = excinfo - - def __str__(self) -> str: - try: - formatted = self.excinfo.errdisplay - except Exception: - return super().__str__() - else: - return dedent( - f""" - {super().__str__()} - - Uncaught in the interpreter: - - {formatted} - """.strip() - ) - - -class BusyResourceError(Exception): - """ - Raised when two tasks are trying to read from or write to the same resource - concurrently. - """ - - def __init__(self, action: str): - super().__init__(f"Another task is already {action} this resource") - - -class ClosedResourceError(Exception): - """Raised when trying to use a resource that has been closed.""" - - -class ConnectionFailed(OSError): - """ - Raised when a connection attempt fails. - - .. note:: This class inherits from :exc:`OSError` for backwards compatibility. - """ - - -def iterate_exceptions( - exception: BaseException, -) -> Generator[BaseException, None, None]: - if isinstance(exception, BaseExceptionGroup): - for exc in exception.exceptions: - yield from iterate_exceptions(exc) - else: - yield exception - - -class DelimiterNotFound(Exception): - """ - Raised during - :meth:`~anyio.streams.buffered.BufferedByteReceiveStream.receive_until` if the - maximum number of bytes has been read without the delimiter being found. - """ - - def __init__(self, max_bytes: int) -> None: - super().__init__( - f"The delimiter was not found among the first {max_bytes} bytes" - ) - - -class EndOfStream(Exception): - """ - Raised when trying to read from a stream that has been closed from the other end. - """ - - -class IncompleteRead(Exception): - """ - Raised during - :meth:`~anyio.streams.buffered.BufferedByteReceiveStream.receive_exactly` or - :meth:`~anyio.streams.buffered.BufferedByteReceiveStream.receive_until` if the - connection is closed before the requested amount of bytes has been read. - """ - - def __init__(self) -> None: - super().__init__( - "The stream was closed before the read operation could be completed" - ) - - -class TypedAttributeLookupError(LookupError): - """ - Raised by :meth:`~anyio.TypedAttributeProvider.extra` when the given typed attribute - is not found and no default value has been given. - """ - - -class WouldBlock(Exception): - """Raised by ``X_nowait`` functions if ``X()`` would block.""" - - -class NoEventLoopError(RuntimeError): - """ - Raised by several functions that require an event loop to be running in the current - thread when there is no running event loop. - - This is also raised by :func:`.from_thread.run` and :func:`.from_thread.run_sync` - if not calling from an AnyIO worker thread, and no ``token`` was passed. - """ - - -class RunFinishedError(RuntimeError): - """ - Raised by :func:`.from_thread.run` and :func:`.from_thread.run_sync` if the event - loop associated with the explicitly passed token has already finished. - """ - - def __init__(self) -> None: - super().__init__( - "The event loop associated with the given token has already finished" - ) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_fileio.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_fileio.py deleted file mode 100644 index 061f0d7..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_fileio.py +++ /dev/null @@ -1,797 +0,0 @@ -from __future__ import annotations - -import os -import pathlib -import sys -from collections.abc import ( - AsyncIterator, - Callable, - Iterable, - Iterator, - Sequence, -) -from dataclasses import dataclass -from functools import partial -from os import PathLike -from typing import ( - IO, - TYPE_CHECKING, - Any, - AnyStr, - ClassVar, - Final, - Generic, - overload, -) - -from .. import to_thread -from ..abc import AsyncResource - -if TYPE_CHECKING: - from types import ModuleType - - from _typeshed import OpenBinaryMode, OpenTextMode, ReadableBuffer, WriteableBuffer -else: - ReadableBuffer = OpenBinaryMode = OpenTextMode = WriteableBuffer = object - - -class AsyncFile(AsyncResource, Generic[AnyStr]): - """ - An asynchronous file object. - - This class wraps a standard file object and provides async friendly versions of the - following blocking methods (where available on the original file object): - - * read - * read1 - * readline - * readlines - * readinto - * readinto1 - * write - * writelines - * truncate - * seek - * tell - * flush - - All other methods are directly passed through. - - This class supports the asynchronous context manager protocol which closes the - underlying file at the end of the context block. - - This class also supports asynchronous iteration:: - - async with await open_file(...) as f: - async for line in f: - print(line) - """ - - def __init__(self, fp: IO[AnyStr]) -> None: - self._fp: Any = fp - - def __getattr__(self, name: str) -> object: - return getattr(self._fp, name) - - @property - def wrapped(self) -> IO[AnyStr]: - """The wrapped file object.""" - return self._fp - - async def __aiter__(self) -> AsyncIterator[AnyStr]: - while True: - line = await self.readline() - if line: - yield line - else: - break - - async def aclose(self) -> None: - return await to_thread.run_sync(self._fp.close) - - async def read(self, size: int = -1) -> AnyStr: - return await to_thread.run_sync(self._fp.read, size) - - async def read1(self: AsyncFile[bytes], size: int = -1) -> bytes: - return await to_thread.run_sync(self._fp.read1, size) - - async def readline(self) -> AnyStr: - return await to_thread.run_sync(self._fp.readline) - - async def readlines(self) -> list[AnyStr]: - return await to_thread.run_sync(self._fp.readlines) - - async def readinto(self: AsyncFile[bytes], b: WriteableBuffer) -> int: - return await to_thread.run_sync(self._fp.readinto, b) - - async def readinto1(self: AsyncFile[bytes], b: WriteableBuffer) -> int: - return await to_thread.run_sync(self._fp.readinto1, b) - - @overload - async def write(self: AsyncFile[bytes], b: ReadableBuffer) -> int: ... - - @overload - async def write(self: AsyncFile[str], b: str) -> int: ... - - async def write(self, b: ReadableBuffer | str) -> int: - return await to_thread.run_sync(self._fp.write, b) - - @overload - async def writelines( - self: AsyncFile[bytes], lines: Iterable[ReadableBuffer] - ) -> None: ... - - @overload - async def writelines(self: AsyncFile[str], lines: Iterable[str]) -> None: ... - - async def writelines(self, lines: Iterable[ReadableBuffer] | Iterable[str]) -> None: - return await to_thread.run_sync(self._fp.writelines, lines) - - async def truncate(self, size: int | None = None) -> int: - return await to_thread.run_sync(self._fp.truncate, size) - - async def seek(self, offset: int, whence: int | None = os.SEEK_SET) -> int: - return await to_thread.run_sync(self._fp.seek, offset, whence) - - async def tell(self) -> int: - return await to_thread.run_sync(self._fp.tell) - - async def flush(self) -> None: - return await to_thread.run_sync(self._fp.flush) - - -@overload -async def open_file( - file: str | PathLike[str] | int, - mode: OpenBinaryMode, - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - closefd: bool = ..., - opener: Callable[[str, int], int] | None = ..., -) -> AsyncFile[bytes]: ... - - -@overload -async def open_file( - file: str | PathLike[str] | int, - mode: OpenTextMode = ..., - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - closefd: bool = ..., - opener: Callable[[str, int], int] | None = ..., -) -> AsyncFile[str]: ... - - -async def open_file( - file: str | PathLike[str] | int, - mode: str = "r", - buffering: int = -1, - encoding: str | None = None, - errors: str | None = None, - newline: str | None = None, - closefd: bool = True, - opener: Callable[[str, int], int] | None = None, -) -> AsyncFile[Any]: - """ - Open a file asynchronously. - - The arguments are exactly the same as for the builtin :func:`open`. - - :return: an asynchronous file object - - """ - fp = await to_thread.run_sync( - open, file, mode, buffering, encoding, errors, newline, closefd, opener - ) - return AsyncFile(fp) - - -def wrap_file(file: IO[AnyStr]) -> AsyncFile[AnyStr]: - """ - Wrap an existing file as an asynchronous file. - - :param file: an existing file-like object - :return: an asynchronous file object - - """ - return AsyncFile(file) - - -@dataclass(eq=False) -class _PathIterator(AsyncIterator["Path"]): - iterator: Iterator[PathLike[str]] - - async def __anext__(self) -> Path: - nextval = await to_thread.run_sync( - next, self.iterator, None, abandon_on_cancel=True - ) - if nextval is None: - raise StopAsyncIteration from None - - return Path(nextval) - - -class Path: - """ - An asynchronous version of :class:`pathlib.Path`. - - This class cannot be substituted for :class:`pathlib.Path` or - :class:`pathlib.PurePath`, but it is compatible with the :class:`os.PathLike` - interface. - - It implements the Python 3.10 version of :class:`pathlib.Path` interface, except for - the deprecated :meth:`~pathlib.Path.link_to` method. - - Some methods may be unavailable or have limited functionality, based on the Python - version: - - * :meth:`~pathlib.Path.copy` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.copy_into` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.from_uri` (available on Python 3.13 or later) - * :meth:`~pathlib.PurePath.full_match` (available on Python 3.13 or later) - * :attr:`~pathlib.Path.info` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.is_junction` (available on Python 3.12 or later) - * :meth:`~pathlib.PurePath.match` (the ``case_sensitive`` parameter is only - available on Python 3.13 or later) - * :meth:`~pathlib.Path.move` (available on Python 3.14 or later) - * :meth:`~pathlib.Path.move_into` (available on Python 3.14 or later) - * :meth:`~pathlib.PurePath.relative_to` (the ``walk_up`` parameter is only available - on Python 3.12 or later) - * :meth:`~pathlib.Path.walk` (available on Python 3.12 or later) - - Any methods that do disk I/O need to be awaited on. These methods are: - - * :meth:`~pathlib.Path.absolute` - * :meth:`~pathlib.Path.chmod` - * :meth:`~pathlib.Path.cwd` - * :meth:`~pathlib.Path.exists` - * :meth:`~pathlib.Path.expanduser` - * :meth:`~pathlib.Path.group` - * :meth:`~pathlib.Path.hardlink_to` - * :meth:`~pathlib.Path.home` - * :meth:`~pathlib.Path.is_block_device` - * :meth:`~pathlib.Path.is_char_device` - * :meth:`~pathlib.Path.is_dir` - * :meth:`~pathlib.Path.is_fifo` - * :meth:`~pathlib.Path.is_file` - * :meth:`~pathlib.Path.is_junction` - * :meth:`~pathlib.Path.is_mount` - * :meth:`~pathlib.Path.is_socket` - * :meth:`~pathlib.Path.is_symlink` - * :meth:`~pathlib.Path.lchmod` - * :meth:`~pathlib.Path.lstat` - * :meth:`~pathlib.Path.mkdir` - * :meth:`~pathlib.Path.open` - * :meth:`~pathlib.Path.owner` - * :meth:`~pathlib.Path.read_bytes` - * :meth:`~pathlib.Path.read_text` - * :meth:`~pathlib.Path.readlink` - * :meth:`~pathlib.Path.rename` - * :meth:`~pathlib.Path.replace` - * :meth:`~pathlib.Path.resolve` - * :meth:`~pathlib.Path.rmdir` - * :meth:`~pathlib.Path.samefile` - * :meth:`~pathlib.Path.stat` - * :meth:`~pathlib.Path.symlink_to` - * :meth:`~pathlib.Path.touch` - * :meth:`~pathlib.Path.unlink` - * :meth:`~pathlib.Path.walk` - * :meth:`~pathlib.Path.write_bytes` - * :meth:`~pathlib.Path.write_text` - - Additionally, the following methods return an async iterator yielding - :class:`~.Path` objects: - - * :meth:`~pathlib.Path.glob` - * :meth:`~pathlib.Path.iterdir` - * :meth:`~pathlib.Path.rglob` - """ - - __slots__ = "_path", "__weakref__" - - __weakref__: Any - - def __init__(self, *args: str | PathLike[str]) -> None: - self._path: Final[pathlib.Path] = pathlib.Path(*args) - - def __fspath__(self) -> str: - return self._path.__fspath__() - - def __str__(self) -> str: - return self._path.__str__() - - def __repr__(self) -> str: - return f"{self.__class__.__name__}({self.as_posix()!r})" - - def __bytes__(self) -> bytes: - return self._path.__bytes__() - - def __hash__(self) -> int: - return self._path.__hash__() - - def __eq__(self, other: object) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__eq__(target) - - def __lt__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__lt__(target) - - def __le__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__le__(target) - - def __gt__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__gt__(target) - - def __ge__(self, other: pathlib.PurePath | Path) -> bool: - target = other._path if isinstance(other, Path) else other - return self._path.__ge__(target) - - def __truediv__(self, other: str | PathLike[str]) -> Path: - return Path(self._path / other) - - def __rtruediv__(self, other: str | PathLike[str]) -> Path: - return Path(other) / self - - @property - def parts(self) -> tuple[str, ...]: - return self._path.parts - - @property - def drive(self) -> str: - return self._path.drive - - @property - def root(self) -> str: - return self._path.root - - @property - def anchor(self) -> str: - return self._path.anchor - - @property - def parents(self) -> Sequence[Path]: - return tuple(Path(p) for p in self._path.parents) - - @property - def parent(self) -> Path: - return Path(self._path.parent) - - @property - def name(self) -> str: - return self._path.name - - @property - def suffix(self) -> str: - return self._path.suffix - - @property - def suffixes(self) -> list[str]: - return self._path.suffixes - - @property - def stem(self) -> str: - return self._path.stem - - async def absolute(self) -> Path: - path = await to_thread.run_sync(self._path.absolute) - return Path(path) - - def as_posix(self) -> str: - return self._path.as_posix() - - def as_uri(self) -> str: - return self._path.as_uri() - - if sys.version_info >= (3, 13): - parser: ClassVar[ModuleType] = pathlib.Path.parser - - @classmethod - def from_uri(cls, uri: str) -> Path: - return Path(pathlib.Path.from_uri(uri)) - - def full_match( - self, path_pattern: str, *, case_sensitive: bool | None = None - ) -> bool: - return self._path.full_match(path_pattern, case_sensitive=case_sensitive) - - def match( - self, path_pattern: str, *, case_sensitive: bool | None = None - ) -> bool: - return self._path.match(path_pattern, case_sensitive=case_sensitive) - else: - - def match(self, path_pattern: str) -> bool: - return self._path.match(path_pattern) - - if sys.version_info >= (3, 14): - - @property - def info(self) -> Any: # TODO: add return type annotation when Typeshed gets it - return self._path.info - - async def copy( - self, - target: str | os.PathLike[str], - *, - follow_symlinks: bool = True, - preserve_metadata: bool = False, - ) -> Path: - func = partial( - self._path.copy, - follow_symlinks=follow_symlinks, - preserve_metadata=preserve_metadata, - ) - return Path(await to_thread.run_sync(func, pathlib.Path(target))) - - async def copy_into( - self, - target_dir: str | os.PathLike[str], - *, - follow_symlinks: bool = True, - preserve_metadata: bool = False, - ) -> Path: - func = partial( - self._path.copy_into, - follow_symlinks=follow_symlinks, - preserve_metadata=preserve_metadata, - ) - return Path(await to_thread.run_sync(func, pathlib.Path(target_dir))) - - async def move(self, target: str | os.PathLike[str]) -> Path: - # Upstream does not handle anyio.Path properly as a PathLike - target = pathlib.Path(target) - return Path(await to_thread.run_sync(self._path.move, target)) - - async def move_into( - self, - target_dir: str | os.PathLike[str], - ) -> Path: - return Path(await to_thread.run_sync(self._path.move_into, target_dir)) - - def is_relative_to(self, other: str | PathLike[str]) -> bool: - try: - self.relative_to(other) - return True - except ValueError: - return False - - async def chmod(self, mode: int, *, follow_symlinks: bool = True) -> None: - func = partial(os.chmod, follow_symlinks=follow_symlinks) - return await to_thread.run_sync(func, self._path, mode) - - @classmethod - async def cwd(cls) -> Path: - path = await to_thread.run_sync(pathlib.Path.cwd) - return cls(path) - - async def exists(self) -> bool: - return await to_thread.run_sync(self._path.exists, abandon_on_cancel=True) - - async def expanduser(self) -> Path: - return Path( - await to_thread.run_sync(self._path.expanduser, abandon_on_cancel=True) - ) - - if sys.version_info < (3, 12): - # Python 3.11 and earlier - def glob(self, pattern: str) -> AsyncIterator[Path]: - gen = self._path.glob(pattern) - return _PathIterator(gen) - elif (3, 12) <= sys.version_info < (3, 13): - # changed in Python 3.12: - # - The case_sensitive parameter was added. - def glob( - self, - pattern: str, - *, - case_sensitive: bool | None = None, - ) -> AsyncIterator[Path]: - gen = self._path.glob(pattern, case_sensitive=case_sensitive) - return _PathIterator(gen) - elif sys.version_info >= (3, 13): - # Changed in Python 3.13: - # - The recurse_symlinks parameter was added. - # - The pattern parameter accepts a path-like object. - def glob( # type: ignore[misc] # mypy doesn't allow for differing signatures in a conditional block - self, - pattern: str | PathLike[str], - *, - case_sensitive: bool | None = None, - recurse_symlinks: bool = False, - ) -> AsyncIterator[Path]: - gen = self._path.glob( - pattern, # type: ignore[arg-type] - case_sensitive=case_sensitive, - recurse_symlinks=recurse_symlinks, - ) - return _PathIterator(gen) - - async def group(self) -> str: - return await to_thread.run_sync(self._path.group, abandon_on_cancel=True) - - async def hardlink_to( - self, target: str | bytes | PathLike[str] | PathLike[bytes] - ) -> None: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(os.link, target, self) - - @classmethod - async def home(cls) -> Path: - home_path = await to_thread.run_sync(pathlib.Path.home) - return cls(home_path) - - def is_absolute(self) -> bool: - return self._path.is_absolute() - - async def is_block_device(self) -> bool: - return await to_thread.run_sync( - self._path.is_block_device, abandon_on_cancel=True - ) - - async def is_char_device(self) -> bool: - return await to_thread.run_sync( - self._path.is_char_device, abandon_on_cancel=True - ) - - async def is_dir(self) -> bool: - return await to_thread.run_sync(self._path.is_dir, abandon_on_cancel=True) - - async def is_fifo(self) -> bool: - return await to_thread.run_sync(self._path.is_fifo, abandon_on_cancel=True) - - async def is_file(self) -> bool: - return await to_thread.run_sync(self._path.is_file, abandon_on_cancel=True) - - if sys.version_info >= (3, 12): - - async def is_junction(self) -> bool: - return await to_thread.run_sync(self._path.is_junction) - - async def is_mount(self) -> bool: - return await to_thread.run_sync( - os.path.ismount, self._path, abandon_on_cancel=True - ) - - def is_reserved(self) -> bool: - return self._path.is_reserved() - - async def is_socket(self) -> bool: - return await to_thread.run_sync(self._path.is_socket, abandon_on_cancel=True) - - async def is_symlink(self) -> bool: - return await to_thread.run_sync(self._path.is_symlink, abandon_on_cancel=True) - - async def iterdir(self) -> AsyncIterator[Path]: - gen = ( - self._path.iterdir() - if sys.version_info < (3, 13) - else await to_thread.run_sync(self._path.iterdir, abandon_on_cancel=True) - ) - async for path in _PathIterator(gen): - yield path - - def joinpath(self, *args: str | PathLike[str]) -> Path: - return Path(self._path.joinpath(*args)) - - async def lchmod(self, mode: int) -> None: - await to_thread.run_sync(self._path.lchmod, mode) - - async def lstat(self) -> os.stat_result: - return await to_thread.run_sync(self._path.lstat, abandon_on_cancel=True) - - async def mkdir( - self, mode: int = 0o777, parents: bool = False, exist_ok: bool = False - ) -> None: - await to_thread.run_sync(self._path.mkdir, mode, parents, exist_ok) - - @overload - async def open( - self, - mode: OpenBinaryMode, - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - ) -> AsyncFile[bytes]: ... - - @overload - async def open( - self, - mode: OpenTextMode = ..., - buffering: int = ..., - encoding: str | None = ..., - errors: str | None = ..., - newline: str | None = ..., - ) -> AsyncFile[str]: ... - - async def open( - self, - mode: str = "r", - buffering: int = -1, - encoding: str | None = None, - errors: str | None = None, - newline: str | None = None, - ) -> AsyncFile[Any]: - fp = await to_thread.run_sync( - self._path.open, mode, buffering, encoding, errors, newline - ) - return AsyncFile(fp) - - async def owner(self) -> str: - return await to_thread.run_sync(self._path.owner, abandon_on_cancel=True) - - async def read_bytes(self) -> bytes: - return await to_thread.run_sync(self._path.read_bytes) - - async def read_text( - self, encoding: str | None = None, errors: str | None = None - ) -> str: - return await to_thread.run_sync(self._path.read_text, encoding, errors) - - if sys.version_info >= (3, 12): - - def relative_to( - self, *other: str | PathLike[str], walk_up: bool = False - ) -> Path: - # relative_to() should work with any PathLike but it doesn't - others = [pathlib.Path(other) for other in other] - return Path(self._path.relative_to(*others, walk_up=walk_up)) - - else: - - def relative_to(self, *other: str | PathLike[str]) -> Path: - return Path(self._path.relative_to(*other)) - - async def readlink(self) -> Path: - target = await to_thread.run_sync(os.readlink, self._path) - return Path(target) - - async def rename(self, target: str | pathlib.PurePath | Path) -> Path: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(self._path.rename, target) - return Path(target) - - async def replace(self, target: str | pathlib.PurePath | Path) -> Path: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(self._path.replace, target) - return Path(target) - - async def resolve(self, strict: bool = False) -> Path: - func = partial(self._path.resolve, strict=strict) - return Path(await to_thread.run_sync(func, abandon_on_cancel=True)) - - if sys.version_info < (3, 12): - # Pre Python 3.12 - def rglob(self, pattern: str) -> AsyncIterator[Path]: - gen = self._path.rglob(pattern) - return _PathIterator(gen) - elif (3, 12) <= sys.version_info < (3, 13): - # Changed in Python 3.12: - # - The case_sensitive parameter was added. - def rglob( - self, pattern: str, *, case_sensitive: bool | None = None - ) -> AsyncIterator[Path]: - gen = self._path.rglob(pattern, case_sensitive=case_sensitive) - return _PathIterator(gen) - elif sys.version_info >= (3, 13): - # Changed in Python 3.13: - # - The recurse_symlinks parameter was added. - # - The pattern parameter accepts a path-like object. - def rglob( # type: ignore[misc] # mypy doesn't allow for differing signatures in a conditional block - self, - pattern: str | PathLike[str], - *, - case_sensitive: bool | None = None, - recurse_symlinks: bool = False, - ) -> AsyncIterator[Path]: - gen = self._path.rglob( - pattern, # type: ignore[arg-type] - case_sensitive=case_sensitive, - recurse_symlinks=recurse_symlinks, - ) - return _PathIterator(gen) - - async def rmdir(self) -> None: - await to_thread.run_sync(self._path.rmdir) - - async def samefile(self, other_path: str | PathLike[str]) -> bool: - if isinstance(other_path, Path): - other_path = other_path._path - - return await to_thread.run_sync( - self._path.samefile, other_path, abandon_on_cancel=True - ) - - async def stat(self, *, follow_symlinks: bool = True) -> os.stat_result: - func = partial(os.stat, follow_symlinks=follow_symlinks) - return await to_thread.run_sync(func, self._path, abandon_on_cancel=True) - - async def symlink_to( - self, - target: str | bytes | PathLike[str] | PathLike[bytes], - target_is_directory: bool = False, - ) -> None: - if isinstance(target, Path): - target = target._path - - await to_thread.run_sync(self._path.symlink_to, target, target_is_directory) - - async def touch(self, mode: int = 0o666, exist_ok: bool = True) -> None: - await to_thread.run_sync(self._path.touch, mode, exist_ok) - - async def unlink(self, missing_ok: bool = False) -> None: - try: - await to_thread.run_sync(self._path.unlink) - except FileNotFoundError: - if not missing_ok: - raise - - if sys.version_info >= (3, 12): - - async def walk( - self, - top_down: bool = True, - on_error: Callable[[OSError], object] | None = None, - follow_symlinks: bool = False, - ) -> AsyncIterator[tuple[Path, list[str], list[str]]]: - def get_next_value() -> tuple[pathlib.Path, list[str], list[str]] | None: - try: - return next(gen) - except StopIteration: - return None - - gen = self._path.walk(top_down, on_error, follow_symlinks) - while True: - value = await to_thread.run_sync(get_next_value) - if value is None: - return - - root, dirs, paths = value - yield Path(root), dirs, paths - - def with_name(self, name: str) -> Path: - return Path(self._path.with_name(name)) - - def with_stem(self, stem: str) -> Path: - return Path(self._path.with_name(stem + self._path.suffix)) - - def with_suffix(self, suffix: str) -> Path: - return Path(self._path.with_suffix(suffix)) - - def with_segments(self, *pathsegments: str | PathLike[str]) -> Path: - return Path(*pathsegments) - - async def write_bytes(self, data: bytes) -> int: - return await to_thread.run_sync(self._path.write_bytes, data) - - async def write_text( - self, - data: str, - encoding: str | None = None, - errors: str | None = None, - newline: str | None = None, - ) -> int: - # Path.write_text() does not support the "newline" parameter before Python 3.10 - def sync_write_text() -> int: - with self._path.open( - "w", encoding=encoding, errors=errors, newline=newline - ) as fp: - return fp.write(data) - - return await to_thread.run_sync(sync_write_text) - - -PathLike.register(Path) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_resources.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_resources.py deleted file mode 100644 index b9a5344..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_resources.py +++ /dev/null @@ -1,18 +0,0 @@ -from __future__ import annotations - -from ..abc import AsyncResource -from ._tasks import CancelScope - - -async def aclose_forcefully(resource: AsyncResource) -> None: - """ - Close an asynchronous resource in a cancelled scope. - - Doing this closes the resource without waiting on anything. - - :param resource: the resource to close - - """ - with CancelScope() as scope: - scope.cancel() - await resource.aclose() diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_signals.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_signals.py deleted file mode 100644 index e24c79e..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_signals.py +++ /dev/null @@ -1,29 +0,0 @@ -from __future__ import annotations - -from collections.abc import AsyncIterator -from contextlib import AbstractContextManager -from signal import Signals - -from ._eventloop import get_async_backend - - -def open_signal_receiver( - *signals: Signals, -) -> AbstractContextManager[AsyncIterator[Signals]]: - """ - Start receiving operating system signals. - - :param signals: signals to receive (e.g. ``signal.SIGINT``) - :return: an asynchronous context manager for an asynchronous iterator which yields - signal numbers - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. warning:: Windows does not support signals natively so it is best to avoid - relying on this in cross-platform applications. - - .. warning:: On asyncio, this permanently replaces any previous signal handler for - the given signals, as set via :meth:`~asyncio.loop.add_signal_handler`. - - """ - return get_async_backend().open_signal_receiver(*signals) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_sockets.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_sockets.py deleted file mode 100644 index 6c99b3a..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_sockets.py +++ /dev/null @@ -1,1003 +0,0 @@ -from __future__ import annotations - -import errno -import os -import socket -import ssl -import stat -import sys -from collections.abc import Awaitable -from dataclasses import dataclass -from ipaddress import IPv4Address, IPv6Address, ip_address -from os import PathLike, chmod -from socket import AddressFamily, SocketKind -from typing import TYPE_CHECKING, Any, Literal, cast, overload - -from .. import ConnectionFailed, to_thread -from ..abc import ( - ByteStreamConnectable, - ConnectedUDPSocket, - ConnectedUNIXDatagramSocket, - IPAddressType, - IPSockAddrType, - SocketListener, - SocketStream, - UDPSocket, - UNIXDatagramSocket, - UNIXSocketStream, -) -from ..streams.stapled import MultiListener -from ..streams.tls import TLSConnectable, TLSStream -from ._eventloop import get_async_backend -from ._resources import aclose_forcefully -from ._synchronization import Event -from ._tasks import create_task_group, move_on_after - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike -else: - FileDescriptorLike = object - -if sys.version_info < (3, 11): - from exceptiongroup import ExceptionGroup - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - -if sys.version_info < (3, 13): - from typing_extensions import deprecated -else: - from warnings import deprecated - -IPPROTO_IPV6 = getattr(socket, "IPPROTO_IPV6", 41) # https://bugs.python.org/issue29515 - -AnyIPAddressFamily = Literal[ - AddressFamily.AF_UNSPEC, AddressFamily.AF_INET, AddressFamily.AF_INET6 -] -IPAddressFamily = Literal[AddressFamily.AF_INET, AddressFamily.AF_INET6] - - -# tls_hostname given -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - ssl_context: ssl.SSLContext | None = ..., - tls_standard_compatible: bool = ..., - tls_hostname: str, - happy_eyeballs_delay: float = ..., -) -> TLSStream: ... - - -# ssl_context given -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - ssl_context: ssl.SSLContext, - tls_standard_compatible: bool = ..., - tls_hostname: str | None = ..., - happy_eyeballs_delay: float = ..., -) -> TLSStream: ... - - -# tls=True -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - tls: Literal[True], - ssl_context: ssl.SSLContext | None = ..., - tls_standard_compatible: bool = ..., - tls_hostname: str | None = ..., - happy_eyeballs_delay: float = ..., -) -> TLSStream: ... - - -# tls=False -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - tls: Literal[False], - ssl_context: ssl.SSLContext | None = ..., - tls_standard_compatible: bool = ..., - tls_hostname: str | None = ..., - happy_eyeballs_delay: float = ..., -) -> SocketStream: ... - - -# No TLS arguments -@overload -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = ..., - happy_eyeballs_delay: float = ..., -) -> SocketStream: ... - - -async def connect_tcp( - remote_host: IPAddressType, - remote_port: int, - *, - local_host: IPAddressType | None = None, - tls: bool = False, - ssl_context: ssl.SSLContext | None = None, - tls_standard_compatible: bool = True, - tls_hostname: str | None = None, - happy_eyeballs_delay: float = 0.25, -) -> SocketStream | TLSStream: - """ - Connect to a host using the TCP protocol. - - This function implements the stateless version of the Happy Eyeballs algorithm (RFC - 6555). If ``remote_host`` is a host name that resolves to multiple IP addresses, - each one is tried until one connection attempt succeeds. If the first attempt does - not connected within 250 milliseconds, a second attempt is started using the next - address in the list, and so on. On IPv6 enabled systems, an IPv6 address (if - available) is tried first. - - When the connection has been established, a TLS handshake will be done if either - ``ssl_context`` or ``tls_hostname`` is not ``None``, or if ``tls`` is ``True``. - - :param remote_host: the IP address or host name to connect to - :param remote_port: port on the target host to connect to - :param local_host: the interface address or name to bind the socket to before - connecting - :param tls: ``True`` to do a TLS handshake with the connected stream and return a - :class:`~anyio.streams.tls.TLSStream` instead - :param ssl_context: the SSL context object to use (if omitted, a default context is - created) - :param tls_standard_compatible: If ``True``, performs the TLS shutdown handshake - before closing the stream and requires that the server does this as well. - Otherwise, :exc:`~ssl.SSLEOFError` may be raised during reads from the stream. - Some protocols, such as HTTP, require this option to be ``False``. - See :meth:`~ssl.SSLContext.wrap_socket` for details. - :param tls_hostname: host name to check the server certificate against (defaults to - the value of ``remote_host``) - :param happy_eyeballs_delay: delay (in seconds) before starting the next connection - attempt - :return: a socket stream object if no TLS handshake was done, otherwise a TLS stream - :raises ConnectionFailed: if the connection fails - - """ - # Placed here due to https://github.com/python/mypy/issues/7057 - connected_stream: SocketStream | None = None - - async def try_connect(remote_host: str, event: Event) -> None: - nonlocal connected_stream - try: - stream = await asynclib.connect_tcp(remote_host, remote_port, local_address) - except OSError as exc: - oserrors.append(exc) - return - else: - if connected_stream is None: - connected_stream = stream - tg.cancel_scope.cancel() - else: - await stream.aclose() - finally: - event.set() - - asynclib = get_async_backend() - local_address: IPSockAddrType | None = None - family = socket.AF_UNSPEC - if local_host: - gai_res = await getaddrinfo(str(local_host), None) - family, *_, local_address = gai_res[0] - - target_host = str(remote_host) - try: - addr_obj = ip_address(remote_host) - except ValueError: - addr_obj = None - - if addr_obj is not None: - if isinstance(addr_obj, IPv6Address): - target_addrs = [(socket.AF_INET6, addr_obj.compressed)] - else: - target_addrs = [(socket.AF_INET, addr_obj.compressed)] - else: - # getaddrinfo() will raise an exception if name resolution fails - gai_res = await getaddrinfo( - target_host, remote_port, family=family, type=socket.SOCK_STREAM - ) - - # Organize the list so that the first address is an IPv6 address (if available) - # and the second one is an IPv4 addresses. The rest can be in whatever order. - v6_found = v4_found = False - target_addrs = [] - for af, *_, sa in gai_res: - if af == socket.AF_INET6 and not v6_found: - v6_found = True - target_addrs.insert(0, (af, sa[0])) - elif af == socket.AF_INET and not v4_found and v6_found: - v4_found = True - target_addrs.insert(1, (af, sa[0])) - else: - target_addrs.append((af, sa[0])) - - oserrors: list[OSError] = [] - try: - async with create_task_group() as tg: - for _af, addr in target_addrs: - event = Event() - tg.start_soon(try_connect, addr, event) - with move_on_after(happy_eyeballs_delay): - await event.wait() - - if connected_stream is None: - cause = ( - oserrors[0] - if len(oserrors) == 1 - else ExceptionGroup("multiple connection attempts failed", oserrors) - ) - raise OSError("All connection attempts failed") from cause - finally: - oserrors.clear() - - if tls or tls_hostname or ssl_context: - try: - return await TLSStream.wrap( - connected_stream, - server_side=False, - hostname=tls_hostname or str(remote_host), - ssl_context=ssl_context, - standard_compatible=tls_standard_compatible, - ) - except BaseException: - await aclose_forcefully(connected_stream) - raise - - return connected_stream - - -async def connect_unix(path: str | bytes | PathLike[Any]) -> UNIXSocketStream: - """ - Connect to the given UNIX socket. - - Not available on Windows. - - :param path: path to the socket - :return: a socket stream object - :raises ConnectionFailed: if the connection fails - - """ - path = os.fspath(path) - return await get_async_backend().connect_unix(path) - - -async def create_tcp_listener( - *, - local_host: IPAddressType | None = None, - local_port: int = 0, - family: AnyIPAddressFamily = socket.AddressFamily.AF_UNSPEC, - backlog: int = 65536, - reuse_port: bool = False, -) -> MultiListener[SocketStream]: - """ - Create a TCP socket listener. - - :param local_port: port number to listen on - :param local_host: IP address of the interface to listen on. If omitted, listen on - all IPv4 and IPv6 interfaces. To listen on all interfaces on a specific address - family, use ``0.0.0.0`` for IPv4 or ``::`` for IPv6. - :param family: address family (used if ``local_host`` was omitted) - :param backlog: maximum number of queued incoming connections (up to a maximum of - 2**16, or 65536) - :param reuse_port: ``True`` to allow multiple sockets to bind to the same - address/port (not supported on Windows) - :return: a multi-listener object containing one or more socket listeners - :raises OSError: if there's an error creating a socket, or binding to one or more - interfaces failed - - """ - asynclib = get_async_backend() - backlog = min(backlog, 65536) - local_host = str(local_host) if local_host is not None else None - - def setup_raw_socket( - fam: AddressFamily, - bind_addr: tuple[str, int] | tuple[str, int, int, int], - *, - v6only: bool = True, - ) -> socket.socket: - sock = socket.socket(fam) - try: - sock.setblocking(False) - - if fam == AddressFamily.AF_INET6: - sock.setsockopt(IPPROTO_IPV6, socket.IPV6_V6ONLY, v6only) - - # For Windows, enable exclusive address use. For others, enable address - # reuse. - if sys.platform == "win32": - sock.setsockopt(socket.SOL_SOCKET, socket.SO_EXCLUSIVEADDRUSE, 1) - else: - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - - if reuse_port: - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) - - # Workaround for #554 - if fam == socket.AF_INET6 and "%" in bind_addr[0]: - addr, scope_id = bind_addr[0].split("%", 1) - bind_addr = (addr, bind_addr[1], 0, int(scope_id)) - - sock.bind(bind_addr) - sock.listen(backlog) - except BaseException: - sock.close() - raise - - return sock - - # We passing type=0 on non-Windows platforms as a workaround for a uvloop bug - # where we don't get the correct scope ID for IPv6 link-local addresses when passing - # type=socket.SOCK_STREAM to getaddrinfo(): - # https://github.com/MagicStack/uvloop/issues/539 - gai_res = await getaddrinfo( - local_host, - local_port, - family=family, - type=socket.SOCK_STREAM if sys.platform == "win32" else 0, - flags=socket.AI_PASSIVE | socket.AI_ADDRCONFIG, - ) - - # The set comprehension is here to work around a glibc bug: - # https://sourceware.org/bugzilla/show_bug.cgi?id=14969 - sockaddrs = sorted({res for res in gai_res if res[1] == SocketKind.SOCK_STREAM}) - - # Special case for dual-stack binding on the "any" interface - if ( - local_host is None - and family == AddressFamily.AF_UNSPEC - and socket.has_dualstack_ipv6() - and any(fam == AddressFamily.AF_INET6 for fam, *_ in gai_res) - ): - raw_socket = setup_raw_socket( - AddressFamily.AF_INET6, ("::", local_port), v6only=False - ) - listener = asynclib.create_tcp_listener(raw_socket) - return MultiListener([listener]) - - errors: list[OSError] = [] - try: - for _ in range(len(sockaddrs)): - listeners: list[SocketListener] = [] - bound_ephemeral_port = local_port - try: - for fam, *_, sockaddr in sockaddrs: - sockaddr = sockaddr[0], bound_ephemeral_port, *sockaddr[2:] - raw_socket = setup_raw_socket(fam, sockaddr) - - # Store the assigned port if an ephemeral port was requested, so - # we'll bind to the same port on all interfaces - if local_port == 0 and len(gai_res) > 1: - bound_ephemeral_port = raw_socket.getsockname()[1] - - listeners.append(asynclib.create_tcp_listener(raw_socket)) - except BaseException as exc: - for listener in listeners: - await listener.aclose() - - # If an ephemeral port was requested but binding the assigned port - # failed for another interface, rotate the address list and try again - if ( - isinstance(exc, OSError) - and exc.errno == errno.EADDRINUSE - and local_port == 0 - and bound_ephemeral_port - ): - errors.append(exc) - sockaddrs.append(sockaddrs.pop(0)) - continue - - raise - - return MultiListener(listeners) - - raise OSError( - f"Could not create {len(sockaddrs)} listeners with a consistent port" - ) from ExceptionGroup("Several bind attempts failed", errors) - finally: - del errors # Prevent reference cycles - - -async def create_unix_listener( - path: str | bytes | PathLike[Any], - *, - mode: int | None = None, - backlog: int = 65536, -) -> SocketListener: - """ - Create a UNIX socket listener. - - Not available on Windows. - - :param path: path of the socket - :param mode: permissions to set on the socket - :param backlog: maximum number of queued incoming connections (up to a maximum of - 2**16, or 65536) - :return: a listener object - - .. versionchanged:: 3.0 - If a socket already exists on the file system in the given path, it will be - removed first. - - """ - backlog = min(backlog, 65536) - raw_socket = await setup_unix_local_socket(path, mode, socket.SOCK_STREAM) - try: - raw_socket.listen(backlog) - return get_async_backend().create_unix_listener(raw_socket) - except BaseException: - raw_socket.close() - raise - - -async def create_udp_socket( - family: AnyIPAddressFamily = AddressFamily.AF_UNSPEC, - *, - local_host: IPAddressType | None = None, - local_port: int = 0, - reuse_port: bool = False, -) -> UDPSocket: - """ - Create a UDP socket. - - If ``port`` has been given, the socket will be bound to this port on the local - machine, making this socket suitable for providing UDP based services. - - :param family: address family (``AF_INET`` or ``AF_INET6``) – automatically - determined from ``local_host`` if omitted - :param local_host: IP address or host name of the local interface to bind to - :param local_port: local port to bind to - :param reuse_port: ``True`` to allow multiple sockets to bind to the same - address/port (not supported on Windows) - :return: a UDP socket - - """ - if family is AddressFamily.AF_UNSPEC and not local_host: - raise ValueError('Either "family" or "local_host" must be given') - - if local_host: - gai_res = await getaddrinfo( - str(local_host), - local_port, - family=family, - type=socket.SOCK_DGRAM, - flags=socket.AI_PASSIVE | socket.AI_ADDRCONFIG, - ) - family = cast(AnyIPAddressFamily, gai_res[0][0]) - local_address = gai_res[0][-1] - elif family is AddressFamily.AF_INET6: - local_address = ("::", 0) - else: - local_address = ("0.0.0.0", 0) - - sock = await get_async_backend().create_udp_socket( - family, local_address, None, reuse_port - ) - return cast(UDPSocket, sock) - - -async def create_connected_udp_socket( - remote_host: IPAddressType, - remote_port: int, - *, - family: AnyIPAddressFamily = AddressFamily.AF_UNSPEC, - local_host: IPAddressType | None = None, - local_port: int = 0, - reuse_port: bool = False, -) -> ConnectedUDPSocket: - """ - Create a connected UDP socket. - - Connected UDP sockets can only communicate with the specified remote host/port, an - any packets sent from other sources are dropped. - - :param remote_host: remote host to set as the default target - :param remote_port: port on the remote host to set as the default target - :param family: address family (``AF_INET`` or ``AF_INET6``) – automatically - determined from ``local_host`` or ``remote_host`` if omitted - :param local_host: IP address or host name of the local interface to bind to - :param local_port: local port to bind to - :param reuse_port: ``True`` to allow multiple sockets to bind to the same - address/port (not supported on Windows) - :return: a connected UDP socket - - """ - local_address = None - if local_host: - gai_res = await getaddrinfo( - str(local_host), - local_port, - family=family, - type=socket.SOCK_DGRAM, - flags=socket.AI_PASSIVE | socket.AI_ADDRCONFIG, - ) - family = cast(AnyIPAddressFamily, gai_res[0][0]) - local_address = gai_res[0][-1] - - gai_res = await getaddrinfo( - str(remote_host), remote_port, family=family, type=socket.SOCK_DGRAM - ) - family = cast(AnyIPAddressFamily, gai_res[0][0]) - remote_address = gai_res[0][-1] - - sock = await get_async_backend().create_udp_socket( - family, local_address, remote_address, reuse_port - ) - return cast(ConnectedUDPSocket, sock) - - -async def create_unix_datagram_socket( - *, - local_path: None | str | bytes | PathLike[Any] = None, - local_mode: int | None = None, -) -> UNIXDatagramSocket: - """ - Create a UNIX datagram socket. - - Not available on Windows. - - If ``local_path`` has been given, the socket will be bound to this path, making this - socket suitable for receiving datagrams from other processes. Other processes can - send datagrams to this socket only if ``local_path`` is set. - - If a socket already exists on the file system in the ``local_path``, it will be - removed first. - - :param local_path: the path on which to bind to - :param local_mode: permissions to set on the local socket - :return: a UNIX datagram socket - - """ - raw_socket = await setup_unix_local_socket( - local_path, local_mode, socket.SOCK_DGRAM - ) - return await get_async_backend().create_unix_datagram_socket(raw_socket, None) - - -async def create_connected_unix_datagram_socket( - remote_path: str | bytes | PathLike[Any], - *, - local_path: None | str | bytes | PathLike[Any] = None, - local_mode: int | None = None, -) -> ConnectedUNIXDatagramSocket: - """ - Create a connected UNIX datagram socket. - - Connected datagram sockets can only communicate with the specified remote path. - - If ``local_path`` has been given, the socket will be bound to this path, making - this socket suitable for receiving datagrams from other processes. Other processes - can send datagrams to this socket only if ``local_path`` is set. - - If a socket already exists on the file system in the ``local_path``, it will be - removed first. - - :param remote_path: the path to set as the default target - :param local_path: the path on which to bind to - :param local_mode: permissions to set on the local socket - :return: a connected UNIX datagram socket - - """ - remote_path = os.fspath(remote_path) - raw_socket = await setup_unix_local_socket( - local_path, local_mode, socket.SOCK_DGRAM - ) - return await get_async_backend().create_unix_datagram_socket( - raw_socket, remote_path - ) - - -async def getaddrinfo( - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, -) -> list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int]]]: - """ - Look up a numeric IP address given a host name. - - Internationalized domain names are translated according to the (non-transitional) - IDNA 2008 standard. - - .. note:: 4-tuple IPv6 socket addresses are automatically converted to 2-tuples of - (host, port), unlike what :func:`socket.getaddrinfo` does. - - :param host: host name - :param port: port number - :param family: socket family (`'AF_INET``, ...) - :param type: socket type (``SOCK_STREAM``, ...) - :param proto: protocol number - :param flags: flags to pass to upstream ``getaddrinfo()`` - :return: list of tuples containing (family, type, proto, canonname, sockaddr) - - .. seealso:: :func:`socket.getaddrinfo` - - """ - # Handle unicode hostnames - if isinstance(host, str): - try: - encoded_host: bytes | None = host.encode("ascii") - except UnicodeEncodeError: - import idna - - encoded_host = idna.encode(host, uts46=True) - else: - encoded_host = host - - gai_res = await get_async_backend().getaddrinfo( - encoded_host, port, family=family, type=type, proto=proto, flags=flags - ) - return [ - (family, type, proto, canonname, convert_ipv6_sockaddr(sockaddr)) - for family, type, proto, canonname, sockaddr in gai_res - # filter out IPv6 results when IPv6 is disabled - if not isinstance(sockaddr[0], int) - ] - - -def getnameinfo(sockaddr: IPSockAddrType, flags: int = 0) -> Awaitable[tuple[str, str]]: - """ - Look up the host name of an IP address. - - :param sockaddr: socket address (e.g. (ipaddress, port) for IPv4) - :param flags: flags to pass to upstream ``getnameinfo()`` - :return: a tuple of (host name, service name) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. seealso:: :func:`socket.getnameinfo` - - """ - return get_async_backend().getnameinfo(sockaddr, flags) - - -@deprecated("This function is deprecated; use `wait_readable` instead") -def wait_socket_readable(sock: socket.socket) -> Awaitable[None]: - """ - .. deprecated:: 4.7.0 - Use :func:`wait_readable` instead. - - Wait until the given socket has data to be read. - - .. warning:: Only use this on raw sockets that have not been wrapped by any higher - level constructs like socket streams! - - :param sock: a socket object - :raises ~anyio.ClosedResourceError: if the socket was closed while waiting for the - socket to become readable - :raises ~anyio.BusyResourceError: if another task is already waiting for the socket - to become readable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().wait_readable(sock.fileno()) - - -@deprecated("This function is deprecated; use `wait_writable` instead") -def wait_socket_writable(sock: socket.socket) -> Awaitable[None]: - """ - .. deprecated:: 4.7.0 - Use :func:`wait_writable` instead. - - Wait until the given socket can be written to. - - This does **NOT** work on Windows when using the asyncio backend with a proactor - event loop (default on py3.8+). - - .. warning:: Only use this on raw sockets that have not been wrapped by any higher - level constructs like socket streams! - - :param sock: a socket object - :raises ~anyio.ClosedResourceError: if the socket was closed while waiting for the - socket to become writable - :raises ~anyio.BusyResourceError: if another task is already waiting for the socket - to become writable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().wait_writable(sock.fileno()) - - -def wait_readable(obj: FileDescriptorLike) -> Awaitable[None]: - """ - Wait until the given object has data to be read. - - On Unix systems, ``obj`` must either be an integer file descriptor, or else an - object with a ``.fileno()`` method which returns an integer file descriptor. Any - kind of file descriptor can be passed, though the exact semantics will depend on - your kernel. For example, this probably won't do anything useful for on-disk files. - - On Windows systems, ``obj`` must either be an integer ``SOCKET`` handle, or else an - object with a ``.fileno()`` method which returns an integer ``SOCKET`` handle. File - descriptors aren't supported, and neither are handles that refer to anything besides - a ``SOCKET``. - - On backends where this functionality is not natively provided (asyncio - ``ProactorEventLoop`` on Windows), it is provided using a separate selector thread - which is set to shut down when the interpreter shuts down. - - .. warning:: Don't use this on raw sockets that have been wrapped by any higher - level constructs like socket streams! - - :param obj: an object with a ``.fileno()`` method or an integer handle - :raises ~anyio.ClosedResourceError: if the object was closed while waiting for the - object to become readable - :raises ~anyio.BusyResourceError: if another task is already waiting for the object - to become readable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().wait_readable(obj) - - -def wait_writable(obj: FileDescriptorLike) -> Awaitable[None]: - """ - Wait until the given object can be written to. - - :param obj: an object with a ``.fileno()`` method or an integer handle - :raises ~anyio.ClosedResourceError: if the object was closed while waiting for the - object to become writable - :raises ~anyio.BusyResourceError: if another task is already waiting for the object - to become writable - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. seealso:: See the documentation of :func:`wait_readable` for the definition of - ``obj`` and notes on backend compatibility. - - .. warning:: Don't use this on raw sockets that have been wrapped by any higher - level constructs like socket streams! - - """ - return get_async_backend().wait_writable(obj) - - -def notify_closing(obj: FileDescriptorLike) -> None: - """ - Call this before closing a file descriptor (on Unix) or socket (on - Windows). This will cause any `wait_readable` or `wait_writable` - calls on the given object to immediately wake up and raise - `~anyio.ClosedResourceError`. - - This doesn't actually close the object – you still have to do that - yourself afterwards. Also, you want to be careful to make sure no - new tasks start waiting on the object in between when you call this - and when it's actually closed. So to close something properly, you - usually want to do these steps in order: - - 1. Explicitly mark the object as closed, so that any new attempts - to use it will abort before they start. - 2. Call `notify_closing` to wake up any already-existing users. - 3. Actually close the object. - - It's also possible to do them in a different order if that's more - convenient, *but only if* you make sure not to have any checkpoints in - between the steps. This way they all happen in a single atomic - step, so other tasks won't be able to tell what order they happened - in anyway. - - :param obj: an object with a ``.fileno()`` method or an integer handle - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - get_async_backend().notify_closing(obj) - - -# -# Private API -# - - -def convert_ipv6_sockaddr( - sockaddr: tuple[str, int, int, int] | tuple[str, int], -) -> tuple[str, int]: - """ - Convert a 4-tuple IPv6 socket address to a 2-tuple (address, port) format. - - If the scope ID is nonzero, it is added to the address, separated with ``%``. - Otherwise the flow id and scope id are simply cut off from the tuple. - Any other kinds of socket addresses are returned as-is. - - :param sockaddr: the result of :meth:`~socket.socket.getsockname` - :return: the converted socket address - - """ - # This is more complicated than it should be because of MyPy - if isinstance(sockaddr, tuple) and len(sockaddr) == 4: - host, port, flowinfo, scope_id = sockaddr - if scope_id: - # PyPy (as of v7.3.11) leaves the interface name in the result, so - # we discard it and only get the scope ID from the end - # (https://foss.heptapod.net/pypy/pypy/-/issues/3938) - host = host.split("%")[0] - - # Add scope_id to the address - return f"{host}%{scope_id}", port - else: - return host, port - else: - return sockaddr - - -async def setup_unix_local_socket( - path: None | str | bytes | PathLike[Any], - mode: int | None, - socktype: int, -) -> socket.socket: - """ - Create a UNIX local socket object, deleting the socket at the given path if it - exists. - - Not available on Windows. - - :param path: path of the socket - :param mode: permissions to set on the socket - :param socktype: socket.SOCK_STREAM or socket.SOCK_DGRAM - - """ - path_str: str | None - if path is not None: - path_str = os.fsdecode(path) - - # Linux abstract namespace sockets aren't backed by a concrete file so skip stat call - if not path_str.startswith("\0"): - # Copied from pathlib... - try: - stat_result = os.stat(path) - except OSError as e: - if e.errno not in ( - errno.ENOENT, - errno.ENOTDIR, - errno.EBADF, - errno.ELOOP, - ): - raise - else: - if stat.S_ISSOCK(stat_result.st_mode): - os.unlink(path) - else: - path_str = None - - raw_socket = socket.socket(socket.AF_UNIX, socktype) - raw_socket.setblocking(False) - - if path_str is not None: - try: - await to_thread.run_sync(raw_socket.bind, path_str, abandon_on_cancel=True) - if mode is not None: - await to_thread.run_sync(chmod, path_str, mode, abandon_on_cancel=True) - except BaseException: - raw_socket.close() - raise - - return raw_socket - - -@dataclass -class TCPConnectable(ByteStreamConnectable): - """ - Connects to a TCP server at the given host and port. - - :param host: host name or IP address of the server - :param port: TCP port number of the server - """ - - host: str | IPv4Address | IPv6Address - port: int - - def __post_init__(self) -> None: - if self.port < 1 or self.port > 65535: - raise ValueError("TCP port number out of range") - - @override - async def connect(self) -> SocketStream: - try: - return await connect_tcp(self.host, self.port) - except OSError as exc: - raise ConnectionFailed( - f"error connecting to {self.host}:{self.port}: {exc}" - ) from exc - - -@dataclass -class UNIXConnectable(ByteStreamConnectable): - """ - Connects to a UNIX domain socket at the given path. - - :param path: the file system path of the socket - """ - - path: str | bytes | PathLike[str] | PathLike[bytes] - - @override - async def connect(self) -> UNIXSocketStream: - try: - return await connect_unix(self.path) - except OSError as exc: - raise ConnectionFailed(f"error connecting to {self.path!r}: {exc}") from exc - - -def as_connectable( - remote: ByteStreamConnectable - | tuple[str | IPv4Address | IPv6Address, int] - | str - | bytes - | PathLike[str], - /, - *, - tls: bool = False, - ssl_context: ssl.SSLContext | None = None, - tls_hostname: str | None = None, - tls_standard_compatible: bool = True, -) -> ByteStreamConnectable: - """ - Return a byte stream connectable from the given object. - - If a bytestream connectable is given, it is returned unchanged. - If a tuple of (host, port) is given, a TCP connectable is returned. - If a string or bytes path is given, a UNIX connectable is returned. - - If ``tls=True``, the connectable will be wrapped in a - :class:`~.streams.tls.TLSConnectable`. - - :param remote: a connectable, a tuple of (host, port) or a path to a UNIX socket - :param tls: if ``True``, wrap the plaintext connectable in a - :class:`~.streams.tls.TLSConnectable`, using the provided TLS settings) - :param ssl_context: if ``tls=True``, the SSLContext object to use (if not provided, - a secure default will be created) - :param tls_hostname: if ``tls=True``, host name of the server to use for checking - the server certificate (defaults to the host portion of the address for TCP - connectables) - :param tls_standard_compatible: if ``False`` and ``tls=True``, makes the TLS stream - skip the closing handshake when closing the connection, so it won't raise an - exception if the server does the same - - """ - connectable: TCPConnectable | UNIXConnectable | TLSConnectable - if isinstance(remote, ByteStreamConnectable): - return remote - elif isinstance(remote, tuple) and len(remote) == 2: - connectable = TCPConnectable(*remote) - elif isinstance(remote, (str, bytes, PathLike)): - connectable = UNIXConnectable(remote) - else: - raise TypeError(f"cannot convert {remote!r} to a connectable") - - if tls: - if not tls_hostname and isinstance(connectable, TCPConnectable): - tls_hostname = str(connectable.host) - - connectable = TLSConnectable( - connectable, - ssl_context=ssl_context, - hostname=tls_hostname, - standard_compatible=tls_standard_compatible, - ) - - return connectable diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_streams.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_streams.py deleted file mode 100644 index 2b9c7df..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_streams.py +++ /dev/null @@ -1,52 +0,0 @@ -from __future__ import annotations - -import math -from typing import TypeVar -from warnings import warn - -from ..streams.memory import ( - MemoryObjectReceiveStream, - MemoryObjectSendStream, - _MemoryObjectStreamState, -) - -T_Item = TypeVar("T_Item") - - -class create_memory_object_stream( - tuple[MemoryObjectSendStream[T_Item], MemoryObjectReceiveStream[T_Item]], -): - """ - Create a memory object stream. - - The stream's item type can be annotated like - :func:`create_memory_object_stream[T_Item]`. - - :param max_buffer_size: number of items held in the buffer until ``send()`` starts - blocking - :param item_type: old way of marking the streams with the right generic type for - static typing (does nothing on AnyIO 4) - - .. deprecated:: 4.0 - Use ``create_memory_object_stream[YourItemType](...)`` instead. - :return: a tuple of (send stream, receive stream) - - """ - - def __new__( # type: ignore[misc] - cls, max_buffer_size: float = 0, item_type: object = None - ) -> tuple[MemoryObjectSendStream[T_Item], MemoryObjectReceiveStream[T_Item]]: - if max_buffer_size != math.inf and not isinstance(max_buffer_size, int): - raise ValueError("max_buffer_size must be either an integer or math.inf") - if max_buffer_size < 0: - raise ValueError("max_buffer_size cannot be negative") - if item_type is not None: - warn( - "The item_type argument has been deprecated in AnyIO 4.0. " - "Use create_memory_object_stream[YourItemType](...) instead.", - DeprecationWarning, - stacklevel=2, - ) - - state = _MemoryObjectStreamState[T_Item](max_buffer_size) - return (MemoryObjectSendStream(state), MemoryObjectReceiveStream(state)) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py deleted file mode 100644 index 36d9b30..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py +++ /dev/null @@ -1,202 +0,0 @@ -from __future__ import annotations - -import sys -from collections.abc import AsyncIterable, Iterable, Mapping, Sequence -from io import BytesIO -from os import PathLike -from subprocess import PIPE, CalledProcessError, CompletedProcess -from typing import IO, Any, Union, cast - -from ..abc import Process -from ._eventloop import get_async_backend -from ._tasks import create_task_group - -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - -StrOrBytesPath: TypeAlias = Union[str, bytes, "PathLike[str]", "PathLike[bytes]"] - - -async def run_process( - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - input: bytes | None = None, - stdin: int | IO[Any] | None = None, - stdout: int | IO[Any] | None = PIPE, - stderr: int | IO[Any] | None = PIPE, - check: bool = True, - cwd: StrOrBytesPath | None = None, - env: Mapping[str, str] | None = None, - startupinfo: Any = None, - creationflags: int = 0, - start_new_session: bool = False, - pass_fds: Sequence[int] = (), - user: str | int | None = None, - group: str | int | None = None, - extra_groups: Iterable[str | int] | None = None, - umask: int = -1, -) -> CompletedProcess[bytes]: - """ - Run an external command in a subprocess and wait until it completes. - - .. seealso:: :func:`subprocess.run` - - :param command: either a string to pass to the shell, or an iterable of strings - containing the executable name or path and its arguments - :param input: bytes passed to the standard input of the subprocess - :param stdin: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - a file-like object, or `None`; ``input`` overrides this - :param stdout: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - a file-like object, or `None` - :param stderr: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - :data:`subprocess.STDOUT`, a file-like object, or `None` - :param check: if ``True``, raise :exc:`~subprocess.CalledProcessError` if the - process terminates with a return code other than 0 - :param cwd: If not ``None``, change the working directory to this before running the - command - :param env: if not ``None``, this mapping replaces the inherited environment - variables from the parent process - :param startupinfo: an instance of :class:`subprocess.STARTUPINFO` that can be used - to specify process startup parameters (Windows only) - :param creationflags: flags that can be used to control the creation of the - subprocess (see :class:`subprocess.Popen` for the specifics) - :param start_new_session: if ``true`` the setsid() system call will be made in the - child process prior to the execution of the subprocess. (POSIX only) - :param pass_fds: sequence of file descriptors to keep open between the parent and - child processes. (POSIX only) - :param user: effective user to run the process as (Python >= 3.9, POSIX only) - :param group: effective group to run the process as (Python >= 3.9, POSIX only) - :param extra_groups: supplementary groups to set in the subprocess (Python >= 3.9, - POSIX only) - :param umask: if not negative, this umask is applied in the child process before - running the given command (Python >= 3.9, POSIX only) - :return: an object representing the completed process - :raises ~subprocess.CalledProcessError: if ``check`` is ``True`` and the process - exits with a nonzero return code - - """ - - async def drain_stream(stream: AsyncIterable[bytes], index: int) -> None: - buffer = BytesIO() - async for chunk in stream: - buffer.write(chunk) - - stream_contents[index] = buffer.getvalue() - - if stdin is not None and input is not None: - raise ValueError("only one of stdin and input is allowed") - - async with await open_process( - command, - stdin=PIPE if input else stdin, - stdout=stdout, - stderr=stderr, - cwd=cwd, - env=env, - startupinfo=startupinfo, - creationflags=creationflags, - start_new_session=start_new_session, - pass_fds=pass_fds, - user=user, - group=group, - extra_groups=extra_groups, - umask=umask, - ) as process: - stream_contents: list[bytes | None] = [None, None] - async with create_task_group() as tg: - if process.stdout: - tg.start_soon(drain_stream, process.stdout, 0) - - if process.stderr: - tg.start_soon(drain_stream, process.stderr, 1) - - if process.stdin and input: - await process.stdin.send(input) - await process.stdin.aclose() - - await process.wait() - - output, errors = stream_contents - if check and process.returncode != 0: - raise CalledProcessError(cast(int, process.returncode), command, output, errors) - - return CompletedProcess(command, cast(int, process.returncode), output, errors) - - -async def open_process( - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None = PIPE, - stdout: int | IO[Any] | None = PIPE, - stderr: int | IO[Any] | None = PIPE, - cwd: StrOrBytesPath | None = None, - env: Mapping[str, str] | None = None, - startupinfo: Any = None, - creationflags: int = 0, - start_new_session: bool = False, - pass_fds: Sequence[int] = (), - user: str | int | None = None, - group: str | int | None = None, - extra_groups: Iterable[str | int] | None = None, - umask: int = -1, -) -> Process: - """ - Start an external command in a subprocess. - - .. seealso:: :class:`subprocess.Popen` - - :param command: either a string to pass to the shell, or an iterable of strings - containing the executable name or path and its arguments - :param stdin: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, a - file-like object, or ``None`` - :param stdout: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - a file-like object, or ``None`` - :param stderr: one of :data:`subprocess.PIPE`, :data:`subprocess.DEVNULL`, - :data:`subprocess.STDOUT`, a file-like object, or ``None`` - :param cwd: If not ``None``, the working directory is changed before executing - :param env: If env is not ``None``, it must be a mapping that defines the - environment variables for the new process - :param creationflags: flags that can be used to control the creation of the - subprocess (see :class:`subprocess.Popen` for the specifics) - :param startupinfo: an instance of :class:`subprocess.STARTUPINFO` that can be used - to specify process startup parameters (Windows only) - :param start_new_session: if ``true`` the setsid() system call will be made in the - child process prior to the execution of the subprocess. (POSIX only) - :param pass_fds: sequence of file descriptors to keep open between the parent and - child processes. (POSIX only) - :param user: effective user to run the process as (POSIX only) - :param group: effective group to run the process as (POSIX only) - :param extra_groups: supplementary groups to set in the subprocess (POSIX only) - :param umask: if not negative, this umask is applied in the child process before - running the given command (POSIX only) - :return: an asynchronous process object - - """ - kwargs: dict[str, Any] = {} - if user is not None: - kwargs["user"] = user - - if group is not None: - kwargs["group"] = group - - if extra_groups is not None: - kwargs["extra_groups"] = group - - if umask >= 0: - kwargs["umask"] = umask - - return await get_async_backend().open_process( - command, - stdin=stdin, - stdout=stdout, - stderr=stderr, - cwd=cwd, - env=env, - startupinfo=startupinfo, - creationflags=creationflags, - start_new_session=start_new_session, - pass_fds=pass_fds, - **kwargs, - ) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py deleted file mode 100644 index c0ef27a..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py +++ /dev/null @@ -1,753 +0,0 @@ -from __future__ import annotations - -import math -from collections import deque -from collections.abc import Callable -from dataclasses import dataclass -from types import TracebackType -from typing import TypeVar - -from ..lowlevel import checkpoint_if_cancelled -from ._eventloop import get_async_backend -from ._exceptions import BusyResourceError, NoEventLoopError -from ._tasks import CancelScope -from ._testing import TaskInfo, get_current_task - -T = TypeVar("T") - - -@dataclass(frozen=True) -class EventStatistics: - """ - :ivar int tasks_waiting: number of tasks waiting on :meth:`~.Event.wait` - """ - - tasks_waiting: int - - -@dataclass(frozen=True) -class CapacityLimiterStatistics: - """ - :ivar int borrowed_tokens: number of tokens currently borrowed by tasks - :ivar float total_tokens: total number of available tokens - :ivar tuple borrowers: tasks or other objects currently holding tokens borrowed from - this limiter - :ivar int tasks_waiting: number of tasks waiting on - :meth:`~.CapacityLimiter.acquire` or - :meth:`~.CapacityLimiter.acquire_on_behalf_of` - """ - - borrowed_tokens: int - total_tokens: float - borrowers: tuple[object, ...] - tasks_waiting: int - - -@dataclass(frozen=True) -class LockStatistics: - """ - :ivar bool locked: flag indicating if this lock is locked or not - :ivar ~anyio.TaskInfo owner: task currently holding the lock (or ``None`` if the - lock is not held by any task) - :ivar int tasks_waiting: number of tasks waiting on :meth:`~.Lock.acquire` - """ - - locked: bool - owner: TaskInfo | None - tasks_waiting: int - - -@dataclass(frozen=True) -class ConditionStatistics: - """ - :ivar int tasks_waiting: number of tasks blocked on :meth:`~.Condition.wait` - :ivar ~anyio.LockStatistics lock_statistics: statistics of the underlying - :class:`~.Lock` - """ - - tasks_waiting: int - lock_statistics: LockStatistics - - -@dataclass(frozen=True) -class SemaphoreStatistics: - """ - :ivar int tasks_waiting: number of tasks waiting on :meth:`~.Semaphore.acquire` - - """ - - tasks_waiting: int - - -class Event: - def __new__(cls) -> Event: - try: - return get_async_backend().create_event() - except NoEventLoopError: - return EventAdapter() - - def set(self) -> None: - """Set the flag, notifying all listeners.""" - raise NotImplementedError - - def is_set(self) -> bool: - """Return ``True`` if the flag is set, ``False`` if not.""" - raise NotImplementedError - - async def wait(self) -> None: - """ - Wait until the flag has been set. - - If the flag has already been set when this method is called, it returns - immediately. - - """ - raise NotImplementedError - - def statistics(self) -> EventStatistics: - """Return statistics about the current state of this event.""" - raise NotImplementedError - - -class EventAdapter(Event): - _internal_event: Event | None = None - _is_set: bool = False - - def __new__(cls) -> EventAdapter: - return object.__new__(cls) - - @property - def _event(self) -> Event: - if self._internal_event is None: - self._internal_event = get_async_backend().create_event() - if self._is_set: - self._internal_event.set() - - return self._internal_event - - def set(self) -> None: - if self._internal_event is None: - self._is_set = True - else: - self._event.set() - - def is_set(self) -> bool: - if self._internal_event is None: - return self._is_set - - return self._internal_event.is_set() - - async def wait(self) -> None: - await self._event.wait() - - def statistics(self) -> EventStatistics: - if self._internal_event is None: - return EventStatistics(tasks_waiting=0) - - return self._internal_event.statistics() - - -class Lock: - def __new__(cls, *, fast_acquire: bool = False) -> Lock: - try: - return get_async_backend().create_lock(fast_acquire=fast_acquire) - except NoEventLoopError: - return LockAdapter(fast_acquire=fast_acquire) - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - async def acquire(self) -> None: - """Acquire the lock.""" - raise NotImplementedError - - def acquire_nowait(self) -> None: - """ - Acquire the lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - raise NotImplementedError - - def release(self) -> None: - """Release the lock.""" - raise NotImplementedError - - def locked(self) -> bool: - """Return True if the lock is currently held.""" - raise NotImplementedError - - def statistics(self) -> LockStatistics: - """ - Return statistics about the current state of this lock. - - .. versionadded:: 3.0 - """ - raise NotImplementedError - - -class LockAdapter(Lock): - _internal_lock: Lock | None = None - - def __new__(cls, *, fast_acquire: bool = False) -> LockAdapter: - return object.__new__(cls) - - def __init__(self, *, fast_acquire: bool = False): - self._fast_acquire = fast_acquire - - @property - def _lock(self) -> Lock: - if self._internal_lock is None: - self._internal_lock = get_async_backend().create_lock( - fast_acquire=self._fast_acquire - ) - - return self._internal_lock - - async def __aenter__(self) -> None: - await self._lock.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - if self._internal_lock is not None: - self._internal_lock.release() - - async def acquire(self) -> None: - """Acquire the lock.""" - await self._lock.acquire() - - def acquire_nowait(self) -> None: - """ - Acquire the lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - self._lock.acquire_nowait() - - def release(self) -> None: - """Release the lock.""" - self._lock.release() - - def locked(self) -> bool: - """Return True if the lock is currently held.""" - return self._lock.locked() - - def statistics(self) -> LockStatistics: - """ - Return statistics about the current state of this lock. - - .. versionadded:: 3.0 - - """ - if self._internal_lock is None: - return LockStatistics(False, None, 0) - - return self._internal_lock.statistics() - - -class Condition: - _owner_task: TaskInfo | None = None - - def __init__(self, lock: Lock | None = None): - self._lock = lock or Lock() - self._waiters: deque[Event] = deque() - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - def _check_acquired(self) -> None: - if self._owner_task != get_current_task(): - raise RuntimeError("The current task is not holding the underlying lock") - - async def acquire(self) -> None: - """Acquire the underlying lock.""" - await self._lock.acquire() - self._owner_task = get_current_task() - - def acquire_nowait(self) -> None: - """ - Acquire the underlying lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - self._lock.acquire_nowait() - self._owner_task = get_current_task() - - def release(self) -> None: - """Release the underlying lock.""" - self._lock.release() - - def locked(self) -> bool: - """Return True if the lock is set.""" - return self._lock.locked() - - def notify(self, n: int = 1) -> None: - """Notify exactly n listeners.""" - self._check_acquired() - for _ in range(n): - try: - event = self._waiters.popleft() - except IndexError: - break - - event.set() - - def notify_all(self) -> None: - """Notify all the listeners.""" - self._check_acquired() - for event in self._waiters: - event.set() - - self._waiters.clear() - - async def wait(self) -> None: - """Wait for a notification.""" - await checkpoint_if_cancelled() - self._check_acquired() - event = Event() - self._waiters.append(event) - self.release() - try: - await event.wait() - except BaseException: - if not event.is_set(): - self._waiters.remove(event) - - raise - finally: - with CancelScope(shield=True): - await self.acquire() - - async def wait_for(self, predicate: Callable[[], T]) -> T: - """ - Wait until a predicate becomes true. - - :param predicate: a callable that returns a truthy value when the condition is - met - :return: the result of the predicate - - .. versionadded:: 4.11.0 - - """ - while not (result := predicate()): - await self.wait() - - return result - - def statistics(self) -> ConditionStatistics: - """ - Return statistics about the current state of this condition. - - .. versionadded:: 3.0 - """ - return ConditionStatistics(len(self._waiters), self._lock.statistics()) - - -class Semaphore: - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - try: - return get_async_backend().create_semaphore( - initial_value, max_value=max_value, fast_acquire=fast_acquire - ) - except NoEventLoopError: - return SemaphoreAdapter(initial_value, max_value=max_value) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ): - if not isinstance(initial_value, int): - raise TypeError("initial_value must be an integer") - if initial_value < 0: - raise ValueError("initial_value must be >= 0") - if max_value is not None: - if not isinstance(max_value, int): - raise TypeError("max_value must be an integer or None") - if max_value < initial_value: - raise ValueError( - "max_value must be equal to or higher than initial_value" - ) - - self._fast_acquire = fast_acquire - - async def __aenter__(self) -> Semaphore: - await self.acquire() - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.release() - - async def acquire(self) -> None: - """Decrement the semaphore value, blocking if necessary.""" - raise NotImplementedError - - def acquire_nowait(self) -> None: - """ - Acquire the underlying lock, without blocking. - - :raises ~anyio.WouldBlock: if the operation would block - - """ - raise NotImplementedError - - def release(self) -> None: - """Increment the semaphore value.""" - raise NotImplementedError - - @property - def value(self) -> int: - """The current value of the semaphore.""" - raise NotImplementedError - - @property - def max_value(self) -> int | None: - """The maximum value of the semaphore.""" - raise NotImplementedError - - def statistics(self) -> SemaphoreStatistics: - """ - Return statistics about the current state of this semaphore. - - .. versionadded:: 3.0 - """ - raise NotImplementedError - - -class SemaphoreAdapter(Semaphore): - _internal_semaphore: Semaphore | None = None - - def __new__( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> SemaphoreAdapter: - return object.__new__(cls) - - def __init__( - self, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> None: - super().__init__(initial_value, max_value=max_value, fast_acquire=fast_acquire) - self._initial_value = initial_value - self._max_value = max_value - - @property - def _semaphore(self) -> Semaphore: - if self._internal_semaphore is None: - self._internal_semaphore = get_async_backend().create_semaphore( - self._initial_value, max_value=self._max_value - ) - - return self._internal_semaphore - - async def acquire(self) -> None: - await self._semaphore.acquire() - - def acquire_nowait(self) -> None: - self._semaphore.acquire_nowait() - - def release(self) -> None: - self._semaphore.release() - - @property - def value(self) -> int: - if self._internal_semaphore is None: - return self._initial_value - - return self._semaphore.value - - @property - def max_value(self) -> int | None: - return self._max_value - - def statistics(self) -> SemaphoreStatistics: - if self._internal_semaphore is None: - return SemaphoreStatistics(tasks_waiting=0) - - return self._semaphore.statistics() - - -class CapacityLimiter: - def __new__(cls, total_tokens: float) -> CapacityLimiter: - try: - return get_async_backend().create_capacity_limiter(total_tokens) - except NoEventLoopError: - return CapacityLimiterAdapter(total_tokens) - - async def __aenter__(self) -> None: - raise NotImplementedError - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - raise NotImplementedError - - @property - def total_tokens(self) -> float: - """ - The total number of tokens available for borrowing. - - This is a read-write property. If the total number of tokens is increased, the - proportionate number of tasks waiting on this limiter will be granted their - tokens. - - .. versionchanged:: 3.0 - The property is now writable. - .. versionchanged:: 4.12 - The value can now be set to 0. - - """ - raise NotImplementedError - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - raise NotImplementedError - - @property - def borrowed_tokens(self) -> int: - """The number of tokens that have currently been borrowed.""" - raise NotImplementedError - - @property - def available_tokens(self) -> float: - """The number of tokens currently available to be borrowed""" - raise NotImplementedError - - def acquire_nowait(self) -> None: - """ - Acquire a token for the current task without waiting for one to become - available. - - :raises ~anyio.WouldBlock: if there are no tokens available for borrowing - - """ - raise NotImplementedError - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - """ - Acquire a token without waiting for one to become available. - - :param borrower: the entity borrowing a token - :raises ~anyio.WouldBlock: if there are no tokens available for borrowing - - """ - raise NotImplementedError - - async def acquire(self) -> None: - """ - Acquire a token for the current task, waiting if necessary for one to become - available. - - """ - raise NotImplementedError - - async def acquire_on_behalf_of(self, borrower: object) -> None: - """ - Acquire a token, waiting if necessary for one to become available. - - :param borrower: the entity borrowing a token - - """ - raise NotImplementedError - - def release(self) -> None: - """ - Release the token held by the current task. - - :raises RuntimeError: if the current task has not borrowed a token from this - limiter. - - """ - raise NotImplementedError - - def release_on_behalf_of(self, borrower: object) -> None: - """ - Release the token held by the given borrower. - - :raises RuntimeError: if the borrower has not borrowed a token from this - limiter. - - """ - raise NotImplementedError - - def statistics(self) -> CapacityLimiterStatistics: - """ - Return statistics about the current state of this limiter. - - .. versionadded:: 3.0 - - """ - raise NotImplementedError - - -class CapacityLimiterAdapter(CapacityLimiter): - _internal_limiter: CapacityLimiter | None = None - - def __new__(cls, total_tokens: float) -> CapacityLimiterAdapter: - return object.__new__(cls) - - def __init__(self, total_tokens: float) -> None: - self.total_tokens = total_tokens - - @property - def _limiter(self) -> CapacityLimiter: - if self._internal_limiter is None: - self._internal_limiter = get_async_backend().create_capacity_limiter( - self._total_tokens - ) - - return self._internal_limiter - - async def __aenter__(self) -> None: - await self._limiter.__aenter__() - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - return await self._limiter.__aexit__(exc_type, exc_val, exc_tb) - - @property - def total_tokens(self) -> float: - if self._internal_limiter is None: - return self._total_tokens - - return self._internal_limiter.total_tokens - - @total_tokens.setter - def total_tokens(self, value: float) -> None: - if not isinstance(value, int) and value is not math.inf: - raise TypeError("total_tokens must be an int or math.inf") - elif value < 1: - raise ValueError("total_tokens must be >= 1") - - if self._internal_limiter is None: - self._total_tokens = value - return - - self._limiter.total_tokens = value - - @property - def borrowed_tokens(self) -> int: - if self._internal_limiter is None: - return 0 - - return self._internal_limiter.borrowed_tokens - - @property - def available_tokens(self) -> float: - if self._internal_limiter is None: - return self._total_tokens - - return self._internal_limiter.available_tokens - - def acquire_nowait(self) -> None: - self._limiter.acquire_nowait() - - def acquire_on_behalf_of_nowait(self, borrower: object) -> None: - self._limiter.acquire_on_behalf_of_nowait(borrower) - - async def acquire(self) -> None: - await self._limiter.acquire() - - async def acquire_on_behalf_of(self, borrower: object) -> None: - await self._limiter.acquire_on_behalf_of(borrower) - - def release(self) -> None: - self._limiter.release() - - def release_on_behalf_of(self, borrower: object) -> None: - self._limiter.release_on_behalf_of(borrower) - - def statistics(self) -> CapacityLimiterStatistics: - if self._internal_limiter is None: - return CapacityLimiterStatistics( - borrowed_tokens=0, - total_tokens=self.total_tokens, - borrowers=(), - tasks_waiting=0, - ) - - return self._internal_limiter.statistics() - - -class ResourceGuard: - """ - A context manager for ensuring that a resource is only used by a single task at a - time. - - Entering this context manager while the previous has not exited it yet will trigger - :exc:`BusyResourceError`. - - :param action: the action to guard against (visible in the :exc:`BusyResourceError` - when triggered, e.g. "Another task is already {action} this resource") - - .. versionadded:: 4.1 - """ - - __slots__ = "action", "_guarded" - - def __init__(self, action: str = "using"): - self.action: str = action - self._guarded = False - - def __enter__(self) -> None: - if self._guarded: - raise BusyResourceError(self.action) - - self._guarded = True - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self._guarded = False diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_tasks.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_tasks.py deleted file mode 100644 index 0688bfe..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_tasks.py +++ /dev/null @@ -1,173 +0,0 @@ -from __future__ import annotations - -import math -from collections.abc import Generator -from contextlib import contextmanager -from types import TracebackType - -from ..abc._tasks import TaskGroup, TaskStatus -from ._eventloop import get_async_backend - - -class _IgnoredTaskStatus(TaskStatus[object]): - def started(self, value: object = None) -> None: - pass - - -TASK_STATUS_IGNORED = _IgnoredTaskStatus() - - -class CancelScope: - """ - Wraps a unit of work that can be made separately cancellable. - - :param deadline: The time (clock value) when this scope is cancelled automatically - :param shield: ``True`` to shield the cancel scope from external cancellation - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - """ - - def __new__( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - return get_async_backend().create_cancel_scope(shield=shield, deadline=deadline) - - def cancel(self, reason: str | None = None) -> None: - """ - Cancel this scope immediately. - - :param reason: a message describing the reason for the cancellation - - """ - raise NotImplementedError - - @property - def deadline(self) -> float: - """ - The time (clock value) when this scope is cancelled automatically. - - Will be ``float('inf')`` if no timeout has been set. - - """ - raise NotImplementedError - - @deadline.setter - def deadline(self, value: float) -> None: - raise NotImplementedError - - @property - def cancel_called(self) -> bool: - """``True`` if :meth:`cancel` has been called.""" - raise NotImplementedError - - @property - def cancelled_caught(self) -> bool: - """ - ``True`` if this scope suppressed a cancellation exception it itself raised. - - This is typically used to check if any work was interrupted, or to see if the - scope was cancelled due to its deadline being reached. The value will, however, - only be ``True`` if the cancellation was triggered by the scope itself (and not - an outer scope). - - """ - raise NotImplementedError - - @property - def shield(self) -> bool: - """ - ``True`` if this scope is shielded from external cancellation. - - While a scope is shielded, it will not receive cancellations from outside. - - """ - raise NotImplementedError - - @shield.setter - def shield(self, value: bool) -> None: - raise NotImplementedError - - def __enter__(self) -> CancelScope: - raise NotImplementedError - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - raise NotImplementedError - - -@contextmanager -def fail_after( - delay: float | None, shield: bool = False -) -> Generator[CancelScope, None, None]: - """ - Create a context manager which raises a :class:`TimeoutError` if does not finish in - time. - - :param delay: maximum allowed time (in seconds) before raising the exception, or - ``None`` to disable the timeout - :param shield: ``True`` to shield the cancel scope from external cancellation - :return: a context manager that yields a cancel scope - :rtype: :class:`~typing.ContextManager`\\[:class:`~anyio.CancelScope`\\] - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - current_time = get_async_backend().current_time - deadline = (current_time() + delay) if delay is not None else math.inf - with get_async_backend().create_cancel_scope( - deadline=deadline, shield=shield - ) as cancel_scope: - yield cancel_scope - - if cancel_scope.cancelled_caught and current_time() >= cancel_scope.deadline: - raise TimeoutError - - -def move_on_after(delay: float | None, shield: bool = False) -> CancelScope: - """ - Create a cancel scope with a deadline that expires after the given delay. - - :param delay: maximum allowed time (in seconds) before exiting the context block, or - ``None`` to disable the timeout - :param shield: ``True`` to shield the cancel scope from external cancellation - :return: a cancel scope - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - deadline = ( - (get_async_backend().current_time() + delay) if delay is not None else math.inf - ) - return get_async_backend().create_cancel_scope(deadline=deadline, shield=shield) - - -def current_effective_deadline() -> float: - """ - Return the nearest deadline among all the cancel scopes effective for the current - task. - - :return: a clock value from the event loop's internal clock (or ``float('inf')`` if - there is no deadline in effect, or ``float('-inf')`` if the current scope has - been cancelled) - :rtype: float - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().current_effective_deadline() - - -def create_task_group() -> TaskGroup: - """ - Create a task group. - - :return: a task group - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().create_task_group() diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py deleted file mode 100644 index fbb6b14..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py +++ /dev/null @@ -1,616 +0,0 @@ -from __future__ import annotations - -import os -import sys -import tempfile -from collections.abc import Iterable -from io import BytesIO, TextIOWrapper -from types import TracebackType -from typing import ( - TYPE_CHECKING, - Any, - AnyStr, - Generic, - overload, -) - -from .. import to_thread -from .._core._fileio import AsyncFile -from ..lowlevel import checkpoint_if_cancelled - -if TYPE_CHECKING: - from _typeshed import OpenBinaryMode, OpenTextMode, ReadableBuffer, WriteableBuffer - - -class TemporaryFile(Generic[AnyStr]): - """ - An asynchronous temporary file that is automatically created and cleaned up. - - This class provides an asynchronous context manager interface to a temporary file. - The file is created using Python's standard `tempfile.TemporaryFile` function in a - background thread, and is wrapped as an asynchronous file using `AsyncFile`. - - :param mode: The mode in which the file is opened. Defaults to "w+b". - :param buffering: The buffering policy (-1 means the default buffering). - :param encoding: The encoding used to decode or encode the file. Only applicable in - text mode. - :param newline: Controls how universal newlines mode works (only applicable in text - mode). - :param suffix: The suffix for the temporary file name. - :param prefix: The prefix for the temporary file name. - :param dir: The directory in which the temporary file is created. - :param errors: The error handling scheme used for encoding/decoding errors. - """ - - _async_file: AsyncFile[AnyStr] - - @overload - def __init__( - self: TemporaryFile[bytes], - mode: OpenBinaryMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - @overload - def __init__( - self: TemporaryFile[str], - mode: OpenTextMode, - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - - def __init__( - self, - mode: OpenTextMode | OpenBinaryMode = "w+b", - buffering: int = -1, - encoding: str | None = None, - newline: str | None = None, - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - *, - errors: str | None = None, - ) -> None: - self.mode = mode - self.buffering = buffering - self.encoding = encoding - self.newline = newline - self.suffix: str | None = suffix - self.prefix: str | None = prefix - self.dir: str | None = dir - self.errors = errors - - async def __aenter__(self) -> AsyncFile[AnyStr]: - fp = await to_thread.run_sync( - lambda: tempfile.TemporaryFile( - self.mode, - self.buffering, - self.encoding, - self.newline, - self.suffix, - self.prefix, - self.dir, - errors=self.errors, - ) - ) - self._async_file = AsyncFile(fp) - return self._async_file - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - traceback: TracebackType | None, - ) -> None: - await self._async_file.aclose() - - -class NamedTemporaryFile(Generic[AnyStr]): - """ - An asynchronous named temporary file that is automatically created and cleaned up. - - This class provides an asynchronous context manager for a temporary file with a - visible name in the file system. It uses Python's standard - :func:`~tempfile.NamedTemporaryFile` function and wraps the file object with - :class:`AsyncFile` for asynchronous operations. - - :param mode: The mode in which the file is opened. Defaults to "w+b". - :param buffering: The buffering policy (-1 means the default buffering). - :param encoding: The encoding used to decode or encode the file. Only applicable in - text mode. - :param newline: Controls how universal newlines mode works (only applicable in text - mode). - :param suffix: The suffix for the temporary file name. - :param prefix: The prefix for the temporary file name. - :param dir: The directory in which the temporary file is created. - :param delete: Whether to delete the file when it is closed. - :param errors: The error handling scheme used for encoding/decoding errors. - :param delete_on_close: (Python 3.12+) Whether to delete the file on close. - """ - - _async_file: AsyncFile[AnyStr] - - @overload - def __init__( - self: NamedTemporaryFile[bytes], - mode: OpenBinaryMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - delete: bool = ..., - *, - errors: str | None = ..., - delete_on_close: bool = ..., - ): ... - @overload - def __init__( - self: NamedTemporaryFile[str], - mode: OpenTextMode, - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - delete: bool = ..., - *, - errors: str | None = ..., - delete_on_close: bool = ..., - ): ... - - def __init__( - self, - mode: OpenBinaryMode | OpenTextMode = "w+b", - buffering: int = -1, - encoding: str | None = None, - newline: str | None = None, - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - delete: bool = True, - *, - errors: str | None = None, - delete_on_close: bool = True, - ) -> None: - self._params: dict[str, Any] = { - "mode": mode, - "buffering": buffering, - "encoding": encoding, - "newline": newline, - "suffix": suffix, - "prefix": prefix, - "dir": dir, - "delete": delete, - "errors": errors, - } - if sys.version_info >= (3, 12): - self._params["delete_on_close"] = delete_on_close - - async def __aenter__(self) -> AsyncFile[AnyStr]: - fp = await to_thread.run_sync( - lambda: tempfile.NamedTemporaryFile(**self._params) - ) - self._async_file = AsyncFile(fp) - return self._async_file - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - traceback: TracebackType | None, - ) -> None: - await self._async_file.aclose() - - -class SpooledTemporaryFile(AsyncFile[AnyStr]): - """ - An asynchronous spooled temporary file that starts in memory and is spooled to disk. - - This class provides an asynchronous interface to a spooled temporary file, much like - Python's standard :class:`~tempfile.SpooledTemporaryFile`. It supports asynchronous - write operations and provides a method to force a rollover to disk. - - :param max_size: Maximum size in bytes before the file is rolled over to disk. - :param mode: The mode in which the file is opened. Defaults to "w+b". - :param buffering: The buffering policy (-1 means the default buffering). - :param encoding: The encoding used to decode or encode the file (text mode only). - :param newline: Controls how universal newlines mode works (text mode only). - :param suffix: The suffix for the temporary file name. - :param prefix: The prefix for the temporary file name. - :param dir: The directory in which the temporary file is created. - :param errors: The error handling scheme used for encoding/decoding errors. - """ - - _rolled: bool = False - - @overload - def __init__( - self: SpooledTemporaryFile[bytes], - max_size: int = ..., - mode: OpenBinaryMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - @overload - def __init__( - self: SpooledTemporaryFile[str], - max_size: int = ..., - mode: OpenTextMode = ..., - buffering: int = ..., - encoding: str | None = ..., - newline: str | None = ..., - suffix: str | None = ..., - prefix: str | None = ..., - dir: str | None = ..., - *, - errors: str | None = ..., - ): ... - - def __init__( - self, - max_size: int = 0, - mode: OpenBinaryMode | OpenTextMode = "w+b", - buffering: int = -1, - encoding: str | None = None, - newline: str | None = None, - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - *, - errors: str | None = None, - ) -> None: - self._tempfile_params: dict[str, Any] = { - "mode": mode, - "buffering": buffering, - "encoding": encoding, - "newline": newline, - "suffix": suffix, - "prefix": prefix, - "dir": dir, - "errors": errors, - } - self._max_size = max_size - if "b" in mode: - super().__init__(BytesIO()) # type: ignore[arg-type] - else: - super().__init__( - TextIOWrapper( # type: ignore[arg-type] - BytesIO(), - encoding=encoding, - errors=errors, - newline=newline, - write_through=True, - ) - ) - - async def aclose(self) -> None: - if not self._rolled: - self._fp.close() - return - - await super().aclose() - - async def _check(self) -> None: - if self._rolled or self._fp.tell() <= self._max_size: - return - - await self.rollover() - - async def rollover(self) -> None: - if self._rolled: - return - - self._rolled = True - buffer = self._fp - buffer.seek(0) - self._fp = await to_thread.run_sync( - lambda: tempfile.TemporaryFile(**self._tempfile_params) - ) - await self.write(buffer.read()) - buffer.close() - - @property - def closed(self) -> bool: - return self._fp.closed - - async def read(self, size: int = -1) -> AnyStr: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.read(size) - - return await super().read(size) # type: ignore[return-value] - - async def read1(self: SpooledTemporaryFile[bytes], size: int = -1) -> bytes: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.read1(size) - - return await super().read1(size) - - async def readline(self) -> AnyStr: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.readline() - - return await super().readline() # type: ignore[return-value] - - async def readlines(self) -> list[AnyStr]: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.readlines() - - return await super().readlines() # type: ignore[return-value] - - async def readinto(self: SpooledTemporaryFile[bytes], b: WriteableBuffer) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - self._fp.readinto(b) - - return await super().readinto(b) - - async def readinto1(self: SpooledTemporaryFile[bytes], b: WriteableBuffer) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - self._fp.readinto(b) - - return await super().readinto1(b) - - async def seek(self, offset: int, whence: int | None = os.SEEK_SET) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.seek(offset, whence) - - return await super().seek(offset, whence) - - async def tell(self) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.tell() - - return await super().tell() - - async def truncate(self, size: int | None = None) -> int: - if not self._rolled: - await checkpoint_if_cancelled() - return self._fp.truncate(size) - - return await super().truncate(size) - - @overload - async def write(self: SpooledTemporaryFile[bytes], b: ReadableBuffer) -> int: ... - @overload - async def write(self: SpooledTemporaryFile[str], b: str) -> int: ... - - async def write(self, b: ReadableBuffer | str) -> int: - """ - Asynchronously write data to the spooled temporary file. - - If the file has not yet been rolled over, the data is written synchronously, - and a rollover is triggered if the size exceeds the maximum size. - - :param s: The data to write. - :return: The number of bytes written. - :raises RuntimeError: If the underlying file is not initialized. - - """ - if not self._rolled: - await checkpoint_if_cancelled() - result = self._fp.write(b) - await self._check() - return result - - return await super().write(b) # type: ignore[misc] - - @overload - async def writelines( - self: SpooledTemporaryFile[bytes], lines: Iterable[ReadableBuffer] - ) -> None: ... - @overload - async def writelines( - self: SpooledTemporaryFile[str], lines: Iterable[str] - ) -> None: ... - - async def writelines(self, lines: Iterable[str] | Iterable[ReadableBuffer]) -> None: - """ - Asynchronously write a list of lines to the spooled temporary file. - - If the file has not yet been rolled over, the lines are written synchronously, - and a rollover is triggered if the size exceeds the maximum size. - - :param lines: An iterable of lines to write. - :raises RuntimeError: If the underlying file is not initialized. - - """ - if not self._rolled: - await checkpoint_if_cancelled() - result = self._fp.writelines(lines) - await self._check() - return result - - return await super().writelines(lines) # type: ignore[misc] - - -class TemporaryDirectory(Generic[AnyStr]): - """ - An asynchronous temporary directory that is created and cleaned up automatically. - - This class provides an asynchronous context manager for creating a temporary - directory. It wraps Python's standard :class:`~tempfile.TemporaryDirectory` to - perform directory creation and cleanup operations in a background thread. - - :param suffix: Suffix to be added to the temporary directory name. - :param prefix: Prefix to be added to the temporary directory name. - :param dir: The parent directory where the temporary directory is created. - :param ignore_cleanup_errors: Whether to ignore errors during cleanup - (Python 3.10+). - :param delete: Whether to delete the directory upon closing (Python 3.12+). - """ - - def __init__( - self, - suffix: AnyStr | None = None, - prefix: AnyStr | None = None, - dir: AnyStr | None = None, - *, - ignore_cleanup_errors: bool = False, - delete: bool = True, - ) -> None: - self.suffix: AnyStr | None = suffix - self.prefix: AnyStr | None = prefix - self.dir: AnyStr | None = dir - self.ignore_cleanup_errors = ignore_cleanup_errors - self.delete = delete - - self._tempdir: tempfile.TemporaryDirectory | None = None - - async def __aenter__(self) -> str: - params: dict[str, Any] = { - "suffix": self.suffix, - "prefix": self.prefix, - "dir": self.dir, - } - if sys.version_info >= (3, 10): - params["ignore_cleanup_errors"] = self.ignore_cleanup_errors - - if sys.version_info >= (3, 12): - params["delete"] = self.delete - - self._tempdir = await to_thread.run_sync( - lambda: tempfile.TemporaryDirectory(**params) - ) - return await to_thread.run_sync(self._tempdir.__enter__) - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - traceback: TracebackType | None, - ) -> None: - if self._tempdir is not None: - await to_thread.run_sync( - self._tempdir.__exit__, exc_type, exc_value, traceback - ) - - async def cleanup(self) -> None: - if self._tempdir is not None: - await to_thread.run_sync(self._tempdir.cleanup) - - -@overload -async def mkstemp( - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, - text: bool = False, -) -> tuple[int, str]: ... - - -@overload -async def mkstemp( - suffix: bytes | None = None, - prefix: bytes | None = None, - dir: bytes | None = None, - text: bool = False, -) -> tuple[int, bytes]: ... - - -async def mkstemp( - suffix: AnyStr | None = None, - prefix: AnyStr | None = None, - dir: AnyStr | None = None, - text: bool = False, -) -> tuple[int, str | bytes]: - """ - Asynchronously create a temporary file and return an OS-level handle and the file - name. - - This function wraps `tempfile.mkstemp` and executes it in a background thread. - - :param suffix: Suffix to be added to the file name. - :param prefix: Prefix to be added to the file name. - :param dir: Directory in which the temporary file is created. - :param text: Whether the file is opened in text mode. - :return: A tuple containing the file descriptor and the file name. - - """ - return await to_thread.run_sync(tempfile.mkstemp, suffix, prefix, dir, text) - - -@overload -async def mkdtemp( - suffix: str | None = None, - prefix: str | None = None, - dir: str | None = None, -) -> str: ... - - -@overload -async def mkdtemp( - suffix: bytes | None = None, - prefix: bytes | None = None, - dir: bytes | None = None, -) -> bytes: ... - - -async def mkdtemp( - suffix: AnyStr | None = None, - prefix: AnyStr | None = None, - dir: AnyStr | None = None, -) -> str | bytes: - """ - Asynchronously create a temporary directory and return its path. - - This function wraps `tempfile.mkdtemp` and executes it in a background thread. - - :param suffix: Suffix to be added to the directory name. - :param prefix: Prefix to be added to the directory name. - :param dir: Parent directory where the temporary directory is created. - :return: The path of the created temporary directory. - - """ - return await to_thread.run_sync(tempfile.mkdtemp, suffix, prefix, dir) - - -async def gettempdir() -> str: - """ - Asynchronously return the name of the directory used for temporary files. - - This function wraps `tempfile.gettempdir` and executes it in a background thread. - - :return: The path of the temporary directory as a string. - - """ - return await to_thread.run_sync(tempfile.gettempdir) - - -async def gettempdirb() -> bytes: - """ - Asynchronously return the name of the directory used for temporary files in bytes. - - This function wraps `tempfile.gettempdirb` and executes it in a background thread. - - :return: The path of the temporary directory as bytes. - - """ - return await to_thread.run_sync(tempfile.gettempdirb) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_testing.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_testing.py deleted file mode 100644 index 369e65c..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_testing.py +++ /dev/null @@ -1,82 +0,0 @@ -from __future__ import annotations - -from collections.abc import Awaitable, Generator -from typing import Any, cast - -from ._eventloop import get_async_backend - - -class TaskInfo: - """ - Represents an asynchronous task. - - :ivar int id: the unique identifier of the task - :ivar parent_id: the identifier of the parent task, if any - :vartype parent_id: Optional[int] - :ivar str name: the description of the task (if any) - :ivar ~collections.abc.Coroutine coro: the coroutine object of the task - """ - - __slots__ = "_name", "id", "parent_id", "name", "coro" - - def __init__( - self, - id: int, - parent_id: int | None, - name: str | None, - coro: Generator[Any, Any, Any] | Awaitable[Any], - ): - func = get_current_task - self._name = f"{func.__module__}.{func.__qualname__}" - self.id: int = id - self.parent_id: int | None = parent_id - self.name: str | None = name - self.coro: Generator[Any, Any, Any] | Awaitable[Any] = coro - - def __eq__(self, other: object) -> bool: - if isinstance(other, TaskInfo): - return self.id == other.id - - return NotImplemented - - def __hash__(self) -> int: - return hash(self.id) - - def __repr__(self) -> str: - return f"{self.__class__.__name__}(id={self.id!r}, name={self.name!r})" - - def has_pending_cancellation(self) -> bool: - """ - Return ``True`` if the task has a cancellation pending, ``False`` otherwise. - - """ - return False - - -def get_current_task() -> TaskInfo: - """ - Return the current task. - - :return: a representation of the current task - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().get_current_task() - - -def get_running_tasks() -> list[TaskInfo]: - """ - Return a list of running tasks in the current event loop. - - :return: a list of task info objects - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return cast("list[TaskInfo]", get_async_backend().get_running_tasks()) - - -async def wait_all_tasks_blocked() -> None: - """Wait until all other tasks are waiting for something.""" - await get_async_backend().wait_all_tasks_blocked() diff --git a/backend/venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py b/backend/venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py deleted file mode 100644 index f358a44..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py +++ /dev/null @@ -1,81 +0,0 @@ -from __future__ import annotations - -from collections.abc import Callable, Mapping -from typing import Any, TypeVar, final, overload - -from ._exceptions import TypedAttributeLookupError - -T_Attr = TypeVar("T_Attr") -T_Default = TypeVar("T_Default") -undefined = object() - - -def typed_attribute() -> Any: - """Return a unique object, used to mark typed attributes.""" - return object() - - -class TypedAttributeSet: - """ - Superclass for typed attribute collections. - - Checks that every public attribute of every subclass has a type annotation. - """ - - def __init_subclass__(cls) -> None: - annotations: dict[str, Any] = getattr(cls, "__annotations__", {}) - for attrname in dir(cls): - if not attrname.startswith("_") and attrname not in annotations: - raise TypeError( - f"Attribute {attrname!r} is missing its type annotation" - ) - - super().__init_subclass__() - - -class TypedAttributeProvider: - """Base class for classes that wish to provide typed extra attributes.""" - - @property - def extra_attributes(self) -> Mapping[T_Attr, Callable[[], T_Attr]]: - """ - A mapping of the extra attributes to callables that return the corresponding - values. - - If the provider wraps another provider, the attributes from that wrapper should - also be included in the returned mapping (but the wrapper may override the - callables from the wrapped instance). - - """ - return {} - - @overload - def extra(self, attribute: T_Attr) -> T_Attr: ... - - @overload - def extra(self, attribute: T_Attr, default: T_Default) -> T_Attr | T_Default: ... - - @final - def extra(self, attribute: Any, default: object = undefined) -> object: - """ - extra(attribute, default=undefined) - - Return the value of the given typed extra attribute. - - :param attribute: the attribute (member of a :class:`~TypedAttributeSet`) to - look for - :param default: the value that should be returned if no value is found for the - attribute - :raises ~anyio.TypedAttributeLookupError: if the search failed and no default - value was given - - """ - try: - getter = self.extra_attributes[attribute] - except KeyError: - if default is undefined: - raise TypedAttributeLookupError("Attribute not found") from None - else: - return default - - return getter() diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/__init__.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/__init__.py deleted file mode 100644 index d560ce3..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/__init__.py +++ /dev/null @@ -1,58 +0,0 @@ -from __future__ import annotations - -from ._eventloop import AsyncBackend as AsyncBackend -from ._resources import AsyncResource as AsyncResource -from ._sockets import ConnectedUDPSocket as ConnectedUDPSocket -from ._sockets import ConnectedUNIXDatagramSocket as ConnectedUNIXDatagramSocket -from ._sockets import IPAddressType as IPAddressType -from ._sockets import IPSockAddrType as IPSockAddrType -from ._sockets import SocketAttribute as SocketAttribute -from ._sockets import SocketListener as SocketListener -from ._sockets import SocketStream as SocketStream -from ._sockets import UDPPacketType as UDPPacketType -from ._sockets import UDPSocket as UDPSocket -from ._sockets import UNIXDatagramPacketType as UNIXDatagramPacketType -from ._sockets import UNIXDatagramSocket as UNIXDatagramSocket -from ._sockets import UNIXSocketStream as UNIXSocketStream -from ._streams import AnyByteReceiveStream as AnyByteReceiveStream -from ._streams import AnyByteSendStream as AnyByteSendStream -from ._streams import AnyByteStream as AnyByteStream -from ._streams import AnyByteStreamConnectable as AnyByteStreamConnectable -from ._streams import AnyUnreliableByteReceiveStream as AnyUnreliableByteReceiveStream -from ._streams import AnyUnreliableByteSendStream as AnyUnreliableByteSendStream -from ._streams import AnyUnreliableByteStream as AnyUnreliableByteStream -from ._streams import ByteReceiveStream as ByteReceiveStream -from ._streams import ByteSendStream as ByteSendStream -from ._streams import ByteStream as ByteStream -from ._streams import ByteStreamConnectable as ByteStreamConnectable -from ._streams import Listener as Listener -from ._streams import ObjectReceiveStream as ObjectReceiveStream -from ._streams import ObjectSendStream as ObjectSendStream -from ._streams import ObjectStream as ObjectStream -from ._streams import ObjectStreamConnectable as ObjectStreamConnectable -from ._streams import UnreliableObjectReceiveStream as UnreliableObjectReceiveStream -from ._streams import UnreliableObjectSendStream as UnreliableObjectSendStream -from ._streams import UnreliableObjectStream as UnreliableObjectStream -from ._subprocesses import Process as Process -from ._tasks import TaskGroup as TaskGroup -from ._tasks import TaskStatus as TaskStatus -from ._testing import TestRunner as TestRunner - -# Re-exported here, for backwards compatibility -# isort: off -from .._core._synchronization import ( - CapacityLimiter as CapacityLimiter, - Condition as Condition, - Event as Event, - Lock as Lock, - Semaphore as Semaphore, -) -from .._core._tasks import CancelScope as CancelScope -from ..from_thread import BlockingPortal as BlockingPortal - -# Re-export imports so they look like they live directly in this package -for __value in list(locals().values()): - if getattr(__value, "__module__", "").startswith("anyio.abc."): - __value.__module__ = __name__ - -del __value diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py deleted file mode 100644 index b1bd085..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py +++ /dev/null @@ -1,414 +0,0 @@ -from __future__ import annotations - -import math -import sys -from abc import ABCMeta, abstractmethod -from collections.abc import AsyncIterator, Awaitable, Callable, Sequence -from contextlib import AbstractContextManager -from os import PathLike -from signal import Signals -from socket import AddressFamily, SocketKind, socket -from typing import ( - IO, - TYPE_CHECKING, - Any, - TypeVar, - Union, - overload, -) - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - -if TYPE_CHECKING: - from _typeshed import FileDescriptorLike - - from .._core._synchronization import CapacityLimiter, Event, Lock, Semaphore - from .._core._tasks import CancelScope - from .._core._testing import TaskInfo - from ._sockets import ( - ConnectedUDPSocket, - ConnectedUNIXDatagramSocket, - IPSockAddrType, - SocketListener, - SocketStream, - UDPSocket, - UNIXDatagramSocket, - UNIXSocketStream, - ) - from ._subprocesses import Process - from ._tasks import TaskGroup - from ._testing import TestRunner - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") -StrOrBytesPath: TypeAlias = Union[str, bytes, "PathLike[str]", "PathLike[bytes]"] - - -class AsyncBackend(metaclass=ABCMeta): - @classmethod - @abstractmethod - def run( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - options: dict[str, Any], - ) -> T_Retval: - """ - Run the given coroutine function in an asynchronous event loop. - - The current thread must not be already running an event loop. - - :param func: a coroutine function - :param args: positional arguments to ``func`` - :param kwargs: positional arguments to ``func`` - :param options: keyword arguments to call the backend ``run()`` implementation - with - :return: the return value of the coroutine function - """ - - @classmethod - @abstractmethod - def current_token(cls) -> object: - """ - Return an object that allows other threads to run code inside the event loop. - - :return: a token object, specific to the event loop running in the current - thread - """ - - @classmethod - @abstractmethod - def current_time(cls) -> float: - """ - Return the current value of the event loop's internal clock. - - :return: the clock value (seconds) - """ - - @classmethod - @abstractmethod - def cancelled_exception_class(cls) -> type[BaseException]: - """Return the exception class that is raised in a task if it's cancelled.""" - - @classmethod - @abstractmethod - async def checkpoint(cls) -> None: - """ - Check if the task has been cancelled, and allow rescheduling of other tasks. - - This is effectively the same as running :meth:`checkpoint_if_cancelled` and then - :meth:`cancel_shielded_checkpoint`. - """ - - @classmethod - async def checkpoint_if_cancelled(cls) -> None: - """ - Check if the current task group has been cancelled. - - This will check if the task has been cancelled, but will not allow other tasks - to be scheduled if not. - - """ - if cls.current_effective_deadline() == -math.inf: - await cls.checkpoint() - - @classmethod - async def cancel_shielded_checkpoint(cls) -> None: - """ - Allow the rescheduling of other tasks. - - This will give other tasks the opportunity to run, but without checking if the - current task group has been cancelled, unlike with :meth:`checkpoint`. - - """ - with cls.create_cancel_scope(shield=True): - await cls.sleep(0) - - @classmethod - @abstractmethod - async def sleep(cls, delay: float) -> None: - """ - Pause the current task for the specified duration. - - :param delay: the duration, in seconds - """ - - @classmethod - @abstractmethod - def create_cancel_scope( - cls, *, deadline: float = math.inf, shield: bool = False - ) -> CancelScope: - pass - - @classmethod - @abstractmethod - def current_effective_deadline(cls) -> float: - """ - Return the nearest deadline among all the cancel scopes effective for the - current task. - - :return: - - a clock value from the event loop's internal clock - - ``inf`` if there is no deadline in effect - - ``-inf`` if the current scope has been cancelled - :rtype: float - """ - - @classmethod - @abstractmethod - def create_task_group(cls) -> TaskGroup: - pass - - @classmethod - @abstractmethod - def create_event(cls) -> Event: - pass - - @classmethod - @abstractmethod - def create_lock(cls, *, fast_acquire: bool) -> Lock: - pass - - @classmethod - @abstractmethod - def create_semaphore( - cls, - initial_value: int, - *, - max_value: int | None = None, - fast_acquire: bool = False, - ) -> Semaphore: - pass - - @classmethod - @abstractmethod - def create_capacity_limiter(cls, total_tokens: float) -> CapacityLimiter: - pass - - @classmethod - @abstractmethod - async def run_sync_in_worker_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - abandon_on_cancel: bool = False, - limiter: CapacityLimiter | None = None, - ) -> T_Retval: - pass - - @classmethod - @abstractmethod - def check_cancelled(cls) -> None: - pass - - @classmethod - @abstractmethod - def run_async_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - pass - - @classmethod - @abstractmethod - def run_sync_from_thread( - cls, - func: Callable[[Unpack[PosArgsT]], T_Retval], - args: tuple[Unpack[PosArgsT]], - token: object, - ) -> T_Retval: - pass - - @classmethod - @abstractmethod - async def open_process( - cls, - command: StrOrBytesPath | Sequence[StrOrBytesPath], - *, - stdin: int | IO[Any] | None, - stdout: int | IO[Any] | None, - stderr: int | IO[Any] | None, - **kwargs: Any, - ) -> Process: - pass - - @classmethod - @abstractmethod - def setup_process_pool_exit_at_shutdown(cls, workers: set[Process]) -> None: - pass - - @classmethod - @abstractmethod - async def connect_tcp( - cls, host: str, port: int, local_address: IPSockAddrType | None = None - ) -> SocketStream: - pass - - @classmethod - @abstractmethod - async def connect_unix(cls, path: str | bytes) -> UNIXSocketStream: - pass - - @classmethod - @abstractmethod - def create_tcp_listener(cls, sock: socket) -> SocketListener: - pass - - @classmethod - @abstractmethod - def create_unix_listener(cls, sock: socket) -> SocketListener: - pass - - @classmethod - @abstractmethod - async def create_udp_socket( - cls, - family: AddressFamily, - local_address: IPSockAddrType | None, - remote_address: IPSockAddrType | None, - reuse_port: bool, - ) -> UDPSocket | ConnectedUDPSocket: - pass - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket, remote_path: None - ) -> UNIXDatagramSocket: ... - - @classmethod - @overload - async def create_unix_datagram_socket( - cls, raw_socket: socket, remote_path: str | bytes - ) -> ConnectedUNIXDatagramSocket: ... - - @classmethod - @abstractmethod - async def create_unix_datagram_socket( - cls, raw_socket: socket, remote_path: str | bytes | None - ) -> UNIXDatagramSocket | ConnectedUNIXDatagramSocket: - pass - - @classmethod - @abstractmethod - async def getaddrinfo( - cls, - host: bytes | str | None, - port: str | int | None, - *, - family: int | AddressFamily = 0, - type: int | SocketKind = 0, - proto: int = 0, - flags: int = 0, - ) -> Sequence[ - tuple[ - AddressFamily, - SocketKind, - int, - str, - tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes], - ] - ]: - pass - - @classmethod - @abstractmethod - async def getnameinfo( - cls, sockaddr: IPSockAddrType, flags: int = 0 - ) -> tuple[str, str]: - pass - - @classmethod - @abstractmethod - async def wait_readable(cls, obj: FileDescriptorLike) -> None: - pass - - @classmethod - @abstractmethod - async def wait_writable(cls, obj: FileDescriptorLike) -> None: - pass - - @classmethod - @abstractmethod - def notify_closing(cls, obj: FileDescriptorLike) -> None: - pass - - @classmethod - @abstractmethod - async def wrap_listener_socket(cls, sock: socket) -> SocketListener: - pass - - @classmethod - @abstractmethod - async def wrap_stream_socket(cls, sock: socket) -> SocketStream: - pass - - @classmethod - @abstractmethod - async def wrap_unix_stream_socket(cls, sock: socket) -> UNIXSocketStream: - pass - - @classmethod - @abstractmethod - async def wrap_udp_socket(cls, sock: socket) -> UDPSocket: - pass - - @classmethod - @abstractmethod - async def wrap_connected_udp_socket(cls, sock: socket) -> ConnectedUDPSocket: - pass - - @classmethod - @abstractmethod - async def wrap_unix_datagram_socket(cls, sock: socket) -> UNIXDatagramSocket: - pass - - @classmethod - @abstractmethod - async def wrap_connected_unix_datagram_socket( - cls, sock: socket - ) -> ConnectedUNIXDatagramSocket: - pass - - @classmethod - @abstractmethod - def current_default_thread_limiter(cls) -> CapacityLimiter: - pass - - @classmethod - @abstractmethod - def open_signal_receiver( - cls, *signals: Signals - ) -> AbstractContextManager[AsyncIterator[Signals]]: - pass - - @classmethod - @abstractmethod - def get_current_task(cls) -> TaskInfo: - pass - - @classmethod - @abstractmethod - def get_running_tasks(cls) -> Sequence[TaskInfo]: - pass - - @classmethod - @abstractmethod - async def wait_all_tasks_blocked(cls) -> None: - pass - - @classmethod - @abstractmethod - def create_test_runner(cls, options: dict[str, Any]) -> TestRunner: - pass diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/_resources.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/_resources.py deleted file mode 100644 index 10df115..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/_resources.py +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import annotations - -from abc import ABCMeta, abstractmethod -from types import TracebackType -from typing import TypeVar - -T = TypeVar("T") - - -class AsyncResource(metaclass=ABCMeta): - """ - Abstract base class for all closeable asynchronous resources. - - Works as an asynchronous context manager which returns the instance itself on enter, - and calls :meth:`aclose` on exit. - """ - - __slots__ = () - - async def __aenter__(self: T) -> T: - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - await self.aclose() - - @abstractmethod - async def aclose(self) -> None: - """Close the resource.""" diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/_sockets.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/_sockets.py deleted file mode 100644 index 3ff60d4..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/_sockets.py +++ /dev/null @@ -1,405 +0,0 @@ -from __future__ import annotations - -import errno -import socket -import sys -from abc import abstractmethod -from collections.abc import Callable, Collection, Mapping -from contextlib import AsyncExitStack -from io import IOBase -from ipaddress import IPv4Address, IPv6Address -from socket import AddressFamily -from typing import Any, TypeVar, Union - -from .._core._eventloop import get_async_backend -from .._core._typedattr import ( - TypedAttributeProvider, - TypedAttributeSet, - typed_attribute, -) -from ._streams import ByteStream, Listener, UnreliableObjectStream -from ._tasks import TaskGroup - -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - -IPAddressType: TypeAlias = Union[str, IPv4Address, IPv6Address] -IPSockAddrType: TypeAlias = tuple[str, int] -SockAddrType: TypeAlias = Union[IPSockAddrType, str] -UDPPacketType: TypeAlias = tuple[bytes, IPSockAddrType] -UNIXDatagramPacketType: TypeAlias = tuple[bytes, str] -T_Retval = TypeVar("T_Retval") - - -def _validate_socket( - sock_or_fd: socket.socket | int, - sock_type: socket.SocketKind, - addr_family: socket.AddressFamily = socket.AF_UNSPEC, - *, - require_connected: bool = False, - require_bound: bool = False, -) -> socket.socket: - if isinstance(sock_or_fd, int): - try: - sock = socket.socket(fileno=sock_or_fd) - except OSError as exc: - if exc.errno == errno.ENOTSOCK: - raise ValueError( - "the file descriptor does not refer to a socket" - ) from exc - elif require_connected: - raise ValueError("the socket must be connected") from exc - elif require_bound: - raise ValueError("the socket must be bound to a local address") from exc - else: - raise - elif isinstance(sock_or_fd, socket.socket): - sock = sock_or_fd - else: - raise TypeError( - f"expected an int or socket, got {type(sock_or_fd).__qualname__} instead" - ) - - try: - if require_connected: - try: - sock.getpeername() - except OSError as exc: - raise ValueError("the socket must be connected") from exc - - if require_bound: - try: - if sock.family in (socket.AF_INET, socket.AF_INET6): - bound_addr = sock.getsockname()[1] - else: - bound_addr = sock.getsockname() - except OSError: - bound_addr = None - - if not bound_addr: - raise ValueError("the socket must be bound to a local address") - - if addr_family != socket.AF_UNSPEC and sock.family != addr_family: - raise ValueError( - f"address family mismatch: expected {addr_family.name}, got " - f"{sock.family.name}" - ) - - if sock.type != sock_type: - raise ValueError( - f"socket type mismatch: expected {sock_type.name}, got {sock.type.name}" - ) - except BaseException: - # Avoid ResourceWarning from the locally constructed socket object - if isinstance(sock_or_fd, int): - sock.detach() - - raise - - sock.setblocking(False) - return sock - - -class SocketAttribute(TypedAttributeSet): - """ - .. attribute:: family - :type: socket.AddressFamily - - the address family of the underlying socket - - .. attribute:: local_address - :type: tuple[str, int] | str - - the local address the underlying socket is connected to - - .. attribute:: local_port - :type: int - - for IP based sockets, the local port the underlying socket is bound to - - .. attribute:: raw_socket - :type: socket.socket - - the underlying stdlib socket object - - .. attribute:: remote_address - :type: tuple[str, int] | str - - the remote address the underlying socket is connected to - - .. attribute:: remote_port - :type: int - - for IP based sockets, the remote port the underlying socket is connected to - """ - - family: AddressFamily = typed_attribute() - local_address: SockAddrType = typed_attribute() - local_port: int = typed_attribute() - raw_socket: socket.socket = typed_attribute() - remote_address: SockAddrType = typed_attribute() - remote_port: int = typed_attribute() - - -class _SocketProvider(TypedAttributeProvider): - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - from .._core._sockets import convert_ipv6_sockaddr as convert - - attributes: dict[Any, Callable[[], Any]] = { - SocketAttribute.family: lambda: self._raw_socket.family, - SocketAttribute.local_address: lambda: convert( - self._raw_socket.getsockname() - ), - SocketAttribute.raw_socket: lambda: self._raw_socket, - } - try: - peername: tuple[str, int] | None = convert(self._raw_socket.getpeername()) - except OSError: - peername = None - - # Provide the remote address for connected sockets - if peername is not None: - attributes[SocketAttribute.remote_address] = lambda: peername - - # Provide local and remote ports for IP based sockets - if self._raw_socket.family in (AddressFamily.AF_INET, AddressFamily.AF_INET6): - attributes[SocketAttribute.local_port] = ( - lambda: self._raw_socket.getsockname()[1] - ) - if peername is not None: - remote_port = peername[1] - attributes[SocketAttribute.remote_port] = lambda: remote_port - - return attributes - - @property - @abstractmethod - def _raw_socket(self) -> socket.socket: - pass - - -class SocketStream(ByteStream, _SocketProvider): - """ - Transports bytes over a socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> SocketStream: - """ - Wrap an existing socket object or file descriptor as a socket stream. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a socket stream - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_STREAM, require_connected=True) - return await get_async_backend().wrap_stream_socket(sock) - - -class UNIXSocketStream(SocketStream): - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> UNIXSocketStream: - """ - Wrap an existing socket object or file descriptor as a UNIX socket stream. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a UNIX socket stream - - """ - sock = _validate_socket( - sock_or_fd, socket.SOCK_STREAM, socket.AF_UNIX, require_connected=True - ) - return await get_async_backend().wrap_unix_stream_socket(sock) - - @abstractmethod - async def send_fds(self, message: bytes, fds: Collection[int | IOBase]) -> None: - """ - Send file descriptors along with a message to the peer. - - :param message: a non-empty bytestring - :param fds: a collection of files (either numeric file descriptors or open file - or socket objects) - """ - - @abstractmethod - async def receive_fds(self, msglen: int, maxfds: int) -> tuple[bytes, list[int]]: - """ - Receive file descriptors along with a message from the peer. - - :param msglen: length of the message to expect from the peer - :param maxfds: maximum number of file descriptors to expect from the peer - :return: a tuple of (message, file descriptors) - """ - - -class SocketListener(Listener[SocketStream], _SocketProvider): - """ - Listens to incoming socket connections. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket( - cls, - sock_or_fd: socket.socket | int, - ) -> SocketListener: - """ - Wrap an existing socket object or file descriptor as a socket listener. - - The newly created listener takes ownership of the socket being passed in. - - :param sock_or_fd: a socket object or file descriptor - :return: a socket listener - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_STREAM, require_bound=True) - return await get_async_backend().wrap_listener_socket(sock) - - @abstractmethod - async def accept(self) -> SocketStream: - """Accept an incoming connection.""" - - async def serve( - self, - handler: Callable[[SocketStream], Any], - task_group: TaskGroup | None = None, - ) -> None: - from .. import create_task_group - - async with AsyncExitStack() as stack: - if task_group is None: - task_group = await stack.enter_async_context(create_task_group()) - - while True: - stream = await self.accept() - task_group.start_soon(handler, stream) - - -class UDPSocket(UnreliableObjectStream[UDPPacketType], _SocketProvider): - """ - Represents an unconnected UDP socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> UDPSocket: - """ - Wrap an existing socket object or file descriptor as a UDP socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must be bound to a local address. - - :param sock_or_fd: a socket object or file descriptor - :return: a UDP socket - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_DGRAM, require_bound=True) - return await get_async_backend().wrap_udp_socket(sock) - - async def sendto(self, data: bytes, host: str, port: int) -> None: - """ - Alias for :meth:`~.UnreliableObjectSendStream.send` ((data, (host, port))). - - """ - return await self.send((data, (host, port))) - - -class ConnectedUDPSocket(UnreliableObjectStream[bytes], _SocketProvider): - """ - Represents an connected UDP socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket(cls, sock_or_fd: socket.socket | int) -> ConnectedUDPSocket: - """ - Wrap an existing socket object or file descriptor as a connected UDP socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a connected UDP socket - - """ - sock = _validate_socket( - sock_or_fd, - socket.SOCK_DGRAM, - require_connected=True, - ) - return await get_async_backend().wrap_connected_udp_socket(sock) - - -class UNIXDatagramSocket( - UnreliableObjectStream[UNIXDatagramPacketType], _SocketProvider -): - """ - Represents an unconnected Unix datagram socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket( - cls, - sock_or_fd: socket.socket | int, - ) -> UNIXDatagramSocket: - """ - Wrap an existing socket object or file descriptor as a UNIX datagram - socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - - :param sock_or_fd: a socket object or file descriptor - :return: a UNIX datagram socket - - """ - sock = _validate_socket(sock_or_fd, socket.SOCK_DGRAM, socket.AF_UNIX) - return await get_async_backend().wrap_unix_datagram_socket(sock) - - async def sendto(self, data: bytes, path: str) -> None: - """Alias for :meth:`~.UnreliableObjectSendStream.send` ((data, path)).""" - return await self.send((data, path)) - - -class ConnectedUNIXDatagramSocket(UnreliableObjectStream[bytes], _SocketProvider): - """ - Represents a connected Unix datagram socket. - - Supports all relevant extra attributes from :class:`~SocketAttribute`. - """ - - @classmethod - async def from_socket( - cls, - sock_or_fd: socket.socket | int, - ) -> ConnectedUNIXDatagramSocket: - """ - Wrap an existing socket object or file descriptor as a connected UNIX datagram - socket. - - The newly created socket wrapper takes ownership of the socket being passed in. - The existing socket must already be connected. - - :param sock_or_fd: a socket object or file descriptor - :return: a connected UNIX datagram socket - - """ - sock = _validate_socket( - sock_or_fd, socket.SOCK_DGRAM, socket.AF_UNIX, require_connected=True - ) - return await get_async_backend().wrap_connected_unix_datagram_socket(sock) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/_streams.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/_streams.py deleted file mode 100644 index 369df3f..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/_streams.py +++ /dev/null @@ -1,239 +0,0 @@ -from __future__ import annotations - -import sys -from abc import ABCMeta, abstractmethod -from collections.abc import Callable -from typing import Any, Generic, TypeVar, Union - -from .._core._exceptions import EndOfStream -from .._core._typedattr import TypedAttributeProvider -from ._resources import AsyncResource -from ._tasks import TaskGroup - -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - -T_Item = TypeVar("T_Item") -T_co = TypeVar("T_co", covariant=True) -T_contra = TypeVar("T_contra", contravariant=True) - - -class UnreliableObjectReceiveStream( - Generic[T_co], AsyncResource, TypedAttributeProvider -): - """ - An interface for receiving objects. - - This interface makes no guarantees that the received messages arrive in the order in - which they were sent, or that no messages are missed. - - Asynchronously iterating over objects of this type will yield objects matching the - given type parameter. - """ - - def __aiter__(self) -> UnreliableObjectReceiveStream[T_co]: - return self - - async def __anext__(self) -> T_co: - try: - return await self.receive() - except EndOfStream: - raise StopAsyncIteration from None - - @abstractmethod - async def receive(self) -> T_co: - """ - Receive the next item. - - :raises ~anyio.ClosedResourceError: if the receive stream has been explicitly - closed - :raises ~anyio.EndOfStream: if this stream has been closed from the other end - :raises ~anyio.BrokenResourceError: if this stream has been rendered unusable - due to external causes - """ - - -class UnreliableObjectSendStream( - Generic[T_contra], AsyncResource, TypedAttributeProvider -): - """ - An interface for sending objects. - - This interface makes no guarantees that the messages sent will reach the - recipient(s) in the same order in which they were sent, or at all. - """ - - @abstractmethod - async def send(self, item: T_contra) -> None: - """ - Send an item to the peer(s). - - :param item: the item to send - :raises ~anyio.ClosedResourceError: if the send stream has been explicitly - closed - :raises ~anyio.BrokenResourceError: if this stream has been rendered unusable - due to external causes - """ - - -class UnreliableObjectStream( - UnreliableObjectReceiveStream[T_Item], UnreliableObjectSendStream[T_Item] -): - """ - A bidirectional message stream which does not guarantee the order or reliability of - message delivery. - """ - - -class ObjectReceiveStream(UnreliableObjectReceiveStream[T_co]): - """ - A receive message stream which guarantees that messages are received in the same - order in which they were sent, and that no messages are missed. - """ - - -class ObjectSendStream(UnreliableObjectSendStream[T_contra]): - """ - A send message stream which guarantees that messages are delivered in the same order - in which they were sent, without missing any messages in the middle. - """ - - -class ObjectStream( - ObjectReceiveStream[T_Item], - ObjectSendStream[T_Item], - UnreliableObjectStream[T_Item], -): - """ - A bidirectional message stream which guarantees the order and reliability of message - delivery. - """ - - @abstractmethod - async def send_eof(self) -> None: - """ - Send an end-of-file indication to the peer. - - You should not try to send any further data to this stream after calling this - method. This method is idempotent (does nothing on successive calls). - """ - - -class ByteReceiveStream(AsyncResource, TypedAttributeProvider): - """ - An interface for receiving bytes from a single peer. - - Iterating this byte stream will yield a byte string of arbitrary length, but no more - than 65536 bytes. - """ - - def __aiter__(self) -> ByteReceiveStream: - return self - - async def __anext__(self) -> bytes: - try: - return await self.receive() - except EndOfStream: - raise StopAsyncIteration from None - - @abstractmethod - async def receive(self, max_bytes: int = 65536) -> bytes: - """ - Receive at most ``max_bytes`` bytes from the peer. - - .. note:: Implementers of this interface should not return an empty - :class:`bytes` object, and users should ignore them. - - :param max_bytes: maximum number of bytes to receive - :return: the received bytes - :raises ~anyio.EndOfStream: if this stream has been closed from the other end - """ - - -class ByteSendStream(AsyncResource, TypedAttributeProvider): - """An interface for sending bytes to a single peer.""" - - @abstractmethod - async def send(self, item: bytes) -> None: - """ - Send the given bytes to the peer. - - :param item: the bytes to send - """ - - -class ByteStream(ByteReceiveStream, ByteSendStream): - """A bidirectional byte stream.""" - - @abstractmethod - async def send_eof(self) -> None: - """ - Send an end-of-file indication to the peer. - - You should not try to send any further data to this stream after calling this - method. This method is idempotent (does nothing on successive calls). - """ - - -#: Type alias for all unreliable bytes-oriented receive streams. -AnyUnreliableByteReceiveStream: TypeAlias = Union[ - UnreliableObjectReceiveStream[bytes], ByteReceiveStream -] -#: Type alias for all unreliable bytes-oriented send streams. -AnyUnreliableByteSendStream: TypeAlias = Union[ - UnreliableObjectSendStream[bytes], ByteSendStream -] -#: Type alias for all unreliable bytes-oriented streams. -AnyUnreliableByteStream: TypeAlias = Union[UnreliableObjectStream[bytes], ByteStream] -#: Type alias for all bytes-oriented receive streams. -AnyByteReceiveStream: TypeAlias = Union[ObjectReceiveStream[bytes], ByteReceiveStream] -#: Type alias for all bytes-oriented send streams. -AnyByteSendStream: TypeAlias = Union[ObjectSendStream[bytes], ByteSendStream] -#: Type alias for all bytes-oriented streams. -AnyByteStream: TypeAlias = Union[ObjectStream[bytes], ByteStream] - - -class Listener(Generic[T_co], AsyncResource, TypedAttributeProvider): - """An interface for objects that let you accept incoming connections.""" - - @abstractmethod - async def serve( - self, handler: Callable[[T_co], Any], task_group: TaskGroup | None = None - ) -> None: - """ - Accept incoming connections as they come in and start tasks to handle them. - - :param handler: a callable that will be used to handle each accepted connection - :param task_group: the task group that will be used to start tasks for handling - each accepted connection (if omitted, an ad-hoc task group will be created) - """ - - -class ObjectStreamConnectable(Generic[T_co], metaclass=ABCMeta): - @abstractmethod - async def connect(self) -> ObjectStream[T_co]: - """ - Connect to the remote endpoint. - - :return: an object stream connected to the remote end - :raises ConnectionFailed: if the connection fails - """ - - -class ByteStreamConnectable(metaclass=ABCMeta): - @abstractmethod - async def connect(self) -> ByteStream: - """ - Connect to the remote endpoint. - - :return: a bytestream connected to the remote end - :raises ConnectionFailed: if the connection fails - """ - - -#: Type alias for all connectables returning bytestreams or bytes-oriented object streams -AnyByteStreamConnectable: TypeAlias = Union[ - ObjectStreamConnectable[bytes], ByteStreamConnectable -] diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py deleted file mode 100644 index ce0564c..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from abc import abstractmethod -from signal import Signals - -from ._resources import AsyncResource -from ._streams import ByteReceiveStream, ByteSendStream - - -class Process(AsyncResource): - """An asynchronous version of :class:`subprocess.Popen`.""" - - @abstractmethod - async def wait(self) -> int: - """ - Wait until the process exits. - - :return: the exit code of the process - """ - - @abstractmethod - def terminate(self) -> None: - """ - Terminates the process, gracefully if possible. - - On Windows, this calls ``TerminateProcess()``. - On POSIX systems, this sends ``SIGTERM`` to the process. - - .. seealso:: :meth:`subprocess.Popen.terminate` - """ - - @abstractmethod - def kill(self) -> None: - """ - Kills the process. - - On Windows, this calls ``TerminateProcess()``. - On POSIX systems, this sends ``SIGKILL`` to the process. - - .. seealso:: :meth:`subprocess.Popen.kill` - """ - - @abstractmethod - def send_signal(self, signal: Signals) -> None: - """ - Send a signal to the subprocess. - - .. seealso:: :meth:`subprocess.Popen.send_signal` - - :param signal: the signal number (e.g. :data:`signal.SIGHUP`) - """ - - @property - @abstractmethod - def pid(self) -> int: - """The process ID of the process.""" - - @property - @abstractmethod - def returncode(self) -> int | None: - """ - The return code of the process. If the process has not yet terminated, this will - be ``None``. - """ - - @property - @abstractmethod - def stdin(self) -> ByteSendStream | None: - """The stream for the standard input of the process.""" - - @property - @abstractmethod - def stdout(self) -> ByteReceiveStream | None: - """The stream for the standard output of the process.""" - - @property - @abstractmethod - def stderr(self) -> ByteReceiveStream | None: - """The stream for the standard error output of the process.""" diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/_tasks.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/_tasks.py deleted file mode 100644 index 516b3ec..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/_tasks.py +++ /dev/null @@ -1,117 +0,0 @@ -from __future__ import annotations - -import sys -from abc import ABCMeta, abstractmethod -from collections.abc import Awaitable, Callable -from types import TracebackType -from typing import TYPE_CHECKING, Any, Protocol, overload - -if sys.version_info >= (3, 13): - from typing import TypeVar -else: - from typing_extensions import TypeVar - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if TYPE_CHECKING: - from .._core._tasks import CancelScope - -T_Retval = TypeVar("T_Retval") -T_contra = TypeVar("T_contra", contravariant=True, default=None) -PosArgsT = TypeVarTuple("PosArgsT") - - -class TaskStatus(Protocol[T_contra]): - @overload - def started(self: TaskStatus[None]) -> None: ... - - @overload - def started(self, value: T_contra) -> None: ... - - def started(self, value: T_contra | None = None) -> None: - """ - Signal that the task has started. - - :param value: object passed back to the starter of the task - """ - - -class TaskGroup(metaclass=ABCMeta): - """ - Groups several asynchronous tasks together. - - :ivar cancel_scope: the cancel scope inherited by all child tasks - :vartype cancel_scope: CancelScope - - .. note:: On asyncio, support for eager task factories is considered to be - **experimental**. In particular, they don't follow the usual semantics of new - tasks being scheduled on the next iteration of the event loop, and may thus - cause unexpected behavior in code that wasn't written with such semantics in - mind. - """ - - cancel_scope: CancelScope - - @abstractmethod - def start_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[Any]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> None: - """ - Start a new task in this task group. - - :param func: a coroutine function - :param args: positional arguments to call the function with - :param name: name of the task, for the purposes of introspection and debugging - - .. versionadded:: 3.0 - """ - - @abstractmethod - async def start( - self, - func: Callable[..., Awaitable[Any]], - *args: object, - name: object = None, - ) -> Any: - """ - Start a new task and wait until it signals for readiness. - - The target callable must accept a keyword argument ``task_status`` (of type - :class:`TaskStatus`). Awaiting on this method will return whatever was passed to - ``task_status.started()`` (``None`` by default). - - .. note:: The :class:`TaskStatus` class is generic, and the type argument should - indicate the type of the value that will be passed to - ``task_status.started()``. - - :param func: a coroutine function that accepts the ``task_status`` keyword - argument - :param args: positional arguments to call the function with - :param name: an optional name for the task, for introspection and debugging - :return: the value passed to ``task_status.started()`` - :raises RuntimeError: if the task finishes without calling - ``task_status.started()`` - - .. seealso:: :ref:`start_initialize` - - .. versionadded:: 3.0 - """ - - @abstractmethod - async def __aenter__(self) -> TaskGroup: - """Enter the task group context and allow starting new tasks.""" - - @abstractmethod - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - """Exit the task group context waiting for all tasks to finish.""" diff --git a/backend/venv/lib/python3.12/site-packages/anyio/abc/_testing.py b/backend/venv/lib/python3.12/site-packages/anyio/abc/_testing.py deleted file mode 100644 index 7c50ed7..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/abc/_testing.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import annotations - -import types -from abc import ABCMeta, abstractmethod -from collections.abc import AsyncGenerator, Callable, Coroutine, Iterable -from typing import Any, TypeVar - -_T = TypeVar("_T") - - -class TestRunner(metaclass=ABCMeta): - """ - Encapsulates a running event loop. Every call made through this object will use the - same event loop. - """ - - def __enter__(self) -> TestRunner: - return self - - @abstractmethod - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: types.TracebackType | None, - ) -> bool | None: ... - - @abstractmethod - def run_asyncgen_fixture( - self, - fixture_func: Callable[..., AsyncGenerator[_T, Any]], - kwargs: dict[str, Any], - ) -> Iterable[_T]: - """ - Run an async generator fixture. - - :param fixture_func: the fixture function - :param kwargs: keyword arguments to call the fixture function with - :return: an iterator yielding the value yielded from the async generator - """ - - @abstractmethod - def run_fixture( - self, - fixture_func: Callable[..., Coroutine[Any, Any, _T]], - kwargs: dict[str, Any], - ) -> _T: - """ - Run an async fixture. - - :param fixture_func: the fixture function - :param kwargs: keyword arguments to call the fixture function with - :return: the return value of the fixture function - """ - - @abstractmethod - def run_test( - self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] - ) -> None: - """ - Run an async test function. - - :param test_func: the test function - :param kwargs: keyword arguments to call the test function with - """ diff --git a/backend/venv/lib/python3.12/site-packages/anyio/from_thread.py b/backend/venv/lib/python3.12/site-packages/anyio/from_thread.py deleted file mode 100644 index 837de5e..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/from_thread.py +++ /dev/null @@ -1,578 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "BlockingPortal", - "BlockingPortalProvider", - "check_cancelled", - "run", - "run_sync", - "start_blocking_portal", -) - -import sys -from collections.abc import Awaitable, Callable, Generator -from concurrent.futures import Future -from contextlib import ( - AbstractAsyncContextManager, - AbstractContextManager, - contextmanager, -) -from dataclasses import dataclass, field -from functools import partial -from inspect import isawaitable -from threading import Lock, Thread, current_thread, get_ident -from types import TracebackType -from typing import ( - Any, - Generic, - TypeVar, - cast, - overload, -) - -from ._core._eventloop import ( - get_cancelled_exc_class, - threadlocals, -) -from ._core._eventloop import run as run_eventloop -from ._core._exceptions import NoEventLoopError -from ._core._synchronization import Event -from ._core._tasks import CancelScope, create_task_group -from .abc._tasks import TaskStatus -from .lowlevel import EventLoopToken, current_token - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -T_Retval = TypeVar("T_Retval") -T_co = TypeVar("T_co", covariant=True) -PosArgsT = TypeVarTuple("PosArgsT") - - -def _token_or_error(token: EventLoopToken | None) -> EventLoopToken: - if token is not None: - return token - - try: - return threadlocals.current_token - except AttributeError: - raise NoEventLoopError( - "Not running inside an AnyIO worker thread, and no event loop token was " - "provided" - ) from None - - -def run( - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - token: EventLoopToken | None = None, -) -> T_Retval: - """ - Call a coroutine function from a worker thread. - - :param func: a coroutine function - :param args: positional arguments for the callable - :param token: an event loop token to use to get back to the event loop thread - (required if calling this function from outside an AnyIO worker thread) - :return: the return value of the coroutine function - :raises MissingTokenError: if no token was provided and called from outside an - AnyIO worker thread - :raises RunFinishedError: if the event loop tied to ``token`` is no longer running - - .. versionchanged:: 4.11.0 - Added the ``token`` parameter. - - """ - explicit_token = token is not None - token = _token_or_error(token) - return token.backend_class.run_async_from_thread( - func, args, token=token.native_token if explicit_token else None - ) - - -def run_sync( - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - token: EventLoopToken | None = None, -) -> T_Retval: - """ - Call a function in the event loop thread from a worker thread. - - :param func: a callable - :param args: positional arguments for the callable - :param token: an event loop token to use to get back to the event loop thread - (required if calling this function from outside an AnyIO worker thread) - :return: the return value of the callable - :raises MissingTokenError: if no token was provided and called from outside an - AnyIO worker thread - :raises RunFinishedError: if the event loop tied to ``token`` is no longer running - - .. versionchanged:: 4.11.0 - Added the ``token`` parameter. - - """ - explicit_token = token is not None - token = _token_or_error(token) - return token.backend_class.run_sync_from_thread( - func, args, token=token.native_token if explicit_token else None - ) - - -class _BlockingAsyncContextManager(Generic[T_co], AbstractContextManager): - _enter_future: Future[T_co] - _exit_future: Future[bool | None] - _exit_event: Event - _exit_exc_info: tuple[ - type[BaseException] | None, BaseException | None, TracebackType | None - ] = (None, None, None) - - def __init__( - self, async_cm: AbstractAsyncContextManager[T_co], portal: BlockingPortal - ): - self._async_cm = async_cm - self._portal = portal - - async def run_async_cm(self) -> bool | None: - try: - self._exit_event = Event() - value = await self._async_cm.__aenter__() - except BaseException as exc: - self._enter_future.set_exception(exc) - raise - else: - self._enter_future.set_result(value) - - try: - # Wait for the sync context manager to exit. - # This next statement can raise `get_cancelled_exc_class()` if - # something went wrong in a task group in this async context - # manager. - await self._exit_event.wait() - finally: - # In case of cancellation, it could be that we end up here before - # `_BlockingAsyncContextManager.__exit__` is called, and an - # `_exit_exc_info` has been set. - result = await self._async_cm.__aexit__(*self._exit_exc_info) - - return result - - def __enter__(self) -> T_co: - self._enter_future = Future() - self._exit_future = self._portal.start_task_soon(self.run_async_cm) - return self._enter_future.result() - - def __exit__( - self, - __exc_type: type[BaseException] | None, - __exc_value: BaseException | None, - __traceback: TracebackType | None, - ) -> bool | None: - self._exit_exc_info = __exc_type, __exc_value, __traceback - self._portal.call(self._exit_event.set) - return self._exit_future.result() - - -class _BlockingPortalTaskStatus(TaskStatus): - def __init__(self, future: Future): - self._future = future - - def started(self, value: object = None) -> None: - self._future.set_result(value) - - -class BlockingPortal: - """ - An object that lets external threads run code in an asynchronous event loop. - - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - """ - - def __init__(self) -> None: - self._token = current_token() - self._event_loop_thread_id: int | None = get_ident() - self._stop_event = Event() - self._task_group = create_task_group() - - async def __aenter__(self) -> BlockingPortal: - await self._task_group.__aenter__() - return self - - async def __aexit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> bool: - await self.stop() - return await self._task_group.__aexit__(exc_type, exc_val, exc_tb) - - def _check_running(self) -> None: - if self._event_loop_thread_id is None: - raise RuntimeError("This portal is not running") - if self._event_loop_thread_id == get_ident(): - raise RuntimeError( - "This method cannot be called from the event loop thread" - ) - - async def sleep_until_stopped(self) -> None: - """Sleep until :meth:`stop` is called.""" - await self._stop_event.wait() - - async def stop(self, cancel_remaining: bool = False) -> None: - """ - Signal the portal to shut down. - - This marks the portal as no longer accepting new calls and exits from - :meth:`sleep_until_stopped`. - - :param cancel_remaining: ``True`` to cancel all the remaining tasks, ``False`` - to let them finish before returning - - """ - self._event_loop_thread_id = None - self._stop_event.set() - if cancel_remaining: - self._task_group.cancel_scope.cancel("the blocking portal is shutting down") - - async def _call_func( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - future: Future[T_Retval], - ) -> None: - def callback(f: Future[T_Retval]) -> None: - if f.cancelled(): - if self._event_loop_thread_id == get_ident(): - scope.cancel("the future was cancelled") - elif self._event_loop_thread_id is not None: - self.call(scope.cancel, "the future was cancelled") - - try: - retval_or_awaitable = func(*args, **kwargs) - if isawaitable(retval_or_awaitable): - with CancelScope() as scope: - future.add_done_callback(callback) - retval = await retval_or_awaitable - else: - retval = retval_or_awaitable - except get_cancelled_exc_class(): - future.cancel() - future.set_running_or_notify_cancel() - except BaseException as exc: - if not future.cancelled(): - future.set_exception(exc) - - # Let base exceptions fall through - if not isinstance(exc, Exception): - raise - else: - if not future.cancelled(): - future.set_result(retval) - finally: - scope = None # type: ignore[assignment] - - def _spawn_task_from_thread( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - args: tuple[Unpack[PosArgsT]], - kwargs: dict[str, Any], - name: object, - future: Future[T_Retval], - ) -> None: - """ - Spawn a new task using the given callable. - - :param func: a callable - :param args: positional arguments to be passed to the callable - :param kwargs: keyword arguments to be passed to the callable - :param name: name of the task (will be coerced to a string if not ``None``) - :param future: a future that will resolve to the return value of the callable, - or the exception raised during its execution - - """ - run_sync( - partial(self._task_group.start_soon, name=name), - self._call_func, - func, - args, - kwargs, - future, - token=self._token, - ) - - @overload - def call( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - ) -> T_Retval: ... - - @overload - def call( - self, func: Callable[[Unpack[PosArgsT]], T_Retval], *args: Unpack[PosArgsT] - ) -> T_Retval: ... - - def call( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - *args: Unpack[PosArgsT], - ) -> T_Retval: - """ - Call the given function in the event loop thread. - - If the callable returns a coroutine object, it is awaited on. - - :param func: any callable - :raises RuntimeError: if the portal is not running or if this method is called - from within the event loop thread - - """ - return cast(T_Retval, self.start_task_soon(func, *args).result()) - - @overload - def start_task_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]], - *args: Unpack[PosArgsT], - name: object = None, - ) -> Future[T_Retval]: ... - - @overload - def start_task_soon( - self, - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - name: object = None, - ) -> Future[T_Retval]: ... - - def start_task_soon( - self, - func: Callable[[Unpack[PosArgsT]], Awaitable[T_Retval] | T_Retval], - *args: Unpack[PosArgsT], - name: object = None, - ) -> Future[T_Retval]: - """ - Start a task in the portal's task group. - - The task will be run inside a cancel scope which can be cancelled by cancelling - the returned future. - - :param func: the target function - :param args: positional arguments passed to ``func`` - :param name: name of the task (will be coerced to a string if not ``None``) - :return: a future that resolves with the return value of the callable if the - task completes successfully, or with the exception raised in the task - :raises RuntimeError: if the portal is not running or if this method is called - from within the event loop thread - :rtype: concurrent.futures.Future[T_Retval] - - .. versionadded:: 3.0 - - """ - self._check_running() - f: Future[T_Retval] = Future() - self._spawn_task_from_thread(func, args, {}, name, f) - return f - - def start_task( - self, - func: Callable[..., Awaitable[T_Retval]], - *args: object, - name: object = None, - ) -> tuple[Future[T_Retval], Any]: - """ - Start a task in the portal's task group and wait until it signals for readiness. - - This method works the same way as :meth:`.abc.TaskGroup.start`. - - :param func: the target function - :param args: positional arguments passed to ``func`` - :param name: name of the task (will be coerced to a string if not ``None``) - :return: a tuple of (future, task_status_value) where the ``task_status_value`` - is the value passed to ``task_status.started()`` from within the target - function - :rtype: tuple[concurrent.futures.Future[T_Retval], Any] - - .. versionadded:: 3.0 - - """ - - def task_done(future: Future[T_Retval]) -> None: - if not task_status_future.done(): - if future.cancelled(): - task_status_future.cancel() - elif future.exception(): - task_status_future.set_exception(future.exception()) - else: - exc = RuntimeError( - "Task exited without calling task_status.started()" - ) - task_status_future.set_exception(exc) - - self._check_running() - task_status_future: Future = Future() - task_status = _BlockingPortalTaskStatus(task_status_future) - f: Future = Future() - f.add_done_callback(task_done) - self._spawn_task_from_thread(func, args, {"task_status": task_status}, name, f) - return f, task_status_future.result() - - def wrap_async_context_manager( - self, cm: AbstractAsyncContextManager[T_co] - ) -> AbstractContextManager[T_co]: - """ - Wrap an async context manager as a synchronous context manager via this portal. - - Spawns a task that will call both ``__aenter__()`` and ``__aexit__()``, stopping - in the middle until the synchronous context manager exits. - - :param cm: an asynchronous context manager - :return: a synchronous context manager - - .. versionadded:: 2.1 - - """ - return _BlockingAsyncContextManager(cm, self) - - -@dataclass -class BlockingPortalProvider: - """ - A manager for a blocking portal. Used as a context manager. The first thread to - enter this context manager causes a blocking portal to be started with the specific - parameters, and the last thread to exit causes the portal to be shut down. Thus, - there will be exactly one blocking portal running in this context as long as at - least one thread has entered this context manager. - - The parameters are the same as for :func:`~anyio.run`. - - :param backend: name of the backend - :param backend_options: backend options - - .. versionadded:: 4.4 - """ - - backend: str = "asyncio" - backend_options: dict[str, Any] | None = None - _lock: Lock = field(init=False, default_factory=Lock) - _leases: int = field(init=False, default=0) - _portal: BlockingPortal = field(init=False) - _portal_cm: AbstractContextManager[BlockingPortal] | None = field( - init=False, default=None - ) - - def __enter__(self) -> BlockingPortal: - with self._lock: - if self._portal_cm is None: - self._portal_cm = start_blocking_portal( - self.backend, self.backend_options - ) - self._portal = self._portal_cm.__enter__() - - self._leases += 1 - return self._portal - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - portal_cm: AbstractContextManager[BlockingPortal] | None = None - with self._lock: - assert self._portal_cm - assert self._leases > 0 - self._leases -= 1 - if not self._leases: - portal_cm = self._portal_cm - self._portal_cm = None - del self._portal - - if portal_cm: - portal_cm.__exit__(None, None, None) - - -@contextmanager -def start_blocking_portal( - backend: str = "asyncio", - backend_options: dict[str, Any] | None = None, - *, - name: str | None = None, -) -> Generator[BlockingPortal, Any, None]: - """ - Start a new event loop in a new thread and run a blocking portal in its main task. - - The parameters are the same as for :func:`~anyio.run`. - - :param backend: name of the backend - :param backend_options: backend options - :param name: name of the thread - :return: a context manager that yields a blocking portal - - .. versionchanged:: 3.0 - Usage as a context manager is now required. - - """ - - async def run_portal() -> None: - async with BlockingPortal() as portal_: - if name is None: - current_thread().name = f"{backend}-portal-{id(portal_):x}" - - future.set_result(portal_) - await portal_.sleep_until_stopped() - - def run_blocking_portal() -> None: - if future.set_running_or_notify_cancel(): - try: - run_eventloop( - run_portal, backend=backend, backend_options=backend_options - ) - except BaseException as exc: - if not future.done(): - future.set_exception(exc) - - future: Future[BlockingPortal] = Future() - thread = Thread(target=run_blocking_portal, daemon=True, name=name) - thread.start() - try: - cancel_remaining_tasks = False - portal = future.result() - try: - yield portal - except BaseException: - cancel_remaining_tasks = True - raise - finally: - try: - portal.call(portal.stop, cancel_remaining_tasks) - except RuntimeError: - pass - finally: - thread.join() - - -def check_cancelled() -> None: - """ - Check if the cancel scope of the host task's running the current worker thread has - been cancelled. - - If the host task's current cancel scope has indeed been cancelled, the - backend-specific cancellation exception will be raised. - - :raises RuntimeError: if the current thread was not spawned by - :func:`.to_thread.run_sync` - - """ - try: - token: EventLoopToken = threadlocals.current_token - except AttributeError: - raise NoEventLoopError( - "This function can only be called inside an AnyIO worker thread" - ) from None - - token.backend_class.check_cancelled() diff --git a/backend/venv/lib/python3.12/site-packages/anyio/functools.py b/backend/venv/lib/python3.12/site-packages/anyio/functools.py deleted file mode 100644 index b80afe6..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/functools.py +++ /dev/null @@ -1,375 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "AsyncCacheInfo", - "AsyncCacheParameters", - "AsyncLRUCacheWrapper", - "cache", - "lru_cache", - "reduce", -) - -import functools -import sys -from collections import OrderedDict -from collections.abc import ( - AsyncIterable, - Awaitable, - Callable, - Coroutine, - Hashable, - Iterable, -) -from functools import update_wrapper -from inspect import iscoroutinefunction -from typing import ( - Any, - Generic, - NamedTuple, - TypedDict, - TypeVar, - cast, - final, - overload, -) -from weakref import WeakKeyDictionary - -from ._core._synchronization import Lock -from .lowlevel import RunVar, checkpoint - -if sys.version_info >= (3, 11): - from typing import ParamSpec -else: - from typing_extensions import ParamSpec - -T = TypeVar("T") -S = TypeVar("S") -P = ParamSpec("P") -lru_cache_items: RunVar[ - WeakKeyDictionary[ - AsyncLRUCacheWrapper[Any, Any], - OrderedDict[Hashable, tuple[_InitialMissingType, Lock] | tuple[Any, None]], - ] -] = RunVar("lru_cache_items") - - -class _InitialMissingType: - pass - - -initial_missing: _InitialMissingType = _InitialMissingType() - - -class AsyncCacheInfo(NamedTuple): - hits: int - misses: int - maxsize: int | None - currsize: int - - -class AsyncCacheParameters(TypedDict): - maxsize: int | None - typed: bool - always_checkpoint: bool - - -class _LRUMethodWrapper(Generic[T]): - def __init__(self, wrapper: AsyncLRUCacheWrapper[..., T], instance: object): - self.__wrapper = wrapper - self.__instance = instance - - def cache_info(self) -> AsyncCacheInfo: - return self.__wrapper.cache_info() - - def cache_parameters(self) -> AsyncCacheParameters: - return self.__wrapper.cache_parameters() - - def cache_clear(self) -> None: - self.__wrapper.cache_clear() - - async def __call__(self, *args: Any, **kwargs: Any) -> T: - if self.__instance is None: - return await self.__wrapper(*args, **kwargs) - - return await self.__wrapper(self.__instance, *args, **kwargs) - - -@final -class AsyncLRUCacheWrapper(Generic[P, T]): - def __init__( - self, - func: Callable[P, Awaitable[T]], - maxsize: int | None, - typed: bool, - always_checkpoint: bool, - ): - self.__wrapped__ = func - self._hits: int = 0 - self._misses: int = 0 - self._maxsize = max(maxsize, 0) if maxsize is not None else None - self._currsize: int = 0 - self._typed = typed - self._always_checkpoint = always_checkpoint - update_wrapper(self, func) - - def cache_info(self) -> AsyncCacheInfo: - return AsyncCacheInfo(self._hits, self._misses, self._maxsize, self._currsize) - - def cache_parameters(self) -> AsyncCacheParameters: - return { - "maxsize": self._maxsize, - "typed": self._typed, - "always_checkpoint": self._always_checkpoint, - } - - def cache_clear(self) -> None: - if cache := lru_cache_items.get(None): - cache.pop(self, None) - self._hits = self._misses = self._currsize = 0 - - async def __call__(self, *args: P.args, **kwargs: P.kwargs) -> T: - # Easy case first: if maxsize == 0, no caching is done - if self._maxsize == 0: - value = await self.__wrapped__(*args, **kwargs) - self._misses += 1 - return value - - # The key is constructed as a flat tuple to avoid memory overhead - key: tuple[Any, ...] = args - if kwargs: - # initial_missing is used as a separator - key += (initial_missing,) + sum(kwargs.items(), ()) - - if self._typed: - key += tuple(type(arg) for arg in args) - if kwargs: - key += (initial_missing,) + tuple(type(val) for val in kwargs.values()) - - try: - cache = lru_cache_items.get() - except LookupError: - cache = WeakKeyDictionary() - lru_cache_items.set(cache) - - try: - cache_entry = cache[self] - except KeyError: - cache_entry = cache[self] = OrderedDict() - - cached_value: T | _InitialMissingType - try: - cached_value, lock = cache_entry[key] - except KeyError: - # We're the first task to call this function - cached_value, lock = ( - initial_missing, - Lock(fast_acquire=not self._always_checkpoint), - ) - cache_entry[key] = cached_value, lock - - if lock is None: - # The value was already cached - self._hits += 1 - cache_entry.move_to_end(key) - if self._always_checkpoint: - await checkpoint() - - return cast(T, cached_value) - - async with lock: - # Check if another task filled the cache while we acquired the lock - if (cached_value := cache_entry[key][0]) is initial_missing: - self._misses += 1 - if self._maxsize is not None and self._currsize >= self._maxsize: - cache_entry.popitem(last=False) - else: - self._currsize += 1 - - value = await self.__wrapped__(*args, **kwargs) - cache_entry[key] = value, None - else: - # Another task filled the cache while we were waiting for the lock - self._hits += 1 - cache_entry.move_to_end(key) - value = cast(T, cached_value) - - return value - - def __get__( - self, instance: object, owner: type | None = None - ) -> _LRUMethodWrapper[T]: - wrapper = _LRUMethodWrapper(self, instance) - update_wrapper(wrapper, self.__wrapped__) - return wrapper - - -class _LRUCacheWrapper(Generic[T]): - def __init__(self, maxsize: int | None, typed: bool, always_checkpoint: bool): - self._maxsize = maxsize - self._typed = typed - self._always_checkpoint = always_checkpoint - - @overload - def __call__( # type: ignore[overload-overlap] - self, func: Callable[P, Coroutine[Any, Any, T]], / - ) -> AsyncLRUCacheWrapper[P, T]: ... - - @overload - def __call__( - self, func: Callable[..., T], / - ) -> functools._lru_cache_wrapper[T]: ... - - def __call__( - self, f: Callable[P, Coroutine[Any, Any, T]] | Callable[..., T], / - ) -> AsyncLRUCacheWrapper[P, T] | functools._lru_cache_wrapper[T]: - if iscoroutinefunction(f): - return AsyncLRUCacheWrapper( - f, self._maxsize, self._typed, self._always_checkpoint - ) - - return functools.lru_cache(maxsize=self._maxsize, typed=self._typed)(f) # type: ignore[arg-type] - - -@overload -def cache( # type: ignore[overload-overlap] - func: Callable[P, Coroutine[Any, Any, T]], / -) -> AsyncLRUCacheWrapper[P, T]: ... - - -@overload -def cache(func: Callable[..., T], /) -> functools._lru_cache_wrapper[T]: ... - - -def cache( - func: Callable[..., T] | Callable[P, Coroutine[Any, Any, T]], / -) -> AsyncLRUCacheWrapper[P, T] | functools._lru_cache_wrapper[T]: - """ - A convenient shortcut for :func:`lru_cache` with ``maxsize=None``. - - This is the asynchronous equivalent to :func:`functools.cache`. - - """ - return lru_cache(maxsize=None)(func) - - -@overload -def lru_cache( - *, maxsize: int | None = ..., typed: bool = ..., always_checkpoint: bool = ... -) -> _LRUCacheWrapper[Any]: ... - - -@overload -def lru_cache( # type: ignore[overload-overlap] - func: Callable[P, Coroutine[Any, Any, T]], / -) -> AsyncLRUCacheWrapper[P, T]: ... - - -@overload -def lru_cache(func: Callable[..., T], /) -> functools._lru_cache_wrapper[T]: ... - - -def lru_cache( - func: Callable[P, Coroutine[Any, Any, T]] | Callable[..., T] | None = None, - /, - *, - maxsize: int | None = 128, - typed: bool = False, - always_checkpoint: bool = False, -) -> ( - AsyncLRUCacheWrapper[P, T] | functools._lru_cache_wrapper[T] | _LRUCacheWrapper[Any] -): - """ - An asynchronous version of :func:`functools.lru_cache`. - - If a synchronous function is passed, the standard library - :func:`functools.lru_cache` is applied instead. - - :param always_checkpoint: if ``True``, every call to the cached function will be - guaranteed to yield control to the event loop at least once - - .. note:: Caches and locks are managed on a per-event loop basis. - - """ - if func is None: - return _LRUCacheWrapper[Any](maxsize, typed, always_checkpoint) - - if not callable(func): - raise TypeError("the first argument must be callable") - - return _LRUCacheWrapper[T](maxsize, typed, always_checkpoint)(func) - - -@overload -async def reduce( - function: Callable[[T, S], Awaitable[T]], - iterable: Iterable[S] | AsyncIterable[S], - /, - initial: T, -) -> T: ... - - -@overload -async def reduce( - function: Callable[[T, T], Awaitable[T]], - iterable: Iterable[T] | AsyncIterable[T], - /, -) -> T: ... - - -async def reduce( # type: ignore[misc] - function: Callable[[T, T], Awaitable[T]] | Callable[[T, S], Awaitable[T]], - iterable: Iterable[T] | Iterable[S] | AsyncIterable[T] | AsyncIterable[S], - /, - initial: T | _InitialMissingType = initial_missing, -) -> T: - """ - Asynchronous version of :func:`functools.reduce`. - - :param function: a coroutine function that takes two arguments: the accumulated - value and the next element from the iterable - :param iterable: an iterable or async iterable - :param initial: the initial value (if missing, the first element of the iterable is - used as the initial value) - - """ - element: Any - function_called = False - if isinstance(iterable, AsyncIterable): - async_it = iterable.__aiter__() - if initial is initial_missing: - try: - value = cast(T, await async_it.__anext__()) - except StopAsyncIteration: - raise TypeError( - "reduce() of empty sequence with no initial value" - ) from None - else: - value = cast(T, initial) - - async for element in async_it: - value = await function(value, element) - function_called = True - elif isinstance(iterable, Iterable): - it = iter(iterable) - if initial is initial_missing: - try: - value = cast(T, next(it)) - except StopIteration: - raise TypeError( - "reduce() of empty sequence with no initial value" - ) from None - else: - value = cast(T, initial) - - for element in it: - value = await function(value, element) - function_called = True - else: - raise TypeError("reduce() argument 2 must be an iterable or async iterable") - - # Make sure there is at least one checkpoint, even if an empty iterable and an - # initial value were given - if not function_called: - await checkpoint() - - return value diff --git a/backend/venv/lib/python3.12/site-packages/anyio/lowlevel.py b/backend/venv/lib/python3.12/site-packages/anyio/lowlevel.py deleted file mode 100644 index ffbb75a..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/lowlevel.py +++ /dev/null @@ -1,196 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "EventLoopToken", - "RunvarToken", - "RunVar", - "checkpoint", - "checkpoint_if_cancelled", - "cancel_shielded_checkpoint", - "current_token", -) - -import enum -from dataclasses import dataclass -from types import TracebackType -from typing import Any, Generic, Literal, TypeVar, final, overload -from weakref import WeakKeyDictionary - -from ._core._eventloop import get_async_backend -from .abc import AsyncBackend - -T = TypeVar("T") -D = TypeVar("D") - - -async def checkpoint() -> None: - """ - Check for cancellation and allow the scheduler to switch to another task. - - Equivalent to (but more efficient than):: - - await checkpoint_if_cancelled() - await cancel_shielded_checkpoint() - - .. versionadded:: 3.0 - - """ - await get_async_backend().checkpoint() - - -async def checkpoint_if_cancelled() -> None: - """ - Enter a checkpoint if the enclosing cancel scope has been cancelled. - - This does not allow the scheduler to switch to a different task. - - .. versionadded:: 3.0 - - """ - await get_async_backend().checkpoint_if_cancelled() - - -async def cancel_shielded_checkpoint() -> None: - """ - Allow the scheduler to switch to another task but without checking for cancellation. - - Equivalent to (but potentially more efficient than):: - - with CancelScope(shield=True): - await checkpoint() - - .. versionadded:: 3.0 - - """ - await get_async_backend().cancel_shielded_checkpoint() - - -@final -@dataclass(frozen=True, repr=False) -class EventLoopToken: - """ - An opaque object that holds a reference to an event loop. - - .. versionadded:: 4.11.0 - """ - - backend_class: type[AsyncBackend] - native_token: object - - -def current_token() -> EventLoopToken: - """ - Return a token object that can be used to call code in the current event loop from - another thread. - - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - .. versionadded:: 4.11.0 - - """ - backend_class = get_async_backend() - raw_token = backend_class.current_token() - return EventLoopToken(backend_class, raw_token) - - -_run_vars: WeakKeyDictionary[object, dict[RunVar[Any], Any]] = WeakKeyDictionary() - - -class _NoValueSet(enum.Enum): - NO_VALUE_SET = enum.auto() - - -class RunvarToken(Generic[T]): - __slots__ = "_var", "_value", "_redeemed" - - def __init__(self, var: RunVar[T], value: T | Literal[_NoValueSet.NO_VALUE_SET]): - self._var = var - self._value: T | Literal[_NoValueSet.NO_VALUE_SET] = value - self._redeemed = False - - def __enter__(self) -> RunvarToken[T]: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self._var.reset(self) - - -class RunVar(Generic[T]): - """ - Like a :class:`~contextvars.ContextVar`, except scoped to the running event loop. - - Can be used as a context manager, Just like :class:`~contextvars.ContextVar`, that - will reset the variable to its previous value when the context block is exited. - """ - - __slots__ = "_name", "_default" - - NO_VALUE_SET: Literal[_NoValueSet.NO_VALUE_SET] = _NoValueSet.NO_VALUE_SET - - def __init__( - self, name: str, default: T | Literal[_NoValueSet.NO_VALUE_SET] = NO_VALUE_SET - ): - self._name = name - self._default = default - - @property - def _current_vars(self) -> dict[RunVar[T], T]: - native_token = current_token().native_token - try: - return _run_vars[native_token] - except KeyError: - run_vars = _run_vars[native_token] = {} - return run_vars - - @overload - def get(self, default: D) -> T | D: ... - - @overload - def get(self) -> T: ... - - def get( - self, default: D | Literal[_NoValueSet.NO_VALUE_SET] = NO_VALUE_SET - ) -> T | D: - try: - return self._current_vars[self] - except KeyError: - if default is not RunVar.NO_VALUE_SET: - return default - elif self._default is not RunVar.NO_VALUE_SET: - return self._default - - raise LookupError( - f'Run variable "{self._name}" has no value and no default set' - ) - - def set(self, value: T) -> RunvarToken[T]: - current_vars = self._current_vars - token = RunvarToken(self, current_vars.get(self, RunVar.NO_VALUE_SET)) - current_vars[self] = value - return token - - def reset(self, token: RunvarToken[T]) -> None: - if token._var is not self: - raise ValueError("This token does not belong to this RunVar") - - if token._redeemed: - raise ValueError("This token has already been used") - - if token._value is _NoValueSet.NO_VALUE_SET: - try: - del self._current_vars[self] - except KeyError: - pass - else: - self._current_vars[self] = token._value - - token._redeemed = True - - def __repr__(self) -> str: - return f"" diff --git a/backend/venv/lib/python3.12/site-packages/anyio/py.typed b/backend/venv/lib/python3.12/site-packages/anyio/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/anyio/pytest_plugin.py b/backend/venv/lib/python3.12/site-packages/anyio/pytest_plugin.py deleted file mode 100644 index 4222816..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/pytest_plugin.py +++ /dev/null @@ -1,302 +0,0 @@ -from __future__ import annotations - -import socket -import sys -from collections.abc import Callable, Generator, Iterator -from contextlib import ExitStack, contextmanager -from inspect import isasyncgenfunction, iscoroutinefunction, ismethod -from typing import Any, cast - -import pytest -from _pytest.fixtures import SubRequest -from _pytest.outcomes import Exit - -from . import get_available_backends -from ._core._eventloop import ( - current_async_library, - get_async_backend, - reset_current_async_library, - set_current_async_library, -) -from ._core._exceptions import iterate_exceptions -from .abc import TestRunner - -if sys.version_info < (3, 11): - from exceptiongroup import ExceptionGroup - -_current_runner: TestRunner | None = None -_runner_stack: ExitStack | None = None -_runner_leases = 0 - - -def extract_backend_and_options(backend: object) -> tuple[str, dict[str, Any]]: - if isinstance(backend, str): - return backend, {} - elif isinstance(backend, tuple) and len(backend) == 2: - if isinstance(backend[0], str) and isinstance(backend[1], dict): - return cast(tuple[str, dict[str, Any]], backend) - - raise TypeError("anyio_backend must be either a string or tuple of (string, dict)") - - -@contextmanager -def get_runner( - backend_name: str, backend_options: dict[str, Any] -) -> Iterator[TestRunner]: - global _current_runner, _runner_leases, _runner_stack - if _current_runner is None: - asynclib = get_async_backend(backend_name) - _runner_stack = ExitStack() - if current_async_library() is None: - # Since we're in control of the event loop, we can cache the name of the - # async library - token = set_current_async_library(backend_name) - _runner_stack.callback(reset_current_async_library, token) - - backend_options = backend_options or {} - _current_runner = _runner_stack.enter_context( - asynclib.create_test_runner(backend_options) - ) - - _runner_leases += 1 - try: - yield _current_runner - finally: - _runner_leases -= 1 - if not _runner_leases: - assert _runner_stack is not None - _runner_stack.close() - _runner_stack = _current_runner = None - - -def pytest_addoption(parser: pytest.Parser) -> None: - parser.addini( - "anyio_mode", - default="strict", - help='AnyIO plugin mode (either "strict" or "auto")', - ) - - -def pytest_configure(config: pytest.Config) -> None: - config.addinivalue_line( - "markers", - "anyio: mark the (coroutine function) test to be run asynchronously via anyio.", - ) - if ( - config.getini("anyio_mode") == "auto" - and config.pluginmanager.has_plugin("asyncio") - and config.getini("asyncio_mode") == "auto" - ): - config.issue_config_time_warning( - pytest.PytestConfigWarning( - "AnyIO auto mode has been enabled together with pytest-asyncio auto " - "mode. This may cause unexpected behavior." - ), - 1, - ) - - -@pytest.hookimpl(hookwrapper=True) -def pytest_fixture_setup(fixturedef: Any, request: Any) -> Generator[Any]: - def wrapper(anyio_backend: Any, request: SubRequest, **kwargs: Any) -> Any: - # Rebind any fixture methods to the request instance - if ( - request.instance - and ismethod(func) - and type(func.__self__) is type(request.instance) - ): - local_func = func.__func__.__get__(request.instance) - else: - local_func = func - - backend_name, backend_options = extract_backend_and_options(anyio_backend) - if has_backend_arg: - kwargs["anyio_backend"] = anyio_backend - - if has_request_arg: - kwargs["request"] = request - - with get_runner(backend_name, backend_options) as runner: - if isasyncgenfunction(local_func): - yield from runner.run_asyncgen_fixture(local_func, kwargs) - else: - yield runner.run_fixture(local_func, kwargs) - - # Only apply this to coroutine functions and async generator functions in requests - # that involve the anyio_backend fixture - func = fixturedef.func - if isasyncgenfunction(func) or iscoroutinefunction(func): - if "anyio_backend" in request.fixturenames: - fixturedef.func = wrapper - original_argname = fixturedef.argnames - - if not (has_backend_arg := "anyio_backend" in fixturedef.argnames): - fixturedef.argnames += ("anyio_backend",) - - if not (has_request_arg := "request" in fixturedef.argnames): - fixturedef.argnames += ("request",) - - try: - return (yield) - finally: - fixturedef.func = func - fixturedef.argnames = original_argname - - return (yield) - - -@pytest.hookimpl(tryfirst=True) -def pytest_pycollect_makeitem( - collector: pytest.Module | pytest.Class, name: str, obj: object -) -> None: - if collector.istestfunction(obj, name): - inner_func = obj.hypothesis.inner_test if hasattr(obj, "hypothesis") else obj - if iscoroutinefunction(inner_func): - anyio_auto_mode = collector.config.getini("anyio_mode") == "auto" - marker = collector.get_closest_marker("anyio") - own_markers = getattr(obj, "pytestmark", ()) - if ( - anyio_auto_mode - or marker - or any(marker.name == "anyio" for marker in own_markers) - ): - pytest.mark.usefixtures("anyio_backend")(obj) - - -@pytest.hookimpl(tryfirst=True) -def pytest_pyfunc_call(pyfuncitem: Any) -> bool | None: - def run_with_hypothesis(**kwargs: Any) -> None: - with get_runner(backend_name, backend_options) as runner: - runner.run_test(original_func, kwargs) - - backend = pyfuncitem.funcargs.get("anyio_backend") - if backend: - backend_name, backend_options = extract_backend_and_options(backend) - - if hasattr(pyfuncitem.obj, "hypothesis"): - # Wrap the inner test function unless it's already wrapped - original_func = pyfuncitem.obj.hypothesis.inner_test - if original_func.__qualname__ != run_with_hypothesis.__qualname__: - if iscoroutinefunction(original_func): - pyfuncitem.obj.hypothesis.inner_test = run_with_hypothesis - - return None - - if iscoroutinefunction(pyfuncitem.obj): - funcargs = pyfuncitem.funcargs - testargs = {arg: funcargs[arg] for arg in pyfuncitem._fixtureinfo.argnames} - with get_runner(backend_name, backend_options) as runner: - try: - runner.run_test(pyfuncitem.obj, testargs) - except ExceptionGroup as excgrp: - for exc in iterate_exceptions(excgrp): - if isinstance(exc, (Exit, KeyboardInterrupt, SystemExit)): - raise exc from excgrp - - raise - - return True - - return None - - -@pytest.fixture(scope="module", params=get_available_backends()) -def anyio_backend(request: Any) -> Any: - return request.param - - -@pytest.fixture -def anyio_backend_name(anyio_backend: Any) -> str: - if isinstance(anyio_backend, str): - return anyio_backend - else: - return anyio_backend[0] - - -@pytest.fixture -def anyio_backend_options(anyio_backend: Any) -> dict[str, Any]: - if isinstance(anyio_backend, str): - return {} - else: - return anyio_backend[1] - - -class FreePortFactory: - """ - Manages port generation based on specified socket kind, ensuring no duplicate - ports are generated. - - This class provides functionality for generating available free ports on the - system. It is initialized with a specific socket kind and can generate ports - for given address families while avoiding reuse of previously generated ports. - - Users should not instantiate this class directly, but use the - ``free_tcp_port_factory`` and ``free_udp_port_factory`` fixtures instead. For simple - uses cases, ``free_tcp_port`` and ``free_udp_port`` can be used instead. - """ - - def __init__(self, kind: socket.SocketKind) -> None: - self._kind = kind - self._generated = set[int]() - - @property - def kind(self) -> socket.SocketKind: - """ - The type of socket connection (e.g., :data:`~socket.SOCK_STREAM` or - :data:`~socket.SOCK_DGRAM`) used to bind for checking port availability - - """ - return self._kind - - def __call__(self, family: socket.AddressFamily | None = None) -> int: - """ - Return an unbound port for the given address family. - - :param family: if omitted, both IPv4 and IPv6 addresses will be tried - :return: a port number - - """ - if family is not None: - families = [family] - else: - families = [socket.AF_INET] - if socket.has_ipv6: - families.append(socket.AF_INET6) - - while True: - port = 0 - with ExitStack() as stack: - for family in families: - sock = stack.enter_context(socket.socket(family, self._kind)) - addr = "::1" if family == socket.AF_INET6 else "127.0.0.1" - try: - sock.bind((addr, port)) - except OSError: - break - - if not port: - port = sock.getsockname()[1] - else: - if port not in self._generated: - self._generated.add(port) - return port - - -@pytest.fixture(scope="session") -def free_tcp_port_factory() -> FreePortFactory: - return FreePortFactory(socket.SOCK_STREAM) - - -@pytest.fixture(scope="session") -def free_udp_port_factory() -> FreePortFactory: - return FreePortFactory(socket.SOCK_DGRAM) - - -@pytest.fixture -def free_tcp_port(free_tcp_port_factory: Callable[[], int]) -> int: - return free_tcp_port_factory() - - -@pytest.fixture -def free_udp_port(free_udp_port_factory: Callable[[], int]) -> int: - return free_udp_port_factory() diff --git a/backend/venv/lib/python3.12/site-packages/anyio/streams/__init__.py b/backend/venv/lib/python3.12/site-packages/anyio/streams/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/anyio/streams/buffered.py b/backend/venv/lib/python3.12/site-packages/anyio/streams/buffered.py deleted file mode 100644 index 57c7cd7..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/streams/buffered.py +++ /dev/null @@ -1,188 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "BufferedByteReceiveStream", - "BufferedByteStream", - "BufferedConnectable", -) - -import sys -from collections.abc import Callable, Iterable, Mapping -from dataclasses import dataclass, field -from typing import Any, SupportsIndex - -from .. import ClosedResourceError, DelimiterNotFound, EndOfStream, IncompleteRead -from ..abc import ( - AnyByteReceiveStream, - AnyByteStream, - AnyByteStreamConnectable, - ByteReceiveStream, - ByteStream, - ByteStreamConnectable, -) - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - - -@dataclass(eq=False) -class BufferedByteReceiveStream(ByteReceiveStream): - """ - Wraps any bytes-based receive stream and uses a buffer to provide sophisticated - receiving capabilities in the form of a byte stream. - """ - - receive_stream: AnyByteReceiveStream - _buffer: bytearray = field(init=False, default_factory=bytearray) - _closed: bool = field(init=False, default=False) - - async def aclose(self) -> None: - await self.receive_stream.aclose() - self._closed = True - - @property - def buffer(self) -> bytes: - """The bytes currently in the buffer.""" - return bytes(self._buffer) - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return self.receive_stream.extra_attributes - - def feed_data(self, data: Iterable[SupportsIndex], /) -> None: - """ - Append data directly into the buffer. - - Any data in the buffer will be consumed by receive operations before receiving - anything from the wrapped stream. - - :param data: the data to append to the buffer (can be bytes or anything else - that supports ``__index__()``) - - """ - self._buffer.extend(data) - - async def receive(self, max_bytes: int = 65536) -> bytes: - if self._closed: - raise ClosedResourceError - - if self._buffer: - chunk = bytes(self._buffer[:max_bytes]) - del self._buffer[:max_bytes] - return chunk - elif isinstance(self.receive_stream, ByteReceiveStream): - return await self.receive_stream.receive(max_bytes) - else: - # With a bytes-oriented object stream, we need to handle any surplus bytes - # we get from the receive() call - chunk = await self.receive_stream.receive() - if len(chunk) > max_bytes: - # Save the surplus bytes in the buffer - self._buffer.extend(chunk[max_bytes:]) - return chunk[:max_bytes] - else: - return chunk - - async def receive_exactly(self, nbytes: int) -> bytes: - """ - Read exactly the given amount of bytes from the stream. - - :param nbytes: the number of bytes to read - :return: the bytes read - :raises ~anyio.IncompleteRead: if the stream was closed before the requested - amount of bytes could be read from the stream - - """ - while True: - remaining = nbytes - len(self._buffer) - if remaining <= 0: - retval = self._buffer[:nbytes] - del self._buffer[:nbytes] - return bytes(retval) - - try: - if isinstance(self.receive_stream, ByteReceiveStream): - chunk = await self.receive_stream.receive(remaining) - else: - chunk = await self.receive_stream.receive() - except EndOfStream as exc: - raise IncompleteRead from exc - - self._buffer.extend(chunk) - - async def receive_until(self, delimiter: bytes, max_bytes: int) -> bytes: - """ - Read from the stream until the delimiter is found or max_bytes have been read. - - :param delimiter: the marker to look for in the stream - :param max_bytes: maximum number of bytes that will be read before raising - :exc:`~anyio.DelimiterNotFound` - :return: the bytes read (not including the delimiter) - :raises ~anyio.IncompleteRead: if the stream was closed before the delimiter - was found - :raises ~anyio.DelimiterNotFound: if the delimiter is not found within the - bytes read up to the maximum allowed - - """ - delimiter_size = len(delimiter) - offset = 0 - while True: - # Check if the delimiter can be found in the current buffer - index = self._buffer.find(delimiter, offset) - if index >= 0: - found = self._buffer[:index] - del self._buffer[: index + len(delimiter) :] - return bytes(found) - - # Check if the buffer is already at or over the limit - if len(self._buffer) >= max_bytes: - raise DelimiterNotFound(max_bytes) - - # Read more data into the buffer from the socket - try: - data = await self.receive_stream.receive() - except EndOfStream as exc: - raise IncompleteRead from exc - - # Move the offset forward and add the new data to the buffer - offset = max(len(self._buffer) - delimiter_size + 1, 0) - self._buffer.extend(data) - - -class BufferedByteStream(BufferedByteReceiveStream, ByteStream): - """ - A full-duplex variant of :class:`BufferedByteReceiveStream`. All writes are passed - through to the wrapped stream as-is. - """ - - def __init__(self, stream: AnyByteStream): - """ - :param stream: the stream to be wrapped - - """ - super().__init__(stream) - self._stream = stream - - @override - async def send_eof(self) -> None: - await self._stream.send_eof() - - @override - async def send(self, item: bytes) -> None: - await self._stream.send(item) - - -class BufferedConnectable(ByteStreamConnectable): - def __init__(self, connectable: AnyByteStreamConnectable): - """ - :param connectable: the connectable to wrap - - """ - self.connectable = connectable - - @override - async def connect(self) -> BufferedByteStream: - stream = await self.connectable.connect() - return BufferedByteStream(stream) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/streams/file.py b/backend/venv/lib/python3.12/site-packages/anyio/streams/file.py deleted file mode 100644 index 82d2da8..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/streams/file.py +++ /dev/null @@ -1,154 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "FileReadStream", - "FileStreamAttribute", - "FileWriteStream", -) - -from collections.abc import Callable, Mapping -from io import SEEK_SET, UnsupportedOperation -from os import PathLike -from pathlib import Path -from typing import Any, BinaryIO, cast - -from .. import ( - BrokenResourceError, - ClosedResourceError, - EndOfStream, - TypedAttributeSet, - to_thread, - typed_attribute, -) -from ..abc import ByteReceiveStream, ByteSendStream - - -class FileStreamAttribute(TypedAttributeSet): - #: the open file descriptor - file: BinaryIO = typed_attribute() - #: the path of the file on the file system, if available (file must be a real file) - path: Path = typed_attribute() - #: the file number, if available (file must be a real file or a TTY) - fileno: int = typed_attribute() - - -class _BaseFileStream: - def __init__(self, file: BinaryIO): - self._file = file - - async def aclose(self) -> None: - await to_thread.run_sync(self._file.close) - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - attributes: dict[Any, Callable[[], Any]] = { - FileStreamAttribute.file: lambda: self._file, - } - - if hasattr(self._file, "name"): - attributes[FileStreamAttribute.path] = lambda: Path(self._file.name) - - try: - self._file.fileno() - except UnsupportedOperation: - pass - else: - attributes[FileStreamAttribute.fileno] = lambda: self._file.fileno() - - return attributes - - -class FileReadStream(_BaseFileStream, ByteReceiveStream): - """ - A byte stream that reads from a file in the file system. - - :param file: a file that has been opened for reading in binary mode - - .. versionadded:: 3.0 - """ - - @classmethod - async def from_path(cls, path: str | PathLike[str]) -> FileReadStream: - """ - Create a file read stream by opening the given file. - - :param path: path of the file to read from - - """ - file = await to_thread.run_sync(Path(path).open, "rb") - return cls(cast(BinaryIO, file)) - - async def receive(self, max_bytes: int = 65536) -> bytes: - try: - data = await to_thread.run_sync(self._file.read, max_bytes) - except ValueError: - raise ClosedResourceError from None - except OSError as exc: - raise BrokenResourceError from exc - - if data: - return data - else: - raise EndOfStream - - async def seek(self, position: int, whence: int = SEEK_SET) -> int: - """ - Seek the file to the given position. - - .. seealso:: :meth:`io.IOBase.seek` - - .. note:: Not all file descriptors are seekable. - - :param position: position to seek the file to - :param whence: controls how ``position`` is interpreted - :return: the new absolute position - :raises OSError: if the file is not seekable - - """ - return await to_thread.run_sync(self._file.seek, position, whence) - - async def tell(self) -> int: - """ - Return the current stream position. - - .. note:: Not all file descriptors are seekable. - - :return: the current absolute position - :raises OSError: if the file is not seekable - - """ - return await to_thread.run_sync(self._file.tell) - - -class FileWriteStream(_BaseFileStream, ByteSendStream): - """ - A byte stream that writes to a file in the file system. - - :param file: a file that has been opened for writing in binary mode - - .. versionadded:: 3.0 - """ - - @classmethod - async def from_path( - cls, path: str | PathLike[str], append: bool = False - ) -> FileWriteStream: - """ - Create a file write stream by opening the given file for writing. - - :param path: path of the file to write to - :param append: if ``True``, open the file for appending; if ``False``, any - existing file at the given path will be truncated - - """ - mode = "ab" if append else "wb" - file = await to_thread.run_sync(Path(path).open, mode) - return cls(cast(BinaryIO, file)) - - async def send(self, item: bytes) -> None: - try: - await to_thread.run_sync(self._file.write, item) - except ValueError: - raise ClosedResourceError from None - except OSError as exc: - raise BrokenResourceError from exc diff --git a/backend/venv/lib/python3.12/site-packages/anyio/streams/memory.py b/backend/venv/lib/python3.12/site-packages/anyio/streams/memory.py deleted file mode 100644 index a3fa0c3..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/streams/memory.py +++ /dev/null @@ -1,325 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "MemoryObjectReceiveStream", - "MemoryObjectSendStream", - "MemoryObjectStreamStatistics", -) - -import warnings -from collections import OrderedDict, deque -from dataclasses import dataclass, field -from types import TracebackType -from typing import Generic, NamedTuple, TypeVar - -from .. import ( - BrokenResourceError, - ClosedResourceError, - EndOfStream, - WouldBlock, -) -from .._core._testing import TaskInfo, get_current_task -from ..abc import Event, ObjectReceiveStream, ObjectSendStream -from ..lowlevel import checkpoint - -T_Item = TypeVar("T_Item") -T_co = TypeVar("T_co", covariant=True) -T_contra = TypeVar("T_contra", contravariant=True) - - -class MemoryObjectStreamStatistics(NamedTuple): - current_buffer_used: int #: number of items stored in the buffer - #: maximum number of items that can be stored on this stream (or :data:`math.inf`) - max_buffer_size: float - open_send_streams: int #: number of unclosed clones of the send stream - open_receive_streams: int #: number of unclosed clones of the receive stream - #: number of tasks blocked on :meth:`MemoryObjectSendStream.send` - tasks_waiting_send: int - #: number of tasks blocked on :meth:`MemoryObjectReceiveStream.receive` - tasks_waiting_receive: int - - -@dataclass(eq=False) -class _MemoryObjectItemReceiver(Generic[T_Item]): - task_info: TaskInfo = field(init=False, default_factory=get_current_task) - item: T_Item = field(init=False) - - def __repr__(self) -> str: - # When item is not defined, we get following error with default __repr__: - # AttributeError: 'MemoryObjectItemReceiver' object has no attribute 'item' - item = getattr(self, "item", None) - return f"{self.__class__.__name__}(task_info={self.task_info}, item={item!r})" - - -@dataclass(eq=False) -class _MemoryObjectStreamState(Generic[T_Item]): - max_buffer_size: float = field() - buffer: deque[T_Item] = field(init=False, default_factory=deque) - open_send_channels: int = field(init=False, default=0) - open_receive_channels: int = field(init=False, default=0) - waiting_receivers: OrderedDict[Event, _MemoryObjectItemReceiver[T_Item]] = field( - init=False, default_factory=OrderedDict - ) - waiting_senders: OrderedDict[Event, T_Item] = field( - init=False, default_factory=OrderedDict - ) - - def statistics(self) -> MemoryObjectStreamStatistics: - return MemoryObjectStreamStatistics( - len(self.buffer), - self.max_buffer_size, - self.open_send_channels, - self.open_receive_channels, - len(self.waiting_senders), - len(self.waiting_receivers), - ) - - -@dataclass(eq=False) -class MemoryObjectReceiveStream(Generic[T_co], ObjectReceiveStream[T_co]): - _state: _MemoryObjectStreamState[T_co] - _closed: bool = field(init=False, default=False) - - def __post_init__(self) -> None: - self._state.open_receive_channels += 1 - - def receive_nowait(self) -> T_co: - """ - Receive the next item if it can be done without waiting. - - :return: the received item - :raises ~anyio.ClosedResourceError: if this send stream has been closed - :raises ~anyio.EndOfStream: if the buffer is empty and this stream has been - closed from the sending end - :raises ~anyio.WouldBlock: if there are no items in the buffer and no tasks - waiting to send - - """ - if self._closed: - raise ClosedResourceError - - if self._state.waiting_senders: - # Get the item from the next sender - send_event, item = self._state.waiting_senders.popitem(last=False) - self._state.buffer.append(item) - send_event.set() - - if self._state.buffer: - return self._state.buffer.popleft() - elif not self._state.open_send_channels: - raise EndOfStream - - raise WouldBlock - - async def receive(self) -> T_co: - await checkpoint() - try: - return self.receive_nowait() - except WouldBlock: - # Add ourselves in the queue - receive_event = Event() - receiver = _MemoryObjectItemReceiver[T_co]() - self._state.waiting_receivers[receive_event] = receiver - - try: - await receive_event.wait() - finally: - self._state.waiting_receivers.pop(receive_event, None) - - try: - return receiver.item - except AttributeError: - raise EndOfStream from None - - def clone(self) -> MemoryObjectReceiveStream[T_co]: - """ - Create a clone of this receive stream. - - Each clone can be closed separately. Only when all clones have been closed will - the receiving end of the memory stream be considered closed by the sending ends. - - :return: the cloned stream - - """ - if self._closed: - raise ClosedResourceError - - return MemoryObjectReceiveStream(_state=self._state) - - def close(self) -> None: - """ - Close the stream. - - This works the exact same way as :meth:`aclose`, but is provided as a special - case for the benefit of synchronous callbacks. - - """ - if not self._closed: - self._closed = True - self._state.open_receive_channels -= 1 - if self._state.open_receive_channels == 0: - send_events = list(self._state.waiting_senders.keys()) - for event in send_events: - event.set() - - async def aclose(self) -> None: - self.close() - - def statistics(self) -> MemoryObjectStreamStatistics: - """ - Return statistics about the current state of this stream. - - .. versionadded:: 3.0 - """ - return self._state.statistics() - - def __enter__(self) -> MemoryObjectReceiveStream[T_co]: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.close() - - def __del__(self) -> None: - if not self._closed: - warnings.warn( - f"Unclosed <{self.__class__.__name__} at {id(self):x}>", - ResourceWarning, - stacklevel=1, - source=self, - ) - - -@dataclass(eq=False) -class MemoryObjectSendStream(Generic[T_contra], ObjectSendStream[T_contra]): - _state: _MemoryObjectStreamState[T_contra] - _closed: bool = field(init=False, default=False) - - def __post_init__(self) -> None: - self._state.open_send_channels += 1 - - def send_nowait(self, item: T_contra) -> None: - """ - Send an item immediately if it can be done without waiting. - - :param item: the item to send - :raises ~anyio.ClosedResourceError: if this send stream has been closed - :raises ~anyio.BrokenResourceError: if the stream has been closed from the - receiving end - :raises ~anyio.WouldBlock: if the buffer is full and there are no tasks waiting - to receive - - """ - if self._closed: - raise ClosedResourceError - if not self._state.open_receive_channels: - raise BrokenResourceError - - while self._state.waiting_receivers: - receive_event, receiver = self._state.waiting_receivers.popitem(last=False) - if not receiver.task_info.has_pending_cancellation(): - receiver.item = item - receive_event.set() - return - - if len(self._state.buffer) < self._state.max_buffer_size: - self._state.buffer.append(item) - else: - raise WouldBlock - - async def send(self, item: T_contra) -> None: - """ - Send an item to the stream. - - If the buffer is full, this method blocks until there is again room in the - buffer or the item can be sent directly to a receiver. - - :param item: the item to send - :raises ~anyio.ClosedResourceError: if this send stream has been closed - :raises ~anyio.BrokenResourceError: if the stream has been closed from the - receiving end - - """ - await checkpoint() - try: - self.send_nowait(item) - except WouldBlock: - # Wait until there's someone on the receiving end - send_event = Event() - self._state.waiting_senders[send_event] = item - try: - await send_event.wait() - except BaseException: - self._state.waiting_senders.pop(send_event, None) - raise - - if send_event in self._state.waiting_senders: - del self._state.waiting_senders[send_event] - raise BrokenResourceError from None - - def clone(self) -> MemoryObjectSendStream[T_contra]: - """ - Create a clone of this send stream. - - Each clone can be closed separately. Only when all clones have been closed will - the sending end of the memory stream be considered closed by the receiving ends. - - :return: the cloned stream - - """ - if self._closed: - raise ClosedResourceError - - return MemoryObjectSendStream(_state=self._state) - - def close(self) -> None: - """ - Close the stream. - - This works the exact same way as :meth:`aclose`, but is provided as a special - case for the benefit of synchronous callbacks. - - """ - if not self._closed: - self._closed = True - self._state.open_send_channels -= 1 - if self._state.open_send_channels == 0: - receive_events = list(self._state.waiting_receivers.keys()) - self._state.waiting_receivers.clear() - for event in receive_events: - event.set() - - async def aclose(self) -> None: - self.close() - - def statistics(self) -> MemoryObjectStreamStatistics: - """ - Return statistics about the current state of this stream. - - .. versionadded:: 3.0 - """ - return self._state.statistics() - - def __enter__(self) -> MemoryObjectSendStream[T_contra]: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_val: BaseException | None, - exc_tb: TracebackType | None, - ) -> None: - self.close() - - def __del__(self) -> None: - if not self._closed: - warnings.warn( - f"Unclosed <{self.__class__.__name__} at {id(self):x}>", - ResourceWarning, - stacklevel=1, - source=self, - ) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/streams/stapled.py b/backend/venv/lib/python3.12/site-packages/anyio/streams/stapled.py deleted file mode 100644 index 9248b68..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/streams/stapled.py +++ /dev/null @@ -1,147 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "MultiListener", - "StapledByteStream", - "StapledObjectStream", -) - -from collections.abc import Callable, Mapping, Sequence -from dataclasses import dataclass -from typing import Any, Generic, TypeVar - -from ..abc import ( - ByteReceiveStream, - ByteSendStream, - ByteStream, - Listener, - ObjectReceiveStream, - ObjectSendStream, - ObjectStream, - TaskGroup, -) - -T_Item = TypeVar("T_Item") -T_Stream = TypeVar("T_Stream") - - -@dataclass(eq=False) -class StapledByteStream(ByteStream): - """ - Combines two byte streams into a single, bidirectional byte stream. - - Extra attributes will be provided from both streams, with the receive stream - providing the values in case of a conflict. - - :param ByteSendStream send_stream: the sending byte stream - :param ByteReceiveStream receive_stream: the receiving byte stream - """ - - send_stream: ByteSendStream - receive_stream: ByteReceiveStream - - async def receive(self, max_bytes: int = 65536) -> bytes: - return await self.receive_stream.receive(max_bytes) - - async def send(self, item: bytes) -> None: - await self.send_stream.send(item) - - async def send_eof(self) -> None: - await self.send_stream.aclose() - - async def aclose(self) -> None: - await self.send_stream.aclose() - await self.receive_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self.send_stream.extra_attributes, - **self.receive_stream.extra_attributes, - } - - -@dataclass(eq=False) -class StapledObjectStream(Generic[T_Item], ObjectStream[T_Item]): - """ - Combines two object streams into a single, bidirectional object stream. - - Extra attributes will be provided from both streams, with the receive stream - providing the values in case of a conflict. - - :param ObjectSendStream send_stream: the sending object stream - :param ObjectReceiveStream receive_stream: the receiving object stream - """ - - send_stream: ObjectSendStream[T_Item] - receive_stream: ObjectReceiveStream[T_Item] - - async def receive(self) -> T_Item: - return await self.receive_stream.receive() - - async def send(self, item: T_Item) -> None: - await self.send_stream.send(item) - - async def send_eof(self) -> None: - await self.send_stream.aclose() - - async def aclose(self) -> None: - await self.send_stream.aclose() - await self.receive_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self.send_stream.extra_attributes, - **self.receive_stream.extra_attributes, - } - - -@dataclass(eq=False) -class MultiListener(Generic[T_Stream], Listener[T_Stream]): - """ - Combines multiple listeners into one, serving connections from all of them at once. - - Any MultiListeners in the given collection of listeners will have their listeners - moved into this one. - - Extra attributes are provided from each listener, with each successive listener - overriding any conflicting attributes from the previous one. - - :param listeners: listeners to serve - :type listeners: Sequence[Listener[T_Stream]] - """ - - listeners: Sequence[Listener[T_Stream]] - - def __post_init__(self) -> None: - listeners: list[Listener[T_Stream]] = [] - for listener in self.listeners: - if isinstance(listener, MultiListener): - listeners.extend(listener.listeners) - del listener.listeners[:] # type: ignore[attr-defined] - else: - listeners.append(listener) - - self.listeners = listeners - - async def serve( - self, handler: Callable[[T_Stream], Any], task_group: TaskGroup | None = None - ) -> None: - from .. import create_task_group - - async with create_task_group() as tg: - for listener in self.listeners: - tg.start_soon(listener.serve, handler, task_group) - - async def aclose(self) -> None: - for listener in self.listeners: - await listener.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - attributes: dict = {} - for listener in self.listeners: - attributes.update(listener.extra_attributes) - - return attributes diff --git a/backend/venv/lib/python3.12/site-packages/anyio/streams/text.py b/backend/venv/lib/python3.12/site-packages/anyio/streams/text.py deleted file mode 100644 index 296cd25..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/streams/text.py +++ /dev/null @@ -1,176 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "TextConnectable", - "TextReceiveStream", - "TextSendStream", - "TextStream", -) - -import codecs -import sys -from collections.abc import Callable, Mapping -from dataclasses import InitVar, dataclass, field -from typing import Any - -from ..abc import ( - AnyByteReceiveStream, - AnyByteSendStream, - AnyByteStream, - AnyByteStreamConnectable, - ObjectReceiveStream, - ObjectSendStream, - ObjectStream, - ObjectStreamConnectable, -) - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - - -@dataclass(eq=False) -class TextReceiveStream(ObjectReceiveStream[str]): - """ - Stream wrapper that decodes bytes to strings using the given encoding. - - Decoding is done using :class:`~codecs.IncrementalDecoder` which returns any - completely received unicode characters as soon as they come in. - - :param transport_stream: any bytes-based receive stream - :param encoding: character encoding to use for decoding bytes to strings (defaults - to ``utf-8``) - :param errors: handling scheme for decoding errors (defaults to ``strict``; see the - `codecs module documentation`_ for a comprehensive list of options) - - .. _codecs module documentation: - https://docs.python.org/3/library/codecs.html#codec-objects - """ - - transport_stream: AnyByteReceiveStream - encoding: InitVar[str] = "utf-8" - errors: InitVar[str] = "strict" - _decoder: codecs.IncrementalDecoder = field(init=False) - - def __post_init__(self, encoding: str, errors: str) -> None: - decoder_class = codecs.getincrementaldecoder(encoding) - self._decoder = decoder_class(errors=errors) - - async def receive(self) -> str: - while True: - chunk = await self.transport_stream.receive() - decoded = self._decoder.decode(chunk) - if decoded: - return decoded - - async def aclose(self) -> None: - await self.transport_stream.aclose() - self._decoder.reset() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return self.transport_stream.extra_attributes - - -@dataclass(eq=False) -class TextSendStream(ObjectSendStream[str]): - """ - Sends strings to the wrapped stream as bytes using the given encoding. - - :param AnyByteSendStream transport_stream: any bytes-based send stream - :param str encoding: character encoding to use for encoding strings to bytes - (defaults to ``utf-8``) - :param str errors: handling scheme for encoding errors (defaults to ``strict``; see - the `codecs module documentation`_ for a comprehensive list of options) - - .. _codecs module documentation: - https://docs.python.org/3/library/codecs.html#codec-objects - """ - - transport_stream: AnyByteSendStream - encoding: InitVar[str] = "utf-8" - errors: str = "strict" - _encoder: Callable[..., tuple[bytes, int]] = field(init=False) - - def __post_init__(self, encoding: str) -> None: - self._encoder = codecs.getencoder(encoding) - - async def send(self, item: str) -> None: - encoded = self._encoder(item, self.errors)[0] - await self.transport_stream.send(encoded) - - async def aclose(self) -> None: - await self.transport_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return self.transport_stream.extra_attributes - - -@dataclass(eq=False) -class TextStream(ObjectStream[str]): - """ - A bidirectional stream that decodes bytes to strings on receive and encodes strings - to bytes on send. - - Extra attributes will be provided from both streams, with the receive stream - providing the values in case of a conflict. - - :param AnyByteStream transport_stream: any bytes-based stream - :param str encoding: character encoding to use for encoding/decoding strings to/from - bytes (defaults to ``utf-8``) - :param str errors: handling scheme for encoding errors (defaults to ``strict``; see - the `codecs module documentation`_ for a comprehensive list of options) - - .. _codecs module documentation: - https://docs.python.org/3/library/codecs.html#codec-objects - """ - - transport_stream: AnyByteStream - encoding: InitVar[str] = "utf-8" - errors: InitVar[str] = "strict" - _receive_stream: TextReceiveStream = field(init=False) - _send_stream: TextSendStream = field(init=False) - - def __post_init__(self, encoding: str, errors: str) -> None: - self._receive_stream = TextReceiveStream( - self.transport_stream, encoding=encoding, errors=errors - ) - self._send_stream = TextSendStream( - self.transport_stream, encoding=encoding, errors=errors - ) - - async def receive(self) -> str: - return await self._receive_stream.receive() - - async def send(self, item: str) -> None: - await self._send_stream.send(item) - - async def send_eof(self) -> None: - await self.transport_stream.send_eof() - - async def aclose(self) -> None: - await self._send_stream.aclose() - await self._receive_stream.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self._send_stream.extra_attributes, - **self._receive_stream.extra_attributes, - } - - -class TextConnectable(ObjectStreamConnectable[str]): - def __init__(self, connectable: AnyByteStreamConnectable): - """ - :param connectable: the bytestream endpoint to wrap - - """ - self.connectable = connectable - - @override - async def connect(self) -> TextStream: - stream = await self.connectable.connect() - return TextStream(stream) diff --git a/backend/venv/lib/python3.12/site-packages/anyio/streams/tls.py b/backend/venv/lib/python3.12/site-packages/anyio/streams/tls.py deleted file mode 100644 index b507488..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/streams/tls.py +++ /dev/null @@ -1,424 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "TLSAttribute", - "TLSConnectable", - "TLSListener", - "TLSStream", -) - -import logging -import re -import ssl -import sys -from collections.abc import Callable, Mapping -from dataclasses import dataclass -from functools import wraps -from ssl import SSLContext -from typing import Any, TypeVar - -from .. import ( - BrokenResourceError, - EndOfStream, - aclose_forcefully, - get_cancelled_exc_class, - to_thread, -) -from .._core._typedattr import TypedAttributeSet, typed_attribute -from ..abc import ( - AnyByteStream, - AnyByteStreamConnectable, - ByteStream, - ByteStreamConnectable, - Listener, - TaskGroup, -) - -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if sys.version_info >= (3, 12): - from typing import override -else: - from typing_extensions import override - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") -_PCTRTT: TypeAlias = tuple[tuple[str, str], ...] -_PCTRTTT: TypeAlias = tuple[_PCTRTT, ...] - - -class TLSAttribute(TypedAttributeSet): - """Contains Transport Layer Security related attributes.""" - - #: the selected ALPN protocol - alpn_protocol: str | None = typed_attribute() - #: the channel binding for type ``tls-unique`` - channel_binding_tls_unique: bytes = typed_attribute() - #: the selected cipher - cipher: tuple[str, str, int] = typed_attribute() - #: the peer certificate in dictionary form (see :meth:`ssl.SSLSocket.getpeercert` - # for more information) - peer_certificate: None | (dict[str, str | _PCTRTTT | _PCTRTT]) = typed_attribute() - #: the peer certificate in binary form - peer_certificate_binary: bytes | None = typed_attribute() - #: ``True`` if this is the server side of the connection - server_side: bool = typed_attribute() - #: ciphers shared by the client during the TLS handshake (``None`` if this is the - #: client side) - shared_ciphers: list[tuple[str, str, int]] | None = typed_attribute() - #: the :class:`~ssl.SSLObject` used for encryption - ssl_object: ssl.SSLObject = typed_attribute() - #: ``True`` if this stream does (and expects) a closing TLS handshake when the - #: stream is being closed - standard_compatible: bool = typed_attribute() - #: the TLS protocol version (e.g. ``TLSv1.2``) - tls_version: str = typed_attribute() - - -@dataclass(eq=False) -class TLSStream(ByteStream): - """ - A stream wrapper that encrypts all sent data and decrypts received data. - - This class has no public initializer; use :meth:`wrap` instead. - All extra attributes from :class:`~TLSAttribute` are supported. - - :var AnyByteStream transport_stream: the wrapped stream - - """ - - transport_stream: AnyByteStream - standard_compatible: bool - _ssl_object: ssl.SSLObject - _read_bio: ssl.MemoryBIO - _write_bio: ssl.MemoryBIO - - @classmethod - async def wrap( - cls, - transport_stream: AnyByteStream, - *, - server_side: bool | None = None, - hostname: str | None = None, - ssl_context: ssl.SSLContext | None = None, - standard_compatible: bool = True, - ) -> TLSStream: - """ - Wrap an existing stream with Transport Layer Security. - - This performs a TLS handshake with the peer. - - :param transport_stream: a bytes-transporting stream to wrap - :param server_side: ``True`` if this is the server side of the connection, - ``False`` if this is the client side (if omitted, will be set to ``False`` - if ``hostname`` has been provided, ``False`` otherwise). Used only to create - a default context when an explicit context has not been provided. - :param hostname: host name of the peer (if host name checking is desired) - :param ssl_context: the SSLContext object to use (if not provided, a secure - default will be created) - :param standard_compatible: if ``False``, skip the closing handshake when - closing the connection, and don't raise an exception if the peer does the - same - :raises ~ssl.SSLError: if the TLS handshake fails - - """ - if server_side is None: - server_side = not hostname - - if not ssl_context: - purpose = ( - ssl.Purpose.CLIENT_AUTH if server_side else ssl.Purpose.SERVER_AUTH - ) - ssl_context = ssl.create_default_context(purpose) - - # Re-enable detection of unexpected EOFs if it was disabled by Python - if hasattr(ssl, "OP_IGNORE_UNEXPECTED_EOF"): - ssl_context.options &= ~ssl.OP_IGNORE_UNEXPECTED_EOF - - bio_in = ssl.MemoryBIO() - bio_out = ssl.MemoryBIO() - - # External SSLContext implementations may do blocking I/O in wrap_bio(), - # but the standard library implementation won't - if type(ssl_context) is ssl.SSLContext: - ssl_object = ssl_context.wrap_bio( - bio_in, bio_out, server_side=server_side, server_hostname=hostname - ) - else: - ssl_object = await to_thread.run_sync( - ssl_context.wrap_bio, - bio_in, - bio_out, - server_side, - hostname, - None, - ) - - wrapper = cls( - transport_stream=transport_stream, - standard_compatible=standard_compatible, - _ssl_object=ssl_object, - _read_bio=bio_in, - _write_bio=bio_out, - ) - await wrapper._call_sslobject_method(ssl_object.do_handshake) - return wrapper - - async def _call_sslobject_method( - self, func: Callable[[Unpack[PosArgsT]], T_Retval], *args: Unpack[PosArgsT] - ) -> T_Retval: - while True: - try: - result = func(*args) - except ssl.SSLWantReadError: - try: - # Flush any pending writes first - if self._write_bio.pending: - await self.transport_stream.send(self._write_bio.read()) - - data = await self.transport_stream.receive() - except EndOfStream: - self._read_bio.write_eof() - except OSError as exc: - self._read_bio.write_eof() - self._write_bio.write_eof() - raise BrokenResourceError from exc - else: - self._read_bio.write(data) - except ssl.SSLWantWriteError: - await self.transport_stream.send(self._write_bio.read()) - except ssl.SSLSyscallError as exc: - self._read_bio.write_eof() - self._write_bio.write_eof() - raise BrokenResourceError from exc - except ssl.SSLError as exc: - self._read_bio.write_eof() - self._write_bio.write_eof() - if isinstance(exc, ssl.SSLEOFError) or ( - exc.strerror and "UNEXPECTED_EOF_WHILE_READING" in exc.strerror - ): - if self.standard_compatible: - raise BrokenResourceError from exc - else: - raise EndOfStream from None - - raise - else: - # Flush any pending writes first - if self._write_bio.pending: - await self.transport_stream.send(self._write_bio.read()) - - return result - - async def unwrap(self) -> tuple[AnyByteStream, bytes]: - """ - Does the TLS closing handshake. - - :return: a tuple of (wrapped byte stream, bytes left in the read buffer) - - """ - await self._call_sslobject_method(self._ssl_object.unwrap) - self._read_bio.write_eof() - self._write_bio.write_eof() - return self.transport_stream, self._read_bio.read() - - async def aclose(self) -> None: - if self.standard_compatible: - try: - await self.unwrap() - except BaseException: - await aclose_forcefully(self.transport_stream) - raise - - await self.transport_stream.aclose() - - async def receive(self, max_bytes: int = 65536) -> bytes: - data = await self._call_sslobject_method(self._ssl_object.read, max_bytes) - if not data: - raise EndOfStream - - return data - - async def send(self, item: bytes) -> None: - await self._call_sslobject_method(self._ssl_object.write, item) - - async def send_eof(self) -> None: - tls_version = self.extra(TLSAttribute.tls_version) - match = re.match(r"TLSv(\d+)(?:\.(\d+))?", tls_version) - if match: - major, minor = int(match.group(1)), int(match.group(2) or 0) - if (major, minor) < (1, 3): - raise NotImplementedError( - f"send_eof() requires at least TLSv1.3; current " - f"session uses {tls_version}" - ) - - raise NotImplementedError( - "send_eof() has not yet been implemented for TLS streams" - ) - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - **self.transport_stream.extra_attributes, - TLSAttribute.alpn_protocol: self._ssl_object.selected_alpn_protocol, - TLSAttribute.channel_binding_tls_unique: ( - self._ssl_object.get_channel_binding - ), - TLSAttribute.cipher: self._ssl_object.cipher, - TLSAttribute.peer_certificate: lambda: self._ssl_object.getpeercert(False), - TLSAttribute.peer_certificate_binary: lambda: self._ssl_object.getpeercert( - True - ), - TLSAttribute.server_side: lambda: self._ssl_object.server_side, - TLSAttribute.shared_ciphers: lambda: self._ssl_object.shared_ciphers() - if self._ssl_object.server_side - else None, - TLSAttribute.standard_compatible: lambda: self.standard_compatible, - TLSAttribute.ssl_object: lambda: self._ssl_object, - TLSAttribute.tls_version: self._ssl_object.version, - } - - -@dataclass(eq=False) -class TLSListener(Listener[TLSStream]): - """ - A convenience listener that wraps another listener and auto-negotiates a TLS session - on every accepted connection. - - If the TLS handshake times out or raises an exception, - :meth:`handle_handshake_error` is called to do whatever post-mortem processing is - deemed necessary. - - Supports only the :attr:`~TLSAttribute.standard_compatible` extra attribute. - - :param Listener listener: the listener to wrap - :param ssl_context: the SSL context object - :param standard_compatible: a flag passed through to :meth:`TLSStream.wrap` - :param handshake_timeout: time limit for the TLS handshake - (passed to :func:`~anyio.fail_after`) - """ - - listener: Listener[Any] - ssl_context: ssl.SSLContext - standard_compatible: bool = True - handshake_timeout: float = 30 - - @staticmethod - async def handle_handshake_error(exc: BaseException, stream: AnyByteStream) -> None: - """ - Handle an exception raised during the TLS handshake. - - This method does 3 things: - - #. Forcefully closes the original stream - #. Logs the exception (unless it was a cancellation exception) using the - ``anyio.streams.tls`` logger - #. Reraises the exception if it was a base exception or a cancellation exception - - :param exc: the exception - :param stream: the original stream - - """ - await aclose_forcefully(stream) - - # Log all except cancellation exceptions - if not isinstance(exc, get_cancelled_exc_class()): - # CPython (as of 3.11.5) returns incorrect `sys.exc_info()` here when using - # any asyncio implementation, so we explicitly pass the exception to log - # (https://github.com/python/cpython/issues/108668). Trio does not have this - # issue because it works around the CPython bug. - logging.getLogger(__name__).exception( - "Error during TLS handshake", exc_info=exc - ) - - # Only reraise base exceptions and cancellation exceptions - if not isinstance(exc, Exception) or isinstance(exc, get_cancelled_exc_class()): - raise - - async def serve( - self, - handler: Callable[[TLSStream], Any], - task_group: TaskGroup | None = None, - ) -> None: - @wraps(handler) - async def handler_wrapper(stream: AnyByteStream) -> None: - from .. import fail_after - - try: - with fail_after(self.handshake_timeout): - wrapped_stream = await TLSStream.wrap( - stream, - ssl_context=self.ssl_context, - standard_compatible=self.standard_compatible, - ) - except BaseException as exc: - await self.handle_handshake_error(exc, stream) - else: - await handler(wrapped_stream) - - await self.listener.serve(handler_wrapper, task_group) - - async def aclose(self) -> None: - await self.listener.aclose() - - @property - def extra_attributes(self) -> Mapping[Any, Callable[[], Any]]: - return { - TLSAttribute.standard_compatible: lambda: self.standard_compatible, - } - - -class TLSConnectable(ByteStreamConnectable): - """ - Wraps another connectable and does TLS negotiation after a successful connection. - - :param connectable: the connectable to wrap - :param hostname: host name of the server (if host name checking is desired) - :param ssl_context: the SSLContext object to use (if not provided, a secure default - will be created) - :param standard_compatible: if ``False``, skip the closing handshake when closing - the connection, and don't raise an exception if the server does the same - """ - - def __init__( - self, - connectable: AnyByteStreamConnectable, - *, - hostname: str | None = None, - ssl_context: ssl.SSLContext | None = None, - standard_compatible: bool = True, - ) -> None: - self.connectable = connectable - self.ssl_context: SSLContext = ssl_context or ssl.create_default_context( - ssl.Purpose.SERVER_AUTH - ) - if not isinstance(self.ssl_context, ssl.SSLContext): - raise TypeError( - "ssl_context must be an instance of ssl.SSLContext, not " - f"{type(self.ssl_context).__name__}" - ) - self.hostname = hostname - self.standard_compatible = standard_compatible - - @override - async def connect(self) -> TLSStream: - stream = await self.connectable.connect() - try: - return await TLSStream.wrap( - stream, - hostname=self.hostname, - ssl_context=self.ssl_context, - standard_compatible=self.standard_compatible, - ) - except BaseException: - await aclose_forcefully(stream) - raise diff --git a/backend/venv/lib/python3.12/site-packages/anyio/to_interpreter.py b/backend/venv/lib/python3.12/site-packages/anyio/to_interpreter.py deleted file mode 100644 index 694dbe7..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/to_interpreter.py +++ /dev/null @@ -1,246 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "run_sync", - "current_default_interpreter_limiter", -) - -import atexit -import os -import sys -from collections import deque -from collections.abc import Callable -from typing import Any, Final, TypeVar - -from . import current_time, to_thread -from ._core._exceptions import BrokenWorkerInterpreter -from ._core._synchronization import CapacityLimiter -from .lowlevel import RunVar - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -if sys.version_info >= (3, 14): - from concurrent.interpreters import ExecutionFailed, create - - def _interp_call( - func: Callable[..., Any], args: tuple[Any, ...] - ) -> tuple[Any, bool]: - try: - retval = func(*args) - except BaseException as exc: - return exc, True - else: - return retval, False - - class _Worker: - last_used: float = 0 - - def __init__(self) -> None: - self._interpreter = create() - - def destroy(self) -> None: - self._interpreter.close() - - def call( - self, - func: Callable[..., T_Retval], - args: tuple[Any, ...], - ) -> T_Retval: - try: - res, is_exception = self._interpreter.call(_interp_call, func, args) - except ExecutionFailed as exc: - raise BrokenWorkerInterpreter(exc.excinfo) from exc - - if is_exception: - raise res - - return res -elif sys.version_info >= (3, 13): - import _interpqueues - import _interpreters - - UNBOUND: Final = 2 # I have no clue how this works, but it was used in the stdlib - FMT_UNPICKLED: Final = 0 - FMT_PICKLED: Final = 1 - QUEUE_PICKLE_ARGS: Final = (FMT_PICKLED, UNBOUND) - QUEUE_UNPICKLE_ARGS: Final = (FMT_UNPICKLED, UNBOUND) - - _run_func = compile( - """ -import _interpqueues -from _interpreters import NotShareableError -from pickle import loads, dumps, HIGHEST_PROTOCOL - -QUEUE_PICKLE_ARGS = (1, 2) -QUEUE_UNPICKLE_ARGS = (0, 2) - -item = _interpqueues.get(queue_id)[0] -try: - func, args = loads(item) - retval = func(*args) -except BaseException as exc: - is_exception = True - retval = exc -else: - is_exception = False - -try: - _interpqueues.put(queue_id, (retval, is_exception), *QUEUE_UNPICKLE_ARGS) -except NotShareableError: - retval = dumps(retval, HIGHEST_PROTOCOL) - _interpqueues.put(queue_id, (retval, is_exception), *QUEUE_PICKLE_ARGS) - """, - "", - "exec", - ) - - class _Worker: - last_used: float = 0 - - def __init__(self) -> None: - self._interpreter_id = _interpreters.create() - self._queue_id = _interpqueues.create(1, *QUEUE_UNPICKLE_ARGS) - _interpreters.set___main___attrs( - self._interpreter_id, {"queue_id": self._queue_id} - ) - - def destroy(self) -> None: - _interpqueues.destroy(self._queue_id) - _interpreters.destroy(self._interpreter_id) - - def call( - self, - func: Callable[..., T_Retval], - args: tuple[Any, ...], - ) -> T_Retval: - import pickle - - item = pickle.dumps((func, args), pickle.HIGHEST_PROTOCOL) - _interpqueues.put(self._queue_id, item, *QUEUE_PICKLE_ARGS) - exc_info = _interpreters.exec(self._interpreter_id, _run_func) - if exc_info: - raise BrokenWorkerInterpreter(exc_info) - - res = _interpqueues.get(self._queue_id) - (res, is_exception), fmt = res[:2] - if fmt == FMT_PICKLED: - res = pickle.loads(res) - - if is_exception: - raise res - - return res -else: - - class _Worker: - last_used: float = 0 - - def __init__(self) -> None: - raise RuntimeError("subinterpreters require at least Python 3.13") - - def call( - self, - func: Callable[..., T_Retval], - args: tuple[Any, ...], - ) -> T_Retval: - raise NotImplementedError - - def destroy(self) -> None: - pass - - -DEFAULT_CPU_COUNT: Final = 8 # this is just an arbitrarily selected value -MAX_WORKER_IDLE_TIME = ( - 30 # seconds a subinterpreter can be idle before becoming eligible for pruning -) - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - -_idle_workers = RunVar[deque[_Worker]]("_available_workers") -_default_interpreter_limiter = RunVar[CapacityLimiter]("_default_interpreter_limiter") - - -def _stop_workers(workers: deque[_Worker]) -> None: - for worker in workers: - worker.destroy() - - workers.clear() - - -async def run_sync( - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - limiter: CapacityLimiter | None = None, -) -> T_Retval: - """ - Call the given function with the given arguments in a subinterpreter. - - .. warning:: On Python 3.13, the :mod:`concurrent.interpreters` module was not yet - available, so the code path for that Python version relies on an undocumented, - private API. As such, it is recommended to not rely on this function for anything - mission-critical on Python 3.13. - - :param func: a callable - :param args: the positional arguments for the callable - :param limiter: capacity limiter to use to limit the total number of subinterpreters - running (if omitted, the default limiter is used) - :return: the result of the call - :raises BrokenWorkerInterpreter: if there's an internal error in a subinterpreter - - """ - if limiter is None: - limiter = current_default_interpreter_limiter() - - try: - idle_workers = _idle_workers.get() - except LookupError: - idle_workers = deque() - _idle_workers.set(idle_workers) - atexit.register(_stop_workers, idle_workers) - - async with limiter: - try: - worker = idle_workers.pop() - except IndexError: - worker = _Worker() - - try: - return await to_thread.run_sync( - worker.call, - func, - args, - limiter=limiter, - ) - finally: - # Prune workers that have been idle for too long - now = current_time() - while idle_workers: - if now - idle_workers[0].last_used <= MAX_WORKER_IDLE_TIME: - break - - await to_thread.run_sync(idle_workers.popleft().destroy, limiter=limiter) - - worker.last_used = current_time() - idle_workers.append(worker) - - -def current_default_interpreter_limiter() -> CapacityLimiter: - """ - Return the capacity limiter used by default to limit the number of concurrently - running subinterpreters. - - Defaults to the number of CPU cores. - - :return: a capacity limiter object - - """ - try: - return _default_interpreter_limiter.get() - except LookupError: - limiter = CapacityLimiter(os.cpu_count() or DEFAULT_CPU_COUNT) - _default_interpreter_limiter.set(limiter) - return limiter diff --git a/backend/venv/lib/python3.12/site-packages/anyio/to_process.py b/backend/venv/lib/python3.12/site-packages/anyio/to_process.py deleted file mode 100644 index b289234..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/to_process.py +++ /dev/null @@ -1,266 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "current_default_process_limiter", - "process_worker", - "run_sync", -) - -import os -import pickle -import subprocess -import sys -from collections import deque -from collections.abc import Callable -from importlib.util import module_from_spec, spec_from_file_location -from typing import TypeVar, cast - -from ._core._eventloop import current_time, get_async_backend, get_cancelled_exc_class -from ._core._exceptions import BrokenWorkerProcess -from ._core._subprocesses import open_process -from ._core._synchronization import CapacityLimiter -from ._core._tasks import CancelScope, fail_after -from .abc import ByteReceiveStream, ByteSendStream, Process -from .lowlevel import RunVar, checkpoint_if_cancelled -from .streams.buffered import BufferedByteReceiveStream - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -WORKER_MAX_IDLE_TIME = 300 # 5 minutes - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - -_process_pool_workers: RunVar[set[Process]] = RunVar("_process_pool_workers") -_process_pool_idle_workers: RunVar[deque[tuple[Process, float]]] = RunVar( - "_process_pool_idle_workers" -) -_default_process_limiter: RunVar[CapacityLimiter] = RunVar("_default_process_limiter") - - -async def run_sync( # type: ignore[return] - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - cancellable: bool = False, - limiter: CapacityLimiter | None = None, -) -> T_Retval: - """ - Call the given function with the given arguments in a worker process. - - If the ``cancellable`` option is enabled and the task waiting for its completion is - cancelled, the worker process running it will be abruptly terminated using SIGKILL - (or ``terminateProcess()`` on Windows). - - :param func: a callable - :param args: positional arguments for the callable - :param cancellable: ``True`` to allow cancellation of the operation while it's - running - :param limiter: capacity limiter to use to limit the total amount of processes - running (if omitted, the default limiter is used) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - :return: an awaitable that yields the return value of the function. - - """ - - async def send_raw_command(pickled_cmd: bytes) -> object: - try: - await stdin.send(pickled_cmd) - response = await buffered.receive_until(b"\n", 50) - status, length = response.split(b" ") - if status not in (b"RETURN", b"EXCEPTION"): - raise RuntimeError( - f"Worker process returned unexpected response: {response!r}" - ) - - pickled_response = await buffered.receive_exactly(int(length)) - except BaseException as exc: - workers.discard(process) - try: - process.kill() - with CancelScope(shield=True): - await process.aclose() - except ProcessLookupError: - pass - - if isinstance(exc, get_cancelled_exc_class()): - raise - else: - raise BrokenWorkerProcess from exc - - retval = pickle.loads(pickled_response) - if status == b"EXCEPTION": - assert isinstance(retval, BaseException) - raise retval - else: - return retval - - # First pickle the request before trying to reserve a worker process - await checkpoint_if_cancelled() - request = pickle.dumps(("run", func, args), protocol=pickle.HIGHEST_PROTOCOL) - - # If this is the first run in this event loop thread, set up the necessary variables - try: - workers = _process_pool_workers.get() - idle_workers = _process_pool_idle_workers.get() - except LookupError: - workers = set() - idle_workers = deque() - _process_pool_workers.set(workers) - _process_pool_idle_workers.set(idle_workers) - get_async_backend().setup_process_pool_exit_at_shutdown(workers) - - async with limiter or current_default_process_limiter(): - # Pop processes from the pool (starting from the most recently used) until we - # find one that hasn't exited yet - process: Process - while idle_workers: - process, idle_since = idle_workers.pop() - if process.returncode is None: - stdin = cast(ByteSendStream, process.stdin) - buffered = BufferedByteReceiveStream( - cast(ByteReceiveStream, process.stdout) - ) - - # Prune any other workers that have been idle for WORKER_MAX_IDLE_TIME - # seconds or longer - now = current_time() - killed_processes: list[Process] = [] - while idle_workers: - if now - idle_workers[0][1] < WORKER_MAX_IDLE_TIME: - break - - process_to_kill, idle_since = idle_workers.popleft() - process_to_kill.kill() - workers.remove(process_to_kill) - killed_processes.append(process_to_kill) - - with CancelScope(shield=True): - for killed_process in killed_processes: - await killed_process.aclose() - - break - - workers.remove(process) - else: - command = [sys.executable, "-u", "-m", __name__] - process = await open_process( - command, stdin=subprocess.PIPE, stdout=subprocess.PIPE - ) - try: - stdin = cast(ByteSendStream, process.stdin) - buffered = BufferedByteReceiveStream( - cast(ByteReceiveStream, process.stdout) - ) - with fail_after(20): - message = await buffered.receive(6) - - if message != b"READY\n": - raise BrokenWorkerProcess( - f"Worker process returned unexpected response: {message!r}" - ) - - main_module_path = getattr(sys.modules["__main__"], "__file__", None) - pickled = pickle.dumps( - ("init", sys.path, main_module_path), - protocol=pickle.HIGHEST_PROTOCOL, - ) - await send_raw_command(pickled) - except (BrokenWorkerProcess, get_cancelled_exc_class()): - raise - except BaseException as exc: - process.kill() - raise BrokenWorkerProcess( - "Error during worker process initialization" - ) from exc - - workers.add(process) - - with CancelScope(shield=not cancellable): - try: - return cast(T_Retval, await send_raw_command(request)) - finally: - if process in workers: - idle_workers.append((process, current_time())) - - -def current_default_process_limiter() -> CapacityLimiter: - """ - Return the capacity limiter that is used by default to limit the number of worker - processes. - - :return: a capacity limiter object - - """ - try: - return _default_process_limiter.get() - except LookupError: - limiter = CapacityLimiter(os.cpu_count() or 2) - _default_process_limiter.set(limiter) - return limiter - - -def process_worker() -> None: - # Redirect standard streams to os.devnull so that user code won't interfere with the - # parent-worker communication - stdin = sys.stdin - stdout = sys.stdout - sys.stdin = open(os.devnull) - sys.stdout = open(os.devnull, "w") - - stdout.buffer.write(b"READY\n") - while True: - retval = exception = None - try: - command, *args = pickle.load(stdin.buffer) - except EOFError: - return - except BaseException as exc: - exception = exc - else: - if command == "run": - func, args = args - try: - retval = func(*args) - except BaseException as exc: - exception = exc - elif command == "init": - main_module_path: str | None - sys.path, main_module_path = args - del sys.modules["__main__"] - if main_module_path and os.path.isfile(main_module_path): - # Load the parent's main module but as __mp_main__ instead of - # __main__ (like multiprocessing does) to avoid infinite recursion - try: - spec = spec_from_file_location("__mp_main__", main_module_path) - if spec and spec.loader: - main = module_from_spec(spec) - spec.loader.exec_module(main) - sys.modules["__main__"] = main - except BaseException as exc: - exception = exc - try: - if exception is not None: - status = b"EXCEPTION" - pickled = pickle.dumps(exception, pickle.HIGHEST_PROTOCOL) - else: - status = b"RETURN" - pickled = pickle.dumps(retval, pickle.HIGHEST_PROTOCOL) - except BaseException as exc: - exception = exc - status = b"EXCEPTION" - pickled = pickle.dumps(exc, pickle.HIGHEST_PROTOCOL) - - stdout.buffer.write(b"%s %d\n" % (status, len(pickled))) - stdout.buffer.write(pickled) - - # Respect SIGTERM - if isinstance(exception, SystemExit): - raise exception - - -if __name__ == "__main__": - process_worker() diff --git a/backend/venv/lib/python3.12/site-packages/anyio/to_thread.py b/backend/venv/lib/python3.12/site-packages/anyio/to_thread.py deleted file mode 100644 index 4be5b71..0000000 --- a/backend/venv/lib/python3.12/site-packages/anyio/to_thread.py +++ /dev/null @@ -1,78 +0,0 @@ -from __future__ import annotations - -__all__ = ( - "run_sync", - "current_default_thread_limiter", -) - -import sys -from collections.abc import Callable -from typing import TypeVar -from warnings import warn - -from ._core._eventloop import get_async_backend -from .abc import CapacityLimiter - -if sys.version_info >= (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -T_Retval = TypeVar("T_Retval") -PosArgsT = TypeVarTuple("PosArgsT") - - -async def run_sync( - func: Callable[[Unpack[PosArgsT]], T_Retval], - *args: Unpack[PosArgsT], - abandon_on_cancel: bool = False, - cancellable: bool | None = None, - limiter: CapacityLimiter | None = None, -) -> T_Retval: - """ - Call the given function with the given arguments in a worker thread. - - If the ``cancellable`` option is enabled and the task waiting for its completion is - cancelled, the thread will still run its course but its return value (or any raised - exception) will be ignored. - - :param func: a callable - :param args: positional arguments for the callable - :param abandon_on_cancel: ``True`` to abandon the thread (leaving it to run - unchecked on own) if the host task is cancelled, ``False`` to ignore - cancellations in the host task until the operation has completed in the worker - thread - :param cancellable: deprecated alias of ``abandon_on_cancel``; will override - ``abandon_on_cancel`` if both parameters are passed - :param limiter: capacity limiter to use to limit the total amount of threads running - (if omitted, the default limiter is used) - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - :return: an awaitable that yields the return value of the function. - - """ - if cancellable is not None: - abandon_on_cancel = cancellable - warn( - "The `cancellable=` keyword argument to `anyio.to_thread.run_sync` is " - "deprecated since AnyIO 4.1.0; use `abandon_on_cancel=` instead", - DeprecationWarning, - stacklevel=2, - ) - - return await get_async_backend().run_sync_in_worker_thread( - func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter - ) - - -def current_default_thread_limiter() -> CapacityLimiter: - """ - Return the capacity limiter that is used by default to limit the number of - concurrent threads. - - :return: a capacity limiter object - :raises NoEventLoopError: if no supported asynchronous event loop is running in the - current thread - - """ - return get_async_backend().current_default_thread_limiter() diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/LICENSE b/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/LICENSE deleted file mode 100644 index 11069ed..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/METADATA deleted file mode 100644 index fb2a285..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/METADATA +++ /dev/null @@ -1,308 +0,0 @@ -Metadata-Version: 2.1 -Name: bcrypt -Version: 4.1.3 -Summary: Modern password hashing for your software and your servers -Author-email: The Python Cryptographic Authority developers -License: Apache-2.0 -Project-URL: homepage, https://github.com/pyca/bcrypt/ -Classifier: Development Status :: 5 - Production/Stable -Classifier: License :: OSI Approved :: Apache Software License -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Requires-Python: >=3.7 -Description-Content-Type: text/x-rst -License-File: LICENSE -Provides-Extra: tests -Requires-Dist: pytest !=3.3.0,>=3.2.1 ; extra == 'tests' -Provides-Extra: typecheck -Requires-Dist: mypy ; extra == 'typecheck' - -bcrypt -====== - -.. image:: https://img.shields.io/pypi/v/bcrypt.svg - :target: https://pypi.org/project/bcrypt/ - :alt: Latest Version - -.. image:: https://github.com/pyca/bcrypt/workflows/CI/badge.svg?branch=main - :target: https://github.com/pyca/bcrypt/actions?query=workflow%3ACI+branch%3Amain - -Acceptable password hashing for your software and your servers (but you should -really use argon2id or scrypt) - - -Installation -============ - -To install bcrypt, simply: - -.. code:: bash - - $ pip install bcrypt - -Note that bcrypt should build very easily on Linux provided you have a C -compiler and a Rust compiler (the minimum supported Rust version is 1.56.0). - -For Debian and Ubuntu, the following command will ensure that the required dependencies are installed: - -.. code:: bash - - $ sudo apt-get install build-essential cargo - -For Fedora and RHEL-derivatives, the following command will ensure that the required dependencies are installed: - -.. code:: bash - - $ sudo yum install gcc cargo - -For Alpine, the following command will ensure that the required dependencies are installed: - -.. code:: bash - - $ apk add --update musl-dev gcc cargo - - -Alternatives -============ - -While bcrypt remains an acceptable choice for password storage, depending on your specific use case you may also want to consider using scrypt (either via `standard library`_ or `cryptography`_) or argon2id via `argon2_cffi`_. - -Changelog -========= - -4.1.3 ------ - -* Bump Rust dependency versions - -4.1.2 ------ - -* Publish both ``py37`` and ``py39`` wheels. This should resolve some errors - relating to initializing a module multiple times per process. - -4.1.1 ------ - -* Fixed the type signature on the ``kdf`` method. -* Fixed packaging bug on Windows. -* Fixed incompatibility with passlib package detection assumptions. - -4.1.0 ------ - -* Dropped support for Python 3.6. -* Bumped MSRV to 1.64. (Note: Rust 1.63 can be used by setting the ``BCRYPT_ALLOW_RUST_163`` environment variable) - -4.0.1 ------ - -* We now build PyPy ``manylinux`` wheels. -* Fixed a bug where passing an invalid ``salt`` to ``checkpw`` could result in - a ``pyo3_runtime.PanicException``. It now correctly raises a ``ValueError``. - -4.0.0 ------ - -* ``bcrypt`` is now implemented in Rust. Users building from source will need - to have a Rust compiler available. Nothing will change for users downloading - wheels. -* We no longer ship ``manylinux2010`` wheels. Users should upgrade to the latest - ``pip`` to ensure this doesn’t cause issues downloading wheels on their - platform. We now ship ``manylinux_2_28`` wheels for users on new enough platforms. -* ``NUL`` bytes are now allowed in inputs. - - -3.2.2 ------ - -* Fixed packaging of ``py.typed`` files in wheels so that ``mypy`` works. - -3.2.1 ------ - -* Added support for compilation on z/OS -* The next release of ``bcrypt`` with be 4.0 and it will require Rust at - compile time, for users building from source. There will be no additional - requirement for users who are installing from wheels. Users on most - platforms will be able to obtain a wheel by making sure they have an up to - date ``pip``. The minimum supported Rust version will be 1.56.0. -* This will be the final release for which we ship ``manylinux2010`` wheels. - Going forward the minimum supported manylinux ABI for our wheels will be - ``manylinux2014``. The vast majority of users will continue to receive - ``manylinux`` wheels provided they have an up to date ``pip``. - - -3.2.0 ------ - -* Added typehints for library functions. -* Dropped support for Python versions less than 3.6 (2.7, 3.4, 3.5). -* Shipped ``abi3`` Windows wheels (requires pip >= 20). - -3.1.7 ------ - -* Set a ``setuptools`` lower bound for PEP517 wheel building. -* We no longer distribute 32-bit ``manylinux1`` wheels. Continuing to produce - them was a maintenance burden. - -3.1.6 ------ - -* Added support for compilation on Haiku. - -3.1.5 ------ - -* Added support for compilation on AIX. -* Dropped Python 2.6 and 3.3 support. -* Switched to using ``abi3`` wheels for Python 3. If you are not getting a - wheel on a compatible platform please upgrade your ``pip`` version. - -3.1.4 ------ - -* Fixed compilation with mingw and on illumos. - -3.1.3 ------ -* Fixed a compilation issue on Solaris. -* Added a warning when using too few rounds with ``kdf``. - -3.1.2 ------ -* Fixed a compile issue affecting big endian platforms. -* Fixed invalid escape sequence warnings on Python 3.6. -* Fixed building in non-UTF8 environments on Python 2. - -3.1.1 ------ -* Resolved a ``UserWarning`` when used with ``cffi`` 1.8.3. - -3.1.0 ------ -* Added support for ``checkpw``, a convenience method for verifying a password. -* Ensure that you get a ``$2y$`` hash when you input a ``$2y$`` salt. -* Fixed a regression where ``$2a`` hashes were vulnerable to a wraparound bug. -* Fixed compilation under Alpine Linux. - -3.0.0 ------ -* Switched the C backend to code obtained from the OpenBSD project rather than - openwall. -* Added support for ``bcrypt_pbkdf`` via the ``kdf`` function. - -2.0.0 ------ -* Added support for an adjustible prefix when calling ``gensalt``. -* Switched to CFFI 1.0+ - -Usage ------ - -Password Hashing -~~~~~~~~~~~~~~~~ - -Hashing and then later checking that a password matches the previous hashed -password is very simple: - -.. code:: pycon - - >>> import bcrypt - >>> password = b"super secret password" - >>> # Hash a password for the first time, with a randomly-generated salt - >>> hashed = bcrypt.hashpw(password, bcrypt.gensalt()) - >>> # Check that an unhashed password matches one that has previously been - >>> # hashed - >>> if bcrypt.checkpw(password, hashed): - ... print("It Matches!") - ... else: - ... print("It Does not Match :(") - -KDF -~~~ - -As of 3.0.0 ``bcrypt`` now offers a ``kdf`` function which does ``bcrypt_pbkdf``. -This KDF is used in OpenSSH's newer encrypted private key format. - -.. code:: pycon - - >>> import bcrypt - >>> key = bcrypt.kdf( - ... password=b'password', - ... salt=b'salt', - ... desired_key_bytes=32, - ... rounds=100) - - -Adjustable Work Factor -~~~~~~~~~~~~~~~~~~~~~~ -One of bcrypt's features is an adjustable logarithmic work factor. To adjust -the work factor merely pass the desired number of rounds to -``bcrypt.gensalt(rounds=12)`` which defaults to 12): - -.. code:: pycon - - >>> import bcrypt - >>> password = b"super secret password" - >>> # Hash a password for the first time, with a certain number of rounds - >>> hashed = bcrypt.hashpw(password, bcrypt.gensalt(14)) - >>> # Check that a unhashed password matches one that has previously been - >>> # hashed - >>> if bcrypt.checkpw(password, hashed): - ... print("It Matches!") - ... else: - ... print("It Does not Match :(") - - -Adjustable Prefix -~~~~~~~~~~~~~~~~~ - -Another one of bcrypt's features is an adjustable prefix to let you define what -libraries you'll remain compatible with. To adjust this, pass either ``2a`` or -``2b`` (the default) to ``bcrypt.gensalt(prefix=b"2b")`` as a bytes object. - -As of 3.0.0 the ``$2y$`` prefix is still supported in ``hashpw`` but deprecated. - -Maximum Password Length -~~~~~~~~~~~~~~~~~~~~~~~ - -The bcrypt algorithm only handles passwords up to 72 characters, any characters -beyond that are ignored. To work around this, a common approach is to hash a -password with a cryptographic hash (such as ``sha256``) and then base64 -encode it to prevent NULL byte problems before hashing the result with -``bcrypt``: - -.. code:: pycon - - >>> password = b"an incredibly long password" * 10 - >>> hashed = bcrypt.hashpw( - ... base64.b64encode(hashlib.sha256(password).digest()), - ... bcrypt.gensalt() - ... ) - -Compatibility -------------- - -This library should be compatible with py-bcrypt and it will run on Python -3.6+, and PyPy 3. - -Security --------- - -``bcrypt`` follows the `same security policy as cryptography`_, if you -identify a vulnerability, we ask you to contact us privately. - -.. _`same security policy as cryptography`: https://cryptography.io/en/latest/security.html -.. _`standard library`: https://docs.python.org/3/library/hashlib.html#hashlib.scrypt -.. _`argon2_cffi`: https://argon2-cffi.readthedocs.io -.. _`cryptography`: https://cryptography.io/en/latest/hazmat/primitives/key-derivation-functions/#cryptography.hazmat.primitives.kdf.scrypt.Scrypt diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/RECORD deleted file mode 100644 index 21d9b72..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/RECORD +++ /dev/null @@ -1,12 +0,0 @@ -bcrypt-4.1.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -bcrypt-4.1.3.dist-info/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850 -bcrypt-4.1.3.dist-info/METADATA,sha256=Mzf-svUbPFwGqzL03yuWAqEw4WjgdEvCaPhBaqVKWTA,9468 -bcrypt-4.1.3.dist-info/RECORD,, -bcrypt-4.1.3.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -bcrypt-4.1.3.dist-info/WHEEL,sha256=HhiCgV02gAkaqoDcZkQ8rwOaWUSYukWAfE3V6ni7vrQ,114 -bcrypt-4.1.3.dist-info/top_level.txt,sha256=BkR_qBzDbSuycMzHWE1vzXrfYecAzUVmQs6G2CukqNI,7 -bcrypt/__init__.py,sha256=zTtuqGGQxDgxcqm1f_0UbbPS6uCl-WxL98gSYDMSUbw,1000 -bcrypt/__init__.pyi,sha256=ITUCB9mPVU8sKUbJQMDUH5YfQXZb1O55F9qvKZR_o8I,333 -bcrypt/__pycache__/__init__.cpython-312.pyc,, -bcrypt/_bcrypt.abi3.so,sha256=HVklAhUBi8JqxlswhT4NkPkMVPF6gotjeUtSyTajtPU,1249144 -bcrypt/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/REQUESTED b/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/WHEEL deleted file mode 100644 index 22abfad..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.43.0) -Root-Is-Purelib: false -Tag: cp39-abi3-macosx_10_12_universal2 - diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/top_level.txt b/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/top_level.txt deleted file mode 100644 index 7f0b6e7..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt-4.1.3.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -bcrypt diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt/__init__.py b/backend/venv/lib/python3.12/site-packages/bcrypt/__init__.py deleted file mode 100644 index c201934..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from ._bcrypt import ( - __author__, - __copyright__, - __email__, - __license__, - __summary__, - __title__, - __uri__, - checkpw, - gensalt, - hashpw, - kdf, -) -from ._bcrypt import ( - __version_ex__ as __version__, -) - -__all__ = [ - "gensalt", - "hashpw", - "checkpw", - "kdf", - "__title__", - "__summary__", - "__uri__", - "__version__", - "__author__", - "__email__", - "__license__", - "__copyright__", -] diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt/__init__.pyi b/backend/venv/lib/python3.12/site-packages/bcrypt/__init__.pyi deleted file mode 100644 index 12e4a2e..0000000 --- a/backend/venv/lib/python3.12/site-packages/bcrypt/__init__.pyi +++ /dev/null @@ -1,10 +0,0 @@ -def gensalt(rounds: int = 12, prefix: bytes = b"2b") -> bytes: ... -def hashpw(password: bytes, salt: bytes) -> bytes: ... -def checkpw(password: bytes, hashed_password: bytes) -> bool: ... -def kdf( - password: bytes, - salt: bytes, - desired_key_bytes: int, - rounds: int, - ignore_few_rounds: bool = False, -) -> bytes: ... diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt/_bcrypt.abi3.so b/backend/venv/lib/python3.12/site-packages/bcrypt/_bcrypt.abi3.so deleted file mode 100755 index 3552219ebacb9c4a5dd7fccecade9c350f0ed7ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1249144 zcmeFa4R{pQ6+gV2WRndf%%TZKLmxiaw)CvDng$4NS zLa*_^I0oVvh+`m*fj9=@7>Hvaj)6D^;uwfyAdZ1J2I3fqV<3)!I0oVvh+`m*fj9=@ z7>Hvaj)6D^;uwfyAdZ1J2I3fqV<3)!I0oVvh+`m*fj9=@7>Hvaj)6D^;uwfyAdZ1J z2I3fqV<3)!I0oVvh+`m*fj9=@7>Hvaj)6D^;uwfyAdZ1J2I3fqV<3)!I0oVvh+`m* zfj9=@7>Hvaj)6D^;uwfyAdZ1J2I3fqV<3)!I0oVvh+`m*fj9=@7>Hvaj)6D^;uwfy zAdZ1J2I3fqV<3)!I0oVvh+`m*fj9=@7>Hvaj)6D^;uwfyAdZ1J2I3fqV<3)!I0oVv zh+`m*fj9=@7>Hvaj)6D^;uwfyAdZ1J2LAtsfgNW)JC|ZInG?~mWc=@f|1%L$WvXFa zy%fI-5=^Gj(%T%9Z(~uhKRzmD_|x7kh@$_fiv5+AdS)!}XfJqltj|Xc;m`o>vMP+de^(&UQ2tZwA6e51GDa*UOMakvN?$ESYPc;ygu<_UWVSk zzrGnWOUvd>ojrr+?^s`(o7ZRU$J6PZXiop@46@V1^dxe~LWa`PV*71&LyAssJ}s`p zJJm`5Q?+E^ZBF|re0P0wwfrX3XM~HOCj97srKR^xEiHd=_C0g%E1m0^cOHCmHFy?i zmC(DfKH`VPdS!T)mUg6**#4@1j<=Zwyb!$`>oZivf~BR?r+TKg$9BZu_>H{2)n=ZD z-oL*-&&+uq@cQz#67+7Y zuWPg>9*EX=PdO6?9qSvf)%RPyza8qk=)C%-&6z!W&i#6H$NE}>9KHp520V@MY0X4a zOG`Dtw3v?d&D_lE>l-cc{q+%Fi1=Sx>T-@9<0y7UWwIt|eL9!&_nHy>o!~OUmX3F7 zGpj><(Y(1+Ju`1Cy=U6I2j_bFOuc7T|32klfGZ)AIgBZ$$*6L2LW-%cp~C9K6jPuR zVC#}%%0`{kD%EYf81Z24z^)Wi^Bl7YLDP8rr@s++q5o9PNIZ>v!7>0-g22dtv>UTEgM7E>KM>=O$b<|pO_>c@+XNo3A4A!BNtl>)-Z22na9N)77I zkh?12O%>&&-lBhtwLUMv9zxGbDuOa+Smke0<=aD2d*z#1<@QPT+wHea81Ix$Ii+*$ zEuBf-q_uPcEjgvPMCncS+cJwu3g!i>wt90#xkqoYYM&?DB^`7Z9B~RG-V>$$F6pHD zFXVDbr__abiqc*J=T7?+`(5_Z`m&nw>X}NIzoLH=Md?$5VZwM(I%|KOOo3w6Nsrqp z?GgPCT1}oy@vxaZ7m0EKRo+CEqQh5&$BT-k&kM;WVXeuH5?4`^*Yi}*08tugts{Gz zBQFx}&yeQGI~mRu8yzjwwx}#_VI9odrCx(VRRK>=v2mo8+Gpil(tt#lG=u{W&`at? z+0jBRKNsFp)<;Kg4TJyo38Md4Uoq0)S%_YUa*C*=nZ$xGL}Bz7G-!6#luH%9P8BYQ%zvY~_Oq5O>usp{hI* ziMXV(hMIyKs78?A?s3X(UCho%(CM$wcKXjGc6WS3LE$d$XfSe{@jmha5S+vh+tE9yZkj;eijVFmaMc#uHIJAxaC7BIdB_b%N08**=lDN|bgJSE0&E8Gs0Dll^TsdMy67Dc(t79-(?DI_#9b z0x3^>j*&8WNG+SjXk4iL2}^AhrAC)@Sd>0cCnLq_A7=8TI^`u+^-_A3u5e3BtWN1J zTPTP&ME_Z{rqeW)f&r_rE>Jk-CRFyu zsGFt_k9cz3Lxy=T1sgi0uU*nP^}shYR>$?0MpgG7?u;}7SesK$cICE-1$*c9a+xF4 zv8DH*C+7W>sLP8Ik{BiRtiG>MA7y*iMxy1gUS&9_()KBr8q&w=>s`;=LZ$H#r4ynu zu=|W;Q%UIhf0|6~>|4h8x1_#3hUNDUH+edV@=|L_Xzf&s>AZA#Nwz4D$`R$FEL2QV zaRW765@})eF=3!s-k+WfvT-y+=IkZ9#8H z1_*Wj{U6E~+FATT@+BM0$K=Z-41-a=oG-t}ewX~V0-q#BhlYEQ)b0yp%=!bPe3IYy z-OW?4h>^wN%c26jE0dB&>3+VTZXZmcCzpRT#}PkbV6vRjd!Rz0ax8{KsJ@MH*d9@VHkS55nefiuGGYJjG9mwxozMvU0UOowk*lE9lVxZRr0Tg* zj0Bto4c=Clv>21jj3$@lZ3g)T)H?}QX$!{B`8tC1=L@HZQc#q}WVxhim@>+3G&8c9 zJ&R^`jZ;OXu**HkCUurzF{xjH`59l5B)F!_dGx|Zqc5=Tk}u1ykinOqGsW02(k(m34p`)1?~;XVm+@Wm9F7$-5X+Wi!zUKy??K^IoJW zCx0WMBoA@P=!87YI&QvanwtNEq6gcdyzDg@w*esUe(>AJIR=-yO%weG zzY&$W`DMcA0VtGsY;7l*FNGzyx8Ucl<}%?vBAI%;bfXB+8H?B^`WuQwf8#e^P|`b1 zWy0LxaRh>8PGL!-Sg_NRCFbtL%$+1Ew0gX1Kz7JH4RgU&{-XL281NlLo7C7vW1G(tp4pzl)~)X56^ad>f@u!mzhrK zT^b|FTPsQvi8!l8#apW;Z6$?kMzy=@kmn|sytoEcuQGWG+*O~6Qpsx1XrcOLP!h26 z)2B78e6E&IlT`ts@^_RZ)rYTkDOddxGLqqhC}*Kfq_qP5`9gOh*Q=ZyXJh0`nlQaI zQALUL2RJT+$Rygt~LHGPFOYR!TqdQ;W%MK1U+Ko%^-Z z|82qpms05sO`q(0Zkf` z+ZXOG^eo0ce?##AWFOg>G{BIZVQCFzRrfWbt8z&-tu4HOum;Flh57=n+*VhCT7EG> z0w7${QT4`XM`kpQQHDb6|CpltG58^>0Y3=t4_ax_-qgKMk4Az-Y z37g^|IpmVn8YuxqZcv|rlx7-)p4z!BD(H@@!vIj2Mhc@F;Dpnpmfyh%=k#QYiLV!E zKEiCol|wnjB`>uxeW-a}FH&tZo#^K%r|Cp_0c{1Fz@x*XbqGL4Qy_%%tb73WM? z2bT8;s>x}AYR91>-{Ij!zU{uEYVW7^O{86i??)bZK$PbM)wHx05E_}O*#=gnp`H_A1D)U$_|?8cXI;$HYAn_`z#fZiDg3ABC+QZ z$07TsB$OBBM3=mf5Qd3u-Zi4UkReR*9wJ#V2uOCDPZ4MEm9WnCv^E7vpHR;v(|9jr z2rG)!55|iHZwkxE1JNbb(+rrq-TRZgfP?;>WLkUz*vn=9LRdBkpfrrOnnO=ejMBS{ zLs*;C+v#sB^mfbJC7O2%%dSI~vc}O?Q(@>Alu4eQHBwkxY%vXu2$fGzPt1GV%5A;P z&Vmy{{Mjd&dVSSXh3spiA32P_jRPOTh64vhWpD_zn z$4~%l=rW%WmPx4Plw^O<0dpCRJ!ns zi3m_96jzT<6{T@Du`vZ*1V^@YSXMwL*zEpu3G;GX1xBeX{F|06!AXEo5xeJ=gC)k5W zZN=5MC7My~IiYed%Awi>yZ=y|-T#fv^E~Ccq1uy(F>L!*s9c8(P~8%>=Dd%Bnxsq6 z7ffZNZJ~a=outr}2=F0eqY;`*<07n`l8LcB8}WD<1^gZWx|QPINiM8I7Im6(sX4S>e<51(pM=r{?a)NinUZcOah$ue- zAQa>kiAPo}Iwevu~tTnKSZ+P`MKUjpkoN zP*mo919Oc~ITf7(12DltT(FDF81QOys5d~-vB9Av0J~7nKpUpeyXX}UUBbqKu*b*Z zC{m!yPE zld!xWVsDm{28jZu_;mAy7D(NQ0q^qj zz`LRYcs-#mXEAGK!5-n^TS@Y5`0HQzpG#^IPaPC@9u<`yw>k?x7W`u%NZitw?Mn|% z-~ReUVcGMPRLYQ_YTBrJOYv95xEuzW6JM+j>(2HB@Awab1aG?pV|-gzGfLhzD8U{$l3hS|*E0!1)!PUW zfc{KCS_}ZMD3*2wk0!9Tt23aH)(e%FvtDcy{KF`qh-PNM9*Gw!Anhp%98a>N2X^ZT zfPMl%F_?;~J!UhO!3nN{2El(dvIh<(_zn)WGm#x04J;Xes`@zrNuWFpn0Up(;{XJ` zW4f_2*UTz<0m*30cd)OWO?FUvG-&f&=5{R|qWPZ_nJ^o2n=YDfi6oJb|1FRI>jXW% zfX6T6@%7R8UMxQIgIh^N!UEi&MtDpSvS=}%@v@_M*+yjLGwY}4sIAOCEGM+#2DP4- zeT~%yU3k0tGLPAe7?-qz^8B91G_gFal)_`~(p%iFE=*wET7(#v^d6O(#bZvedRWbq zc#KUi)u1{M!{{|CzcqW@WN0Q>CN9SE%VBdVOGbhW=9}?zR{}H;v-e67jNn(z!m`)l zC@riV05$1cp{Fw@^TALJWo*YIjNQl~}~C zF0S_ODXuQTPS@g9LghltBK8egC`;>VM>Uq*HEygRmfwO>=tA#)&||(x9joAi0^@Tt*T-@J_Ydu5UEZ=}pey!2#~nqhhe7 z54MVO#MF9M>TWT3_)2H6rH3=M)gJt$n>)4MnYzy&JZy8Pe(V&sv$a3g?8TDDtU80o zv&$%SjDclEGf||75_IA)@W}d}iX;P0KGNemAwCU|o#s8+p~rWQMM_YQPeXn~&;O;z zrz76b!{_z*E{Hc^caJtk$j{@dk`Ig9jK!T&dfD5nuxtIo!jY+Q2dLB`^{^ zU~{FuFA7_++^B;UDImG>kBh-jb{PUESf6cZJBkjW@@l>9u823_B2$mQ2=NA7BTO?&cmpo%dVF`p8*tHAkH0Jy7d`d(9>{ONMHfB(a>N^O@h!vwgXapw8*p(krB}4qk?$w|mn8HeGgsK%VE7O`Z zs6wy}D8g2nu>3QCAr|ZqmY+hvj``ewsHb$=e<0DB`Maj08+X_h;5EH$1 zW0mU@^flbBvKrSAFBFdJkR2uzmwC6a>~l=Lz@sbE1gs4eDk7YTABRX}(Pl!Xz9pm}a}`nP-&JkmXQAS3lOSgwmb*kX00?zN{j*@dRE zQBv`sZ|%^yMpYLN!fJMN5*a564^9cw{B4-;L&svwqA{7OXoRkQuDzDKQOn$D zEwnymn^~d1Qix6|hW$XT?q_Za z;d|@oL|pjpIy%S}zN3!L+l6nf%b>@Yx=eZ$*L9;uVcjM47*t0SR`|xcOX-nQ*PR}{ z>Mo;4_c~h3g)gqVoE~X)SJ1;!*AoxX+)8%P20LM9D*9wcpU4OWdmOCo{wSOf*sgwcn&ojI1~VXv)v90csGBKD_O4cU;+@&|M8kgW;gJ{E&o!hsTp+#U{x9E+ z0bhJcoBPUWtR}GWpl=E*17AbmH_(tp#v`c&CQ-G)5rRH8@E=IQmcs)#14N~yg;^=s z#?%+;#lHqBm4T1(9A1{gy;skne)TI@_!ozu0l8Jr)wSlzt=?h4e9OtA0ZHD=MR`Fs zcB6Ap!6TJuoW>=5S>;w?MId~MA@P1n1R*oXz}n1p!MLJ`wTIGvDSGLW@3p$*IWQD! z``*gHi~NR)u+vcOXl`)qgsSwJXNag={w%X$GZzU9P%Xnp&_szp3? z09$yFox|9Uz%t@&X*c9zA8}_Gt~+;9YHky>odoQ@kgn$u9F?DuD^fj{Rku?9s(s$> z++8VeU$`i5D~xw$;c+;ae32-oZo~G^YUbZTYZkZE!2DWh^JuUg zg}j6gY(gG%NvECCUbWljFy^7f$t0t58--=$m?Q;Hy$@+FRMHYfEWpxe9Rl`-q?AJc zX|tz~2%in1@=q+TIK_;}1OhpdAXI{Qkg+%=p-?n8m8XWM17LI0yb|nzVBeID!^l6N zQvc#w6C9yvN1Oh9BG!~us}RC0Q3rFYQ`!-RapMDw&?-^FcJKn&A;y!-M!tdlS>@$_ zf)uEO=^o3F6tLtbI)SOq{vyf5T!IjLhl6g8HvKrHmj3RQhOh(0` zGO>0O30Cz=6lB}6yw_QnTv>M%TEf-2VhsiOV_702jM zXVh!%yw}xe$f*=zl4%nK|4SG|TI%@EWea{X6N552vj7G>k#=kz{}gZ9Pf(FQ4ClR7z(1b*Di?>emlY#EfP)rhT@Bs@u!73iZq<)Su&& ztzI6a*R1{&5yeuQ^!{$u9%+PE+FPRXO#Xh%jLI4Yi%4Ar?d}^!*4h#GPn}UWbMCxx z_ScK3cfrHipxjh!D(zQy;0QL*M+(0^vcvlc?b+I2pD=I6^t$`z%$#B0NF}t|HGc_b z@CYjp8r-k`nw4*K20usnx4oY@r8m}l?(xp4D}Hd^H2Z6Y(ouV$7(9UTV(NA(KMv)| zQvnLLJ@OW|G=v>?;cYvuMO&VpB#=^eTDpqV+ zolV|iMvsQ+*iQnjxq2W)xWX%h4?Ua*C(9Q!Ph4{z(2%T{8SF_ATAeC;YDnf{gi0z4!+k-PH zm0D=5nu{PWLfgTK=x=BwF*~%)Mn@CjSX5Yl5!FKeQ#{Jy!+SH{_wskB5y6iMPkS+} zgzP&@>V=+szYo*ecwsG^G}B2giqn!RAPgfdXexk3GPF9y@+t*v2)sf8WVO720Gen; z6SVgOC=ezP6iYtTI0RJ$7jsx^k&EpE;n|GLl)D94SRWWt*;G0o6ZXVfbtQZQAwtJP z�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�qr}_`%R=eXK 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�}`&_TH-&Ivm`NAG6A-7XqI zd(FKS;jOgJj~IO6Vd)k8DC-1YCr0a2dZ4*I?COoyGNG#$r0Z0WZS`>{Bu+$`cYe%A z9=8eCJ;a0bZ}l`;-6m!`RNZ{^W^M((XU`lV3udq726l^UqW%`%U@%u;IESzmr2Zh- z+6s^6y%16+v}iw$mz~@0LcJ~laG3v=2*X7JZr3iy`G($Nwcz0J*2 z%*oXpb2O|h{~K<`))_}teT5;ro)DfIagkTx9E~;*mr~3i_X`D_wNt@ z$lO*@$8ov!;1AxaERf~in7R@0NE`&O{4KkOi=qxngYVTN(hnNS&7Ln-F#Hvxg!x7Z z5`e^KFR*=-pKA2Vq8P3JPrlMw_0O`dnSS)LOG}Qijxo9`n331f55(|V>OIztr#xOV zQJgBZWQwRRVF&IgROltI-O}}%PA+>(ucwawgP2PazhtY##tXw#R}&<}-1#@bd; zP%}HhRNvs+s)|IUX7)Tl@r>FceqIx(J}Nf+02lu7LTuoHSfR~BekxKY?h+Z!}JW+Mdwwgp=`JSCY`V>4Bg)k||5 z2UTBYs6SfA5Eyzv@O|oKhwytLk!{XYpOh)f3K&P~)oY}+oR%BTaTWyEH+(65t5tQ( zL-?wjQyo+ILS6@+-ooiWw@GBxwR@dDn-S-O=&I+aF3l)-=PzC3(-u~j-cgX&CJ6^{ zGkA#K#Yt={Qhz%HjT~6Wag)KCf2w+6@Qr7LVfMSA>T|K=!@~?R^`q@0J|8?I#towu zn%P_ZrOaclsn5~Ws)`LDPAiBro3j}=EvP;!KAh<5A|AyDei$p9y-<#Yxdu!fu}BU5 z+w=G_hcav}!AG#0kixJG>CPb*$AE(4c!kmPR^7!sNN?m-aYOOmtDeoxe{pvH?EPg~ zp@mEx4n*z)9kt~?LU4coDaBdm#kX2KBmPHX)?%avW*xs3vsAEmp-r!=oQeh6b8u~k zk7KgxTeTe*S6}A**kdgoitM`Pjj9=0z{ag@OrpAiDAoLD=81_UFhY(NxUFvRq%c+u|K8C=X=7QS8ac9#(Dt7zX-2=-O1uWe3! zitt|jkg1S(A(prrOJT?Kvxx0w?*&ug^t{lzzhz)MfhGLbQ}6<$izZ>@X5CXjein=7=BfszxGJ~fEL0C=y}%{5mWzN71Yil zylxLkfUzA2lS|T_Lb8%4x$KbDcy=Zu%ElHaCdj%7o)J>Yk*^CaazS;ivMDG=^F)lF zqlQV#k+{4#eKOy>#A*J1R~TR7;av`-NBuQ2vIjSOu{^{#5Sza=mbz_$;?wXKhl}vI z)-L&J(+MxI@0YUIbZJqvR<|4@TBk?rKg%~D<|lZ>rkK2>RbS9DUuMe;ka~kb!NZS= z9;^P%Ts2(-OT(!~HSFxrj}>=l<{zqdXbpb$4 z|DIPFk`1L^d8cyqOfw`OBvsrby6r-w|3E7SmRrIaRoBzOk5*^t>U-8p)ws+!Sq%+( zNxsSB1w=HLp}z+pCQ{`o>8v`5q9;~SWb8RkWjm5~On9km#k}u=Y)0u`7lU8<*GMMw zvHeBTcIK&8KSzf|285~=(IVOnXGkL>UTPxh)1=}txckdH8^+-9FQ3~XW3{`>zf*HE zL-p}TaysN~YSuAMHt-|qYx!M~8oQix7sI0WeVIn^>R*f^J%Mbeq!cSBY-soa2zKPL zw^t9!s%cr_B$o67tvQx7p{pB?u1mCy0lQ!7@*uZMZ!(>i%`J1b;-r$+0|mVnw5=0y z@m)Ar$4F4kw+5#?FWl7&#=wO+21mjD>Y>vlCju<&sf~| zdGa2kOmk?qKrym)SI|0qGX0pejIjH!<#%s>Ty_8R=ja}`+Rsb0>R4R$Nr~3O55(0H zNT#*2&IFR*Hf0fF-%p3$JzPhXvcxdQvv=> z9KHy3Wa%_lqL!wA%X3<&`n+mi%9N}*4(nNSx%TD1)*F)qYd6Yh-3fwkYUqI6;@$sy zM*6pivrg;`XS$pLi3nhfq3JwcwX{4pyXp@L^G&~$tjaa6JsTQ-R!{kg{O{JdT(r!x(YwbRp^;tpX)TR+480!3@3cLP!Qu@NvWMF9IcqP!Npmdi4;$Suf{2k%1L9@fPLj0~#Pa zL?~0ag4)JIj_Ru2pxO>)%>Dc*zcs*YgYWIgHK^lxPFbzGF{_o5Mu8sCW^_G~WK?a( zq-b4lW?9=YIa+rQ4{JNFB)z@H5l&kEpZb;ANzeYBsnH{Za+kkmlu&(MdWZGZrQQBH z3nYA8+`QxTnRGdIQA1s9X0CW;9)RWhnw6~^9LxI#ooZCiZNclW+T5VM>c8jkWVL!u z4XvP3X8K_*trrBDNkPy8VYrs=RZGJdI6rC0C22ADL~gHXChgsytNMMaO5xGwN){yC z+CB8n+#BBt-{{X9nGtzo&?-*Iy>>}<4AJ@nB4fs}5abA#elX?@=%X4d2*rKOVYR-zmF~yW`JZD* z=krf<{QvXsChAs%^=E{iKlwkjwHm+r0N(#ySf@5`ECrP5xjr?v?Dy>F+^{_VS^gZd z@8$O6bMeA*j$C9s@_LYwK%HbIGJFyz{LV*L7{@8UJdKd^emyVnWi@;R43(_&LXvR~ z*QtaGf)fexu=vE6_<_rPfA1OV$;^-0q39J({#~Gxf6@CCuvwmH)&W4mcuwN9QVAt~ z=X$h9ne8t&3oX8acmh$lVgjb~O0>?{V`4)X_&e0Yso~8%-~xZOOI+@rEYC*%n!ch0 z1^ae(#rrCm<-o>@Z*Fk$zHbxnyMlP%M&fph{Z=yE|EZG3-@c$~3|R^_8>OuS%W|o8K0+{E{ZPS-KFZ zKPJ)E9TqFuFSv9jcJc0rjHXd*^}YVX9xk5gaD0}1LNY${oy`QWsP3HoyQhl%LfBz-aAhysea{<5J)GY!9D|fT>xnvP?RgEKF-lYL>QOde3;iW>j17Uho8|nZ#`ixX`8_?y6{AGX;Kfc0ZD949K3L zkRBhcm&ncbgdMX0d*%qe5wr2DpVEtKURh_dttk}WT4WXSEP&3oto0!S;@fauC;a;^ z3=N23p#eeu^rC{yfb836^7d#^M~LKkO{QD_`w&L*$7~IP{TAx1h=CwlCyk`GIidnvEs@C1m7l{h?2Gr}*h{FXO)*fQPrdRMzdI4^zF;|TsD zPvTE0|!51i?04StFn1@D?lDR@XuwP@X`tXC{i-9T2& zd7)RA?9m=|IKM~L3tnNIbe>a}W`}q0*O+KJF3_YN9>Dil>QRBM ztB3jKV0bS$>o<~M^?FCPU=^v8zN-CyySxGPRC8V zqiR!T5y`Aw&Tb{g^dkW0rls-3`+4*CYcrAPy&Hse(h^SOJpekgzu);R< zty`LL{{xVzZ0PmZ z>dWKfderV7fAdkCR#uLTuD9zJ@uC`w*8Lat%I98i{q@(5kJf*WAIJfWn$BfXFnOg{ z^xpf`YR%m}NoXi54DxEbois^$f&9BBS$7B3qRMcXCNfv_uKH?h_@2tEVfn``pK}G( z{23zIY>i8(L1%c%I+saJb>lh9byi4cr?}33tTtw>= zhf?2dsO{`CjiZh4WikEZe{eItJqc|ASG(e=9l z7+K9{aqK<)DFzMbd!PV*zmKgA1)a-Srh-^xOFZ&VB<$Jw*;PgVO;u4sN8n?lBeQm= z7xS*23ICnV`!jVLXAbdFUyY>iwup za2Zu%MTYCKzgkHCjiXu;2Wk)C!+wGZg-JQuZ+3@SH>=%wmYK>Ld$N+GGNqw&<&BYq3YGVmWr^?i?Nvh1b2K^XpJ zdbNjMjks5P@T%b3b2+a*$E#&~N1lAw8S%&mWqXw%w+0YFwar!ISt1D-0Nfrnw+6NW zKa*^TC6E%+Ie0$}XYVZ~vBboFvBdNNUSi5%FX0Vib4W5L&v!`XPcg|@;!z0$_7|t| zp}x9y8Y!HfD-=5EaVV+SUw8roP`XXI+-OOYRME%lt+jf%$7J$JYio+L>(R$k*HgW5 zdvWxM2ZVe_t@RpT@0Uzn!*}nf4Qw2$cT!9gc}F!$d8?IU7WQ~jPm)g{4*0bvT3j!# z>m{r!F9GAyFRL0o-aY%|5%&s5Ol;P_8u3r8-~a1~b(7=;;D#bf{^JXLF^%&F=kN{0 z9)BzAM&|ledwYbOl5N|NQ(nPRidojb3K0l53WXczF+k9$5Zs`+Grf(!{UdOMAiadI z)FI=tOUGlu`&)rCJ45a6*>dD%LF(dG%XNGfW!%{p9^IXU|Hq(V|p z_3V~LN6CiQl4n|&k)^wDYjU;ft9E5q?woF~OwudU+$&uPbk^p#Vv^eh^pTQ{w1=Ya z`h!qanydiqqL5o=b=6Lr&u4P;363-$U2*rZ`5>n!bx#SDor{}?!}Y)87to|L_kVmc z>3f8#wJQ&sfbrmH{Y$Ke7kQDpBZ;QtaE<(wST4lu4AAgXy_Wo`u%KoH*=TiU%p-kB z`D5pK++z5hPrJP6~Br6dk*cjHGaXN#qeSKT) zisj@nn-QgWRqcVZ?>ZU%v$gVgfB62YFZ24b%z9RHx){)Mlj2-%eEhI-2dQFGr`JC! zj%(UW`X9JpC`_zOujiYVDy=9D{ah8yG?geW81KnH5VrdQK?HBm3o2Vwnqz75Gqz>4{>Yt3R|_$e)>z+2jn zztTGy?b21aOsUu32JZ&yxN>tgD?Wd8PyQ7E9hWOq+0ZAB+%)*&S=^Lxx9Q zZ0Bjn&ti#`S>=f(rU7vHG751Kkk4fl91v@47!pgQy~f7#yfPBatKcNBj5mnZe8BoE z+Yl>Fdu60ueQ3Hmr6GMl-;qXd>1Y2m;Kc=B{NBa-5!sKWhB~8(D8XW5Lw}Fk{2Ck2 zplw%hGHsIzHU?WM<*td9HhN_o)@{V__9GwVK=roQxB^g-^(h2ZtL2f45)?KW%kiyv z*=zCA_xOv2TVrrK;77K2PknJj{GIg&8tkgv#!BgJEwJ&* z4tS9ju?W-JhV#+&ivHOGR9ajCy>^hIte+Pp&G?e(!eLxSWxHafo%|*LxF7k@TQ+Qo z_x@K_Ts7Q&HyQd0U&v0_!T=c52EVcKWWQ{`t}`lI@0G&*1r!?R{)$+nEgspV3|x(? zz+fEW8o)kRzyJ<`heCJ=YJeXl8K3!dpzRnhmG0zkT ztjq_99~x#H_>)xzAV_z+Azs$#gBWB#E?pHXvx^U0H)M$!>_yl6pu3!+k@rA0M^_AP zmm3_L0U|U8$CMaBXRMT!>16eME>Kwh^9d*a`8W4obU#1*2!PwoyTD@~l^F;3H>rSe zKsJqj*#^IKw}u8(cotb7i!dSlPo})cK3I)N`>iY>1 zBCq?ACeoVV`Y0{rLXfB zM&U;`dr$r4C!ZN{=r6C;@WZHm4YiRgV(t(u&8Yx_<#gO0aa06cVvk?C!Y3(kWNke1 zHdvM85pU-P5%P%aAY#dDr~A=o3DAs{9f*~_&EI(BHIperk83&WcfJ4dbAE8?5)FVK zNP-P?%K*6lP-P6jhEldWR!R|kbf35hj6X>>L@~(nnGg#6!!RopBLXNmqN``17hnP> z;d;fJR>#V=$4YneH)Ib_{`l-~uCLntbCR)uCCG?p79jOLQTji?4hvY$U{cyHce+5H z_&*SHjtM^kJAXOGc1mNzpjhIiSOTFsbv`32ls=K1y;yX=f!Xm!(3>>Jpz|;(FJ;JB z@G0HLW7e4EjVlJlk}2Z?$*HaJ2+)Lx&^8-a75b59QHYl!<-85dV5RagYYiJ{39!=Z zRJhm6Y6HDum=UOcae{hsgKzylw1{c=iC6p$&-!J+Yb90DY!EtY86M*uhR3CdnsLcA zMwJZxFV>}0BdGzr6vqFOatQ%oTV0Lb23YDkv3#0|NoC;5u;jy@jib%mfXBMt231zU zXqtw_ltSa7Ho-MHby1uP8yG>^1M1z^z>>Bd;*}l5^F3d%*?`(5@i^F8Y}9D|vL<## zY9xC$tdEzG0=6B@bszyPt5FH|Xktit6HiR{ML)4yQ-i?RTv-UD%zvABU@0Tv*J2F_ zu^HiT+T?|CUEY~;umnfnW}Q~R3uiI}6o#!^fz(?AVyr>oV_sk95y zKuT{&JP@c#l0)GU)G_x6O+l8DARP3Gl@Ul)JIF0gK1CmkiKAgViK7AyfHl$_5Ld{*(ifpmry`<1ges!1 zl@@Pj^5B-h440=Y(0&|*5-V-zugU%vZ|O}B{_(Eoe#xaarWCTMN8s?%@SL=1gXR{P z3DXfz?2MP9%)cy)vaxZHk2E%p4&w#l#vnBS$x8SLBL{WF5TM|fyvRdFH4$o0UJOI; z9ZNnS_8_K~e84zF;|i*we1Zn`;uS`jSS@bD){8(cvEWHqRFw=^K zIHT2#O`Wk+EOcrkvXgSjG_403mxLKe0LH2SBw!8DrQeQ~f`o5NWQkjAar^sERrmP9 zHFunw9s~z>RD6c?DQ;y3BN|ttly8hlULe9B7Ke+Ky&fxtw)R6vH0)uK>xN+E;L+%j z=y4UTHTV}+FQC3D`fsxU8>Jpa+zyR#eUws^e{q5#K&rQtDQAltKW;cFj*i9LxETtL zi4yP2tU;AWkFR~>x3~YHu40+hvBF1fN})QBm@&YF)SK@R5crrksv0H-#vSJWri10r{NwkFuQSR;_mEBl7I}-V zP%hR&hw;dV(kjL7X#+<=0u?mGLp%lX`A!%+*{<^5?)5=7ZEFvG$fREcP1zweibdEY zVjU3ycMxgN9%@Ns58Pm$*Z3aP$dG6g>Q1H{r`R15IfDrsORRHhq2^(lomxWl&qgv} zHaj)M6b6wMN=$EGDp|H!Np#t@<~DM~qbpFwb6E$uA0QqSMHR3Pd$hk^_Fk+MBMv9P zK1B2)nL&-*?XmokZ8yJn#pM?+z=D!f1H;~!poo+e*k@vBTdZuGIa`4KYw|z9>!qxq zq6jwe2p$H54W|RAGdA&d({zy}kj&;-K8F#*$H5}H;H@}YSJ!gV;jSua%;l8Gg@ zo4k|MGhtUe24h36!>FO07EeRQWNY+FU&2A*yk>Dpy1>vi z`GDA%AK91_c6sC?(@O4;9K~SbLNOPW9$c{coWjM9VjSjyw^|laj4N<>E3cg=dVMZl z+GLWpiLG{o<|lf^WJy6P`YSKki{4Xje0tZimO0lf&w9lUI{m0i!ZK<(n&?$%iKc|0 zT#J-tFfke1P%m0=BcuWXi$n`!5y)AdR{noc+BB>ru~m2TAaSS+r*Y;B46haJZZKt# z13O?h58{cJtUV!^D7Fy!H`+i6o~b>WFrz|BI|$G!(G$~}Y>P#vE_S^y^cr_TDyUuZ zs6i^|!x8KgG;bP|$ZL`5<4g=G@IuX9G_#%>ainx)GIX>4)*#lM6(;h=_eS@DBKqu&2i+bTMB+#UKr zJim_yiNk3vtT;{#P}v%MUs?%Jt_%v^#x9;OGbt;{IRv?y*F7#zYkZG+pe!|e5x3=F z78K$TpNaffNRs!^QKgSMGM1b}l1K$)^zpLY@zVYJ3l%(h*6)t~(bymUZnJp~H_P~x zOtf~8BG8)(5FzL$6-`**{?%eJzn|}MJkN(EMfhX_-U0N!H`4^zXE$}ob5!+Pm zFhqYl5=71JsRUxcFPHl{fLd(G<%78^c3hPYt(v%q)USuj< za;t1NB%%zM5PPi~RVhTnbBqpa=QVEw^)cLewEUAbJ;&|SHxN){n7Mbjx8mf6TdlSs-pV^5c zs_;EHaXZBI3}J*XJO86xp=P!Oa;}(m(%*mb!!K^UwEpNP&Y@R%8DYOt!jWa*8uJ5J zS%G-jRv!)on#_$Z}hN%EP!Sh3i-;D$Jm zi$oYDD=Xg$rV-)+L4=ILiH>%M&j=6t*=x?eZdmE5=b2;d1HlbxXM94QYn(VL04)!h zmvlp1ekdTZKI^>R7mMsNX(12k5SD`wKn5QGc-Ohg0TDFY;bW7O2KpO$3x~JA^xe-l zUHjo}=f?FTve!9*y4=+ug681d)eUlA%Uz9E5_DOG-5--f6?_%5hFwXyq)V_;1$3!l z#LGI&L*9XlCmsPWAmf$((rtfz;GyG>88%5jBIvxTLC0zWZUFox3S7r@Sy5xY@^(j% z*04-ZNCSQ;XEdS$g-?u39w{U3VHmLTj!8L`y^o#mf;1y-p=ECii^5_S%pexmRfIN- z+u_k5&>tMYoC*0m?|>P;;WCJ`6+%PAOY<8hxdNe?j~_)_tXoLDK<2rbwh#uozTuQZ zsBYK?d6Lf$cMa#?(>&i)rmz<<<8$w8l z*KYW8^2*AiZ!#&d5g` zg}WKz3KbVe&9XIelnaP4II&Vhww|nQk!?(S25dKK&j?bu2`=+ojua5uDhDrHY_~$B zAj*%tW~A`epWYpN-kKF08if?XjVmw`zo0M@^wp9&j9e`YErt6yB5a9C6^5GkhPwng zQh@Yrm%ym6ixlFK9YzErhTeNZ{kb#lHzL5RCN^J!nq6nh$wqeCOY5O>YVDees& zye7039YAYRs~sJ{Y>jbAvyV(&?U`nUFAoW$#W89!gj5wt2glT&6|WTqY_wM!X$%UG zNP(NPKSX5pP4nd=a*+*&nIZxR*vYP>(VP*1Q^BO+{3{|*%eWUJ51E*;Aue!40HSDM zQorPy%TWO3Y8K|B?w|meqY7AL`UxpO278tY#8#k!8w+>GeiGq$-^fVC%rw2j<-`Wx9!2!ywM@Ukm=|N8Pwoa`wI7`BkrgJlS;&Etl!Y!wjsir zfHB&Q4U=YUFzgR8Ky)$dS8e77h*|NPBMk`}H&Ppl)5YBQpbj|<&_p#&tnF3w!=yEK z;IGM`vI0UCIQRp30tIesJ7BMso2YdwO~ES(w6h5 zbgKX%az*s6mt7TsU7A}83mqd(CN@G;Stqpj7kOZ?O`^-jmSK%C@pe{Bm?t1qn&=J{ zgCXWCO~t>zX>$MGKgBj-H!+MiK&zISB&Esit4e8N{L=ACWmJJHxL7>g3Zcd%YXLD4 z?saVZmxe^nxMmG7u0P-J&a3N(ei|E@{!!@mi!Po0Lg!dc8abWgGr^~Zag7hJF&h%I zo7f)~vUn>N$s!+=^+kR%4N#GYK@!StwAN%H z;0{$>k~UGocC6cR&gJi-Zz?QGE=E+|&FZe04A#^0R$NrJ)!FTi2eveZsO2vpLQFdoc3j?n=c=70++ zaMP^p>Iw`sxSYk;$tu1*}nL^jiU(j(=U7v1{hGs3_N zgDiqV%W#GX>`+jkvZC7I06?E@M|F}2j{wl1OKF0|ISzy8U(x}FAvO(NftFA^?ylLW z)g7_YfWNS`Ky(-T{sZ=$%Jt6OaVJ?G~&Qp|-|*a*_A*?Mwc?_!E+KTd zwJZsuLZ;%=f#1pCgA71uM;aLPhyl=54M7^>bLOFtF>Fe?kp}a(S(zP)x??g&?b&8D zs1AWZ1v32PAVRZ!#lZufj#q#^YT3y$+g-od>|mdb&fHg=m0`1Za*Z=3rij^^oCsf+ z7B$aYWj0~P8_5v5%Of@Lp|A}emVc1`nN`<^zOE^~Vt=)uMU zL0b8b68psqqp8UuTa=3(Xpo6~YDNLDzBi%rDMg1ey@DTxIb(i&ku7SY0_XO>t-Gp$JIa% zCVdErf!~K4)&0^B{WA7e*-m{&R(`^)>rgNDq+7oY2ciEx?h*KD>>DjgV=8@Hf3f8F z|EbCyH{3O0?So&@4_zTH-opSSq{X#efw;Dun=+SCrj_*-id)MjhLcl zdJnz|%wssd^Too4B@#ep_zHC5q!2n?Wa@kqM7DG1+^1M@CO*K*p1T`r6pAjisKQBYI-NGC+&J6 zLg+<`C=}A*D1?;@jHL!B%WOCr>4%*7$qygfHTAuFe^8}}G{=?+7s~1H&I^VAstr9B zqnqtM3kTFDp{!*A+ZdjtD)yatA|PVVFmyx_bAVqo5?^RR7`UZuQA4|X5A2Nr<3yGM z?)LczU*dcvqmw_V-TXo9^G*BWNtfJl!^1PdcLajlC_#*9#PI>dC~^f@yyg&~10RB$Nrr&5u-VW_Ya@~dzYA0b7*dMkk$+f-+Kflq ze|f^p)pagJO z^T9Qy$ktF%A`U5(DGJj=&TJq;8={qg3e~L9PGMH2;JSFoY&8=rOU;VaF0E-?rc^p! zo!!AeS>32TVEL3nnX(~IrqG93G+W^tHR6{v5t1`J%x(6;!z5$nm(rLRob?8|pqO_F z6Sl<=CN6eMJjCq;xF)mXvrQ46b;%QSekoiM5>DY#ffO$JiL`@(Okf8Cau6R!jtn^C zhR+@7T!u3Nfgzm5FU7aK-3up2ur5)x2@R3*Ca0fsN}=(FPAN<4DV?7u*y+YbG$CR~ z5VaD9p;n99N7tAgQn!psOvf;3Vv-B`W0c$DvS*#5m44>l*D|+G{Eh8lJRdsqvlNYD zm9@y7qNRvd`4mbI#t`Soj7SF3a{eeeY8Rm^g<6&=dI5xnUkq-GJF6qqutX3|-qI6i zt$J+VulFzGhdEQkK%vd7CGJ=;v>96BIKnloE=!!4O?H}P_(2LsvIKW=dIs$sBTJ^1 z)Llibeqqv#9eZZpiAM~m$=Fl3ZVMV(2n(duiQ$?xE+k;uqD&2r-8|^hIH^et8R4x2 z-a%YW!GRFi0bK<@2OZ^ClEXY}EeH!S!<`}|5ykFV3yKv=zd}>C(h$}jrihPO@5?7m z^i9P1uC)J$XO>5@9NzaLDaj(-!?=SM>XvP@Lx^;DvF&&W7%g~*!GKg{15uK>!vRe8 zDZE4aF9q-pCoM6ZapUh|Jj{ofz-s0oCJQ=0__ed&UU%U+>^QUQ7NRpFmgfUuiaQ2K$+w)syzf40-rb|nYhmmSEK^}yp3P7HA1|#6b zB}`z6jDk%xDL&Y!s9;&VO)imXl8fD9K^Tru8ZbEH;3X5CFU1|_esbo9+uxfrVK!>t zda&08x-bAyI0Jxr+j3CZY!b*7*0O=UH*rMJmhiH|*@#K}eIO#pVf+#NFx%MiNYDgb z)z}JgCM>mE<3WzO=-pVP8g@=kU^4GUD)72~yhT4k0@102X5s^Zu{p%c@lWPyh(`n6 z`6vEaZEE%Ro_^|%lV<$k8|}T-kfL!`!ap&ALGx9x1ww0IGvg1Q0Jm@VN-^Rfm3H8c zS}nh4cE}huLT01cAuxWY!3o=7 z$SjsBK`4YX;qAx+>VxzKw3yH#ZhPn^)ADR2#uYDnDNeX!87ApA?KM7m>e$ncANr{~ zPt^~!3d4Fjm#n69thkM$Ka*4YO?_ZIp{s^u2QIGP&`H>uT^m`jk?Q$o@(|0$FCuIe zB_)iK@a@7;%vXdzW%eFqNpJ-26Y%q}1~I^Bb75DT))>B@Q1^%^ygMt{9Y!M9#XZim zB@sB$DiM~i$BB3=J)pl4mRDR4#H^d$^K&2E^~wN4Od;ACgphNt(;?;yhL{_{3=2O6 zJrTJ$9`TU@%9S>5Q$~={!a)}ctKq-}=~HE3BdS2gf=;)`N?#(rp1FEY{-}S;=zAVn z3+I&d^%VfG031Ts#AI0o=u8FB2M&=vgwH9Co_mr@IS{8)3Bp`Cumv$wWGx_4OatBn z$5A=F2kLYTP-0u2T%|$Lff?K)e_yud#G{w}Vx+l6=ug}e0V)+(EXWnW18HrIRMOJ4 ziGzK1%D}lrHvW%p5iDOgA3h3P4|rn`8tc6$W5*Of*z}FlFUc}LF_1i;h$9DjW>C0Q z)`;y9zN$bRm=x-0hl%L7oVq;78L3!9Yn>|rFQVZagyFmw?}sitYjA_mPO*^5n=svQ z$hdb+kXakfYZA7dvw_{C$w<-tg1C#D1k?;s1%P@3t`Nl(V=6ErJ5&NA+JiyvJ@xp- z7e2deQ*%r|gkg|`nGMcL2HJRLjrk}hP~!4!Pt0e(9njo>Po1bQvkB#j1jR+FPIpy7 zme)Wn3G}%gvCxrQIMmko$Oe8+_8D`dhTy816W=#}CoH?MHn z%S4r+#A>U?_$s|hm7!N~)fjE8jL5}y+hN1Mve_a`UgNKYm%MXe%LR|z@$B^$UIMjC zveL2ka+&V?Bzh8&S;x#zH(bQC^%CQ{Xtpnl_}ufTP%#;%FsOqZt4$1#xet zjj=ct%Muzo7*FiNwlV!3qcu&Tx9p@TW5<2}&;D{A+T$G6>v1 zkonrU0={1KoGZT24ra1_O2qmt$aX@_=P3lZ&gkPf~0@;g|S{@_z9|`G9!hn!)kJtYMsY)=A{NEGPWZ zf0H@ST(%~P-9*|E@2J+PE4vQ6EB`?B@m`G=^eh#2Z(pl2ne?qbCXiXVuXR!H z^5~D7lNEojZR^(<^eS(B=d_A`@09mz8Z+;#3mJk167H26pSrRCfUcQD>*lQ>pM_Eq zeJuYsXY?trC|k34MI=0{$}*_GXx&9hb;2PZQq;$icW^9wPOPM3=gO@HX*3)gx+c)(Z%~L&@7(VHz zCoRqUHy!hD?nz47I;b;#aMSB|7OZdHy=l<7dUD{7n@2ajeoev7=9e}N{k(hk(dl}3 z|C}W?uFmZfn_j=XU|;i^O@m6pH|B>=rs>J9=F2zr`m~<(N>xX=jiC+Qz)`B1zkFY3aGo9CBz zA`;>?@x+#Ksq;4jb707A52$odKNN%t)YLrdj%WF|f`421w>7`M+%T!0XOLuULiE08 zNXNqIWWf9Z{~8(FD}3(a-*bH5#6K7-8r|FYgO_@#o?Dw%mPI>?nr;{vT~pNj`^pz1 zP36NkH8%gH^2I()a-46!kz5Dyh&7-WAYxv1cKs!TNm`Zf->YrlvP^wQ@!-i|tI`z`HmYp~0SifXnB zwux*Z<^xA&i#btSVue3`)uRXYGR%Q5_b+l=PApg}wyO$|o@_84^wES%;ozO-dct4H z1|u7%sK>0+95+&>X8EK=^lA?lN9#wyYNYiNQk0C>l-KU(cEq&h*4gOtb-~;rRM@be z_z10)tv~4=CSJSX7Vcy)C5&)1e_{ew^4FqFo*iHK;ARIp=^$NG3jK0S2{gkL!wnti zSdT1RHsdW)6#3SvU;}g&zxDv*y-n=7aQ3{=i1rf01;aw&_BV@UJjD{TioL?gi?~go zBvyzRNnF#9;Kc3G}K@V2of5H<%Wz5#!`dH~ra2E+4)k+n+AG`&9i+FqR} zh}X@&_Vk-?bzjc9O<%q~``Qz$!Y`-a6FwSrZ}??sB78Jxe)wh7fAIxZjGyvBsW|Sv zwmwZeW)J&*?;7|;1a@~q@1`BM^;py1^!4h3)y+#bJqx3=V>i4uoUFDa1927RhZU~u zT^!bUy}F>a`Q1&=sfJDnSq*XAu*Sl$#&x~>HSM@beNdyV`B7J+En8z+R}CdI(V(vD zJvgkvs9KvE2f1NMAX_J5$YCc9xhkW(s>AqE z=Gk|wYJPLmI@K!9))H$E`)adVcQd?cO*_sCf!5yCc#P|)U$)A^t|}7s5%~Xgy{Cs& zfWhkKUYlNm+#edO8aK=y{*dGV856onbS1$hN~!ae8(9KlAu0j$ zewlv<`S(tosM`cV1OzJ`#9`1SFrYg;@3^%pmNw6x^FIGJ@$YTw>~1Qbea9yK*-6P7 zec_~U#RA0A06rIvOZ5!A)QNxmmP6pvdNkcIG@34Ix};b1Kv7fU>_vW@ zxNBFgaFo6^f53u%zzRLQDLpP(_ih77G%oqzyE?+w^vhXu{%9rQAx*!YJ^b9aBf4}w zdhZX>Rshc;cc=|zJKW3x(9+q_bvgT0y%Y{-c^%jv=X55%Pr^KKP;Mnz2(AjoQB}#s1~w z6ldFchW8B=KxdSTSAGIS8+?~z4~o%5iO0s~ebijM#2qFTx1t;Swaq>9m)#Ub;=OFy zYd?Zt9|L?)B4lgU-quhfXB~p4m(J)i@kP=4Kf(e@z>1lWl{XTpmKBCzUbJb{khZKp z&NfoId*R}Vcj9H6I7p(ua=SE*FZ|7`TApw|&Swq?aL$L;iFQd+iqgj zZd*)FSnwS!j19QWN{tMFAgTq>hB4Z2w<3NsJJiyo>gIts4{W+s8xWU1cl)rakAK!;f{~5j+Z{iH_P4e&sgDa zjuCI>GSea#ipc8AO~UG9I$CTZ<{+KW9lL-W(q*HajbePadp*wUa6F+9&x3Zvu+$ED zbNAPfP%2t~HP8^t5Grqu6;57=BwoO)4G;*RUV$K93>+7Q5yoC(Fqs^S$mCe8$jMk@ zN(tE=`+13p*gNPO9*<`Z<7n2rcs*XC_p#mNb(6-Dm3BaF(Ds`g_(lbMiPm36wtA(7 zf&{yai{_5IlpX3);0iOj`V0~up9Tw~IC$)rmKE&_Dw}9*ttI%+UnxOW{(rKQ675>! z*P_4j?t4GcCvjKL#Dt>6)qO#xsVnXI2K=3$@Z4M4yXPfC?z{09M|)3=yYx%P?RjnD z1=wkpA650er8n;SOTpaF{QV>Esm6QGc>clFziRCM{KDJ5@o-H;pA)^Ou6kj@{>5|W zwReAh*{SW%eR26eANQW>89i9`r};lQuiJC-S0#s$XuF7iN63e!J$t=!7g*84eYf7B zP6k(JV6gGkzB5fPq`YEjAS7w$e&ZAGzm>dRx)drAZzJ>8=f0(%@qjk~M!dsI_39wG z7(XrBnan#9kTs}LFJ*^IEKRtTlMsxAMC3c2yfC=uLfWZqnl^Q17kmIO7yc%%cH=v0 z%wgl3#J!92Xg7K3`HP_8?R;I-FIumQK$FqL`hDA?-hRu~A4~PR_lt!Eb30uU|C@NB z{Hb$z-G4Hh#GggwZeBJtKlRNOdaInQg#%ZXfAbYfYM(j&-&fwqZ?gBl;-@bDkesTg zO}Y8v#DgbRfuLjU*QNYY_D2Pv%mxs7Yq4xabpUU%tH=jycd5RBebMF*B~qOnWb zBCi|MJrgTxUXP~k9?UhwS92fn=;-4wk{R(p^x^~M^JaFUFOZY4wxc+)x^iRY!n}42 z-rehe`G2UtyoRB~2CiqKbNN*d-@BIZem|z9jX8C5N^zE(pq!3F%S2478We4;b+hUHOt=- z;%jkB#fKCZ%sr&1m7g9xulhqv37`HUzZ30q4;2(qekyw=eH-Rgd^o!1t&2w2tgGR@ zk1Pja=2l+edi%&ddET>RU6f;-kFR4_Pwh%&5lTxWw+pbl=1tc35tX z-rjI?^n!kk5&d1!Lw{El-W+|U*Msd!o}TIT8~glj#fO&o*-KS_7|i`mMAtGDL%JW& zS6CkUX-ZlubO~5?Vo?UX$=wN>{&D`yP77zYDQ~EoU1HzN?cvl0gj3s;H?_@q?{5hc z0$=#QoLd8V_B6NE_W9ik2IjI0lHE}Jh1tz4fm4rx?!2cp3lG8X_VehpaomJ0x+)j0}eCY!lqxb%e$86Q%GS$_MjhWBKQiE0_0>&hQ+BQS};-5EsW%bc$r43%^=#tFWv)^=+=VWF0Am>|=x*45ltldr; z#mf(Y?>%OeDc|9_G4_RH$!TcRQ}96S>^$D9y{D+43i-D)7|ZMs=)pyNs-alo_M*iR zT|y5gaGUjYo&28jxTjU==DM0~4_vbWpA42} zC2l)|oB6Fb!pXBf;jhmK+XO?y7hoXw|9FJw zQ`3*b7`o(N`Biq;q;?J2G2@B=$bsZ60Q_z^zHSYi-R337A$;ONEcqpb@l#qD{;Tna zZ}FlP&n72f8@B}4uZR@*8{QIP9K+2gMTwQcTRX|Ny%k{gBUj{9_A5E(SLkhM(`p^1 zcY-F~&=QQ})6H*c`l{vm<1^$PHZ^@3Zy0|uc{(-y-dpZ>&W}2gD+5RXi7)aFZe6^m zh=jdcAxtpd>)!?exLo_>m^Eq8jRuvQp$b|9)Ihv{sfN^^hXGDhJB^ZAmGY47TLNA zeyPRQ#Y1y${Sl4gR%x%$858}r&qor0=+sNH5Q?X9|lR)etB zIL!^n9Ao*8xy4284bgboY&_rT&utW)Rd1@Ky`ZXBa0PApwd!tz>#khgVf*b1zU;c| zunGq* zPG1#2I~;eat_pGII>xaOVCLb@#WX?bVYqXyD?JQ%KI2Lq?%))BTDT+Dmj3Yd9`?m} zTmWna^|$Dmw~Duqi(L-2UIe7qK(g!eV9K2rl|DV8{vcE_}_xBVT?YyI6eq zODMmx{QMQ=8vi8uRmIT$7xF91uamTQnEV=|7R0EZ*amKW???HA?k=zL*Ueg7SX@N=G}gB>>|VTqqs48QLvr6Fv@F}FGh9zV%3X&?Q(gFAxl5GTsyMC zBlJ#b5qhaBm3KFIz?I5v>q-^t8q9H}!>lw(3!_!~O-j>u^X*^BdXE>504qObqYC~T zd^&8sG?5eHso!Z*l5pQAH$P6G%uegVkmUW>Lh#MxOK{o!`QXdtKR5hmz1f{Q7)#w8 z$=dsV?T4nXJmJ>+xggV__1>33tLi+Gx>B#+x=C>uPz%K7{0H2_qw)U9E%(0QL7Kxs zmf0!x{;iT=D_0o7sl_9+{Cg;J%<=EAH254PVvUp3_StIN z=%sT)aTSi`ma#?Dh6;6`c@=2YlJ3V~M18?exArKQs*+EKC6gxBUi8JP36goWb4EK| z(F<;+Vf45u?)S9dI`@0J`#m#=+3%<4sh_IjkYw}Kp)hG`daymy*F0OeJHNVeQY`sp z>69~t7|A(B!p|#B5jmlYW~3kekNU`pR}Rxh{z8G%M}EgQCQ(vQbu4;h?vmE@4=B&- z9C4JshhyM$BJofTo@c1PK8B7@r7K|`7g76001m)QudHzf{ zkvvrR8t>(!!sYIF4i(Dn_mNTIEPH0CkehGTUgVBB?p{v37Ceq5MpAASvX15UyRDg1 zbNTh*aIXaqKHs`6{y(HY{q;D zLT-DjZpaFuNia~ym*xz}d^&`03;4FKYLH($2lW?ydX8zo@aH+E{7!yJz`dxTYBP^I zf=l_CA#N<>A5v@6Lny=hStH6g9Dl6qt0r+XR3guMAk8m#X~;K&UuIu<=L!8~qBz&g zzTl7apO5Sh+E`oiUrD%Eg1LN3j`iU)A6q~=jVGiB2JJi!SE!mX6$}b)iFQ11q?I1V z^GqI&uIsGk&0Y&jZ~&R>qWT;!IqH}C38D9%nyypb)Tkd&5**m5apT9ogTmn47kU(M zvqtNxUbA=@$+R3{d|7)}ZhrC7yDXSWJY*>Rv^aAZKb>cF551VAMA_V-qFuXUNV4f0Au>NbLO*wuz=r&h5TO3@1+){k?C2s zMrYvI@<}KkC9XH((r^sb1nEnR*jJ0#E4&mtVw7f1aq^25lY^`|@10Wb-{V`Sd$l83 z*)~yo?M%LHfz*qGmdy-1&C**s^5}pU1C`ERV{NM@2`HM@R5q3}%R#H$El((RHCAgMakI=2g-a(YzW|7_wib9LPA}&g6~m7 zxP1!6!Mp#_o#Kt&|Bv%Og8yYOZ69&|lpkUKvfto$-D$VXd^|^x|3`p#13V-1Mi<>K z=C^!&`1%Hj58&*(xyZ>k`G@@E`Tc`+yn}XC3^%AwJ9fr)?!N5s(zo(F`$Nh>op7fM zKHATi$dHYhJHB{=x(s%ro)1s`klOF zn%=mcTfC=~KO^k*2R7%-_Rh?i+5U6(db2;b#o6l^xY+CcN0_}nBKQNAKK6Q6B4<7D z=?6EcU-)y*Rcn4(?9S?Ag*o5Rb6KqszW9l4@qzpNeXqioy3upCSIoGz@!{uuhf{H# z!I#zLo58}mE`KtxQS8?oiSqK!lh7XES;yr@WqQKVxe=K+3=DR!nfQOV)rr_jKD&ls z@-Si@>d>v6TmwuKmZTO3gE#|$}kxD|C0c|Wu#at5iYDex2%T(_+*1G z@R0ni$b03JX?_PqF;xb_yl!P!b=Ig+O0 zE5$K%&&+W-{^ZxTz>n8eonkurZqw0!rP^<0ml>MqTJrmN^zrp{@~F0DKrm>X_H?xz z+K|HOhog29b#hv9ZgZt17@?st#Kz}nGfQt-(tukYX5U?cJneTRc{)t`*;&Fu43MMc zVGn|Bv>9q@ubQT|j)Kg_k4xCcDbLOHF#HsCv*aiIzi8E0(SAMvFV(=h)6AFLE5R4| z6wUnQ**tjsZ~4!ARH7fJTj%qi%{<8CKRNh@`|BQR8j)Iu9P6Fj;3WxxmD1L8G&_?^ zz2v8P0gbc24;WkG$y-~BE=!)j^RncXJ0ZA?H}C~^p*N#0Ee;;g5Ej%outABA_X@|K z7tQ>P(M_Uaq4{+cC6=sSoH9{uM=}DSY@QCNX<)hT~?+pQsbX zFa-^SlemcpAB((Xx%!PIXVLG-oz}1FaTahPS44js@!#SnuWZSiaIk1?x5>^rg*IFL zM9==N8+Aduqtz~J;^hg^eDVqP?W{lAt9@sf`Q}p>b7w2pdry#dMwlX2_wYT@+A{r2 z_56x~FEyqyV1|pCQ$yxl#@e9uSHK*A^%Jw%6}+h^o~S5RNNa7y;*uD*kJr72EQ_T^ z(nLk;xa7!=@yQ!IipC|YI)ZV@D?5n2eA6GenI+|P=j=tniZyPQv1mnr;Ggw3^-QGd z{_&|>_Xp#XWA?LX@nY^J)@OmAoXmnv2X z$6`ustA2zISorFO^t<@A0spW(@MAVUJ*E&ao_O+pf@#hJ9>IUzEooUJF)#Yi?mWR+ z;Tn_(=z@NcgZ}+qYD~-4%$NPzhQ);FZ6)tOTbxP96AZ;;WZJZkxAVOup78o{M>ye4 z1JpvD+@P^k-}}cUW9y5@jfkxeD%-}V#;hMOK6%3W@yYAfgJDzK2!GrPbI>F*y756=3F$0C0#U2k#MH z5Um}HrH#8g=_62F&O7Wq~Ys-9rt7gRy0P9r1 zdJSVZmV;r8>hcoc*iU-f@ZHh6zp7$tT*QuRZ|`NXygPb zxa4(bf{;0|o>}52uh}{-ah-i>h$rt{JuY$Dnd1{xXBP3KRZof?0EM~b7HH1NkPtuO zBg&ymf!0r5(`J%2ac2pijPTB4qBSrffY~hml@V*pncvv(m#ax+u|IvbgPVk+ZRVy% z4Y}B0H-B#ycAuV^54)`YuRH9TG;`sjLVMr_n9^ffg3LMKBSLK+ z;&NCZMA+zn@CyS%&&_-kOi1+|JwDkp3d$6fRK7GmbwYG}DpphyOPvOguG>}w32rNf z1Os7EJb4YP%q){9gDGIx@2kt&WfAQMqz_>U>9W0PalK$=$G(@9LALzYE|lh$p|!v~T9$g?{b+NY%YAn2+Gm zOquXKp8N(?zD|{IQ041XIVa9($9Upf{QIom$+3Y0aWQ~P45W9r`6I@)&sY<^@89%$ zM4uVU(&su5b~9X4qgGvLfb9Q%7LdQH0+3zs!=I1^p3Zq1h5eVlq{g;cjQ#eWpxE&C z%x4T_M*}K^TqDS_!XMsFcu4AEm=PxmcJ#C(zpwWkpX__)_z``JE4PkIopvVY5CoH= zcyb8ffYIN>zb_f`{3YZuYtcXBOs8^TJT;>|p1d%g6rcpK3lQR*WAor8ui6#lIh_?8 z$&9k8`FpZcYpLue&tz|P=OM>r(PO`xVS}3?JeWws%y~vcYyfd^98Sy`T}A*AA?WxH zf;1wPH0x-cOyjPZgCXQ}-VPf+ftjCBRJqB`ym5T8>P%wZtK0NNM0KW!ibFW$C`n$! zldrJg*HHEq7W`y*GO(%S->Hrf-@%Gz8FAiW8^f0om$yZ0$MeGfi65s=c1V)Pj2|9p zP%PY?h2q>9JqqTV<8%1f0nys~n5v|imzqFq)=4p}1Js%hJfH3E9PU_z(@C)eMgzyy zyaY$sY7h0Oy2u+oc68-%ueN0{XJ!bOn}E7Bp+nA93-G?Wou7e+35K_0zn8iiE;W|w zFV5JMDO3sU9Hp6l?kw^WcwWl81#b%P0W% zNX=WpJIlLib@z1_ycn(fDU~o6 z2h$Bo>kCpSy@4y~qg8#(3;PI-fmyd>Xb$!PKtB5!qZVj0F%}nFA3sSqi3w;`zQ7N%S zfGuW;;bN)tDRFnurA`~om5PeO;2v_@w%6*pTevu;zYvv|6L5>{<52~Bcqw5w%PEcQaT=G9d!s=6z^6z6Iew8bw3 z*A0REti_k5uDq?lPhGjGqwAIV(PH$w;&JWKV}1Tz4C$45$qVcp?hsQUYF9w4tE*oO zJM{N)EbE=c5!Yq3{!)6xlNGJIL0^Wy6RmyzQw0T=rB1sMPaeo#M7r1c7?j&ED7S&` ztFU^!=*6wU)i{D>J!5K_$un;V4RG|F7sWABT1h_{h1y^P4`_MA#g<9rCHa3k&7I^Y z?h+C4(`v{v~;EU!8NX}jueDCSpWIBMx%qW7J1KTC>;s30D z9#fBYZp2WkL4ECZoMSYW+;j94t^JLVIyD7@Z#w@bwjb8Pz`PE~8>K#)-QZ@|c*$5x z7GhqqFVWwa?uWzdGQe^?gXh5s$vwnU}akUme&|4%nCRMxhiChIjA#z&|aO zg92Oy^WiTGW&KA780gBQ$ByX_)2Utz>xd8hAbRfs!s<1^c&dMs4$VP^Cq`=zu|J&t z4Szz0a{DiO6m-TPOsgF0S(Fj{Y@v2EqjkT=f4EVAd_(a3-bbR8lwR2zt&nu_~4s!i1p zm1+Q0EH$SeM`$^qw=jS7#{cKQ`$5}HitUSDLW;O`!DUb8(5DTaKI`)qSl)sMBZGyr zu$r7gud+Ndfq&-Y{02vZkM2?rUFs(v7XAv{9pr$ht_l6MTXlYO_^Xwd;RP4dTO3c_ zjbg5US0H=x#=%A+c_V^n;3CTN#2vKiJtWdLr7PpOr^fdO$V8!1{_y7LeP zX>=i&!QP#O!zo~hPYO*DFi};fnbjdivE4Bjg!;+P^ zH*w_(sJib8{2bz*_*LS=cS%1lVE2L(5-)lCupf5VF##m*T1`EkI-fv;o_;)a0td5Z z&o3zd&^k=CO3uPCA=ucnT3 zv8!lyH;-b`i(f(lAFA6}eRQH_!!B=Nhi;UjPW^8+9I?I_@(}fI9xBBmZgLsT{9>s` z3xo#=JK0#)kn{J-hnVt6b`oD)J`at9v$4qw{p3|lcQZs)!?u=FDb@u;pD_Pu-Wmk{ zzRiB)yB8^~RPCw~z=fDy?GIniiR9EX)}c%98Rju#y%ynDn5W6rZ)CXf`d6ZLW=Gql z+Oy|{0}My)r><=e1)&WYeEt7;dmH$uimUN|Hwlm+a)W?iMGZ=o)R%&#mMGRNWXWCG z6?}=gYbIzPO!{pVCuW0)olIhRkPC!<1Cvqnf z8)VUXp&RTAx@jg5fA=aJ1u+#esil$qy>6*1WASgT+A4MYQ`|r-SdqL)x73o1h6~Lx zxQ9Pyi}XXVOi-BFL8vMHj`*G`->)P2Rk}54VaP1mk33e=34flmKVVkwr-Ldx zkqdIzN$Nn`G(`&NY9Yf+&ge5OOt?;~U#B13;+A$GA1YptR4wLw>Bt9Tz9gwB>7xoSg^``VOMekQ!$YG|E!j2W*@O4ss zQ=Re0a5PkOREs`GH``56JtRl}N!Lg2QA}Q2;m#FaE&6Rmt-D!x0!9CDGi%Y83AG`PUC%V<61k>~mYI&_z@1x|LV*0Bo)n84Z&_t=C@hzj& z>nL>&cs&Tr2^_+HxQS9FxnhDRQ!3h5HI2vwH#q@JIxXJm)~NM_HEIJcLfT}+z&>i! zmQf>8T-QpC7=PMg(J3^D|ULooSRXt8`eNA z6V}kgGWlH=FdpGSTGf_Bb{AbK35KnaIe_AN_GI;X2%x(~ReSz#7o2X;G~lt$(7JIX zRVwK2sh(AuJCZsTP^YmctkXEXXoI#`M!d8o!}{6Z|IYcRAKWdHUHo4;EYz~#;9`%? zZVei_Fe0+>YD44@w30dy3`2$QX^(z`UeK>l_l#S`zz0;F#khHo7*BaAOXi#G_wI@e}G(EpR<}3ds%O zy2%Hv2^HZE^8>ibjrg(64i?2hc!eMswC+NiM;XY8B&sMB0mXDAHs?0`64U>S#5wzA z(sQn_z?lGM<7X*G>p&{4@v2I9P)QTwT<1MU&Vx1clh@AU4>^R9OPu@P7(Wjdh@8W1 z6NfQM2Al??PslC1(;-Dp$b%~6{lpiX&s{3Z!Ne)$Dt(C)OWz3NkQh#=nxA^g^NZe{ zM{gOSXCSAVlq`yTe-tsiTNcHp;y_}X4Q7j8l=MAh(eQGa_M7|-Uf(Kj$+-*I)%qTb z;N8oe`7pBJ8RXB`IWKX5Bw96CQZo*O+gS*mdBQ+oB0qlaS9I%sYCcI8j-$*s4lHz|Aw}Tk#ckgGT zfr3|qs6{Asvfc7=zKAc4A#KY3kT$uoSo<+de2YG0JAdJ44(d28mbs7;UZI2=UZI3F z6~px|=2HAv;>@BsnV(v3#0fSfw~DB&@+kZP5B_TeJoqc<`{l1Tx!FM?_;EfeMZmvAXeizV={#wk$S{<>P zDA*=q^vHr5sHTlqC9M5tel0{SUFAI)7d_Z#8A8)4!*78dj)W(#JtA#hE0qY^fmG4>_AwIXajW1mX6Tz5gx**|k+%`*XP|B0lv zGE*c6cQ+ZbE3(HvHdutk7PPg<8YCW(Z3EJahTF}#0rqEEE~H9sFGI^QVE|){f*2i~ zA238`p)?fIgvdNG>2rZf?Ib6BjHDbC3s}W;b)|H53bKfQKo(_$lpL^TsGc5JA^oXG z*3h4w(w_%qNQA5$jufL`;5G;xRTLep7#v_mLwB9fi>~gdU@pIVxp)c;!o4ghphmi} zS|l?@?Lr8my`f458`>`a_^l$r@gGxoaXjd+O;)DoH{od1Dri&+hXRYn@ipCmh0zUo z8Pp(Mjc&sc(-10pJtfA854TSJ;OoJnZ7)z1lAWKKN#wX3W*YP^$Z>&1pEzRNaHeS` ztG?(4Rg~jm;>B;ZD$6@qXwf)0inaOKdZa6d)8EEnYQ%bgMLh;yQdaS+eR_^Qh3IO9^QU4B2nZ&Ki%(Akab-^xBxiJ3{cKAuF)lDyCvN zmj{Nh`0PYm5nd(zl`6aPg18v*vYnuni*yOkiY|#Gq8Moe9TEwE7E0Un*SfgksWv zRYbv{`LKwB4|gzcO~R2*r4j`@5YHxo#UXfz4kna9*E-do>le;#Au!4!!(_?lVQA_&UVTcwi*CKbYV3ioHA{R<( zEjmk9I5zdV)(47S)1q=d*8V=(Le?~CKlIsDi+w|cFI68HQdONBq&i~LgkWes*by|Z zOX%j;>4;%0?YFcuqe*hb?#@9xOU)7ww(G_m1|LFU8rSO2^^gcDH6;-C=(dNY+hnE@ zSOW9G1f^2iq*%zALnXQF(HKe~Bo%Hv5JUM+2+&T(0urIB4z)Nzb=XB*<+n*%x3AI zhXk1Fnx6HTH&RT5sL0q8R%BeTXqUFwM*~u$?zLFz6D(}g|JE%J?om$Q-a{T#i#3}l4!0nBwh)X9uG2n2?W#R`8eO4Zv7pMQJr2JrTI!SG+E~xmGJbCm2Jhju z^oMY63wWkEH&*nu^ii)BU6KZ2Okg8$E)9#12lQ;Q>Uo^KBq;IA*9fCy{4+UJ_~kcXTv*ack$Az0W*z_D3Ww)8K?ikqytY`x1|qDWUAA-654u$Vw+9akuk%y87Ign0k{+zmQKlt}1aO-}t9- zcSfA1CSrwd+z1V0LfM?y^-GcPdY%UmJF}qm-P62*qL1Ov=mb$Dazzh}fR)33F!FFD zmZcZ%tSFsk1<@s|`FfJ0uw%YP6NI=dw?!51KrGmj81gF+b9Rw%ME*X?#`lw2H^r3K z%05cbKeWhSWz8yjLyO3P5G*V2nr>aR5bMW%)69~6Vt)A^CZ6wsd?O~FfNo9HQ-KWg zPIRfQ^S=SHu$eOm;d=(-mKo34h*HxKx+&efmhNW4uDG5{mgH``A25Q5M6O zE#XLOIaf`$zI&Ays$|L27JG#K5<|0$6A0GuHCvRVEvFneU$45MMTNi%zMfc3NOyHp z?Tz)rqIcDCTMiGJ13uL5>tABdols(Y;5*QiQ+W0ts-0>QF^vF9o48+!e6=sTf zy}N?7)2vB3$VFP@X|heT9?t0s7QM|%$!Y4zTK%N+QNRScS} zs8xGZ2wII#d@}4w%;j{y@2_4_M&C?swU2@NsH=xT2m0CF+Tw{4F9TaLA`2%jC$D(4 zV(+7C9Y+>k1&}?QR9bWpf5nZoTt=}cF@%KC7>?N+?F0P*Vyzx2M8xd~;-u5Y*Jfg1 ze{r~{!jWM=6n%$t7YS3O+Cp}BkgQ^a5XXtWGp_NN$>zpuIg&vs>LGl_<_B7&Mv8Lo z`DCY|KuR=M%dR#0dZzx?Kp_+Nf|#A4e-Vk4)KnkCX&U74KF^7sRwxE10{8BekDbaF z#S;$ZYVV%?Bxh^fYJz5Llw?w4R6;pNe-T68beLgM}Wj*y{~3_Dar5i~*I9)3w8 z-X-D{6>%>SSQcM`&(&forA2;AW5LLcfuSs=DeeDEf7f#^QuQAM!bS^K7j4$U?^W?< zrAUoDSIgu9W;mUe0A7^$<;3#~87w8*edP;4(9hjAMOmmUxEphB&F&_G>#azn+Nu;fAfvudTCS6hQlV;btF zNc=e!t*y9Vx-|(Y=Aah&FEWO#1>RDveoW!i%f}RA%2SEgm;E8{;p7u6)}%k;Y@6#{ zoAsh*EwYC!z#X9m;!}M1nU;!5E}t~8avQE$VN_?uQiv`7rVtVb>^)VhFXff#gEJ`9 zcBwmNo$+sp+^^Lu%Ny1Mt$MFaWJT+>$Sb^5O&Sr?tS!9ROxbMcvX{FH5HhN{W7`Hob75)ZmZbIPB^rH$?fO>+SW0=6b8hsc>_u5|4|o& ztTH6W7fUZ6bqN=>RKAk@J#GoL$Zq0;);B5jyO%Swb1%*MZi1=}MBedgi~lKJMXXVy z0tkDN{~`lKamyK9{>yJUi^XDF<*Rr&t`*HL#9?16y&WA+D!MJ4&(cyI)1s^BJ^Ro6 z(ds9RD6ZxVf{6J(qaBC!=OCiqFv9DL?76DAssnc0AIZAG+%so|H!_pO7b?9^et%vMpUX15 zIm9x|g_}j4I-?ov%E2xX0JZR|hs}qkfn!rt|k6ZKrsq(G}BxFw{WpQv4*cF4m*UzYeaWd^G-J9WV^sS8a`#z()(QAJ$lY6q?*VOY7|6bSK zsLB0}59J37JFrfka{(3!xj}B4w8EVK+n?x=ie0?N9uS zU2Xx8Tr2!Rntzn@)v%4ok6bsiP{8X&t#d{PIGiQmjn@*tU&>K7E@#8AdwfhNO#x<- zhS`*xpGopnfo<&LM3(|z;#knC^PlPS(B{-)WuXue`h%4;_{Q@J+Y4%HrZ{sh4i#X% zL{td^N?Wx=1lB-NlNKqJ7o=E;e~|ZSX7xt}JmrF`u631P2v{@a8WKJ7_JGQv$OF1r zrC4GPabt$DyMyhM0a_$L4tA<69y%4oy(v_1BbLrzMF@boV-~0`5Ok!NB`Vbt@gJfP z|Ag-}|Be1JamP<+81qp{Kx>dDY}>Cnpz&05pmIK}EL*u0KcEr|=eA7yLp(4#_^k_z z+CFzqu$$JUe{}OP6>l0R{diWTjKn&^Yp4u(ux1^={wSjv7e6cffblWs<3sT7JwC?KW{GdJ zp_UpSlJg|Thl6OJI5#@)hvMSN-9J+6G5Ra>9Nmnx$=t$z zTetsG2}$f!4AOH6d7sq4)P|y>awzbo<*KF;%h#SC|9g+}!aHObDhKUPsa{iQkn6VR^Su6!pv!1>JonSY68 z0Po>nVu_Sy{xAEN$Q4ILq7xPW5;#TTxc!2vq~l+Lwi55|Z^>mJZjuxEmw4L*Vf;%# z0B1T)HOy(M+fxjh{US+dyL3Q?bAZ(N>aqU7uoSVYphxE8k!4cQ{02PC-pU(;CTE&D z^R*=_AiH4E0d2{D$&1`=1I7muU4qFhQK1s-vB$wL2=8;3ZuPtACGIb&2MNi(#mPSR z0=tY7x2PlTA1Zq*NZ1xN9kn8Nh6-sGb1(-W(%IO z*IuQ=H!k_HB*XC&4?!faLD0m~n2k#Gb;ifY1i~CAzc0nS2MgyI(nFv(E4~@EU&s+Y z6D!`raNys=L63W$NuBm%!h-^kpA4y)FcKL44$ISv)*!sC5#t3eS9<4)V(lj!&FJXo z2oqQWv{P>`*UX9U%N8#x*zhr*;ysXEVM+|Os+Lk7`(>M0Irj?15-*DRZ)CwvPk0#k zwjnsdrE$FR#c__p+Fa1a=*Fq|a~B+ilEaC_{)tRBsri(#dUE()c`Ux@OT=ZW$9o_X zUye?>_=>E148Fro7T;4+_)b0^zUq`{@Age^%4N~gMW}awd`v61b10WHrNfHdmOeAx z(%5IGu@|~L2KyV??mns34xR6|cJ)`f=UeAAXu7?>PYK7Rk4b&D_s3-M^db-rE1rlz zp2V8yq)`6Z=UtSyT*mp!)cTV_AIti}SN~hf{iB-s?>$a?qqtO9)8MgQ4UQ?rAog`m zg#BAGMV}0L|6`1c{ZOz^&8I!b<8ko6u}uBz_v!feCK$p0QwZksCyW266#mzL`564W znkpYsgu>NGgHV=zz(j&!VrQQ3??R=_9bBJvKtIT>$?shyix~&3{W_0d3 z$Ho7QWAIP$ldSUhupinGl1<>#C>om%j2C>y%WzzQ_`WP{W=t#e*EWb(9?+^Aze`OQ ztl!6!6^WvY&kPaontrmx>l{WF|<{|bF$bYnTJFK+g8Gk@GjA2m{@pI4bGE^ zF$u2kEJdEg@#)d;oUlswc6RMkCuAar`aSRql+POkbIof?*+rf$>DZXP zHvQgei|$XQtaDPv?BAq9{+|=lYA=-+IgN-z70fm81?!bQO8N+-4-Q>YIhEEW8r>-l zwXn|ONeAhO<7^w@3yEh7&jOwxsE@_6p_bDr<6sf*$=If#7k*oZz@IZN%QKQfAK@oE zxbN`$CBKjOT}9T~3SF4b-VV=wzFb$O)gz~JZ15H}bQZLfSd&BpiQ=N)!WWca zgAkNhEW4;e=G+eFVPmY0PH8|Gh)L4%2ZGkDx@P|$)W=rYSTklVQ$^k;P{rd)8Am5j z(vI(89#JeCSvkWZhpq|_^i_3aX^{b>CoJYS;%q%F3~bvS%G>O(j?K@H#0SV3iK17+ z8|)(x9w)Dc;fw&$d53;*N6^cS*Bq$g#=b7bL4*9|^a5u|`R`vIkTZQh@$U#&3&eO{ zt3HQvFrd&2w*)O;C#ECAvO>n-5c*k4zhRiS#Mlved!fI2tC+NLMe1729`q~1by~HE zg|^ZuTmH^KQL9$n3^qYy7l4imApA9S1IqFn+kBBX7y9CF4$xM0mE^r4Fo&gK28>+- zwlbK!ot@F6R8OmZM21x){s~rV!*IURKVV#wi-pS#!?MdGhqJXM+%rcv?&8+L_@2Q4 z&D#NT-1{CdHVUlp>4FRzq}dpYDJoVc^mdJ3r`4D3sM+ET{XvMi+!#~`Etea?x-6x_ z31e9)JBZ7eQ)=8}F-gJXJba&$RY4Gi`0cQCt3 zr5v0P@*t6jjPkEaHwM^m@}h_a7t1ufNUAX&o~F{=k{&6Und>~^JM6y@$x#dG;Qk!l zWFMMiWw~|z1(W0mJQReC^8?LOg-v5NT+mX-iTyn_rMXR|c|CCnir)V0` zhN|8@RPBe@trVilO7@dScHPkNTLpFstTA(7b14Ulq$(UGKL%*{_dNkN*7fIHSn~N7 zq{gE3X#E0X2m>^!qj*zY(2y8FnWF5ol*hIbhyS}i{!Xs8DsJgVBZof!fT$1F(60KO zgKBhdylb~^p01nM;H-z)`q2x;v`AUHPDVn6$-9QEr$N?QO+cAu}Utt2+z=+ujW3?PLgO##%~aOyi7={9_gB}cTP_Gj1m27B#!1q zOaWC+l@Bck@<4t-^*^&sS73C^X^OwezK&g|0G%EL>!3Jv>uM2C=*h9LK=f~qc5tUO zX@M5iCik&7$5h3pTpUnAV{p)!kgiot+8Br&URb%>AKhBnP&dFn1HF9;V=;oiTB_Q$ z4tzO&uJEmz=+Tyf95wOS=Mdf9jg`0e)rIA?^i_}kTS2bA`%kE)SN}<|?x0L&W5ZfE z)UG7IqBa)6G`5jLP}?LiGDEB0i`stIBOMgJS^^Y>&w#>Jy|h(M7y5+6J$5Msnb{EE z2D6}5>}BJw)>kzTvzY3i3+1qSumxVUCH#(EDx{vK6R;6OvtzM2L5Bm-W51{j5;UHm&zazqD%W)*w_Bp5Cp z`zi%EMf0@S_!G65(7UbJF}M1Hiw2;cq=P=wr_49)x5)tA1Q}B5ti@FD#^5Jc&JAtt zxtv4aV(F6aj{hT!|LM;7$A)7UtDwH^O+D{5fAucS_#F|7e6Xh9BBuNOQ>63sQ2S!( zu5|Zg&n={Djz5G!NDbl3$i?h2w3$VKe@&&DtOd9tvTx6ThYs+(KI$s%!a!vs88@3i zbk;Tdcf2b4Js?e#MhS}9)F;K*?W9u~PRXE3Mey!a)SKY@^+*Q|eN_VbtZ&~_&zWFu zUk;woO8~zaOxtz+Q;Sy5b(ys=J+n$nbvKdQW@=?iC+V&)X#M3gqV+jJ>q#0Zqf6ZN z({7cvYxeIPN*Wl+HrR<*9sMl}kC@L-luX9-JkFDHRC-)VO{s=uazVK<{nX+bF^h@w zIk9H?2%JidEjLPs8#9OWtlF_eAeR>lSb7%vXevDgenld|QaSIy9Fvuv*sYB$P0q#+aVX74A5xEDV(`QL+# z{qJ(ybSPn#C5^I1bXQVQWEQim(f*B8rg@DlV*0i{;}7_%4i{q^zddq@M`*jA*Ls4v zhgrvCHv*xX>`stcO*>0T?T)KE(N}Z$gRw5hX5?J*!7TyrI$#O?o&XR$jK>y_EdORx zY`_h)(-bXc*#=v!7i#g{NP@AvmiRvGkz#r6!MqrJJi~EjK5SU3 z%pgW72e({fjmirex8??lwpFm=Lr~Is!u6-8jsSv{cU{1{b-G|{k4Gn3TZ-ysJ9@i9 zewU!YeT?TV{QgE{7QY|zyB@{ZJE)jCcrNC5KJUl-*}zD}JqPU6`}cYOCHWdM;!|<* ze1!0uDQg1n-{jYA-qYKEUgX`Ij51EJEZ~?SoNt_JIw~I7QL|>%ijF6x+=*cTn#|)y zjU3MURDNp;x|<8o-G~pK_sp`F6X%L^J=0&Kn;fjUo`yxyAV*3f9hX#|T|Ol;=>l(9 zyj37u5o(mJAjNXVbPPMul*EOr5ao8ln2Z@wmeN>^CNidgoKHrgvj|uY9P*P&oK!?! zys2Bv5htu)T#iO!4kB=``UcIj-DSRVCZ{{_@^%WVJS(Cw_tjKht?v_t%KF~lSJjzS z@fCQ(1AZ=FLRb!LdpnfZ;jcb0|F-UheY0+yom$xIh9=KMH03c2dK%i3hL5*o-IgY* z?o%_I9g^Hg*_%Q**|u)Q`svo(kTt(6RJ5Zq81lXz@@_}hwywMue&nv9UKim{vMRm= z!h8MPnH+fwgx?D0CH>WV=TA=|yd#XGg3D3}W7h_7TD?ec8J+@ zx>Y$8x006yjdelMFw7^@BZ6S3Ab5Mo*byq+j1_b?jL3BBuA$kI!5i>y;y}*$b)bk3 z02k-OSrrp{GT@=SR}mKGmnxi_u_%@+OT$bAX}m#t5ZWEC7L{WAZrPymK)x*+sP2S} zUYT7P^3Y8w>}Tmn-MFnFXiOg~ip(LU&^=sI`sfUO(>yj*e8v_Z0+tWWM?A?| z9a^ES@(m1{Ulm1E(E9Q}m@a(Ai+*DdnkB!s>JvZa&%Vef7ivpngiXJ5(yuY`^mV8Qd%uUY4uf6TH$*cu^FYvNT2Z!Uu5sX>Rl8({|_q1d|1A6!(R^x2d!_> z^s$gNkM2-8$y4k#8evA!$WZuRU*12+S{>6?`Rg@9Eb0}I2>@Ymb@>byLIX^>U{N`!=BZ>>$~=- z0)9aRTfJX&JS~R`-{F+M>i!<>izRkxN}d+|*!Rc<9xtwV z4uYaL{Gxr4B(6Gytlvnx;-U|>^=-n?G{J?+y zO3@;y>^S+#(pC*HwxqNOz6Qmx>|t?qnynSt{@7+aL7``WfqlADC^!#w^7nzWaTtt! z(p(;UuTviB-_%rj$4^gpd+cXOuX=4d1@%cxz5DB86870&zw4vF-UYnVUm8898e+*# z1PwTwPw%g`-xMRUL<#dwo`R`4F;3^$g>{RDr+&0DV1qhDXmvI9qwyTX+>go z${O2eS@y8iUwjM6a4sf$qO8P5XbWw#`?ClKwg~TBAz}}BBc)6>5vcVpuh4a_Adsy-FtKC z)a%rw5LX(Z=R_k^|MUR+F;XdVz(o_2&U7yYWzHrgh^F&J9TJl6#93bl(}YW-^1irLWTLkKw>oQ60Rfxp^jYa|%1nekB#Z z5>O{anU9mOPs)6V;of^DxsJrD_`&o=AN?tN-wfCkg`-g<8=+A>MCxX5x+!QN3 z9XM)4hL%LG_oeQQa#)6y2`wp$yv*uT=@Ug3YU86tDbg41@pN(8<*-LEi%Jp9nJlq0 zawBUxBZnW*mOSWSS;JV+?;KXk37D=uG((QI_y>Y!WbN^%724Wk&yq$Z{hYHUEnT0J z>RM9^6>iib=TS6Ap~MK;<48`L#p!Z zo@n6F(pjx&gkO=QTy={5eE>VyyyNsH*cA7T&0Z3e`y#08qDOf}TaVb%knr9v@BW5K z)3oYN!p+dLX4&&b+2eBWCmMvBDY>S<)+~G6z74plkyUDWWo*0!cMbk=f8=&sHT$ z+1Gwr*}^d-xwi|i>eo_m-%E!iLT$>yEE%%Jxrp7xT76gE=J+1u?#+2y^gPbez?V$J z-f&uexiMv=eULU0?7$49nx>rMv9~%cUitMCw>CmrM^?q8K3jS(Q&P{CZt0=FXT1_R zLg!+OgRhB}0XbqyZWAbghivvuk-36Z>H2*88Zdl%D6*n`F^GZdAo~h}P!kVyC)*Nu zE1N29?a7}7M{oBjLn`)LZQ1MQ5Tjx(>>{=BNW;IZ-ujxe`eyeO4g3OFC&Q+QvaChw z(d6Gm#r!Wp=l&Kmw860Cw4dWHTpHhTJ7TI(yNkASC{kA1zA3VAhnr{7m4KlC{nOH`Q)V!{H?DXM&^Dl=lD!Qo+M5qyNdTr$>KOu!0AVonVH7AUrmv zrCo{)kn3z&Bc2{wGwoQCvCjlgy*Z{B^lfe9x4L@AHICkK4XjX!u}+c8`rhQS$=3jd zakO!>{j3;`S|uZdk#qKl#XX6NcFc7l%#|{|rYZPDP-P+zsCNp~lgc4OS#pdgN6=`& zRZh^GKr5lMXLo{@QVPtYSdSi$@In#8U!_RSUuA|O_K%r+kDK=Acs6s=E;B5@>D0|ZIF9%)IzuXKxDFiufQ1W`;B6g2b{8ROR zpyZ|YIdjfGrukIKuCULnhtA< z-eVtt=QpX}y`-N@{+szeO1l3fu2ppYq8I{ggUo!t3ij6_$Dm+|2h>IhoH-i_c8^fAKE( z9AO;4!<=_9>*q`EQ{LrwD!Yt=?i}>9kavr(Yqz?X zFO6L3O^Sc{|wFy|8Lf)6y*}*A#T#LTMd}1Gf z^Ykr>JDWC#D0MDyLR`IJBm-Zj?2^CN-yYmUM3HrU@_5yjAo z8oaDkUkF6$W1w~d74`SoA@TgC0EfJO<0aYr^2PVcR@MQ3-adczx_Mk%xGnjWka&7Z zf;fIWkCGRig6bLz7;2Pz4{g>Hhok*Ox5?}R*0$}nE!iaKK3;yVX8K6Rl-!|ql~I-_2=y&k7iUj zt)W$qK5W7##c4z3=g~EkXX^K@CUYEfjPpigm`BW7pVZ0ZV|cw0SDp}0#S_WCrYBO4Ww}h zLefAGQtEt3V}17wuYPb_z>C4QA}#0%&($r^lzkHk7`4e64B6x~pY@+YpQ5E({0)g& z6nDm}&}$O}#h6Wg-dCTMEb!ImCeLK(CQtX(XD5d+1d@YfR19!Og+sIU2gt25pf6%T zSDe)}U}*A|^5y}`mKzbfS*$AQZ87rJLteZuEBu-UOiLC~-L#<@-iBkz{E+vbBuMFO z>xR}0Xu^{XwmzAV?!#HnExuWJS z2V%{@;$IV1n}B3uN&baUUI}h0%?4Lts6EMFNJiS$E!~)&m5N!6Eq3VTPE-%Ts|1g?Z9_{mes$c&e7 zDMR30!cWro{{8`7eg!|#k)?jO^Zf#8|B?|thx`(sdZyB*o)W&?O(S_zX^)paGyZwX zxeM62JXb+HPx7qbw}Rh4_`U*om+(H%{k_Nc|KnYraW^b8kA#mPpQMqze{|DIxWJY0 zRqj*D$c&e7DM#Q*{Uv?x@033V%rV1byRG;J%$>~ikGzy=IWQ*pvor#{) z^0EavJ$F`y!-DjAO2;3Fwrc9gE60uYcotShVx3ohA9&i5QB1xV6#Sf#rQeyeNcXmM zwFN+0-CE@%G}4jF#KVjI4Vg1jQRk|D37E$MjiiK^m7k78#LpDtstKs?MJfp`w+aphLE!FLVd z&Xwfbgr8H54oYuG$op>cb_$T>Uw4zACz1b6a@GEBg+3+G-pa;FJ6*kM@qP*|-V6<;X;CWEUzJl?DF}>_Tz@B*MEnc=_X=<2%@XkiiFnG5c-e`V zED>WR;sl z;e0lnE_u$&3>hIILo!3C2?~2fR1ofn%&6fKC9GizeuLUE-kKRQO47tKLxxGnpE5(( zO!nBnAVdugHd&lb!;MCFi0biqnIY#%F44@VbE%fTfsiyl%JM~qc{GB6<=28tWRPUoDX-MT<(Y7T(#B1Qt9_55Horc{jkNwxoG|Ecm zmzg1=v$Y?~gbX4cdqHLzwZrorm1fn{+;TyPe(~5hxrqYiHE5_f(2TmcfiRE#)xKhs zCVq?p<5ofqI^~PcrI-fDh&j^DEifH}llKTtR}|{^*#F23fiyiza7w398!Qb3ryHX{ z()^k~=`@Ojf07xZ=BLG(A+qKqE7Cx|AfH^t>k_ouf-K_{u-hs!Vw3)KwColoFLNd* zZ{^5H2Q$kTj`ZD&05TxIYrN+I>&O9d^G@1be7k=DjB{qWnilktcXJSCC*>kLYk$vbu6y5&rbX8S2>P z-w1eChPlmgQHkQzB}cSAVh&O#Kd0uiRZ%rBfFDtPBA(%6!3*_q)47m0;B5_FSPYA44Sw1@rnVI_4hqWF|Lq&ZEqHjG-v4WGs<<=?!>{Z2lY5xnwHxY zeVYUNaR}!ocJT{P3ynpiGLAjkiJXBgrb0THBS{UI=4Df?r;CN*_m**age=u^mfH9b z%|oWXRp&l<I}@v&Kr z+i9WQ{9fW0=f_r#dLFO*%PAkS>RJBN-sBhx=W&*l%yYOD%kxwz^Jy;y&d=hm4vhYw z7465df|gm0wJ%fFKlp9rx0c^t_u1WDjy#!Je<}Z%`qw$-^HAmURORzj<=468$E17^ z;3BqyxKDJ-A zOdU~T-Z&&=Jv;_Q-8JwPr;9Q?=SqlGn~Sk)S7o_6WzB)=FLGQ#v4$djrThu_n?%@t z5krEqMx4GC=#lk9#WgVsb=ml5chmkH$$d}faM5h2@cjyOSuGO#7p#}|;-3QZO#7Gg z4`(Vc3KU^XkohQN-kZa9yn}pCW5e_T8Rs-RCIpxe<8?x8zJet+p&ccL|M?JpA#}@^ zg(`l$-@2yL(X~cK0V{I2U0Zw=FC6k7Ky^bqv`2HOM8NW65q51B`i6mOx}*{@+3H^7 z0m_27-#8>EDnKy<-I(0jhdt>oA5PP?`prz`pKxQvz1+KTc|qJu&^q;&#Tz$V5SFdg z%Xw|=}iVg2R47>-r8iHfo*!0|7u-!;$ln5}DO=5h|rL1A3RkxWjC$SED+ z!F!KQ>fxwK@Rnkh$*E1wZfp;5!jtY{!d{Q+uf@Kd{-v2Z`#EhA-2)`GIWk$b6;@zT z5t?b9YY2dTVS5XgH?TCa(U0Mb)Za~oYP=4#_=X0j;B8@t~#Pc1QK(gal4 z#QTmMk&!c9Mri?0z?ZWA;vT~&9Tzn2o5*EV^B53(7S~MIOKPSEX!PNwS9|Q2K@aA+ zNl0&qE%eQ9yxUZMHiE+O@&L$4LnQ~uttzN@g-${7@?nkr)niRRpbcxxQ6I5v^@yX| zC$QPeJ_Mt&pd2F&DlT zrFp9PeAzYr?a+-Fia{me6)_be!;DvAW&qbyr!Z&cxN>lY(xnN)?U+q{Qi&g^LCQ zC@mzaaiqU5J0UArU+Y9Q<&sW>Ztm6u_5iK~+~jn1E+A-@EhopUSA?*fto5Po_TOYR zQt{Idyx@?tnl` z%)6P0GEsoW?&TPl!lPV!(ZALqz7$kU#_x+ zAD;=5YiZEyc+TN>7QbwUU+?v>dp%n8uJ|VrXI*kJz~o}x{NYY%GdTx|$7F77fM3+A zg-}A~Q*AsHr^K9Wh?c-_tmlr596iM-#kh~GXiepXa)C-w^`RK)eXvI*ut(}pRxIDA z_#-CR4gTo5aK9vr6XyWm_0Bm@H-B(wBrub|nq2j;w|!dpysOPyydAha&DI{XP$+1p z1d5s~&hb4j^C_#;J%n9j-sNpq>9~2${u&{=w^46aw*`|5J}@eLo|502qqV%cq4T<5 ztK8Q>A)b;}icqgrKSQeoEp_9%ZmnE~EEBZU6)EGni|G9rEG{n0xG6?l3JuHlJul3? z9B0U@5}z+}!vIF)vV)y+;k1zhi;f4U7_|tmv(@&n_@w$!I>4HaSEjgDeIq$T#-TuA zoC`>@y~cXB4vn&9>}j5>Jv?X7mvdE!$!`dJ_(6kSm%#xnzAYLxVsTV=+DqjneV*tzQAgi=i zUt}Dn+l#Ba=3l5s4`|gFQ9iL8LAo|etDnzZRULBlk)@mBx0d9sA?du)tXvJa#~NLE zjkapPWE-Z?E~^zA1|?)mU>hY-fy>Jy467wSA&Kx54t`znx4~~~-eGRw2_h>BwD4cX z@kSB?79|atik?- z$x?NI?DYnWogvJ8xd4ei7?L7^GIbNlH_?<630wO$y5QQrx}RCYM=Gs;sNv$@QJNRE?0Xxl~A3xh-OT{7`=i(Jf1>9zset za0l1POSlmoNyUT4Qw6I2OULri>Ma>!ZZoLU_sf{fBw=FX#-rT!q-Hrbu3P&q_Y^vY z4D(o0a3ANkor6U-XcvH+R{b+5=~#PTqM(z=4w$$Y1L;4=V3%w@Bxx_Jm5(i zc(_?rC9Ku=sBT*+$r2B~aI~vBrY1R=YqjW2lteG2L1)g#T2vHX$pJy{5vh;6ICRP6 z+-2*k@DKIuSqk7^A2!tppc5EaujdU^q$JobaS<|K0A9;PSU)|ZOY z>y9$w30alW_n}+TVYHU?ta}r?^sfFa#mPVXp0{YxUA(dO>6l6pXwBKnlnIlDRJh{M(5W{z3-m|cCjmYM zwY=s)9-WIjIr9mr2jnI7!1KFS9is<=7IzU1Pw4|#U}kg2q*nbDQGv+9c2DKIJUTp; zZw1V&5(h8B%ls~NhQSU21s#v7v|-6gz?W(i_kK5HX`KWbmMk62_tKR>l~rH*QoR~# z6@d0+31EU)E)T2UQ{T&GsCr%~CVAr56pGxWRey{9B5_b>MpbFX6cJ#YGNz2T_FYf zo|nxo<%qS9{)-k%7ev(Xq);_&R8o~U64NiF$xKUlCvKn>KkcQ=S~ZfKR*;9&2LPu< zEvH?Us+P)F=?%+i+@;do&q{wKbHrI3IaKo*mg+7e8k1IZ@BXw_N?hW}WvVPi4=gd) z>6W@+Gid!$qLXL4{-i;c888vH-cxD#(iLC$6b%=@_u#K%P=fnqQg9C@9{t5k9nDuHcHmH zh>FFJ{P^N4M{`iDJ>DcEk_C8tY*Ck71t-e!tF1|EWqhO8DX!ih&`J(*Vs5Q$P4d2l z0kIQmp|jd}5GZ4(z5CTePpVL3b*|H?`RS0QBPE3S$%$wKl`jea!)oP~Nq?t2+(BbH zJsoMxcUJ>x8d(isvYphjD1eSE8{p8w!$rqKyn0Rdzgi}qd|OsJwW>{;7M>Qgo{~Ii zDp)Ov*oUiHeFnoq7FdaP7bM1d)LEGzj?TnQnV>2+vVKY)ZPn7Vd6+9dC*#UoE%UIB zcOdjO9Bq{$>GnrT-MVuZKSYK;7yJObRFCX!F(K<yCD4Waa}8k2^5(d|l^zk`OlK9^~DB43K78qG>2gO%l*_Hs#P z9}An3_O*IuF^OlA>6Xy0pk}xGOey+3mOnM$^eG^Ta_abM;*)13 zLh(v4X}F<&f_kxG!mlis`MVaRY0ZpA0QNX%&Nt8NJHiG~Poa z9V4|RIS!av!lkCHsN5Eu4;ZSXYR)y+*q5*ftL9XErQCeYCXkx0b*+Rg3xCXB34FC* zAzl0RcVA4ozWwy%sYV>$v=8jLKTTh)t*p2~AfC*J4Clp=DsHhBPf{NCJ0CpkcMCI7{eEt6#cK z$i-4~Fl@WzlSQ}<(;r$$W@ecq8+dBbZ4?b=b$rGNh(3WzJqzK!C9FRdl?z-DpXm1>!caR?5bo;TsmWkQkG9k3fRcrjuYA?sQCUo7#c=~^Q~=K)KG%8G zdG$E2#k_VnFr<25RtGp)VR>E7>+KGZu`2nZDj`tHcQVi8b)@q;o7XxAPL-2GcfM+z zuQuna*7;hdGDVlkm$7oW6S&+7T;Y7Ja5B`nan4tR^Ce^hYB9d>PqC>c+Ty%zu8FSW zjq9V;R4H36(e(r%>G=O#6Me}^^@o}$N&v~Zu_n67dHZ8c6fKE_{i!C}%A3ptHPI~+ zwkrBArI#CvWMkcoCipNGy~aD&nKCylVQx^e-fUh78iYtLZ>AsSI7A<=%opSfKbSLy ziJ^u5)anoG-u9rWq>G^T=Vn}<1`E0S^(AMTIfv>gYYWn!&Aajpv2qk|dE3pUvhX_0 z7+UD)7`{-mTj%qHIUB1s)$;c1dF#a}vSvztNzJqoH%oI_Uo z>mXM(4^=|-V}$zZefC5OI6h(6XUT}F$6*lgsI96sqmZ!`XA^IWcMoNQ}=Mp^UPAsj4^BezRw9Fv~i<@ki+mGdf!S zS~4h^o~WW>HS#xT{INkE=IR%Clo+;bZ_=lbWNFL@H0SJg;7xqJNjC zX~~5q+Nvj3^N@{dG{Qd4eZ}A98oMOMVE=-2?T{d5SZZdKj=orZFIBxLMpO7xK(UYC z{p!alqo(W+LB>4|SX{GUb4iUK)ibL*tCW<{6>IWuWV?Lj48DYb<`juBSM{sXD+sib z#?rZlT6{F9EaFqK#=jAdRn^%-YECHao~1G_CnLnj@wo+6a&1BQ@*bnjt|i`A|2eyc zXHV^&XewWjR-s9|?9!xA4$u;+C z^NxBi_5Ycovn!))UvLzztf6{qWd-}%>}}6xZ+oR$z07b!*QR2v9@zX}txHV{4_92@ z16}%265DcwNNMWebquwa?WkAnD>w`4t3T7e2%M!2Y-wm;{V4lP0(|vn*+V75bcPi3S-Hf5<6tYMdI9SOqKvXCXuU>t)i!qEkk^E&sg%+^I>YoF z$!Dz=%v|v=5i^9S=~A}f16IxmnaZPE!x8(pOaf_jRk$kg&Ht48s_6sLa9}&kirNGL zautoL3S(dzOQiliL#niHNTy>7I}6ZF16)^qK^K8fp#?B$foRA{4`>ruJ^JIq|5 zL{^;EqQO!g*3BmrB63QvksPf3o3VXiSALUKO@sIIVC^T8M|8QW@@ko@bSqpXm!p`L zpcOJY5-Uk5L803^C3SK6BrAXS+b z%Dw1$>U=3GamSVgplt zbD(Zs$4q@AKTdnNJ2NXC-3j$XRVZ1l)zWkT5=}|sSC2{^A#G)!16g6+B30n(BGG>x zr3vgqbdQg-%P=LzPM5aCp)7ofFeS?T1L)G(G6lqV7url-3O%_~zARl#&Sy)PtI4?$ zQg%q(kI~MHsd-unu^2+C5#%VcS^<^lH(ZGv0@j1Ra-hFeu7(N4?1#idhq+qHMsgH! zg1~YKw1z)&k!$ZLS2O+RdauWR{S6{MjduDX=fwJ@QclmoNjIlQCe-bWOd%H;or-vh z)@acmL8M59b)PakeXFq8R9)lh@93n&V5w1LwZM{Um*jSYsrG`p#K%Lk9D%=;sb#sn zfdpyz!Zt#(y@tO~bO;?}v#qZ8N~uYicOHXP?K$%QpIV*N$WQ4LYLz{(SY7uq1w@q} zv2Kv&QWbz5Q4skk@!pT5?T$P8+oUvW zT*&(Yej}JMg!N&@P;8H(R0ZASEpds)2td0wXwh4N{-KtyL>{d$r6gKGyXjtMJx3iY zU(m4(4>ZB@g=$j;TDcMk1MS4A5tLSxIMSU};Ka!kM9Q%|)Wvp6I;BXZDQi}Otjt@8 zC1Pt2`Tm%UF_1OXiQUb zrTt&R04Z_SzdSiCb0o{w=u&2gPapXHy40u_I_*)$1i;&JAoo*d^><$1edW6=n zv&i^@OzeLz=1*c3`-JwWf51*KrF%$Ur)G=gwiq#{3+Q|COJ}jK7cw&%(*caT(BW6gWc8jGi>rsCf}W;^OF9z{9fiaiL(Cx`rSrZA$%{rA^w{9ZFQgWF28^A6aOaH z2Tb}iwvTn5yCO$32?niG#l>&{O?%KeuRH@i)-|{5=G1$*O>HUcJ z@mt;f%c@C3kS-;NBP=8hzh~bsALi8ATvafSqb+lW!T4g%9MJx(=kl#Z@=0K<;Sd6* zIJ?9~u~AH&8@+sP73ALx7s}LgFuU7?3sgXXLO_F)4MjIr?tra_9t%&n8lpk(^*tR zw4I(W16?4}Msf`P6omf)bGiL4KZ&m3Q1;xrP1c@tN6Z=Npj??heyf6fW(u-2f{P$` z-#H*Tye{Bby_|2ZopGdfIpAJqV^4ms@+6k*FNQ3}8X9p}ocGIzHT9E*9u{*w?O*H@lN99*Ubk`o0D_qRM<;;KZ-dUA{ z(GtbWIlze>R=@Cf0|w`O+CJeUhpP-DO*zT?TuX1Y=r)&%T8lycz(_7MDRAG%@;=Ue zpU8W$dT%b(<=I?1Lms%HxS^j14>TRQoau=)nm1vEB{%^&+{1d}rAE%`sU~XR19<-+B0|!sd8>I@t!mSkrse4=m@njCj z>Y$&oIXc}Ml^=-j&I%T;uNd5&__qAy4s&h}nxeV=$yA!;LW_$|5#yJ&K&B(K=&3Sb zQ8sFe)g85L4!Yj7hZ7Nae!y@~?!cjgP7PTL@H4%jHE2Ef3D4#6-PjJkjbEIWz_xdJ z)S{cxs^3?@7AyzaP?1e=^ke3^@T5ebpokMFcXR+D@InfFVB7nIFN@$+D0&BzkzyNH zsJ|iu;g?AL6@wr3(h}r;3iJ=ji`6HGlt{Bo{XJ1GL{n?fN@-Olq?dFW>z3}ux-Z|k zi&j)kV|;Ey8M0L4zK3y)oC0!n#aFQ+0oU>dy%$`r>xny&B zju3~o_&Gjl>l~LzM4ZoP??^4*VALT*6SD5cBeM{Vi%=%f{1M9g)b0m~){ya*{W0~F z<4xM)?+L+XQt3GqNY%NaMN#QTeNgENbh28t?7cWJ3VXxYMHDb-dIh7s4;Xc#`K>-T z4dX3nqX!;8bzls0VZ7T1j0OyAwCcSuLk=Fl><#032L|1*@JRFlBNplGk3F;tW6n2v z;4sw5Kg!L&w|D+X=K!txd#Svi?~!+h3SL{lgw{qrecSh1>_-TbM0S(BL>9C%qwLle zH}C}s5*)@t{dtd4%9&|R5>b~3H2)u)OHtY zejiYsKKd(-&<%Bv12x};`T?AHCe+=0gDVrF!gW|5P@P`8vj^0A0b_=Sxln)J3#uHc z25Q2EIk`$Ay7xUQ2o82e%XP#*M&N&H&oTTFH+xbh=U!7qg;p|ik$Ym zJ2}3jMc(9F`kTYG1@-`X<79pNJUy*O>*3pH1{(nAelu=`6$iGZxg?XdnByrK%#7bQ zLm!xBAEo^JlzL5nhZ#Czl;#=J2R%J>7P*u+Dw(=dPO8K^t%BFhuBFanB15SI(v^4U zxJdUY#wt+Q0<)#Ahv?2A=e3=yKKkP%JF6ljJZ$$JvhGz-Q`K2*P84uf8;2+xWI9S) z&ERh(bx6HU;(J^{%Vv+1rGRC+R=WR~=IokKc!UUfsP zIwR&5TT|9vH!^wKG5(m6Q#obXPLKKbbAI$gQ1>LiM8AKEU#BMWkP-hn&HfK06Y}~& z@py)|0lqiWu@n639%%GS@T+KRy2K7yo~hr>yr=oT8?INEta7PdQ^y8;k^38y4bx`(tK^dp4iL(uB%jM_}?^>NTdb6wS=FmGDx3292OS z9;@CpFTe=D-&hY{tTXu;jmcx!j%y-}*JJG(eC};Lo$6(=_ zeOk$jL<9;OD-a)s+S{RtrUB#ZtvrSA;tk5$HYHk|~4HPP2_6wYF zec&SdDanu)Cwtuo$h~MmbLv=i61ShGbg9=&FsJ^1ti1_f71i1QpGycNicVC}xJR4T zr1~nj62Y1axiACwA}%O(D{ozD>qa2~T!4_9#Ej#$sTE7t7k{lS+FC;`OKpP*U=m!| ztctjR`yH?Pg0>P|$nWz#GdBrA{lESFU-V{X&YU^RbIy6rbDnj$+xGE`t&mAU=uqd` zcNMP_E!^FCaS2vmWJx4yfDvY-tyo2);1FxZF{M@aCqRW|U9ppz4Egds1cKKV!`3gQ zOBRPVFwAzUAwuD9Jkj7Y>_>KFHv!Kj;W|x%bN7|U#3759t#(r18PE?`n)9`_{I(K%D^9f+$hxdIIZUFJ!rLF$UVy`L-Jdn2DG6J975|!<2_JGt;hZR1f3* zKhg4}U3YR!Rv>m{6~?ew4hsm}M6knorB>au%7&Y1P&S89{RAGp4F=T&eBBiAZc9Gn{#U zX>Wc`!;L|HwzykBBJ)gs4_}aE-R-Ne=<>s|ottSocg~xI{eeDBK&KZN==HRY9Y_PW z+CON2vTJA-p-wI58VSn7$%x`E_RJ`9Uw&95x_nR)lc@bLe`HXe=R-!EIDy$gi5I+N z2IU$~bitrF1chGX%Sy&naRyZc#T%=`uP*-=`;?z3c*T_eDE;nR{{7kVpVJLpa8gt0 zLNKw+_Ki~>$v6|fHXF|f5Y{2B>@a;-)gzsYaM45v?3i!~;xyiFR}Y@jLw$&{*M zNLhY-d##xlrUnh^Ql!6ZAe};JJznSRs&`tOsj z=|AH}n*1eG-(LtuAXDzFGsqO0st4=CD`387h*i)PnRTf;-FG!wE6m%A_i0?FV((ri zf?gJSb4(}QIk_%8Gbzd?O!tbu7-FnTBW!+!IS}`*!AR`2c!6)#Jy^iAOVsn{th)6K z8cV#;9+jxE>elk)M4m|;_nZ@XI&s`T%(#94o(dM%)rXk@LzT!O5NRsP6d6~_gvIvt zS*z~v6wCJDxX<=oeobSo<+mSe>=E}1Fyi&(10!~z5AzOj=iYG&K0|H8eJ((UPWPHP zes0(KQ^}S{U9KvxEKayPAW|x&vw-Og=8A>lBqJwkK3od_YrgSt<~+DjwOYto*8>)Ow(7*qnJnb@8!+%0NGZ$IS z=dqdtjE`;d_weyc1~C1FL55vq0KEqp9Pd1Y?grIso!%w_+%P>a2{M05=Dcj?nD;#} z?nGrYfwE1tmxa}`?$MD6);$g=&Wi-0uT7rBm*%;jH5Rlk@Ltloi*gFG<@9Ua&nYIz zJT@rst1`89E|tA^i@!A{Tx^Mu}B{;Fo3G!s~sOWM)iuQNu|Db%l!> z)Kw9pu8Q0&)(V#O5&IwpuofS0kYbIrNNO2*Eo@&Ftou~xHv+PKQ;jQ%jsS`NPg|l$ z;s)z} z*>+f$Ow^JR2E-rLGaCB^`8cgqmOyEQ`Me<8&>$PLIvBpy=-gG7K)?jq9B*I=#Gxn{ z1Jk;H(t5v)HvA8|Fd*!L+16z3?GO<-JW8Y4ba{!wU-m_YvUdRmT$c4OFIr@QG(d>F z*ozKXzPAiDOP2$+*!RR%_J2b*p{L-uTzX!rq)Z5!z1K}m=ddAE9d|#?oV!oEzaVT) zzj<^vsKRUzlo4$0lr`$c8iTE%nE|2yEwQ@ynFVtn^agwLu}O|?jIu37UD{|SuYg(g z2Y)+X5xn|XLp6X$g?2M;_|{hKSduG&51xG>?RU@`of4sd9%JYxTs3fo9q9^D^n9{HhMedR`JdPN zCIyDI+SVgm*chC$mk3Qja&}j^oqL;oBX!0JRN1pDIOSU~LgO8MFY~*YbUF$K0B^`K z=_`)Q5X0wF#ac~tShX!ofVg*D=3pHq!;FKK(K}AP?(sJU;wnVcq&Zn%@DWgahW;o( zx7F|n*;zj)W(Z4&9K7}>o)g}QnWI&=)v%2k5LuOFZs0Wp{7;nKJ5i-O?n~@^bg+$} z30CcUnzII^De?#csdE~EUmu9lz5ip%TYg;T+v01?O! z$YDDB^I-1j@NP9+U_J&0NAb+Zr>Y{l&&R|KX!y4I_&CjaXp=@2;z#*dk>bt6U4S$Z z!J)`JY{hoj#JWpuyL$cBh_*VP~>y&7VoHoX87_$Zk;|*)kL8^M(x-C?{nz zAqwg3O#;6^K_;>rC`;?#6xJ`_8$J16Hu?5&$WN5NHLHy7+;*M1+}oX%!|9AKYc^)u zqQ)2`?O~{kbV!dEI`w)aJXaO^2U62Mk+BT@zWfl>rq&C*E2cbMfV}thVmWsz*d&yO z78xJ%FULO4xLNaO(v;}(;r^%MBjYwDb1r-2Gs5@l1Xb;?nG=i-FazrEPa|lL$$02q z83SSnm3?o@Is&ghW4K)f=!~%+ThtMDW~FiHyq1!)*pm<0{$uxhi3hzYe?)OCj4^KN zq@oS}edOL}<2J7|^Y(#3kRD{$sVN&oGDx4)w;7qy`;?j~*{8rS2uK+=?TVF%>DC)- zkm{!ko=0?7>`ejE9|H4y8_;9%A&&%es6W&esfkCEf-=>u8+u(h} zWt!H-iM4SlYV(d8ydKGxd-N6cVfJ zrXAhge;_{Bfn2ZUx}Iw}Iwm9eT}VtXnf-hcUUjeEZ+U*0d=}RwJTDEey4UX#p1)36 zbFj~7R!K}@%%cw-*f~G@-(+Cyy{**+47yodl|-^$n&)Ds(bz9t9Aju7Ji@d z{Bn5Jy?)Q|d;|N!y_9h^^|gdo-Rt)t&r8rBf1TfK;4lg}=$ifQ&vP&LBa|oL;Lt;H z(32)c#})pPiqCuXBiM_|Itg#AC6MfzZq>fUT@TlJO7x-&C)=r`4z!k!y&>6EY}K8~ zl1sL3lyB(dH?{oScHZ5nclA%0LfWPyQZR*{#`}0VE)A6t4e$fShwW|+9fu~YSl5zB z+^Xz~mwjT@9!VZ3OTw2N#N8Nc#lUZ!GmV3pRd1|Qj0z`yxISBjx;7YU+he@TNk5&! zdyRCM#cGe|Vh)h(7~pgal-q6yzROEsK;KYOm~g8~iW2VaCB=?=QAw$Pr^-m>{n#Ko zR2fk3__~q;myv5s2McB=aGSf_ZJm@lofF*Hn@sTI${XJ&%b!tjazW98C%S1h%pXsiSbj**-e% zj<8mYJ==^)_2t-uY=q3YZ1~C}$w*>0zM-)*TP=bY5!o<1zOoF1M-h zQ&o7?Z+i1I?3?GbpnO6`&R9nZ)A|~(Y^BBw{O1kAfLBazMIHL;ALR9HIW)U#=nubj=LIn zRZhnmTG-9H+$v2@RwlB)!>#4HqfeCP z+6&fU{VSxIm=4T|IoC3xpOU}_){6b%y$@)6r?6ndg6^-4I3=h0G|J2k%RGSsLHh~x za$=q7LA24V>OZRnuUfj^oqjD3G-Y(O1x9p^@$>q4F?Y86YWnmBQ$J2So&$*-G~;3> zQDG5U@XBfvir!tFZu&(e{OXkOt3CDRtLo$TF60keFo zRg1nUhn+okWSi|`v4vraPQxSQ%E@-OrgzpEVBl|q%y;}&ncZhusQ#VY1~|>S<96=j zsUg2`@tks$P34H|imQ^@*H`p^ookvsjcJw5a(4eL15K85`eZq*f0jIx<%m96#0c1{ z9fM4kT}YpXwl(Mu>7O#Jn0+Z$Lo-DI(*sC4;nb$Y>zE14* zdVlkJa_{St_j*0VydKf}+Okul0XAFk9RCQCrBJ!m1X{p{q`M=tlj$>cSZ*-IU)3ys zXc6wMd*mzq@&6p-*=mo|0xb3KSg#>X58c>rt-^*@?y^d&L1c4ld4o3A#@OSeFV<^J zzWI!&CBf5m=IKfsRn*BW7znl{R#~jIYDBy|ZQY^peAuqllUHbc62VlE_{%Eg{MXT? z*2b-PEs!Od{KvI8j6VEac;~Oi-A~dZ$>eyKmrQfKc*%8G6G17~RN3}QDLV2mPi`IW z_?AjY4dj$yDyyKPw~p_rDE*qLsQL(_P%nQr*P$-#pU6im^RqR|MK5AVQ|TH$P^EJm zudbwq96`65!Y;{GU!N}B)?3rOpeC#CZ)9=YCo%=mmatE8oInMoUqhyZ_xF+}3U<6- zmPo|STEub8qAKi8x8Sz4+^TOhCA{Lay+yE^yu-3}{CE0@e!cl1{qrVza|QXs-n`Ec znd79(@p@0(eK-9f3{i2?9Ph4@W>f9GB{JV}yuXxeG1tGBZ08C!aB?*~^(jl@SV38( zQ(7}~FiCbOn`nMDiAb9wHG0q*@^XlgYJzQ}?cGA>Z+vVHa*5;CWGvV;$`bkyUZ--R zR$&|z>D^F*D7O%o8w3=T8|l_qK_?zk3*~z=Rtxs!H3=Nd(}qT#r*VIsSQuPUCZDp1v^jiM!)K2B>&BogfttjoAW@^~xOX?3 z%Y6pO?s5ZTchz>2I4FTSO#){~bZZj3#!W!vpmD?56#52oHc(D@x0hfB|D~Yz?*}0O zy50c^fbP3W?=wy@cXgC;;;nxZuhJ*X{jA%pHm!zB?~df8hmn#wGJT*fLwjDG%d1RY zy6g7Ox~=_<(Zt-QoGSd?%w3ee@m1czI7Bu+wt4a$ zL2=$r0Aw~B$OSw{c9~>Q`J))Vt z9OBmvyu$d6)4dy8Oa#csRR9<`?!Fy&KTJPIK8X3nu-|$cEIj$~4;>02fW6tL&>r6N+vF z+QS>W-@$M*-+i*}U7Uigb7Zq80|_=FLVT29O`IIrtcx_0dsRDI~sb-a6+v50a@rDitP`OUzvS{ z|30*d{Ta6g2q;Fq;s^cPsdt>!XS=UrvLi1I%b|J zXj!lUFPzTn>Jsd_&Gb5BzB(wMlR@8|)HpiWp$xk;!)$jt4WFzT28%__zZj0#5}X227{LklLSY6r#(a?; zxl=m*uhT+n#U$c!VW=ur4#3mx0VaJyFeA*k`(3QW>>P=@grD^bG0J#yaVOjGYw(9Qx zQ(IJ5|MYDAz0_%ceX<4b6|qFkdBn_btcfQB1fdbP-qu~JqLACE+(Me>uy``Xy~Qz> z(RPzMv3cT%&5nCtJ~>9mt@^D{drorR{szY#gmX3w$`N-U~W@$m)NOg z`YL?@a|_C337pyoYj#hpo{X1?IhYOVGlOJLK#&5Goi`yb`uHrq{_F7LM9hrYjcu!p zOc8ttQ98-dB~YO^E~%O%QWetb>XO3Dlxv&3*hAKeEB@4DYJN?#@og1#pNqO1An;DH z>cq?U6;&j#a5ic3HtX-;k4i&FQgM=&7?`aE-U?iSMY9XSbgyW&Q=wZa0s-g{xr=5J z+NTg}<7=Dv6h}Zhze|w2!}ef1R)8G>qhh>(s-p@az^>v=wm~(GxFoYv=0$ovKlLTC8*+x`$88gY!6gqq)fQo z6q2oMyzzy~#<|Z6idD1y)f(lbar=-{eJ0~Altzm+^u^)OXO1y_P0k^n6TZJdl_$b$ ztT3+UY}X!cMj(`BVf<`rp(!t@QKp{i@ARGBl_G|v+`0U@EKC1IdR!=JifiPx{?BPZ zpDxAvbP2};*DMM=ov8=QjQ*P7LZ_PP+*0?7KjTw83o$d?W*ok5=EdFGWU2aMc3ESW z%ig1P$ey$${q=UBnKa345h-I&?giH6!D+;*dySUyxmliClGnhsjyB${H5^2YVV2-H z>D`gh#`^}FL_L*W8+Gr?<1y+sM3frD3~@Wd#qGGaPTZs#7b37^2?Yiel*|lH3)TyBaMH43`5To#`JnYU{P#{cLwe ze&d)zyk~fcq&wyycLKICm_&Ar8O}#Jnad^ITqrb!A@hKF^I6xym+X`ag-+OUSq_0q z3pQVFD}vM_CPOiBn`0jBQi#9d{6>;w@Skf}*bCMQH}1taI_K?yxjE@|Fi}xGz4P4x zy)mvHV6d$H_u>C8c(03Y8WzCkcJgeXIRnCKOkvg69JjhK+88VH#vJ5L7#ekBhezGS zQPGZAK3E{f|8JPEjrENN0o{s6U(_;^E4K(%OrXW`%E_y$L*uFDK>6ldu~0cEoOYm;1jkiB8$6W zf$JI-6 zasmv~ie1})s@XbN+The+3r>w8*k818=GW}&Tc_K((R}|w!Li$*A2G^e@QoonPopFo zN7T_32b(>1DawL)yDdhWqDBGj64!T5w>!XKbhMA~%;3j_`=k^3q-q4CZFe6)2}IX%3mcy3mAfuYbe?F2I6Klez;~_kk3$5d}Zp@ ze!o|}sgw|4`i1|5@HQ{l^|#YUT!a)eEt6db;Xa7!lU)Z}b$0{tWY?7H1`08FGqp^8 zNc(cIfTKUPD?q>O(1%)e%gl#GR(+=?edwcjlnJk5)&7%?p%fIv|H4PT8jo{<+Kke3 z&B9w?*1jBtTlH&IgiM?oK34{BfG@F3zlKcf(-6biG!4M+$1F*!uF^aYvFh6lr~>+P zlp&_9+M|wBxdC*oN0=E;@?Do{R-08jn74|Pg__ihrUAy+yd7zmlQTPY#`!1k^;JXf zvm+mJDlIoYJFU7QUsIW}MtRix36=M2Z}Wm)z^T25P#f0h+4k0p-%OK)yX;*2%<_o~VAm2kCEF~nMd4MnUeb0dkUN;T-U2BEivp9Uo~1|>B5 zi?bz6SH^4!jhS1}uUI0jk%!QK`2(49r2RpP(*7hRls|%wRzO+O8aMVxw5A)q(?1q# z+nKvE+oO>J%p}O9|9NSRy`|0SSDK*e=TI8to?w+@)xAx70JKN|=FSpxxhr2hP}bvO z^H^6HJ_^+Gm{>c7aup1=Csu{QM_J-%VWFT8<)!S5eekp+coJ%0)Jn}IHQc<5EyADB zNN(}2MlK%CHV?yjXsjQtJbPn})1FcV0oE{@t&3Vt!cx+xWv0Qxx4KCen>HKn zIpl$A@o(Z!%^MMcsqQ6BI;(E08FvGi%v^v{900{EY_n=og{B)v<=bdkCN-@ARzL78 zi<;J|j;{ibc&?mJr^23^1^~dCz%S6awQ)8W_)#_!tD{~sin?;*qaLtnK=l~9r5pI5 z>4pj|`YD|p#io*!`KBJ29j$69sIlJ1ORQhZNCYo}-o2`aiK)?V+HLRT+PTK*qKQAm zX!t1RT82aqTn|jT9(D z-XC1&D$Dj-G;z|ewu_DHbBLTwn-xIy{CH|+X{M;(`4LSH+v$F~>NL0^+jFY$=07iO z!{B>|XJXCdrxykVDVRakX5MzClR-*mEfou3IaSC4wxw^#))-ryJqrN7G#RRfgy#T1 z2JHh!kJ-dRN9%(D@n2&@WyWbZm~mR!mF{kYNpXDbhA#H{b==>N9x}x?`tNEyyn3@# z0&lLEpAMV(P5v?mP32a@GY~G1F;q+|b2=wJS6WOH|1Z1{ZA)ZU*#xm-w_`Ijx&rOr zWrK2cEF83o#^t2Xx)SC*2Zyl4y7|YD8An-Ucsz%a)Av3h2BIO~$OlEH(}Puajq(Lv z=5c_^5rvr0Df!w7+>)j2E^ZgA56RXv7;F)@#zL2Soil(`D(?sXlme#lqAH@3g_toY zgY`d$Ja+j`D=BLnc;~jeGhT*2m7|=nR-&0~Vb_t~y7~tVkve*7UM_0Y1NTd~?TNDW zR_%tPv<70G)*Vmi4zk@!o=m4ua6ny0dQ*wi4{@j%>vYQ7faMlF*~fnNjt2ACh#zS z+z#rFV^!qt7solfOw&$-6gr5KpHhy5f%#zD@R!ueG zbP1e^r;fN6-*3B9-ZpEj=~UfX^XaA7DTwt&79yK_Lo6pX8u{7oS*WVX*VBXKav~re z+>VsT&u*P{jB)v_BC3iKsXm`i(dYXy%VrEDeNUo%D-&{~)iCC8N=RLZ)MT^O@L`cA ze^}w|`8ZZ)HM$@DQ} z?xr*hwl|cmyv0B`HE=#Fy+}inI;o8bb3r0?`xDaGf+{e+`Iz5M+4D~M^GH=#yGvP5 zV6=a6fg@Z}!GMl5L$%F_|6fmk)Qb2&@-lLs)*S0@iB{x~{_g)avm-e91paENtW$~> zX?QGYyL{6s6=@&-F}DG;Bl!a8hp4_oW}!K@f$RK4s^n=57aeO1qP_FMbmD3q6oito z=~E%pgw=pzkwJM*`OC9^?a$IvYT$F(2IBx$4Mti6Cs@;O3=P)aorwHXo39bL+vRKK z-4fcCO)O_lH!`vDk+mWV#xf|05!$)E7 zQpeJR%)Q~C(QWPRVzjV)MN<&l7a{PhOC+H~=DHmPy3^6i8u+;xxYSXtk7+w&5wL_` zOt)PEGICkYFepllGK|p8W#|L?QiE5v^iMg~8a)z|G2maaa<3D(316p6`IcD|4BvmV z$_^^6U@WBg2Vp#f^{vOaT8>;@}i|LoV^m8rDb`dYn8RDg##|%el`t~<&RaHow zm_Fz%B_xslH7^bGoQ9`=%tICmd$+FsyMRDEvVdm6!!v#*nDP?X?y^m|<$nr6+Z{Dq z*h%@HU3hg^W87`rPKsk}O$ZB{A1`Qyrr3bViS6E*<`w%#KB~r8pFkQM^W69J?8Xj)>paw71)X4fr*|g2*~8)WjuZzM*4lhW)`^%#-3z={$ICvnQx`o6 z<8hhjD7)-=jf++L8#)XwvCDQ@4L?=qz3(EKpR&^N?wLv@G*AX$pvo~Ig9)Ya$a+dx zX%?1YF@m8xc>+UkRAMhHIYCY@tZThp)-D+V!#Da&u{Q@{Jsp{SHiL&R2@`+Td3HPF zYs~(;S>ML3KzsH2Xp8LQGlxc7Msf|zf2vnz_KUVaotkI1RD<4c%!2ai3Vpb?5EH6Gyj8MSFCfGvKnx>L$ll{(SkJSHv7Raga~dGIr z6)IFTM<7aMOsu*V%8VNAA0&{|PN~lGU(-ICT-B`Fst$D)w2P^rNr;LXcm9=nOwF2R zr+#IQS)2>*d;zGXS_Dx@Lyj6Yf#5MWz7%EqG1O1;y>x!tTE(Rpo3RJ;h$k} zFpDI%o0^}oBwt)p)~BxOc%( z!PJ^E)NvC<{x{x%NbG1(r}&>LKkU~SFA!6@wdyTPll_SK7>Y1!JA)@PJKWlhJY^<> zLsq6Qr46)QFK9b%C$pb~%^w0koc0&f{;GrQntQ`Jj&QVOVAc zDowT(+iAP3L6c+Vccf$u`5X5tN9HGxs!xi0Lq?7OkFV~sM=LMe;oW4azO|Rat_3#tT1N6UPA|>2wP$Qg6Ou*O>CP?8&Q3SmzWpR@}|GFUMMbUk4Y|77L#A?r!52am0lp9O1RG^B5SfC=68ki3Wb>83WEp(UnCWuMyj@e zPQwuMNGb@IAxXu2Q~cj|8A-+Bcv*)88?Y}#sn*O#O0j>44e4@Dy7pqp6fpiVVnJN& zoBrVLWk2Bz_aAJvs2|k`O^BFq+TKK75l=k~tEC$x)dAPb2rZ`aoGBAuw(e!hO?HhS zqFyrKy<2rB>T@G$csbBq;H+>AMCvgRm;VzH13Z!R9H)(@g@z^QHe3oSvTH48z{| zV|mk)$lMVisZ*j~fyNN09j34_RgDdA)!;D0;8LBxBrotOWwoU1r?Pg^C~zsw+v^CW3_sb z$MhAPIj5mxxO)JsA%wE-D=@WAHSPdlGYyZA8eceL|G0Na@$512QHRYuCpcdze-#3p zKnxLCof!gm1kO%zynIvDcY3%@GyK_8;@$*!1rv76cqQZX9P6rnij-(EP0kz=9O8-* z2y>3J>eO8GeU4nn)ZV~j+_QJg-jXQaH1k>ia`nc2l07UD;S~61mWSb2-NTKUJYq%6 z%%dBbcpOtB2<=?M^OF~aw%7BJfeD;eVFetj32>-veq+S4%CQRfvkuCKUj;N;i|NdE z!=j=n*d~O%j+cF8)jrMIF%_=iX6CoV+?zSlNnHu2<0IP|`zn#>VCrq>WtO7{8%llR zYaI*kC8%9?j0X2GyRKPOeThzX?DLFh%}&jxoPcMV>x8rEzf`l^0mDMBI~H-E4>>~$ zJ^4L|E^t)(6s~ZiIMTF+wJ0JtGZvH0Jl<60!NyvPQ(2tw;K(NkGiqXa8Y?iv;@iWC z)T|iqfi6G=ivvt3H0DIMIc0Fq;U~PC{?{Wq^#vMhxv`awi##@zsgH-3RRt>X0_8o! z%qj&0J#Xqs_e$>E_F_K`*&ogo=2^Q1iY)gk4U@r%bjHgok7%8BykD&?>)1M>H3(=pSVQ|2 z(U*H=HT;S716voB@`;dsPg)HtOahiA@Cv=ET)0=_n+;{PT)lrjE)ifcCO9qCzGN1j z*$JHTe_D6EWu8s6CAe2PCK; zR|D0C+y{zy%EmAEU{IIGcFZJ>!x}Kpmdu&GiF`N;; zmS>kel}O!i!1g-oPD9Fq;OrvDjhAq6u(9ZiYhJLk;4Po+hCf3};^iM%4bovn;}E}5 zpU+PERYLQo{U59G?!(NM+#8wFVe6%`01wH!yPg{wZqOJi*}Y9vfR|RZs-L{&Y5fg?m&yK8*mwym2 zvgoYPX9S;JZ_HTeKW+F})vf*-F|mvxL1s|&@64_&{?%9r2iM*XFDi3L!o|l}4`QzU zo)}b|@Mio`i?}=e1FkHdX^aNhw3o46P1mJ7J!^tFz8R^nHX?D}0kpY2D$61wMEi^B zZ^qCvhc(V<*Z+v71WY1OP}^m&WR77DqO+cv!zr?uqBByb(5i>K^oT^?pctZ+p-1E4 zX>Lk0N}>-lzl#k|1<}Ux*mC20BJmfPEGAuU<=`787Wt2gKKG2?Nx0AYKYWWM)W(1G zhX^NOFc}>*Bos_ATeTuz)1~~?S)*YfVb;OKH%gPQ<@MovtxR83sb00ytLkrrf|CXSav-3B#%a z{3Ha1iP5kzb3DY`biNI|{4JcL_373Bkc;9uv?9WTyAa!Wtz*sWaA0RS$qk3>Bj7`^ z6Z#$1tl@726e1Q0$cCW?RvgBVJ>tt%f+$Cm-sm62V>^luXfVL#>WDqazyOs*QzqKC zIVvK-q>#_KCq}e}R{q0EUm@DcPcDz3G_h|Hjp0Nhd$U$^pWaD?kC?~waG`o=r&97A z??pUEE-IScNx8_0+$l@s@W90=BJ4a(@NX2o7D&{;T(XH*jFVpnp}4QGoi4?)kopWC zC3VJaTL>z{ve%oR?)Byt-Y~L;+QX;64rBN)C^jHT<^An=l_F!~@rDpizx!<_$P45$ zWevNKug%u@cDf1fjSs6cd{b`Typ#UEl7B}sH6OiK&D}f!@zk&bP1g14Ny>Vg$vW&4 zUdGWe7kl>`O1~;7V(asLyY*WY$eI&0_ig;1p0??)M#38sK{%GHcqQj^ZAh=6#Mw14*xYsrvkEQSUw()^ST%hv>;|x@YrBKhKRRr2@Rw z=jgRc8M3GKdt39@7*n9d>C?@JfeyvbgF+UkkL3p1VdWO$pKk5$o(W&%#_+0p{VwGB z+!yh~!tX+!_vcyH>~AOO@+apF!lxRd>Az~1wZ?QRAmU1H_qHQk@ZKVZOzL9wVqeRv zFGSKDy1;D_x6^}L2olAE3v`80<0TbVu!^RN8OPemd3Fw-JUnrDKgFV1W^8M*(a5=8xN;XO?MpvS@RYPm|96hMi%xT%Fer~JwoIu%CSZtxz67_ec7cz!fSX3Qt zr;>t0@VUvJ{w;0}u;T8_Ot3qW0-5PT053*Xs{=yHkTh=iu@|zrC+nS?4B6Zw19;k~ z@?mm=-fJomkYi&)`?1b>0c*fkjX?F0*79V)rv8P#l}PH(z)hai4|hggm_PFn$J-y- z&;_CPKi>E1;6?{V0wYFbUg(%>S=vnnCWVJTBU zyaZs+(r`9tI5P!3P-bSTkN7jEZ1!UK=0WT!A~s>t&OKjFVVEuf&axjkZ=?dy$go0- zuMeLWH~3ysd|l65%ikb~1HRJPQwM7WWuES(-}|rQseFLQnNh8=Q_MrzrzYnOXTq9= zjb5LZXha#EHiU5&qs82|nt_e7qylk>7cJzr*`#vt>`~z-aj_Cp#?(e`k#nSF=2et3 zI5nDr+*9EAVy=`n9tc)Y)Odi%3X(|vJbr`W><))Frm`Muq>%Lb#q4Z*%mVrD@VIxY zZF^%VhjWZKhPK8Qb5-kxn~8%to)!Wopm27h9Fn5m^dXKn6^WW%g!%4dj-PRF#z<GjktSD~w+G+15@~znUAPefc(kt(n`&I`;IA<7Zvq(Y$>-5Tg}y7iSL9 zc`h}Mv)9{VJlA~+tP|z)ityb$YEu5pH=R-6nzgMXwozjg#leuP1|S{tjQNG_{jk_b zDrF03f4`%MdN3MLr?dwfZdK@=Gw$xJblWq>P+wS_%4#1oIbx*3OCxj-T`l*nJOL0Y zPX(Br_c@xx;Fx60+B~e~@T_uJ2f5sb8_8ubNTB%z!==fj1cFB40_OP5gzDTvGI28l zq#q2p7wFXn7K&^L!C@qrA#S}{vY{j`;5W0zTU9tDj~TI0cxCvmG^Nxe;^5&JT5FI& zYME(X%5cikPZ;gkDXrmo2d1#_K%gD#EsJvxnhdc>$cWV*(05CLncOT%3d@0c;p%i< zQS7*ODSCeF{f;|lxK(O4HXI<>BN-(%iVU_;q~lJW%)l?=d8*D5Paptc`8MHP1H#&W zloM>vNWla5BVz8Y1EcN*h;+sv(z%rSXW(mL0`<=*O}IZ8o^Z#E zE;;VY zlH9+Tv7~I{K8?3+t6{T>+w`7c;Jog@GsNH6p%cri4lSJhBAmtUwV8uaMOc(5&!4@H zr$o7(Kf4fiT=4zuwf>JOV4`=?p)7$-5EW*+jheF3O1AR??O)B}>Lb#B9ja+-I>TYu z;H02c44L@`Wf{X#%GJg=1luT=lbslON3?I6dw2ZU?Xs`&7BEs%nTV$)9Je= zi+T}G7A?pywW#;DxHp4ViZWQsfBqhqxc6tx-njReNK4HbDtW9+_ilUoBN|Ehi|8FG zy4Apjx9T%fP^lW(@OEWy24RsfZ)bShZV*;Z2iR&vq_`>0yLF zlWA`>*Y&mt!c3_5u;IA{1VMZalrRD*!$?y@4RXWhr5I~;g zKvh?bsyw^?$2?m}@gpnUHU-bx-@4*jTE8H(lRCefcE)oCRHkmhvmV})?^s9QC#0%!aE|>SRmI@J ztKu!VO7;bTZ>i!FRk1pMEKM~!F=!OUQxyYb*w{NB$kF$*Z`=l`NZZH0(Q?mVaT_I| z9vjCs{vQquD|w8Y{*@T`^e_L{Ut0dqFDQQ^#RiH-KFm}GdmI*yPKWHzP&Oa28Eou6 z8wS3K7i`ToZ(Xczv*n)58N(^>A|NvmAQb3<@zmubf$^_`RlYEsVi%1x!@nHK#Qdt} z7zUbu@K3>9*Z}YK1NQA#FYutR`uDGfy1p2GGigq?fvv_ybd7&K#YbDtWV|x-Ono!{ z-THO{p)am)%oo)6=@8X-y6QVH+H!`jgQ6|vT*G-hUz2$rSWUXZ#T<`1+g>kX9nQsd z%{ztBf)|{E4bg(NPAaw;+nZs3HL4xfSoCZTI0p5oo}g*ga-%b)m`FcBb-ePM4`>0i zLe_q~(^~$tZLM1PBN9-~vl?Gz_q213A&~zb_e5=28zt#yK49FyZmR3!jYtnvSu2@RB+!d`dA(DV*ubF%_LH4X%d~|={5ib^g@*_K8j{#KM)DrQsgw);9#Y0uJnbCV`%W|kik}SRdPyh{s_P51 zsM=m16n9U;DcFk7;svDKUI-Z&FXZr&Xl;xa7D1lWupN>P_iQ&l8itd4Y;cQ%i+JJD zTS4wnYXC-B}7Xi`}# zDk9+I)@aLFOcC&{FFgcmsG!}P3T!Shd=#*RHY4~ZP`7k?Bb#(z_gC(jH3xwctU7s! zC(au~6xVzeX1(mtzR1Bgn3aOg&)SRQ3pn}NFta}U#54p?8T5297(9y)*c`AKU*qp2 z_qEBEJ84y(mHaL!&zMa+Bx@6xKyaf(>U=`0{O~h)PvXywskwbbE~oQzAm<$vq`IH9 zyAhy$SpBwt2w$1c2ha~GYKHM4vZ1Q5H%Xq%37jUk%9KC(8s_Y;#S1!Pbp&{+Q7=_m zyBb-)x%vtJarz59%*+rm*hW;cG*&4-+S73XBH<%r1 z3`V>ZZ8?`wFmjQN;ZfCZWKm2=U7nLmmNo8{z=CR{Zi+;@v}K9|LRqJZ#%RkJ3W&mm zK#AN>@Tth0qv>C$=D;aq*T&Z4C$OAQP)*>=#Ht(4#9%z@2V(*F6=b7-m3iOF#@cN^yB&7`6;To6 zxP%zfn%rICSSW=Ttadks1H@>V2Qx^RRcV}dyG1+yM_?pwbh#R;%KSDQ?x}R?RefqKs<#teU1Uz2081Mv6iXRpU%25VHaug zMxhTq6v4RCsh8OnZHb!C>YD`XF2N?-&Vq*Z8Y~ zWQ?pl?mXrEIX4dEc>>d?y1U5iq%Jyepg3d+q0Qw-M3)+*SzyBZ6+^;W%U_BTjfW6p z&a>~t3+58((sDPcvvQUF$BK#c;-u_y=a_ zIy3t35lkQVqjB!%Rz)(6GW2j z-7}u>8-N|U*B~-VlzE!*N<*Olxwp(!5VfXEBiHI%tVuxU;W`>i;ZkZd^L%x@{Q2s? z`3V&-^A+rIndYK6z8bw74ZU=@w;T&7{4N3{fG>^R33xp%%!MsVz&hkKr9Ig@mL@FH zo6uM`aGu5ILj7OB=fE>2MtFMNYj5<7vdiEt)Vp{sz5V#C&IP2{RI|o9$>TQ&`rZSo zkb0MJsSNm7-mg}gMg(e}sI&*ItU3X6rdjdwt2@%wN7<>$j&$6egIHpEp*wYGxIg$~ zQKo>@E20_1(P()Qnp?i79(0~{-?_E=Qw$%3t z-vD6}>_PrEo*WMRL2sySxJvYl&7i4N&*`5HG>Ie4yFlMJ(3>=dq259>1nxxs;mpaxHt&H3o#T6JkwY^rv<>R)u3kx8DU$qO`?Nr{N0Y-{$R$ZTxy+F+@ z^i^qhs5($m%Xa2vAlprImwx>YBirrjNzGwY(@zJfh1>^ui4aTBRMN>#UPw^Ijv&@q68Ux2bNG8VF@GYwShuJNDMw<(V5{$%>Q4@J?8@OGiu zbfvQW#jnklUh<`{=g?O_?@M1Bdg5(H$W&$aoGm;}NL`dOfK5KH1lFVf3@IRh$r?!0 z;1=B)?Whr()929_DT)1pGrr^!$}Inbo}N>AAGWLSIe`lENA>i(p3U$IBnETHAPqAd zw{gOm%nDFnxYc4%Q@CYfr$lju`pbev)-qpBmu0?b7c*SDH}$RlOQ2E0lkuDN@O9i} zzTTI+Q32WT(QhqgXG8(|N!jQ>iNcQm1aq*rQ(!d%`LN&huhVA5F2U}!Q|hS<{ zEp3*^l9-R;DSJQB$ZHzGr|{HJ@@4z&JKW{xwxr&F`0_e?58?@rU(*mqrJp0B~th!m=gQGSn3HIlDA=|lKX z+CDGUN~e04G4IbRQy(=LUFyMEU23a#CZ$4ZG#V{xooB^EMzsJ(Gt_C*6(@p&fR@ST zZkr=DYT{SCoBk7pgQIqsKFi~^)TpN_mx~&;yA2~icon^h)QAqVE&+C>XY+AZiyG{v zg<>_ljtDP-k5Jkp%}hA~u#oRtQlVy{R80wcIl-$sd%IoUKC4pd;KU06g-Z1r4**8> z+QIstwKGW8|7Vc}!t^q-pa(mlyb8Mk(>eCyI`m~51FqH^1+`mYDnxSiA zgE6-L@1_SYVERU00o6&EY~6jd#w%%9N2pIL@EKa#LT*`jpqt2v!||r|>7ZoL=G(CwafS67?)8qIZ zm?(e8YWTU@${KabUzz=5|1O?-R}1!>-rOeRiTvI4#2RKv?v2R$5*x+4zq^LY<1T9O zPtBVX&y|WyHC_FXXtISybTn#0Ax8e~);(?59?}}9yYWbQQ5N9_kuPRKagTXApSIkt zKv0B0NUkjwR2ecUNe`qojh!H1`j#l)HRFE&L*~lf?W=C`Um-EjllD&)@6VX5_$P3y zb$8W#EseQN=}UDJ9zeJ@GY9l+*Z^6s)XYPXI8rN)?$kXSc{@)T%s~UsQdKvy6N@H+ zq%=ERCYVN;Fy~$QH+`!pGcRO@GuFF_8G0k*dOD+ac^mD*cU72E#!SRi1(?{6cT_m; zh90n;AZ@O5?bKMgq7!Bf9A9LC75OA{Mj)>$|CM>$@DnPP@iB~5Y-t41%poD@L!ej9 zME=0}x>JVoS#Sq%wgaeV!994f;A~Jbghv4G2l|7%y=p#DS(jM#hlAb(CDCc`e=NY_ zI~lZHA~i4n3;aQK$evpC>wIjf!2;)|@3}poU*|4? zF`D8$Cyn^IB>FWxh-AyPO7mv?i-aRdU_8YbG3Nqj*YgQBkbrq?NWE!v+JB#jb_v3) zh6n3j62JM7IQ}r!^SYUZ8t}YYc@mGqe~g>#Cq2wB6`C5!RJT@`BR4vwUvesuRs)XX zn-2k76E$G7UGSuTwJEYY{m5;7^!r7ob7~vOg+*1NOZnTgD&<7$3{fN~>kAc!=gghy zIYZ@0Llz6w$6}t;GZ2L*0+DYZfJjfKc$3_-0P$gP9S4CqC}2#(tx*3X%&~kxY8U+q z4j|?TQxK#UGI{$PVLrOmR9 zYz!~nD7Fhea(Cef10GXh=KIupOvGqR>wGBI?;}eO(V0-uVb*1wAT=QQ4>2pYK3HCG z>1D0`ZT(GM&R^8W+{B~UH7%)h*SCGZSz1nc<#?wpQv{R8oAQVz4Wd^Lo}mocuia@H zdf>p!{!n6>K?+~*ZjCNI#LTZtd5b1>0TUTLk=j3?++Mn>T&+l*GxTGVc#aYeG4e4I zxBb&3R*;y!P=j5rb(_lD^?P#^2=Mh8FLKBu4nZn!`(DWpk<5^o)5E@+?*oCg)bx7P z_D>^bVxXj*8unj&YP8UekxjbuWL_CITxwXId4-m*(jKDi{l@ocqJ#zG>mS23q7w^( zPORa>KvUkOCM^0>=hTptzO9TWNMSUcq&NQ;(pcMC#YUUvY11d@&JWU2s?3}nYRB_F zU7>_B3L30}PE|oi@^p}%O7wIx=pcDio;{rBKC-_=!OO`0Zb=vxaclKv7*AR; z`6DSv%D$N+ng^l1+djSkQ=##2K|98CdJ+{mpL~O9mzXf>V;?3At{Fyx{Q{p-7=Z@X z%bH&oxYd7$88XK-JkhF%2Hno6am6#o*w=5F?&MxsRC8PC7D3%H#Y-2x?suxwyB@Om zvO=Th+DwAq0KwHhKL0HLhh%oVD@&X4M-2mG0*`q7#DT}~=wAgC+za5{;Zb>aaISxT zx)X?~3EzbO4EMQ2rldB60PIOe3d>87YNX< zDuGS1!hpbNymD5+YuLZ6x)Lg#;0-)&f)_uHt<$)QW^lqUG@DES33FDZ)It(aI85I; zSl%8~2Q>C$)QqHX?!dmshrCU7={cDxMBmo-hA zPFCH+Yn`~fgi%}2)4gDnnHbwVMbcL*Xe0O;iSC!1V}W?1Z1M^Pvlq$nv(0JvKL zx$hT{iJ0*xgX>t>vBv7twPyI7(+Mm@ig^bNW11w}22%}Hs4Do0df&l&oiM$*km?&y z{r@|}+H{(R3cwsL(M!6kTho&zTurVm^cShP)UYl$j7T69c?cSB(A)j-%}6Rhf!t1b zO^eMWGy3mQwPnjLBwO+A7^{I+InQZK zbl|=}ScfT{a1_k1RRC}Us}S%Psc1MH#8R1RD&D}I=tx;jKq);uhkKG5gM4M&cA9)o zaW|Peh$(Ew8Tix|^|vQlKtAuB)Fk1^?FJASI~(&uu=z$30)Kc;+2%y*+X$o(`Sl_J z@b_(5eGbW6zm6;>khgvoO}>fr@6ANPcF9|Z268AUG!)6?|G$8o3HKOh7oIyWHXem$ z;B2hOF`jZJv8e=2NIg8w4E2=8nK#?lzliUgEAtIjCQMymDBO)lo=L^liiy`HcOM-D zicao6*{T;cEH6w}-QnE9Im2mG-vQWG?77P*tyV1odN-(c}fM1GzL2xsvz=9p3iyh)tYVOUGnpha%-+am!A2NER zX1n1M8*%GXNH!(bgt1hdg(Dti-Cfq*D*!F*Jx-`K3Gcv!cO~P?MmUErg2|L9BRKI7 z`%k7oUvOUE`6TVkubxjhJu>qtpPa&s#Ic6`&a{fV=bLGDWC9yIO)F=VQ#kWj`}#Jv zc7jP5zwX`Z9bBjxQFfF60b`W#zF)NTU}Nl2PKgQ6DJBHtvS8TX?z2~$k=|A{oRL1S zyzaT|NUzjDUbJC*Yr?rr#Z6Vm(NFEKZqsz74e+juAeK(?5ql(RY|`p&AVlTyZAF zTsiDe6uEHXms574+4|8G&7_;e$`6K3ss5EbGmo&!)AYDmOM+Q})Svk{caa#7byu>% zh;7Q0TPX^!6||@w!`y77P;;{=d()J?*^#|jlD*lUz1hM|k3I+OXo5&M4kF<=VXo^m z*@N?noTBxep6_p|tDz9K(Lig3@h!laGx^EI)*VfZkd04h$(61eLQI97 z-LG*LP_xwix|pC+V_)rd~P z!B1eygE@(KBz!7ARd-<_GD^^*8V-RjLxeq~iB(fIm?glC67yPM&qgyHck_H&sJ> z)j)zCc6M*)gTml*4V!<&-i^78#*o9nLlc15#L#|&t-ANYHAI)N>ivLKRinB`8S{Fp z_H_^qZ8oDv>-0*>rC#7A4LKPTQ+U^^y@;HZ(1NI;qBu89VDbXvCLE@u4!Da!JCByK zwMJ=bx$)#@)r}w@G9Ldz>h1%%KOM7oV>`i1rj4l8vru&EfI5lw`i+3k!Mbm6wjV9ZSCBu+s!vi1+|w(0$|FEg zw!v&y3s>h8S-?1AvaMK~RtxZ6N!Qgatx1wQnS8qSN14`SC%^0h`oQldYW(tV{l2YIbDHvWAI9!9}5#>}G7k6LnfQPqUxZme-q*U>PmevulSTQ7p{ zucq;#GiA5U-@~h*L!r7tk1w_^_33+pDQXmaX^%2Gtl7~OOYFhzP^z_EEOX|d3C2WT zQGf_ytlEDmJ=cV;TF^3`(sCH=>L220ir_F82-|u2nVSexGAr8vVK6#w<~DAh)quBY zZ}#=}-q(IB={+b?aG~a6y~l%ma9OO+{~%Bjal~p^OKT9hXA`KFtE{$0U$WIZLw>faHh zllV8w zc^~|jEys*yV7J@jp9r5*p!<0FcB}q8^eGKl(MwZ(gBkM`G}ZeDNflKa4f<>M(_(h` z>;}yS{0hs_44OJ%Zqx#EqgiKeG#ku~z;A9e!scdU_C~9b!w<&7@_U3%0$aEBr9GSokf#~twnjBtQ&Y!_s!PHA+R=0>vAw(YYi3AouWmqaHGzQ? zQYQHj>EbSP1j(*v|7lI}RKVNuLQCqz5+=c7|4y&~KFEMR6$*fy1j>aO;LZn6T2M5i znWt<_rQ~4-cT6cJbY7u7>eOmFKDRhMY@5i6FxAuHc_&f_gtLL6pF0|uw3u>S+{gQx zFJQZ{_Q*y~(~YVm2m!}aP4HyapSLhScq$U=B>rLWR2(4EQgaC{oXz1`fpAFl>UG9d zARHca3MC8nd19e(eI9j*3!kQ$ z>+QA=)F`w2Lzgxt7FRaL?su#I4=*r$sQw*exkS`x&D_P5p@r|8fYV8%>6cUWeTpm< z$ie`sDY{&~b0%I0dK(uE;^aP!>jR`dgBW+Kz5-S~gx}o7w3H(egOwv#Xr$9271+H@ zXXx(g;_m7q(SsT3)ghJ6_OYic^?}oikhPK4R1Db~#A4;tB=Q!q`^b1?-H4CHRH(4- zMVIdMog@bA1b81(F-o>WeX}58g4CbC0}Rv>Olz|Rvk+M9OENV;sS_yqMdqbpCS;JR z7`LuQa0L9Onwi&$e@c2_E#E2SJspUR5)-F@PGMKdTXvnvSiK||le5U}=LeNGnm4fx zlGp@;>i>};W8Y1+0+(y8m#_hxAKpKoXm;B&O>m1VC?b>(+1%2WC>JRtqdVf`$YFkc z@cHxb)F5~@Nmo);W2|%OVVT4il~At|pyF{3+wC3b&B78;Cfw6=qb~C<)|naB&VIsX z@Qgf8t)r0)fEo^$&8vQj-1i5$*(hThtQFP&fLR`Uz7p*PCTSyKRo%pc%+*Jjq!0Iu zYTY*l01qg^R%C--DV)ZRVJ_!U@!-rk?Sm&~uujjiKAHz*4skH4aSwEG_M&#csA)c= zad10gVA$O33LWFYN^0MC^5Jibr`CtREq`J7BhE3Llqva32W5sy7Hd+8fIx^(eGB5; zJmTX#{X-%D?>Q0 z0WRR%CpMUHTxUDbCzFx;bgqo6d5j21We+%L`I51DeO7Gs=Gs|CAsH7tL_smg5(~{ zs()E`Ud={bbPR>|gUj*5;YN9Wi%RgEQiTZL(U(0}kz;TA0OcV2`>)Dpj_v*O@FiU1 z<_kSsKYkk$Gn%P;`$xjB)sTw+_77AZ}1Rw8XvJe{1fAkePiPLJJjw; z-d{$jzlrka1O4GdYEFa)#~Qzd{=VQ40;z0c*k7Yy6ZSXkU}lyYNi%R_i_uF$QJdP* zKSSJ@nN2&2X-Cy}XhYEm`KdMXp`QBXj-^liRcC#1-5Y>))sev2xNo6e9sd-{xO$Ml zJM#zu<}3rCK-`yHn}1pK%IJ5lfEt-FJnoGdIpQV3T;j|!H2f~#GB6=W^IK*-f!5~C zR`tL?7kmSVDg!@Vwl}ZXxMz|}ozxlM-WthyY=5e_qI-K&c78@Ly3kI(H{66)236%< z{qsN@S(3^0HQxqR(f6xmd()8vgc-jI?TBEqIYp?1P<~z;pFn%Hp+{SF8rF784|s%> z>i2DTV&RDH^t)4oLWUEBskD9UaIihGzSa&GrZ@ddPrDE?_IXCezRJ`)pDHrnqBYBZ zA}Kx&c+f@*YL97UFf;SK%@ixUq0pd^4lYve)ZFIuBL$Mu8+F+3s&7XBFK=%GA60cd z@Mj=_u)c^OxJN|=u@KZK5zqt@cmp$l3odP~R$G3yYD;lOs0xlu2J$+68f&pwYnv{% z{My<^D;O6vASS_D1zbRFC2EB?jv~0QD)axIbKfjs@xOll`Ftkty}RFY&pr3tbIv`t zttZw>|Baj^y7M2<8j&`BcDdTi;v1t+l+|mqcP#GNB;qY14$}9;KO82G$?!RFzk&y~ z4#WPe{PU_!|9mg+nAfz|wMqny>(FFE;Jf=ksFgPST0S^u!#!ozqOa4hptD9Ndll~_ zkemIk_e)L4_EoLeBy<+ILB~|71Q=po9j#>_t&B`Lj7+!qo|COaCvidHN`>Fa1l1by zWWG$Z6+fI+an2CC7a=d(+ilKN(Zfx`95&>a?7X|<_nP z2KZ{SDh8zvngjL067B#effn{Wf`Y>em<O z0?WnpQ4a0x9gw4UQ9&1*& zvgHMU?v^A_W!mma!Gk9e4HkLl{1zK9?%kynqW?(rlkDWFoRdB~yrYPX&Fck4woADd zP_g*A<^V_R6Bn{&x0Bs>R-aRBC63h(yu&4{rAKfYW99mX+J0c|-va&&^Zp?PWn@mHKO10 z(f7gs6$6iGn7Ns}udda+ztz0q&6-ap+YGWYI?4H)tjk+{e^flK0SG*1n1^uYd{vl7 zxp@dTNT7fV4qF~i#sq3xE>#=%hL7l8$V3ROc#U8P4$2L#E?Mo(+r6*AkX3I{O$?JM z4J!z$G^ttqXacN;cLjiM$kNk|J`- zb$y$$HP5_*>(|8u2l0-9@d0*2q8-b@{ML=YToCRshynob?N9(-Ln*easN};CIq;%&N^HaUx(0p|I`^`hrvzoi5uWh!{-)ioj{(5uI^kvO~^u^65rl&O@k)F~#JUyv- zV0uDxN&153LFx0G`=!ri<8~H1r;*LQ(`Pi7rcY}=A$@XldHRIrqp(vtJ$)3`O9Pq* zr~5Y_m+swse7Z;TY3Xjw$24@ozGd&yZ=pB_`($g?U}UiEI=zS~YD*v`L|o<$db>VH zrfe6f-32me$x>^@j51l7zVnYj{f6k3_{3x&_5`98v3W-nv9Rx)bWU;f6ny2CV}m4w z=(wNx(B{}w=At32B+hO|`^17Ie{IYqX_F)vR&H;&qRe>{*D(z1oohO2S&lbh%KZ{~ zn@+9vx}^*d98g^|51L)l6Cz7g6G6*NQ048C8j|3RfZg|Q*|sm^FWx)7|3!leCMxEr z7uOE2bGj6;*_*|4R^u@k=AXwtqMhdep5?NqkZm_VVaqG{-N;V_X_xY==Qoa@2;I)) zH-?|c&ct9c#BVS^k!{}2Zz(^KZp`M_$nRJDYWY?3`zya*{F?Y-wU`lE$2a-?l;5fR z%J}VrUG2v6GoH(M{+!=A{IY9Yj-Q-qRyxa?5yU?Y>+EvdLWN5#*cMsc!hfwC$UM+gIFlPM?J(HN(3^}uc@&SlUM zuDyT44v1HGDrfGvxL6T>)-7qe8et<046jS>6y!4tQoAnm1_kx7F-227S^Tqo<}|V< zP|p7rri2Reyk{Q#B9rQr472_Hy= zr77fcOD?!p7&q#|FbOW|nyf*PV`=Cy-sxhzfopK(Om6(trJU|^bfb*H-(Oic< z`W2-KO^)<~B@^~t-uYhxg!f$eoo!~o99Cv^px z-{5`kOIH5JJ}8*MTlbNo>kK}DYGnrhVQQdg7;^)|+RRj*LwM#nz*z_Ex5{Dm>}1bS zvI4?YimmaNkd4e>j!H!b)F2S&RuGq74ZJ43Od@yC zX<*Vbr_nj@S7vDP{CdWVPcdz|jc0m*8Mk%1gW2WXG)Lt5^EY{axJl;PX79g2iho>2 z{89dy@sgeKJaJs-mPB5XMgi3Jx=!J#2)Z_@Smgn0kEmr({bk-DhMgWp@q4gl-Z$90 zJ9XRr!Dt{)+c$J(%Vgh9l+26gAojdA@!BNABPFrI2-5RZH6W=Q2yfxLRm0uNC1xa- zd20|Ii6?dNeExRtz8{(193{O;eW9C;dP*wr+pYWkGC3oKhYl#8bV&%X;K%0M6hGE^ zcipeZu_=cfB{xciXx+2O@k0FF?x?HWIUvXWZgW764Uw(F=5F}ji?v#l~AqZ`IwGbLc4tvXofklv|=_vtiI{d zRt_pUFOfaEDt!k2{W@;%hSx(+R#0)1UctZUh|o!CvmNe54sI8Y9u1}Lurt*|6r@A) z3n_vl6CtOl-bJ@b|0k77t<_z3|D$ETpUHi-vfpP~T*1uVnmLkND$Ry}t2c(u3bZSD zN-_8(h`yPWQP`nY@!_%BLGViZ#xOA z@v#iZi7^l*4?mSRh{>|GqU2+iIy_#$kci|dFKu{A))D?Fs!Er=)xrBI+Orb16y{b*ze!w_)h0`QmU2GgP!_WJ0 z+SPR(+2ys@GANLWXL+Uvas$Jxf3S%e{Z{&0cIKZ_aF6EhgiMjnvx*_j*;C9qCYyuP zV;5E+BrSR?ePYtGa29#zo||rr&a&=ZednGVd5OPSL^K}U-;zNr@xDnF?!-Vt$vcT| zhJz636i}x2JoI;YBmIV*##0dWuM-1B>*)3OAQa!`CmJ7-_gE_~A0r1rZm?ENKEJ*- zdLBx)>18!;a9?asVD4}`Y1zrSrO46Q*c??8+tVXbR@0)yUGM4>pD|p679BTwEeXz` zv@+=Pr-Z^bV%hfzZq~Rn4!;G(;!BY+40Jpv7R)$8%YAc{e3}~ya1?xp=vZ+j+BZ$)VQkOH==W=4RimQ6ksFG{!~EO|+g%XQ`%!CI@h&~TTR}mGPQi)yY}G1gDEQQ# zP~*Y z=O^!1^Lv!vnfwm7|B(Hd`s#sF@{m7;>>LW99Clki?_L2-A)?oMJIYcYs_y6)uNo}|MIF8 zIMGLVHNwnjOG9{dZNvQ5hMB8s#FJNI1ufM*h1_y6uKUe(_|P~T=Q9Q3!&;`|xUr)m zz3ohUuxfwwll1Mv5GKxJQR3V&eq5q2aj-?0N+;TozK;3dwSa1q|Cnrk4#7Y<6Pf6M z^sz=BsTvwWB7M{);c>CCBcp?H>qd3f!i}`d4(tmK-yi*x)?;80!_i^l5{8$7Zm0mkvan?TolNWCz35lO-5 zwV^;K^HatBLrIGVHrq8Ph}>v{cM>3pDGv3v68!;3*x42uv3!hR_rm#n3%ZdJ0d^j1UBHiv=880jb@JN-e*}LS|*ddPwf0rR^or8aRbb3 z+_|o_V;M8?62equF75Rl@*ArhchJ?8j3x0;nAoy040oi?A~h=Vc|205>3cYqI-Zv& zgey)RDQ{#dN{L)BWI7pgzuSO_6n1TkS4pJb*XVJAgCi6U)&|)H4(!itfgf2Wwj!w>kYPFz3FYd&sUgR&Y5m*0<>buP z|Et3KyGxO#{!rD{xi|{hpORj3q9=W#ZLXBbPsv%045^OirKCAvJTEG!V?yCr%AsQ! zOWW-yySFLV6(ayp!(^;B{>DlfOD}5?IHrHAOF{aVa31$jLTVdb(|&@tpr+t02Z-8n z1l^-ssz2M!!$g**b|6D~M#o0ZNbL5onPVZ=z7wyWRT^h2@ z8%&4*$sP2*A5uaHpSSSobF}DpSgaavrG<9@i(m1RcLV?#?*GjssiT~yAdApzc^5a% zXY)Lt-=Asxv-~>v$-5jM+raNV@)g2c+SQERwA~OmFYIKY3Y`2H+rkJ_k z3%a4R0!DW=ye)Eeb1&K3ptXf^!B$j_jGjEYwI;TptUHFuZf$i><`RMZVm}UyWWJr# z3o&SKD39$NDI#OkpSE)|4EeX%2fBm4{v&1UyhnE^2(R-$f6wP3^o`n zE)w$Vd`ieIRh(!gM3gagV?MPOpDW}vd1NR#m1XV{4xYvLW*f)ZMmsr`m3<;B`)p9A z6;ij|c58}bx1Em&thPUdP2^3X{eW_ZDK7>7D{ErodXI`+DZZBQv$R7@ z9ohLL)`tKzrLaCDIl8j1<_XzF)me3W zxVDrk!(u5ddvDX05ZXf80wh==dRz4+)L7eaVMwm(ai*80gii)qpOK*}v_z7BFti*( z1zMLFXa%C*CrvjhV9@4ljPEUpY>4meVI@RJr7#qtMB3hhfL1-bt0JM@3FaV6?yZ4Q z(ch)SazyyeL%?TFA$+vFV#*VD!0;1hJWlI69$8?WpuqaN53KZs2DpA~gkv^&0G}db zSfOJ$o6-*)!<6ixzY^LLa=8wK_VbX5lz8wSy)(6fhe9DC!fJ(rNZQm@J{vt;Aahm7 z>X3t*hpDA)J$t545%9CScl*sDI&@v}BaEpNY%`NnqbFu&*LD zUO=m8FZZnsdh#Z73*f~cDSesBr!BYrz2wa>As1-~JN1{mktXDags6IA^iJBO!gORhH!EL8trzHa{ODE`}Fa7>H__(X`57q`*tl*Msggq z44I!Se_jQ)VBCg#3(iir%0f9Cb9nd(P70V!1E_F`kkFXQ@{|5avgA}`PAD;j20L;* zc`Cz(?PPN5D4u_Z^O0s)3x!Yyodu=i;Qszdjm^-$jI?8s@E?LfZAHCdgajf5j1Ugc z(nsaHkZ=Fo7so*?#=Xcz0xhOz8!ODY5FO>I+0qNTyinu;kRWSSvWX`9&a7 zF1+ip5)zvi7!^4UjrTER&;xlXQ4x%8m2_4DSE7b0>;s>I@sBxgdX3)}1Hqmt!CD}K zaCRu%Qb)3G4a7ls{+!$c%Vc)ct;MQk)dovRlHXb=#(UDUwxS-XA5s!l*c}bsh>Jl7 z8aUd{oSnj)Md#s6V9v5VbS8*su8HSKJeTog+h6y0p3LKQso~O6Y83Yg7~-%%uVsN= zkKfiZ+#MYzrklttCQIA8W3;=mp$F-XpaiJKBw8@77vE3~37Z7fm~=ExYNKCpIdUJF zGi_MNSx}Ms3v*P9A)>8E@6-c)(>idiN9u0g!Eew4vhtVj30c|i^?_yOvtBH;_%9niaB=m&vB(=dJ19 z!Y#1OY!{}%KVqP#!P^p|%IwjQ5HTw^;k585>IVBS_Z{H7`O$71V@}0&DyZ{=^Xu-h z65OkVy;^c*D~Z^bckqD9=&7+_vL|OxnajG5^Y{NjoU#!jGlo|twN86pPvmtvq2yk& zn^Jhl!DT)ZLf)W5lSekxy;zf+d43k67nCU)!J^2s^LWHfYakoQ)0IHzj6~^g0fFe1fZQMa)3p(1{cu$8Nt{3ULrh%P!7r0QE?MTmEX7EM>HlIw z-K#8(-4LdT;et$|f(3#CwH8r)CQTJi-JQH@`A*`;rWz>`95dyk+|z1Ankj$=HURhXjgBffS!`qSJ^_>z>+%n||h_i1+;uftF1DMvkZGo-hv2Q22g$ zdVsxUn4LcBHs1GS!-u^8BCA1EqJr$$i~Z17xo5mq_AF3Es~)`_vCpeAVoS)`>pe;g z2l-oZ=GVb<-Ne}KqcTEKM8$G?`fSmskw^7xlq^rxl)?tcQ4^8MMexQDZV^Fg35!np zJQQO6Skl77w~E`vbJ9Vuzg2gPLL+ybPK8M-OMZ9V#J1W~i$-yO9d-k>;JfQgo}0Pa zO}=U1CtiC&`f%WVIY*j|wn)sbui+Cl@R{U;Dz^%+X$zw`l}UOX)aXF-MX&FRIX(4$ z@52AknXY>3TPRQj>R+5G=B>saQS1*z$7$D?U3GH&mLI@0$}I%T>Au%W9#J)~5!fV4 zo{-4(odWAb3qd#tK!@-Yp$tDuMcr0(Y3mpqF^=FBEp*9i*9aF{*92&n`5aW4fMI8irQPu- z5$*kSnDn<@`zy#Xj&k^{8;-iLnK<#(65GYCK7=Dt`UtkyyTas2FZ1r=4Wa$LZ6$9J z5lH`pHbKt0)gFHW($3{0D5rs4LRP+TAphE-Fpxd_C?>^5EKY1{5^nN$ukbXE!))c= zNg1$SgDlD02}X94EdYimLWF;r@c;iY0j~}E|V)}-d_vU)qi9yK|JBsF}V#9R28>r ztV@i)%(-W;4n3c_ie*9HQ_ z=D%JP8P2?H3a;PEr5kFDwamNZj6f0kxH}K@vn8TeVM24jx%=+`=L$Nbz=^H^j!kA_ z_$BqCBt&W&na4qBPE|I~>nYf*HFHN1l zwJ3UF=R88 zysjMS%FrS!@k?p4?E8|v(96k*Q&bOb$rleZ&~D}0-}11;5F`q5pNa5mK1L)ZKg0Y@ zNu!GjRjfYTlDn(aY^0Uf7r&*mOIG2okeWvb)lslaW;0RRbqEE1cJjyNTqHaU;7L~R z;kjSH{sYut_EvR_%VAQpOCUWQ!}Z@F4d~N{&4Blt(~OedFo3dky#EB&fMgFGT6Bw? z%Kz?>6WMKGOw<}ViY*C7Kfalj(0P{fbg6_$YmlOnsn(jD+tuD7{^2#0o#Z%!Oj_M4=)q!L zU37w-Ag3aX@#RzB&?Yp1tBqP!7K>d{`j&#sdZ1djnQt)lszMXHUtK0tQ4n}$gEv`P zW^C-vlkL4*a_W^tV@B0=f&Z2a!j*?GiAbL*F&C;SUd|8?LzC9X2xDs{#&}|gcaQt9hOMc$R-sew23o)HLQ$jAJK_(Gy{U z_q?+rbg^PP8t-5jNfTv9kt6lhF(ao21suvlDZ&n|4AlpCr|G@97=j;@vp#;?Y-ds zjCX=WRPpbi^(Y4qL7YP~(*I}h=*8KQ96TQT(Sh*znP9B?(-BAlkBey0SHa`k+#~vx z@aXOLxtsL)Y*H7%V_Ug_#}=O6>0pm{GXDzT@d`FXUVn)g&cB1;(RF>!)U4o$#+;b^LCXjnlfSPa@}M6F+;wP5<*ythMK$C;IBtuRQ8cbfao_ z^hCSmvR9_>X}+_8I|x?ezY0Hu=KhuBXgk@L9h-O*K|tt^@21VeQ4+KFSa^ZR`Ko*Z z*Iz^ITeCbc`Yq!u2KzY{d8~om%ANlLHn1xFM+wONaN$PW@ei0Z$t&bq_UH%>S`Kf6 zV8d6s#qAG7+-oqOyEutQfJnt`(~RofhOUq)y7w( zEMSgm{B76&QnJ0bB1^W_NPHPA;s0n58wpor;UaAm{bEU{V3-l0`79lbt8jP1=;h^atG|F3z_DY?OF}qzliKom9?;&q!+J=duZ~Zt4uww*fD?OGqOT>OS7ek+TnoG z9+Q+(+Fy7%bZO~ZN4G92`913qJFt3@Vgk!og}4|GPPJ%a|cueeh9jX zUj2Uuyz`GYz&nd4TeoQc{HfXZxy|=r-2{#48#-(|*WY(wJ1e*0#24DL)cYKS=aTzk zuDJ&)S({+9d-}(5rWt?XnJy(({~gevOKFhovImlA1U%a<{KVcs_^<=zO^80=B9Mea z=5dWZz5zn%oh?%?IeiF_^w?s4-pT^1Th57B8Z00WxCNC2v zSVRG`{aq(W!Bh7>Oz!p5w9_44`He!8k(bDH5lK&SCc=@KOrLNwmi;hfm(kt+;p7E4 zUoH(NXO#up#iRq~eNw3u%Ck(qf%_leprA3&4&l>#2xX+q?-N7LnC$He$naaR*@7p? zpTIUpuQf~YKV<*_E+o05D1z6rtJW!;WuL5T_n8zb5PtNSLX%U0hpbi9vo8+@cC8}Q zxJ1CvsV!`;^L#Lfl!z8rz7SS0bb3eMpkM&vfFc?01PqLTfC7*>6U%Hzv~1WH588Dx zSyTo#Ms4inOjT!*ZoWP5r?g8~#-4?0V8b>k&7uKgOFWD!%X$4O|7qC zH--_HCEsH>;bte<(FEz1jJ|YvGC|YJD4`6|Q8k`fSJ)>3q&n%b%Xx)}08I`Rv)(;usk7bNHiUjB=XbJfc$Xe6aHARR-bRA+sNR*I_V>q9 zeXa8xl%V9duxi#_4-&w(A;`T<}T!lzL;X*?uVsLiLybrEdPNqSKBho6Nrqr`Wu*q;UB%2@e;+$~v z{x(7zak;69h?3fiv^@=6>GT}g<*jXd)3 z9=(tb{pSqn(D+%btS|~0DR3W`1hy0*zxi5 zK%O(X+)8|>RJOufGt67FqC5UpUc2m_4H-?zeN%K2<5v!!du4P6mBJX>A`Y5)I1k>= ze?9tF*N8MKhC8Ds5w)B;kcyrX=&K|5n_}7hFs6__t%bM3Sfo!C`8HV7NGjU47DLWX zZS*FvlJgzXQfH0omj~54o$=0Y(SB^)rH5AhF~Owx{H5#@Ye)!Or?BE?216=DepA1i zGDQFm|0j{lSuzySl>?o78nTU@-b-)~#NDrPhFg0`-$j~YB^spj?)aaXp!Onq3i+Qs z#2!1l6o%3rKhMOt^GdzflB}!ges2V)0-vz5V6)Vv{;se zt}a02)C|cWASKU`t&m_;gKy#w#H#F#9vg zcCHFUAB)|3lAf!a!!Z|7<7$|3DK}(2QnG|{qkm2JqnUeEi1s#-+>=onO3qP4s-GYL zl5x800>-v&Lb+JgESgj?4%2eN`$wNo4?us)iR@wCYXbt3wtw^yVJPlLCYJsa13nKz z3lbP?zrlPQi0!}9U?1CGZaoyX-=j$kw%?@hNHl3A>MfbQRNT|L>wa(y!Rt~P6o0G= z$EI-H4nak5I~UqQ;q?kI;8Rc_!*?7(c`Wb)`I3 z0?t`#+&f*NFVyGq#oX3lnOT)$6lKtLe;FRy~{=a`J<0{j;<6_bIGj zPR?q7mKD|yFe(i&3_Y@mB| z`J0fQJwua!0phUkrtaP?v}%`k`gyP-7oW^h@nA2maSGE)?_PPEC~uCuRms~O@-~V$ zb~)l+Jz~K(mPTb;x77RHo%=IMUGHIBmN&q-a6YZfcw2ubWWAj;>i%gq0Au=7XG7y2Q&q7Yu3)d znBB1_U*_GoMn=6ZCRmra1hbjc=P*Xp@l=qLj6HdIffw(gXISe#r{64M|7#z*3ZfP) zrhQ#l=*py|7A3~-q=-i;!fa%8Wj|phVZS!TzI&LK!*7b{g*|XV2Wa`D&q-jrH)TA; zp_)b)l-u?+pyqx!)^F~o(zNcTh{q4xw3445T*Up7T6)|pMYJ*s zKqhkdB7z4Oaap#Ao1}>O6j9K*)Ki3g&lLMGojlZV9}Z~qR~w)W8VAt&sMSiol% zQS!IMK>+%vq?X=o5E#EJDCU;jci3i>+;DIa^CYztakmul8;U6CT_5RPlCbpG(zDY) zU`Ggv!6D&NMdFONZ$6x;nZ8zi9Z*P#OBm$!1JR=*8Z?%KaIuk2e(T)p%)5v_I;E^iaRV$dFu~<&x)wY)zij zH1+m^_AVh_NRE||9xB-xAuT~@pN2MR^(9ZRyUeW@UqK)4AszIgmToVS4Jq{DrJjhS z&i3YlHBwf5enU}YsI;QwENJmD-nX(5YCY%sAV`fiE%+WS@Wzp%kUnMQOCnPlVmo`N z>>g%xX0YtIM^Wv9<98MX@T}mD|F(vkP2f%X4uxV*%T_+x$*%c{2|DbXym|E9$aa!f zZ9dPG^{VGo zpX0}0^&I@3rjLI(!@KV9UvMWPf)josVslIGte0IjA`Q3XGA+P}0w4he(lQao8TB-H zC0GotjJ9~EK5OQcTte%094q3Pdg8n4|L*)SMhJqb_yyggy+c?Xgpv!&(ns(%Oiy0^ zmuP}2n7v{GfeKm7$DWXld0a!d4qciPy&ii}*)rRBvzCWR@7>J_rfkYcEm+w^W07Hr zR2!v=8U@q%q$)96dBzBDv5i?K#&=ql7~rsgWL;f}9rQBfH3UvXR)bNwxYc(i3evao zEa%z5lf{iHoQV}Y8FAG1&dt>!=QdkpId`s!(d@kLuf03$dQtkn2ixCzgo^|-i6>rX z`F3HvFp?Wo6T73lDB52xx5Y;<#v^Z102jH`I*H=|K&|5r5jgla(>r=gq#8qTD~`A> zE%1bO@!eR>uszC}6x~HhQask%{Q$1ya{E1`G!ah(0^C8rU=L?IKBxzcUMe$nW{ik$ zO%{~FaZbD185vYjn_b0@_JnW_{;Mov)Cw-CHAy+IZ7P^RIfGe#)-cW0t5gVTm8IJt znP~?Dlfs1ve%3@P?6<97dZ9GI4BbJk@avOS!1YMgU(pJ;-?JCWyfKZDzJ%O|%gM@i zFxMDFNdgquiM%sR^-wl@nCdzIJ@bo9J*>nS^7~MIoRSo(t`29e<@bC?pz3RM`n{sk zc=R=HztTz4C6rYM_2>TrTF3oF|Pp4QtV&5ENJu$5+ZcM@X$x8(LM$r?DZn67O>`2-_w(_*ef1?_4-X zhkf*8;r1u>x^tx)*-5>6VBw^`^yj%r?M(dtcTxkamV>bH=NFrKBvYmQe12IVIxAT>#Gsd<6H0cacB%F&>-#^gE9BR;jLmUZIIh1lk9E!}@y6&Q7q)e5 zg;Vp$Vb&*Wg)9jhSU2qCz*W3jh_!u{t?_M)(?7g2!+~9uc_+`Ch`b@oKV|I&#xS+u z0AdR;+URSy%Q9G$f@>o%ioNzo*vmS!7`+Jrkjp@3C~h;4XNHhdc%oNXML?N#k`s4i zLUu9P+v&9wiIsF@DqP>XBGf7<@Y-rh16hYLcKgIq$->fHRqhqCNpFz1mYmP3`nj_1&ux2%BW{Ko}9sj#U`x7MD z#*Z9XR21QA;@e8u6iY=3*Y4XIxn zIRnZ#z2;dV1?hn`&kBhrw2IKG8ntXCPcQQHN!Jl}YV6itMbS~QTYDEphhqXCyR}bI z3t5WvEKB6%^gx6q+#+PMP*53}`r1lqxM#E|y+E=?jvl>J{D`h1^62V@msV}*edkL> zG$CDnhyeFBUR#WLMjkzo$L^|i_SZV^Vh_9F zOSuh+v)?ze)a=!8k2#gVr$XSLFG-5(qeWiqod*T4Pn*O*8X@#;aIa|bowWu+lF41_a zURGXi)Dd5JAE*?qX1Sbtvl8!6MQW?Wx=Zko2*>^I?$GdeBd3mTozJv#eJ)&9XMXGRqn>cs*jO z`06q#WJ`4@H5>CeosiRzBjgOqSgV0^4s^Su4Vem(P$5Ta_Yoo@*ug|`>?M7y zH-@0vWO;Daf6IgM7rUjJDZ~slCrgl3$zc3ivSDLGd&noR*Z8mK3$N!D>Ni^-%jfCi zp%@RUo@%Oowt`$WwZsb6HfnEM0q@tKBpe2giNxB6jdN6!AxtQYF{Z=ank`G}R*=vRcQ4mJAF<3*S( z`p|(nedzO~i@ufmvj_u$qpb4IgV*pdI?NbOrDbtNjoHWyNuIid^iK)JkuJL{C63#y z(O^Et%9K83mN0iQqLF*Pl+|BWUL%dE{|DK!%7(-0FB^(-`pcid0p~Rct0_|^lW0JY z9efUlnb%)F4(&sK*&nbF_lCw9EyDZyZnOyhQHkgH4JN3o7D4rwEhfgDSLzMotSm+S z(S#U{&i&@&K#k4|8tiLyzWn2%G&;{}64Rmw^c^SlXmmcx=`SB*vB;?k{5z`U04YyZ^u#q_)zge3f1Fm-D0(Mt^xW=)mNAi80J|>t!74X}31fwy*5g z=~B>%F{%SAjXrh<1!{l#6!vFQw#W%uq~9O*pA9+v<(Bvs^q2eXz}s!$u-#=>A{7`d zW*y8M>a>`z#jJc-8lDIfn$==PXMhj)5$qj35LBPww-5b9gUVulAPrRg#OYyo)*$`qwwI)&p^K%?%d15 zqPXJ%=C9O!r^%LYVq+G6o);L3{_dZ|=k?#&Vn0>letw@#V8Buw>&$o1hk}Iu--_lp| zo&}QmYjUMYZ`HeoMyCfAnrU@UpP1bMh~`LE<1#YnB^KAQN4%M3vE+6s4SYcUeCA>F zQ&*BCx*4u*UcuT3AZrL`E7Ub2bvAA@y!{_RaiTQJ`%K<$khc%yjdOA`29riHAFH5C zDbcafsegS<%BpJu@0T&+@CkLTGRtAT5jM_OzTJFBo4ls~1>%5b%qa+ACqmaK;ETf+ zP_q6;+42{d@Vk|7OKNw1llS@WX~T=uSfH8s(eDV8@u%43CmpU`CAS`2>@Os>6#Hu_ zHfoBv_V6t`@8BY8vn~6E6meG9mTmkkVOSJP%laI?*v=ac>hMQr`YkJ#V&4Lk1s#q_ zvF!@&k~QUr?XYujv451*(&2{%X7v=|eR}u4OnScVV}yAcO4;cjr2j{`ArjV?qmcTQ zBz%(LClmtNKgxYbyS!e^#Pp2>`KiZuf+ectNna+R7sopYS3ajq&T9G|zl(pK89jGW;9$KC_i%Je*V+QunSbPyA_7g7Ynuj%RKYFuM+ zWC<)DrtQm`M0`M}U}kE_M_gZxGpxf9(+@e?_C2C{na@KoG9QoB4htg_nx%})e@uvB zWY+l~HsYL5xKa*Ajr&BMZysT+t}xcZFfYEQTFpp7k$Gq6Smvz+bGE?qJvq(GBwI(L zX)cb(=0RNG`$vVyzgziH~EVCQ9T)W@Rmh)JHDyyMbK48Q7*A8nGV&Dq^r z?D!KjNbgZdUQs6IFmj)hf5>CUYr# zJ8qoARbNE6$xg+Qk?KRMQny22B?QoH7BVF_J*9SRD^y0XJ`acNT>Bg4*N+8b^Tq4< z8r_#0?ey*zB7`R?U;ggEg}!zFYI}U(-0!Zbw(f1KF30IpOVJCz9Lt?z zI8@nPE$05iSJ`)FB#>b^np$mZ!m20ro9n^YzRGLlLI!JyNHIQ!G#)6$82^p$GmG7R z*PVzg&MoFt*|@Jbi>$ z&78~zy-JV(@lu-LolZo-`1d9I!8jVra=``2=^8w0H9IW<+gZyv?$@8Ec_ zTt~AO@Gzq~fZ4j_Ob*F!4~PQ+=Mu&QkJ4+zcDlxmDHO1R*!3m_*t^!-*2EWTIGV}z z@xynIm)JSSJF8cH(2L8<;!}$e?tE}M4k70p|Gf`Xt_F4#HWLs@Lq$2)(>flsAvg$uCX8UHXh!%z2`GFd&SSTlQ78f|J@`~e~ zJ@p>?p`-z6E|#5uIcpMjcH@OieWsLTPQ%vY)DQ~26vo#G0qa_WI5C04J2qu*u%F)m zv`SBh49ys3q9W($6;YO4_rCafI!W<;^2KL5gULGD{(P^LNTq`D_MXA`*4;Hb+tB6T zNAfT(ZsP5wsU~7;NSbna5zoQ-$*26NwPLXIdVI?r_A6V0nRdI^_V}uv^&94G^^JrG zM)tM0nu)Y4zK6%eU8G4*30lu;_1)9sw9u?R7FEsx<*|d70=J}(s<9sT^OOd!)3*|? zo(%?Yp}O3|`l_0Z)^ecS6ZAcDxmRa+!Hl$Rj0kom!14uGJVG5>uQKxeh|Z z(Q7g6FROE2uK~irSGFMU3iskV=T$xH0Lgplt3%gGxy7ODq+A{*w`lY<_pHW4<@dAy zH)!m*D7S_YGG?P;Yr=NM3CB9ysY&}J(iOi?XBGAdpGn%jiaO`>n)v&)?|p6G2c~^H z=e?K06aZJbk4qal#{IZ7Ql1s*fg$Tz4dtn!Jf-d3Mz8HEucZB@bzGJl@1*=rE&q8_ z{@Qu(g}TpgWlgabq8!2v%0_vQe_!?m2z!CRVcMtt-#L%|KQBuI?Z#VXzW<)-zZdTH zf$2YG`Td_I*pMAlEZnsJMR-Cg?Ef~?zE=7#9XFk1iHP+@$(nNU6ALGluxFz*2pR%Yf2nC|eN`p2N5(*&ay!1$Xp%wVs zv{szu>@w&t0?A&xX%!2i%wJ5AsP&b1M`xG{GJ!Xm3A_=16Ko%Py>9&m@z##+T#&15 zBWDoymaT*y^rsgb)jekii}(RMEEmAAN8|DrZy=gq0k*`>;5bdQD3*X7 zW7C4(h$CL#%z8FKuUYe0puROaGaK^Em#k^3qm0(Tw2Qgp8uX)ndC{lDB@%kD%FMT9 zIo~WkF7l_!QhUx9eePy&2hSR34YHBK=;ykwH`*WN=V#=Yf-HNSWs7~2O5$6=7U3sU z@xrs&|6cZ|zx??uCd{u-H8PKC!oA=8m$V`VTr8Pjz1pkCnDo^Z{&SfBEcc&7{AZc} z^jYL0Q#=-Qk5eYgbO<;vW0UbW^Z5fnj^JRk7t?Rw+KeRLozezm+VM3r3J#T3Q@r;x z%o^0ISYAUTDzfqEtCipUbfEH^=fF+EZ+eE`+_se2a?Jr5o-`R&n+(Tx$*@u~j5;8L zV=~-hGIZ;b;iqIUwqkPj@q#|esQ%(U$fO8z2pU0<^xpg9dlY?ycUwW6C2@e^W}@V| z2f`&g$~$;^7v~Z#^DZWVM9d=M(D>kN=eXQJ8Xa3 zI0=(4qA{E-4Lda`=PxSbI$!^M!)0aoLtn1P8+vi0ZfTey{Gk+SMIT8YozKnuKsux1 zNU=G=ARD#r*X5wKK_c|FoS+s(Q=6V|STs?NH}oaAPqZx!gHp}>x^0;E`8y&kBk&P{ z!V{MQ#6N{N(7D}?k1F;{j8sW!3oa}yX@F)rmP~>ysTdixyodbqBJcZK%JB~!&kic~ zGa0MG<{SODoh&UG4s{ift&zxU$uz<#X5vqQO{Bk}v%b`2$ zQ8_arH^{IfgD9L6z?-I9+zL*YvuFCo&kKj}AbrZP_=Vk~H*xmTRb(g_3tv z`}KDI>oIk-}@M~b<~rW+3Qx}-)` zH0X$9#OeaY*-mf&lETi(_~z)Ze;)D*NQCXU;!F~YwPifiE91%{32-Z&t1x;%nM;Al z{vO&6h4|t(+nSS*9Rwv6jFIS+bMQ z?RSfmAWlS`nN70o6&17U%@H39jXN-}t+0V!tQu!Ie>RgS3Ovc7s z#^QX&1~NAK85_wsRx)O5{C842JJ0W|wzlJnTx*xnS&cKD)mOK&hm_FAZ}Trr38GZX z)xIcS!ctKtN}MS{Uy+P|gA)4tC0t=jQ0-i{xAIR?NVXYAY9XLd zwuEl^64uFJ%K>f!_6~q>OJUxPKT#l*6?Wmd%d72`ST8|A1>^ zh>2(-qTIZ~g(ZfW*BGxA=CzsEG3K>_*J|_1;+C-GwLNh?51@>N>TG#y4mb&eR0$y| z_7f7vAMW7rX8qe@#=))p8dK1WaPlEZ1&Q%)YEVp@QHW_*&dg%kVQ9-XFgb^2BeaA9 z+Hy=j`+>AYT#x2v`X{hi(4RbQdFRqxy$8~krG+&%!1sYpKBVBr!A-EOVC**E~E`{ z6WZcQ-Yjj|n-B=(Y0C!}ccCq9k~T|QULtLdw){(Cvb5zfDTRAK+4=~g^IDdFtza|6 z7Fj~aWM2)%spd0JacuokiZjDR_!Q>~^W{^VYs{BVajrLCKE;`>UrKT2nFxg-w9R}e zoS|*zOJM_fGns_qV0|JKr%6Jb2gT$rPk7c{WC#zWrdg9MZ;@n-8uUj95A>i_GcM_n zhoLy@^fgOyHkk;aIGyHID2``dh2m^CuR?Kln^&PYMF5lXgyNLSE7qhwc-s;c@@Bgw z-yUK%Po;p`yLKbsmd(@e&*4Sn*2^m>?n#Lho!>NxcOH}lz)r3d^5Z>Hyg$>fWJ^bo zV`Nf49-^V8PwpnnJ6bZeC#0YQhtn;2cW^=V@4Ze+seb3#QqMuvzbx_2gSHSyu!e`$ zi2*yWvTKtbW<%uyh2+#R(sxPkBx0~(j8%g?+7pdDG&kNCoCkdz*-ao`>M5#5HFTqQ zvgx&*f2PND<(IjzSgwHND1O*Er)SXlX3x@~8%5y0T&hR!td%6*irgkw8@nr|?*bEw z4>|98|H6nVw(?2>x!GVfwb>&y2RfHf_lKlqaEx;Bdz+UUC46 z!Al5&O=tfwP9&FDsmp)*a@-jJ_yz#yZ` zCLw)t;qcZn`cG?($(xo1t3J2lC-(zXRxbwSc~uG#foB?}^ z%5GNt7}yX!Mv&?&c$Bp_Le(NIP5hU(ghhC?)n2u=1ZW44H()Rknd6nbqJt?r!o)A6 zLq8prmA~h@VAVe=gH+Is?t0MYfG&icH$urF;i`XH3pxIr3A-Wf1H(@rxc_H!>Ut?A zkC2LqK30N|f8JmavNtVYatT7}Ms@GVqN1rTPDxd5^sdqJswC`Ea)@`s<9O=0Am3v8 z2c6@3gq<6El;ZjuA0yn))~>TR+NApUtUg38+H&5;yHXS9oMi#}~+#`2s$k`wTOiR|D#U*F0w@ef) zuf9#U}4&a|r9vs!OCS=-7jlrtVti@6NSW+gKZcH#k{s}VU6qnxi5Qp$w+*=&#eiIJn+eN=U-HnVd!g97) zT>qgh_I=k>t+L|SmP_%mp!2e%6pvU)W_%m`Y3roRn;E4U0(xlLT_*{m#plO3PH+^j zq3+*p;J!F#d&t=nOkTbnugCZb{G{d?iY*Esy;I(wmG@wLVx0|WRa7-&UMrTeeTO3Iuoks2mZ;yi2dg&E{Y^@4Ps>kfXgFJ$ZGuIAc^SBN=hMg& zxZh~Ow?j@xsOp~!uB34-AjUcvf={?92hB&TJ+`;#(XF2WgpJgVV>8sOoO5yJBT}oQ zna`KeO0HH6aW`bVifS7=1n~oH;i@fjR-{fRq)`e@9WM>!GDc^;y*?$p;i~t@$0ZX$ zzq2?roRhL#*m@j3oOiCq1^-O zd$<98ko^on@@Hl7%_^(jUSpN@vW~EM9>Jw$uLMVb8Vvk1NE@uOq6t=6-(#&KN+(!H z6dxOmuZD29Vl}<0GhDSU%Kea0X;S2r5b9VaR$!Gn*`Y%6755}>A2RmsNoM>2>`5I- zOKYAM`Bdr+&ai}?S5xbGifHr8f5{w1-1M2g7{0=s(IL4kk=3-@XH{%o{m@PH$baqR z)lcAMLz5G$;bm;_w1OZOyD{>huxx@Hiy`q|_#Rn2%(5rWkP~lHHgrykh5$*ia#ew| zD+@n$k2EmkJ_|F5S>21?ZCk&jKbiCv4!UaFBAD&$@=lOm#q|k&NpzNPk}qe;I`e1%V+m}ODVChcfhKVXw?s~B5!x*CHaSzu zP#Tk*DJ8d>P^qs&(s9Dbs=x0Dx+t972v8R6z$Iz|GL3F$eD=Q?on3SJeZ zq01WTn%*X~F-cb&<4l9nu*fB(4%RtX_Jr2#Od7_kwny$WN+z_iNmm=|OdBGe5{1d| zFWtp~ICXgc{rUb(T)Ax;i#wallVZ=v_zN6BU>T;Lyg(n4ONI$Z+zDlrU_iT4f$c1p zf^27{wAnu-!L(ES;ZP=l+9z=t-P-79OdPnNPC)(FU2A?q z`YsF&sg}|ttFW9n9P zTyC-OG;NJG!?yk|5H{zNP({q z`RpW(LX`s9kWo_T-Kb44!z0jZS8(?&gkEBs<}Co)4&CKK?^7>^*NHTY$?coO^1=mNewTF*i7y)T=X82PexH7 z41fzD=d-B(^vV_#Oa0np+#}1nlqStO09+WvJ}2Bq(u~aQ9fZ|vFGQ53yVD^A8d-1{$-0@n%WK|6kLa zq$=usv%Z_Wvhqu@RoY=IF2}ea%)%twWA!?pD3?#cZ{$`PG{^W9@rjT%JVF#1ZEDhGZtJpQz$)EOal{A4JlAoM2n8DV)iSGbpGR~87 zAny8wv5vD`=a{oZ89*bqf$dU05LK`w!=J0BPRKF=`d_1umDft3yHe)3ur?*n=`>RM zD*Rd^ApJ?IpMlt(saE0yS_<2?$}9C3-_-jox3p6>+o1rGP;7}`w&NcJ=JdAR>Fivu z-X8ftF5RwwQWEOMZxv^G#c>K&ly=pLR^n!<{I-g=A$-oP{g2+8u5 z*ud_q#j5W^9?@kYJxQMqD}`X@WQxWvb%5+FdCtLXmVIEa9d@tvR^mkHQ5dvcD5R&x zod#iMA^2EO&>i&VNj$FW`xAPRd530M^{*2V%ydvpZ!RL{xG~I{wWw7>we-h(OX2A= z31^}&GvT{~NeM1Z4Eo%12xG3HOV=}B;PG9PQ9j+X(m>)2q^KygNbeoNip92c1Er{+$8%{II42-wK(7f#9ww1UN zR7{D}N=YDB3>qFMvsOpaw_c_J9!2EKfvjOdC1d0auT(Q8NK->F|S zx5FfCBq0N`Rueu>LVqws0wM|1^GIbaoTaed4xk(aIk2r;m$qe3$A{T)qWkTALu9ERU zhaonrZa%MT>#f8VCc5pf3g^-Tf9$i#xFs+34jev9Tb|4>A%ql>kXJUBhS@bFm^*`6 zj*va+=8_fg_a?u9M7DJGVtz(7v$Y^}um0p&)mcLS*<7ZlWP`e_cGfVZeTb*NdZ80r zmH4W1cucubNF9uYJFK$WQm%kA+aez)nz9i6FPAl?lV%gG+@!$5v*Fh1*%i`EbEco( zo7HOJQh}@UlO}l>7XY@iP&VOwnSL#7HecFnXQ8klDBv~;Ta&D7Vr{Et*23rshsW0h zSx(v$r96NRrV_&Rg;Xp%_Q6f0u@X0KBZ;eWDp8$WJw^~&g)pg$h!R6*E^q%1EvVLU z@mT~&l29K*c7;3mO6WDiia}-ai|x{2eX1;p)^{NKG_cJhdt4e zHohZd4Cr1iO-}f5G+q{R^Qkc{pg2(Y(1~=H&;x`IFPP8+gb$CIP+#~^E#>*bhhGwt z8YKZ(*a~Bomm0c1?zFiRcn=q+87*aRuaVRo*iL^991;#f+i#?$S?%P5Bw_X?dL0Ek zk}B%M83#AN45GPiNwpSN^sH(pW$({a4RKSeRlkJ@jBbQia4Oc zymo>-d95TEnNvzCyX2M}vlZ(RqpIf22a3QZ@dwAX^=dC^JkwxowhaBwI=ku(EAFvO z2Sro&wmtkM5ye3zg6{1lKzM(*n-?JApW>b~fYXwp;jbVf8A!XwMw_g~7x0FTL`azx zA1aeib(2B?gYMUR%N(?;ou$nGDh8IO;7C~0&V`+dWEZ2X)K1|`x`JPo=jPtIM;tVVbp^qX`u@gMpk zZut<7`wGtTU4m{!k#BfIS13NHf-@%IIN?YEM{Q0;yI=HbLN&W9w&ZIFN&kz2RUKwE zREZa@s(L;8ehQzWU!lqDTyBu}9|Ht=^P0@x^Nl9+LhuewU~f*7$%USBuOY(dh2*3c zd^UQM*X~vpa*I<(ZG3|9+NiC zhv~||58l)&ZLt=;%eoPECsV;HqcAMgZoUz@%v06XSsOr_0Nk*A)?>xT7c1SPDj7_vbCrO zg4>{5!~VD3T2!V|T)(Q@(Y*?UlLLE%lMx^scs=X@Cr&^GH66E?38oL_14a&Uo*Y+G zb60GLbn}>$J2qVbG+TUl3gd~>L7}*{1e0jYJyCd;Om&YNg^IC6{8MyQa=ys$871ex zB%$JriYx+#%f~=6FFZ`NB99i?MXclv+hY%>L zx8I|fW{kWCC7 z{w)Z{7{#T8FjNrfPI(|Nrf%@8Ngi37Ws$97FCGBqGoGZp#ON+ZI_r-ya|2khvC;8^u92~gUV-QrDNcascxhP(=!C82m{ ztPUop+q7NvMc5KELL_M6Aqn8KgbRSHmw0bzM0q$3Qbp;A9CGM&HO;6%_6 z@Y*1+!kWz$?94N8Y*%CjL8G98vt&XO8ttKGH`+rj)MyXQ)?bwEBoGwcSV8e$4T=i&se%cVQP$K+*b#J}SafZ4t793L4l% z*{;{7R-V#UTk2C=`o}i56~PK7fFz=YfYnlM0j<@$u1fq4verR@?oe)hyZ`Hc4lFXlo(umlifZrZ7evfs7*DKC-fA zxF?0ae#i<#`n12AX!(O) zSPbs6?2iQcDQ~;!Qk^G+q^i&JX0@3mz^u*sF@m!1u$;|+iRkNh3Ih*%)>?OH28F4`GaXehPW)9TSec8xtYQq*5+c3E~a${WwyAOS>mSa zT3xKvz1!|${akF9i31@dqaxWTq zG0g=rq`G6e3nKj8G1CPb3C^~lxi2O*-@RB)u*SWRd`E1Fdr?EM-o21CLu{FQv4Y@o zg7MUkSJ=-l8|-K8D!uoMZ(->|mPTUH<~v&W(I0qHxAH>XHHoROiS5-#41E`Cb1_i` z?*bPSsSw-cVxl2p+g(ibMXZ%rX3<|D8-M7W({hIN>4#d3P<98eUJTv%LwD*zWM|$T zjg02}q?>Y58-u>z$34zUW1S<|0MuGy30~vTOF$Hi&hsgV*bv3iez_$&Q=icACtc^% zEOp{O@y_aerv! zAnn{g6>J`~foI>J*TBTtoss~}(Qxuo@+~cV1vfwcG57g$PuUt_H`v#NM&g)1BTm`U zs1qmc2g8Z6(r_cW11BperxPa)E*9csm5XWH1e`eTn8Qhndl%xQ)x|=bY9jlcc)raQy z;AGc~`HV#a=fGon;dhOEcYb~~*~!*?4Q}_Hg(7yA(MG%mLaJ&x-}TjZER3zb-?;B= zC8HU|t!dnM#t__hHGJ2`i0}CBR=(3LWG7HKM6n%g;S_4P2ZYut#mp`WU|)5Q#=R9&-+Epeqh;bI0-s_s!2Gmuhs zzjCqJF6U2N%s@)j{lLW>5FtqZx0RTx)7?&B!UkEYPID8nHUl^GPVSevG1JezvmpRi zVOAlh4G+$wxR?!{RGnrc-r2C?K%0x%kW1Mt#ycC1j6?U%4O}OxbL3BnsXEPt>ck7T zeJtB-Sy21MwYXp75MO}oqFz;}M^?H64J*-epu8hBGhB`Gi+er`ABJ%XaPHqFhKD}C zxNTd0@-}5k+rER>JhlW5&w65P89$n3`cR+8B9NqhN(x57`ZD`8EBJkX#iv@4?Yxw< zS6$loEDdw+SA*?J-eSqc3%b-fCI`y3U6RK-Q1*(+d=iw@2?v0(ilLhMnyYqzRg0*C zf4)hom$PC5vA3n~31UhcWoaW%V~Fr-7O&R+m)dlu+5}4@b>zvU#!(I(r@}v@H1vyp z@f4ClWf|Db4%2#!tUHApzidN4a;|xLv@MEAK9D#l!vIwXW_=n(lKT+jiQO8~9M-UzS@a*JmE= zcq>K|G|(Wayxj&)@HY4XGV=jLgKP?_PXfLQ4eUO_gYH8Wb$0H%(-ruHx~H$bw(WP@DiR@i>dlu+p)8Kg)$U0g zmoNUA(8mSg)y2W>&wPx9WUHZ>%0GG5+3dbosI)0$1-v$qpQkW-;DKzv2OnO@V-JrR z_1A4@arQ!c`-H!>xA%Y1{VJ?~hY(-zC;svN4B|fve-+lhZxKIp2R9q>?{MOC!(WB< z?{ebn{?gw5b$;J^rM>-6;jhB__cP+Z-`U>2hkwIfYHz=Em-|&%|BfeqF#i#IZ4|AU z4%%b>EvU19>{c4K{9r7|%nJJ|e87eN$*{31{2-coic=896VttW$ICycJ|^a0SV$li z8Qa9kjeSyq5Bgx_>+V)i z$V2p!t(`ILO$A=6_OO|xu#naZrtriBXN+s=O%~7l$&Oi|re7g~1vX~=!c3l7zbU3F zSSEa;wCZ1{aN_5$Q86$~6y+^m>V@E<4brtpVg5)NZL+PuRvFH3s9sHN zzUa)uZ;Y3-`9H#4(H`Cg6`l!j7H^nCI$acfZ>Ygq>ZCJYEvH1aoOeqs zn?K*h>RqhH#g@6)5*J(UV)YiozXm=JTyP0NlbX`1+{sG0tHk^j?qjzf;2cY&mM&K! zN0a%%I|_G~DegP0_|j~(2hybo3*ZawnsR~`@KUFez@TI-FBRIWC8)Ow%O7@-QrEJl zq&sL9t{|-;UG;}0I+1C8K^3kh!(6cV16g+sq##siJ*X7@;>`w$+b43lW4=4R>OUyB zq(857n5dg35YlxHOKw9V?IiZ_ruKBG{BwKz?luBY9`=J+oM?cb$CjvV{+eB=_wUno;@1vq*KfyWv+Wn_ zev-pf<3aByftVoja=TH4Z z(7H_bK{axdbatV~`P|Lw!KxPAtckqzMvix@T6FtGchA3YKfC|k<_z}go~k}Q23N$7 zF#o3a1cR0BeFj963kGn@QVG$Z{eML%+v^&vt+(5#SG+!qYZxm&JN%s<{!R*iE5hHw{DzGj4FC%OKpuogvQSh}obw(+ zm+v>j0kb@)O0{vEBS;BSzEOgX8&)kbJ~s{FiJ6HA_gl&H3aU9w z(}*?Bbn%lfdF|}sC0b;JWq&nZ`3co5!m2OJas<7ZGf)(U0CASr&WwoKi^JeDoL`5$ouXEKrS*+bo6PP-tbH^t^#K@CZ(Oy(2iCplvnb`zA~cmH;nC3M#D!HZ9B#a_l2#gED@pwKi6^ zqY`^WpNzKi@UrO~&Cix0d`!g}qNf(UVyzkBZ)n|^} z!cXFOX0e)8WfY%1m3ekYMou|%^@$B?3-?E)S-#`R$L71pt`Zk?Rq3zxp=EMZB=`u* zQBl}3c_~t=&KMnWGOVg_qpefrXtcTNF1^ZDu&bba>8TC42u1=jM@N{u$b8%{io{X_ zSU^s5uEi~;=VkKt4fb<09+B?n!GMHVmRgSfP4@fEo6!G&4Wzp}*CXEH(B5!8Kw6H~HwdbK(Z z7dRr4yuTl>GDX1kB8y+8 z3@ne?djPsm0eRb59U$KTprw&JUq9M`41-FH{RdE=9!=gh5UBYXd~m2c;fbej>laO5 zSr)=yeN^@gia#JVffB*B=;NM}CR`tP^gA}qn0Dm#_=rfR7p*q?grt4wCP$G*@FUn} z-jEl4URx866(iLTK#tC=bDJ%1MEryF2{%XXsk*DM^V9GfkF_i`D1uI05HEi}l1!9| z7}_}Cj6`JQXh#`(m*`kW*9oz}8`K+tW?gBNY4BaI5J44wH7K&=8jqEfk=r<9<5g$QUVacoGcz=IJQGOd-Iu3An(R-SW@vx}mKY!m2M-Yn%r zxN$8IB%Y&ldgZNib^1iSELeLdZE~+Tj324J5*+|vg#O4{tp!WP>b$S)M_V@H+*qpm zT)akCEsv!}pIhqjVEa3EZW+$IxlA%nWc0ZMl`@!PDVc~X&T7s98G_?msi9jmbfi|5 zabIv|oEH_VVJY;7W_*~YZYMF89vb^SyJoboR{l4<^a-Ph$I>IK_=(el=fwQ0%Os!T zXJA;geM|Kzn%j0ERz%Ya1_Z&0-w@+jFko*%^td?9;@k(&`3Lxsy)3ILOW)=L#{lr+g+r;9bXm}_3~ zcU{bpL~*T)bs?U^u2W*Fc$&Q%`epqv+tq&SSk+M+Rs1WPhjH3pN}1F;T!fbC;A$*= z3qGvZ4P%vD)G;4`oYOH<NrZc88tpK6J!IBPeU!b4xfF=gtE*7rUJQu5QA53yF z&&8$@W52(j>e7YTtc&!X)xBP%Pq}xKDCUHP{NU1{C~=|JT)cn?(|Ez!HpCpS`_P%n z<1q4=P#xUNluGmxgfqfcg{YM1EV;%)aPdbz`U@juS zX!)OYx_)PH39?Hp{rSC5S>L13gv_J<8XE$${-7UOdld2|c+-~#j!JtiO-?yzIAuK_ zN9tzsC9A7fn+pr@Cch`R;XLAXPep1^SCOgbvGhgsqj&u^lEhrI9-xr%{%_B)if}5l zXnlj$-Rf2JBwtq*{^bKe-U(Myi8uU&vHUp5?@t=!=aCQs?9F;M2k<1m1mKQ}1n@be z0c~GC$Ve_l&o9EuBc|l*Ws$`{)mpW(54S5u7T<5c7@8|r)4Nb`a~XP=A$znQmh5yI z(jc-qg3WcxoBCjMdTc1^TucH2PGqs}8pCRD<2Zjr;poCm$@1e8>k$_E%~@j()9*q~ ztQmf0!z}o;bBe`aoVu`Op?hUe&)H3WwtRtC4Hi>O*;bcuqz098r---D}7vaVS z7FFI_eNv3Wmjrb9673*{)cd?a@63BnYY3(p))3hLZJK)uXE!hM(!E=~^yt=-Y`;+7 zh|Y?78KU+4U?TVwww+8BTaQa0nJMeX?JUBRf?FV0+SKRLndS3W~ z6jx9V_Tf4nS-v@v{Eni2@0CdEG_(rNSV6}$R`*3nZ=vt6+vI0k})nMPyovrBz=GJPRsk1wS^E)%t&d#td7qR zt#xe}|H)Rpbz+=WFe@xC-NRemf5eyPTs`wVxqRXHp+H|f;=gBI_vINbsqTmRZqdS3 zH2@Y_{4K>a75VcAtJ|GV%3#*#Oz@A?&eeNP;HlrfcPL>tJxrofZBthT4d2_J$CyMu z?D>!Z{p7IDqD%6MK0H@+zp!Zkgb%@z)$l*PKUu>BYRHvYcQ+ualFW+{Cj3TJ&5Ra| zy6swUX?TreV8*Ae*l03ok0o`l6PeLmCz>zlmg7TimI$7hAZ?^cxg!pV)ZHPz(`;H$ zkfES79%0W(ZyKg9?+i-!8D?n6rFLM6N&kulO%Y#of`lPYg44ScwCFsE3Y`*wJNE&* z-(@KF1O2$7f;%Pqls}~JBejhJ&39s~|A^9TtAGW&DIOm(MjOg0_>>T>N_Vj-So9;! z><@~B5jU!Dg?+mTcul9M@hCGbylM$;LDW$5B^hW=NjbrzLxC*iE;)q@vY5mXZa^W1 zxOc(`?>u6eu{2Co1cyJYT`A3@JAw&R9Z$WHd3z5UkbNV%NA8?W79B`N`=VoE zcS>c&mo^4RR}$802#<}qM5#~jx@tw(TdDL96>T$;Y{_wwKzekJoV!xVqC z-d2O*vhTHE!Et7l9I5?<_#D?6_vpB}m^u@DDL0wB78@kOoZD`|!P(0}>0kLaY)PW$ zjLPIk#d8O#qF(gL^59lJYQqbEq;8*ZoOVmLr{4od8B2&SzaTxj|A&vAan0mQhqPW0 zSsCl!o_ssrt10mWhZp*J>B(hbccI!9DDl*;VEkm2We5vpo61$FLWHOik&U*J4tx4= zOa%HXXKwkLH1IT5!YC(ZVS%m%1*Rt{#B0WXgatsG@EYDIxTr_xHqt-4~LSwxYm~qdOaD8eiQ4 zgH_|MAX2-MQ6Zs39f^q?_II{1`PE1(Ab^tth72V!J`8$uQr`R zepsW5l#;#CbLuJ|6P$=D>n8erN^qCN-{``fmC0epB{o*#SY}RRlv6a`7f_g` z=a+h4SXl4%YL3)J$rnpy!v+Q~sb#BF6o2TF>(s^sN|V22P9&$}(th1`cEe?$?Hdl@ z*_~{Wxyv|jPFlv|HQe#s6s-Tg8t?ddXC*0|HJ7uy{g+5BhiKh;5s;9OHI1;Kpc-Q- zJ8l!&!`sH|hPmEXZ$(*3x|rB4v4Ji&)5XeMOkG3m>i=lU*KRdAOYI$Iw{EnUD1ix^ z@z47MezG@Fr3MOYq$E;zpLV)nBP0a1ZS-GS32bFE0)(@06o5|yx$wsa8Isr<<+a{M zDLleTa76p$!jNXno0ri_KkCW@M8sq-4Ui9aYhn7J&CMMpbId7HceDn7(zue7o5gp6 zYbjrY;|l#c<(69K3WUc6Kcm1r7|RVt2Ao*|n|u@;4YSESsD#widYWs4TRZPB1eaqA z(ZTdi<9@2oBB#ok)^<);a)P*uQ-}GoX6Bo$25{&Z^+ylr7A@}?@pVCV=5?EvZ1>sW zet@_|+PrB6B|w-tQVE^74`-ts?(4YpqjP0IJ2mxnwA1Fnb+|d|Y^N|*`vg-rB}klr z?xwvO5@hh@1%|6KM??elbD&f)*d>Ni#V{8eMy1qU;bNgw;klT{JI!Sr@NLa}S3K13 z`~IV-71%TS_8F{goTFO1u4!LMfF_&izr zfzN)F*M$zf9_`4sq29^)KRCF>|)PDE`SWuxvz9=L75p*9GSfrn*U5 zR?x}0-leC-Yk~#0keE0PIr%DAM~frF(L#<7FQTy zICt@^S{DztI9;q$yhab1x4@?=;9s;mwH#JXEvl{3ezQ$8BEyd6q*f#OGQZ^!d9<DDG+c zyJLy94MzrDo0Rz~)D>A-S>io*)m3LuX__N=>t=Tj=AcbvwEG)Anl3J=E7xN!Medc>$awZ>4Ky5HRHJD2-RX(Bn6iitCvJ)mFw z1ezTap&J(tA!JdqpYzn()U|s{=`07VWfOZ#2{PH;mVSq zywNn}I9n9!rrxdKQzILpO55;1yUPq*EXBN6T&+5E2D0{HquVtDl^GK!aRbhWTI~J` zezJ4mZdUDZt2UB!B96mCdZ}Q*hm){?t1w+Wz>LlrZ82j@%lumsgI`C2fw>XN8hD%>A+ka_ATw1D-2y#t73!Nx{`%- zCUY)BD>7#)r-5NT#z)P1?1jJ+he+GfR64RRI1x{dQVzDb{TZ5tSh-EWxYsqtxo{Z; zY8DCJd_Yq-C-TxueGdB$75TE!VN^l)TbdQav`iYSz{_;)Neg^v}LVV2?|WXd9QF(uVl> zoCJXApeOMp;qcH~O=Fus7O4tQ&Q^a`lYb$hXk_A_V-asJw;#j@eI$-F@2A;vTS z1*`bBO?&!RI@avXQ#q(*}LaZs-awz{SVUPf4-uHK_tMrnKLd zuL|t2FYt2uz?(Ysf#^>^O&?f2xkDE?*Fz78yx0e|-{_VSXA%H4Fu<4EdMLMnhlO3Z zHRrTAu=e>zre@QI9u&ip5)>wRwvV3gHu$ZnIW@DaWHDLu6{_Ya9ZQS$eqW- z>|r{#dFZsaIUTar$EMZ&x7E2U^A4iQHNYX5G6>jdeXT{6?O0{rFZj@LOGFHH+*q%m zp%K_m&}a}UooKCu`>*E)>m|Cxe$#2iOOMnSdM zNw;UXsve=h?Xn(3b@ib2MQ(-dhdm?J)y8kCwNAfR{#P-dNbR3sjv&mfm5q|!z<=*X z4SdtTf}rV=MZ>d5Tr?v95N2JXMmjMmV#%VBPE5L3Vk=xs>R4hn(mN#VI%>`=G2U#` z1S3iuQbQ)P_&iHrV?4WjZ)EWq#Bp-bC$e||Asc-DhxP)r0$F&NqpEVNH;pjp>T+R{*Yi{@`I;U1XZ{ zfi{5bgATQwJNvLRqisLE$#6KcAoGkS3dOpI$p@QQ?)@5>{$mphlV3}4`&T>QcPm|N z>~;n(lFIRS;B{wGhQSGKy*uzF&XBN;35LRH^v9rrlHBz1Hodi~ous z|4AwPI`{4J;7SV^cgkK6tnBXq%ziPfbqT{K80>0YA??%bT&2Ic!Da2#Gakt+B=tiR z{c=+Jb<~|bL`7v!umTUZ{=7f{=62SP$Q3_@;)BxwCnH%fghsMi@W6K1L8F}WH zpUnI2RNm#zd$8v2KChS8%;Kb=;EMI>9wR?~bKmCMj~lt>vHhEFpEPpQ{>Rp0t-(tL zpQw&ypY@lVRs5Mk*2r@XAIUz;=IWmM*^+pSvdZTCmLe1-)hrl){dVGjO^Tl^4Ua0+}OcTKa?x)4z*64ic zG=Mf^!qD^<8VWE|`21(E!Jp7ai+wU^p}P23C5`EwsuOrEs0X}HIkBk_j zmhc_pPmPHA^UJ^^Mgex*C07NU)SX!lRTF;kZH2*hZ=&xurQ$U(#BANJY0564FCh*M_VpO>>dl@xGjFSl?V1EFEV`91BA;}(bLG75uP*OUEe0rvpxs%K`UvDkCsq=(a@8}f@2AXC6VNPU@g;%Lat-HJUES{&0yDk@LsD*&sBS8WrLN}$ zi2RpRNa_)_$6&Q96EdR!xIV`KR@q=~bwiqytc_5kQI>6%wgeNdRh1~}83)t6$eKn} zWan3|ssI<2gBo+AW~%2q-x4_w2vUhHWW{UtfKWAXxD#dQp)1+{kWG)VwamL{e_U|~ z6k7drrteP_Gi2N7R8w&GZ<(K)>vqvF01-b82!{N$tus|S8)1fi1j7tvxl|{9;cZaE z1As)yImEcTGiqdj`ASr#L4Wdw<4&-4oF)eU(o%GXMajKob6!Q`u`IcFK%}+^0!i+j zQGFO*wUT?UNj#O|GDP)P7t(J^k7|QDBHvzDvMC%qF-+6=rt)!tTD$Er{lp?w`x1AG zdOF@fMv>YZ0kMOWdKN)SSkiQ4F*2W^#)!?dw{*OSl?RdJP{v!MCk}Hz*^QEtc<#-1%iy zShubEXfHj=jeagdviF%x6~8vqz)9Fs=#1gIb&&F;Z{164YQTgjNe7|K;Z^X&4xzyp zO~E@wPjbh_@Wvc0mO8r$g`eucBXAP~m2;j1N@J-7P5pH0fD~B$l%_H_0&5t7D#9UY z$WxhLqA~#d%>VH#;sIZ(Ui7D*4mWzUh4=IoHB760=YC#pdOLNMkvk?JHJY9uS=Ms0 z7H3YQM(YVA^y+yiv4OcP|N<2T>1q=nHWUIV?7OY$+$9dAABiK($=JIfQmO+*p*Cxd@mNU6zg+Wd~R&v=Ktb2b6j^OBYp?*@h3phq^3GvK(-u>R=t zPCT`4Ja|OUK2SOQv)ei)o*DI#(hGLs?{-(@h;jTIL->Nw|Lr*Qe;Z48i=_{br4EVV z@=nksH*WV3z>#d$#Zp@{T*s1k`iAqWDPMh=Ltw20bEzFOzoO;LmwESh;`Cos?yykQ z2FgYY*&EHjEth2+tM|ImsSzA(#lLM2CAf*2!V265sGAbGsk7iJ=im0!UX;R?0GVyP zA4S~xw>1I`-Mq4m8c%%;n_0moL9m<&RmXBz7GJAiI_&Wd2e)D~m`#Tlc!qv%D>QH+ zWozGJ*FOB)!b(iF954L4Hq(FuAGgs#@0r@_<=|{Ld6%d$-QAp!>JAw(c> z+Z<%xZDAt0i#vA*A73Hp7B-@B%i{t9B67zOXp{eegWGGvmKy_0S0A!VPHrd3KW(J; zCFnBGM=cXB+^csababnWKIP;G- z)9&;PecryRVUAORX!#!_cYL2n=w6rkirl(~g&VA5={{hhy0iqp&YV_?4%#1C+zqbA z$*xB8@Vvl2G)FCH(H*-tF_c3;Eml+t@h*+)_S70fuV3^8{9OEtxwZ-Jcu&+n9#fT~ zm9VD@QB3OZ(Lv8e%b%k>4SMGqeVkwPrYJ7v4^U?_Gsy^BCT7=N4&n;mLq1n-ZuVTj zD3?L`-E#@hjpBb)sj{gCdH#m3{&2ZqbwGe6SpbQzRUMvg{@nV61-bZ>u(KaN{%L-n zi2DPck(1uY1y5riTIQwL4oF|fbTbL%(uJ(*wEw}>9Hq$~|G4A=pSWff4?jluYnbO} zra`y4^CtlHoa%B-la#>*+j*)jfZSdy7Xvh#9ZVPJXC6kni3e+6TzD#Y!3CeXA2t9w+wdOSu8z99}W&l9Pn)Ku^H9G)ze?uvl z>JXFM{S6F%E8>v~-Wdt+n0tmd=v}@atlT;-#-vvRFdnDPm4uB<%OpW#-(+tj>o7~d zUu8sU-&WpPPkW5TnE!Z*epO)m`s_*4Cq)-ETM{PST?K_&tx2_w7cc+GDu7z>T-1L; zfnZi0+DP1VV%F)a@LYv|;-q?ab~R@`ZzUG48-l-uxVGYAscv3-v$trSy(s^H`3dj; zgFfU){73U*-mJ~;162Gka@)}vIa)LL{3#f&r=Zk&%ap3GH-nA(?TlrVM<02`WiV_^ z+ws{k2yxrc08A?wL9y~(xmC$&5Ttp3X&^mln5K{O+yt~J^}9+9uNlIh+ppADwosszVEu-S3NKZfsq;8)_EZo6dr0$wD;+jj#}U6EukWHtI_;r z*6`@m21QdnGiH!27bJ30Zb|`L3kg9MK%`UOGn=XJW98+lg*&VJM%2*`h! zmJeJ24bql#s&-lM9`a@8%bElH;uT#!oue=4SQYe1=WWkyQNMNik?T_EZpKKaw-ws= zOIA!?jrXX=-NLy)@`kPY>H914nCG@GrOaXq&1`fTuQ;%jn5qy_$+l9q%EgP7#VG>u z@$C2guC->1UgkHrJJo0B+E+*jOJ}Qj`S0IFTFp+TytD4?YIL~ml;AL@$A*vK9<~x)6DZ>!FdhI{Nf;K-w4wX188?a^-MarhEQeOy_mqO;2N=&VCe#lD=hmS4yn1->xz8%*5x8RFF zoITclG=vzJ>Arn4VTrch01%M?hinQ1_2w_`T+9xQgLrG%Z~XFsK0PinmU zBW!1qw)zdvQmGXe>H{}F1z)*Q_9#1Z_`Pqj@Y`-$qE*2_GRi>lmluKOMUc_~`t;-* zh$&aiw7KSwYI%C>Y-3lO41q{_2v%(4VNk(}ST~gvNifMC-LalR=Zeg_frDJ%o(_?kw?3ayo$9$ z;zyM==bw@Ie$=m$UNNy0wdH=#zqK1<8wJYiLBc+Z)ZGlWA}dE#aQW!G&#mspDTv7b zHO(!=}Bh2Nnd~(4-|d^y|t{m>|4K>ACQ($phtfYY=>+!sFUjZaVkMb*VZ( zZ|f(!j*-^JIZ!iC)OOwfK?BIw@(&^_Gk@f!`oe$7lsK?09PRlA(K zlrMmd!C$Jp@(MYd+l9G$qBxknn~dp15d4Hb3gtKRfAaqpzKp8DBH!!YPFot0A0yXw`$`eN#*xi1*-?IXdg|FChKHH^WAq1sTt< z@d+_Z(ji6&pGpGA`1yM%EmhS1P~r<$1rrE# zmG>OI?t@-yV3KQ3CqoeM$jOBEKKTan;KDZajA*I!`+V@*Z-1D#KMJw>#b3T#c&viX zif?m3?cytdNVMU}X)jp-vcMygNs=7$7I-fVfP-<%1#;Uyq6-yF~L@M1l1eS1UAbn70-KNh7+gH)qKCr5K zo2xiRObyLdyZ8b2;zh2))=muLcmq`67Y)xwp?{lyqr4%XD6j7fCO`mgSC)o+3l|rqf;qNdgM8_QKMOw?1V=B|gEc_%6ewU))V) zq^g$F>=lS$!bqdTh;14)5O-=bf8lbW<8|iGP9$4>{>Y!x*0rbdS@5E;)v@Go{qK)_ zSnmhu{h=cJ1Kuxsqm@^H3rth#-FPc1hV2!&Jw2)-va(rMcGfLd4!`(r3d+JSi<1t! zPI(6x6BTi@VmW5i-?psQ?s{?_v&q`M3{+4)4fTs(b*O;M;;kXcts?p8tAq+C`s4Qq zNVQA_0X6(kJKHY^VkAoomV1k-0>R)}7P}PD<~pfum3UScuxe+KEt;+zNEs$0rz^_{ znvARsWL11+%=j?r{s)D#K+FjdKhv3^{Cs$G??5wy#_aZMZlJ!>sZv(`3{ac_$y z(L!r&BS>f=`O+&7Y^^xpr?=MLhOPaZtf8bY4C!rl$M{NdvrsA?gm5-e&v#t)RA~^2 z6lb`k?F5fBD8MYv?n3fw2(c|dJIT_QJHw5^SE%^_`Ux)ishCxbJ`+5_qX)!~{#lpz zHu;L*7T@hEw;>gBgEm)r@m!`2>fZ%i;+OP3u34Fo@+!~Sj|4qeA6R}_lsys+LBDtt zf)WL_5$tJvj4evP?=?1Z#c$(n+Qvl!ZVh%rL!E8wz;ERxl^0ir{>Y}0R|6!P`eSA4 zJ*KtD%AUHU&LqpK+E?&1*D<&RpKj2+5WJ?=ttd*2Nj+at^XlG;n$1P2*0zdB!xs`e zGrFXv^Bd*wPs$3c`6lbPDDj!px|&TzZIOl}6E9^BS6QtqN)n~X4|?4+M6XKhRgy6= z5CV0$8u>VD>-M9)@MHaCBAcxl^?sk z@78zyFWIy=kxlNxyybSjc()$ImVFty2V_dS#8r}NhM#u-yKXyq5-}+;0twnciE%>? zASF%*KTF_C!Hz@OsB>^qLcwFpd1%Sx+um$&j3?yo4Bmg6{#T=Epdzdpy_;1c6K!NaZm~Xz>_gc9ySt^+Cv@`OU*1ju!uQ_>GKkO z{uCSIl2Cs-7Jsf$!b6+9dFIOOR$T#JE$d^LsE4aa_eEemuO}( z6<9DuZyiMig9%Gn;G*nIjb_K}UZ#NTsjaWqyj+MNv@Npo9c|9A$!uOC?&!Xv#GRGf z`6i5K(FW0Mz98-w?{}<6okVx2kJKFmJ%U0jgXJtV7G8MryV)3`dogsYKK8ALgDbEe z%WCzQOZYQgm+cqSp;;ugp<5>~7XggcM)y=P3th{573bu|yzvDZDDERh)uMd`o4z}| zk`vzfIyrNs;NDYYd?OnI<-L}z7s{Y8d){>eE zi?PcETpLE-&(b0s9y9TXhnBU(ysYPaFxtP_jg(UWsq08N(MF2(Z`Z-{Zhhx)`4;?o z27}24%pF7+FsHg|ZNO{;Q|@{o8!*!tA80h~!dn|K($oYG$@IoSt{w^p471Q9_Bt>M zdoAd(@56RXCwdR4`Jj7ZY-DBpkCjWlpu?RnIRu~S7Sb3|UV@w7iUJ(rFCKZ<<%bWkoWQrn%RsE;}f zNi)j|LcY`X2YW_!l>IUYF+ED~^C^shG;3{)*S_%*$pjL;hEHvcB%f6bfjAv+)oBhU z!xVct{u-g)^Ak+%Q#nOH)fALULob=&=)nCYgc+AFvdo{K9G!ls)biVBFv^pFf}E=; zT-FVN*WE6@BBmcWw7077f^oO6zWIya_aeXA>piQ%0uZ3OK0wrHdY zPjq&P`5m-V7`RTgOvhF$=BjI5kDTa7wH5&ZIx<-~*>zdQl_(9w^0 zVk1#~g^X>sa>3txFMUr9iFShQ4h3-Zwz4rYx|wW=7d`)Bz0D3i2sFQDlo~WYC7{+k zQvx(HN|PI;hC;dj`L@3HQb)zh7nW8ZFQbg(y!1F4_$Oi=H7BxJt`3ctt|+YT(NdI=~Fka#2jXx|hW;`7Tg5xXs#9y;q;k^}_H!ul# zvAQQ4A=M?>lh~aotUd-dQ8Zw5>Vq^a5yj4E6eEAk{1~~4OASV|uwS%6EI4nvSleHa z_#4;2-rIn8qI(BmTB!=VgQT-x!{erA8lF4O}JAOzo zJ$_(nbJMGb4cVM}ziIaoL*7q)fQR}aAEd?)^k%)C+;Q9}v`lBs+EZ~sq+rn7g=6p~Q1RI!o+$OW+)J!P6Zz`%DEh!! zi>bBx+{%q(X2XDQs|ao)6Pde$kg3(Du#ql+WonqnMH%z?%{~rwZCFQw-*-0R=GuYO z8f*?d2@nqdy3h*?3${qE^4R+86-(bP*9`HsTj%F2NUrmIIk2hdA;VwRB~joA>Wy+kMsL{EKrbH zdkckG}|;#Pe~SzcQIV^pSCfA&r`0PS}F=LG=l0Uh-CX+V;}JgQdf%2cq)% zjiuh@_E*!wb}27U{v4<-PjR>HX~<%$;8$!O=JOA^R7)Hy6NKbb>;vyoy@y6>m%^@f zdHOEMr2D*!Dw7`{GB?JPh1M-pW#Z%LRHkFCbwVgXvY_hvUrv6k9`Due$b{OERV#S&+I+pyw2kY0jXear+Ys#H*)hRL+Fi+Qtm%_86%YftS6goA1^j8h zK={flPL!dUGp`($Rby^cYh`(u-1Sj)uaFJsl>G#x$~$TV34fzgFR^JJ>xH$DLro$s zR&n>alDuwXY1BXN&&ZSLP$`(({4eD)Xnpj4a1Bu)2KUT%*3iUJnME{Mm%oK6ky`Ds zX*diZH?zxLqCo-S%q4_qk`^;R`T5VzA_!M@$U>Ix3{LM1&g=}%?hMZF2v*god8km9 zc+C~!MXqs?;Nh8>g=$HS$bv02n~xih@?AN&-&bCEVKrn z=NzL($H!k}G`=QJLK__FbDR*SSws|z7?xJ$DXh{qaYaLu$p7fX3(h0cYW@!ui-op7yaCQ#OoS4MxqTw{EQn{!YtC zbonxe@~X>U$WNF#Dx?B$?upnfxvP8iby2CPu40KV?Kl={+WN6Ah!(aaP!gh^wOt=h zuHS(jSY`6O?(XoHhdFYzxd$vkJr+nl;CDOSwaZJX6qq&cUN%&?{UCqj2j3*8-?v~2 zy!9Nu3SNB;QqPruGA}ir65^B~<=$jUI8+NSkGz84^l3@-Eax#zd{3NIu(3}e%Hmhj z1LYStqSoNmu1=NO(1pf#(X8D|jby3&^sg6x^6TqzUti4Ej$au*;iuYRo93m9W1PEV zaS`R@i3AxY1wi;Pn(Bc$A%KLA{r#c0Fc~o&+-*M#m&N?}uE&lebLFZm&*0j_q0=OH zP(H~yyS44|BD&?j{7zgOPm0!dmaFTo8=<`rt+7wsX}kI$5M6+ zcyhxudZ6+u$j2XpV=l(}`W#l3+qW+42nee$f4V zH!`mV>fjvGJMqi-)UM@i%x^c92Jd|Vz@^`0gA#7Duq_Cbl4c)?ed*5`W{wVibZ&?i zHsMA-0Z_qzo1dx>5gJ3m>|;K%@o)0?6!l<5H1!N-TdK~#xn!-zMle97Q`dP?UfBN7 zLRP|w?YiQEE@~*K9z|Q+ZewK4@FHJr(xYWY8504YxkO2>5yW z`rLl_e{#RJ`r>~P=Ti!b=fuiI%r>2$vuV@#5gigT=Iz9;vy^eVjlW(jIuc zU^>CjOINOsD&-eeZ?g@e6)Tt?nO9-sSj(xPL-k4Dyt1?%z&lsgM`xm?8Qul%6M!27 za@tTglU8~771fWXG{1Q8)goPSEBDfEOMU$)OVyHNC!>uFh&)yGRHV6Ng=ia@M(VI- z#FtyTZ};MX{Ut$m+deS$pkz&~>^%E z=W#|jM@~4#=0?8kRn$_Bj00=%H}u-bnzHOcK;h#YlNXM33@ojWRfsUj&i{r&VQnL7 zzdgDEpd@I5^^mj1b*w?|`qtsvSz(7=EDHP9d>!m*LtYa}=E-YJO7Bk$CnY%Gi^vMu z&lC9ded>t5S9eTU-`s`%We`cja&r~AMtmPs&(oXGZp?6h&JImL2>xo|>B)ul-Q|3A zVSV6#i2DB6U?XGA-oC<3Mv&YjaGUL~g+dNL*cN9YR&J?i4+22XcGp|l@icEVfBl^H z2e)a=cG(Z>7=O$!xozhUWh=CgOQ;UJ*V;7lWPs*WrhG}2(Hm?5K*R83JD&w9_cN-x zsb4I8o5zhDiMibWGuUY9FQU%$gkkgxovn4Vb^0=h?}F(@*UMoW>Q3gY;`1kqzTNJv zJBn=5U*2-ThsfP-aJZfjxn~-A#QfX5j%u%mgg>R)r?2`%wJjI@|Em@%09+JKjE7vQ ze(}#fQJNd7ook*?G=g#v#TVEgVEbBGP> z7TDzFokqCl`|2kzcQKP=G95=Dr(2fdrYo&5$A^lKG_V~HLEj_ZvWg$z%I&7FAgQ6q zfy(AJUW~r6d0%@*8odw;U$YXcmV=NVU3ef)|7|P`p>%F07--PuV__il9by42Rk+r4 zUyq2-!nfZ z7uFP*3F4CA!OuaPD0Pshu*SW1JH@W}N*>$&DeuK2&kj!j$5PW_xuScpI;w>1y(S5j ztXWv3EZWe@3vnZplbr};Eacrkw<*qYGC$?Y;2!6^ZyhCl@>@5I%>0C|s1MqnrYmrN zWIb#^y@lXmK>0Qr32Ith^(9MH*R08_<{yCw-*q%XH7Qk-v}&D=szy}s&_MOO-YXK?0UL4aa8tr>-Z3!2*&z?N1cAG>Z8+_ zpVrmh?O^?FVu|D8|D>aDx$F}iJum)mcJw*9GW_DN5wcKba~9jx0|o_eruUwK_#w?9gjf86ay$NrUWFT{tOty=#{x1X%~ z==PtUl5hWP^L-5z#UXNxXKV#)lXmr#aOPajguR0Khu*xke79rlmp9i(&Z1 z$ImgKfV23^hBX9lir4(cTHx-zY5sQP$QB?nVG;y*96xx2l+b$k&IA%kSkHKt0&tKJE{By?iQ1 z5sa&|sy|6JXYq{zmp37~pjv}nZO~xqHGye$Y`{j6m&EVMcA z4TH)x1Ap$kbi$QQm9C9dP^VjjaQP$|LJ^DU!WO{6ARwfR1+gPjk5CXliOxuaVU8_P z7iBP5<@eG=X-@q(GCiJFNGk`itbj}VKk4!(OVj$BYpDKQQeQZdkpDugM+j=k> zUG8XfMUF;Y14N^0fM_(;pUR=p2*3IIkDR_TRCT4tl%ZK0$g#_tVt&ykF0$dg>1LvP zX)Fzv9q!Z>n8+HH7*cI1h?fYA6iq6-7KJcq!0ib-U%&77m`YdoBqz1AN61B%!Cz&s zn#A-)0#bYEnM_*Y4xOY8yxjZEWe)Ty{C2LWoIXVJsp(rg;75gUQ$Mfi)goLwMOh?q zzG0JiqrsZ9FU|?vl905j2-`)+(rea^`XGKmmv+4H4cc)?mv-PcH@_XH8l0crjvn@Y zXK>ev>Vk>`?7xz4V2$;hmwK07|5$oXKaLqxwm9;|8X*;lqXac|Yd&rbZH zVbKx}kFHCc7fa7&gZ659W5sh&YozuphFoL`uEOCV#lOJL({@c?3w}kFkY1$rC%nQ` zFLA2{cypeqaOcQW7>iDy-@BHHH^XtCBl~v829_pHz)H}VDBKuK*jta7mtoE`U zh2DzOj44pdtyjr~winB|>&5pmY)q0HX67k4@)i}}|2>L|D^yl6`SE@2*^8c_kpR8K$Hx_%FP{y;-Z?vSXReeXP(3*k@wd z74)3RsNvO5cop2zny&+q{)1C3MMD~O5(q!qW5HncU@igRJO=w+b1yLx-3|O$>I@^P zkei-}5yG5foeOoZo)_{joIuU!-cX4F@ukEt4dY~nfm%5i1Jx}s?L2XnI7)iZME zEoQI>KI7TO8U5EqYQ;uXOvNx?QMd6JaQDx7>_ z+^-CGdNS>3d4FrvS*1ju4Yb*~_4R0KYc%=N{-_^iE^Xsf-C^F4wkY>eH)VT9hpdmM zUWhimd_;W63$avdtUnI;xG|hF`lEJmCM=R%uYrd5w(_<}@>_&qrcvAmRK(JkZ(;A? ziXfIgehW8FZYklef?XuQ^)GLR1s~rWOIJ6OdOU_9)ms=Ye8Bt(R587elTjaBt~|ZD zmbq1+#fCsi>!MAs1DafnaQ5kl*buHiYcbHaInbVu3bZ2)v{nOcFC9KH1Z_fkia?th zOi1_HGC`mL7Bx+!#wpFE0F1E+)lLAkaX>{t9{^fRpb;SBR6dx}%$L0(Y@I~}Yc1M; zZOZiYhBUdfBS-@-OyJAelO460ePQlpdnc0ox+rxJW|eJozYNAM62`cZ4FmudJ}JN$ zC}HB+MZ$L82qR~MvC+cD*~;E&=ZQ;(s=oo>4$OI{TU+PU?7BdUE?{@gLwi1?h@Mmn=HSN$Mp zu!}SZQJ6#Ukqh=>gYGH_O2WdtNY!@i7VBPQzjRq-$pd_f1;sEkDDh4=&30p@n~iX{ zgsFMw*l_lpIKYY(qCXWM*@CDiuWEav>Ej1*h&4Lsk4QGpVp|wbZ48#8*U`1c_zMr4 z!Fiqy{i1Sj#mIPzW#7#W;%`w#!aYq5I4@~S49YB^P}jWmx;^p+q7I;kVQMaO?KBdj zc;Yk4&=G5H?y9|*Uwl|xG|~UB3Y^yMfHHIePtgv1g6yDw5kpYhk57+&t2CP8_4str zTjSHQx0qabA59f;0K00{_!RF6AdJQv#;15aK2`Kq6mB`E44IE3E37txsa$_)G3<#h z;lwVJPzYP{Nuda`yM0wd0 z!w#6G$N?R|_El#GjHmb20aN+?Pj$eQaUC6yn$ooce)4a2zzxWaVi4f~nE%y(K>Q;2 z>Mwm7s!yh*e}?Kcour;UjDzL9@+muU1hM1>FHf56AoIV0a$$KlzyB#LzvXpc`Q*u6 zvHbIY6U#l1?26?%{{+jC+P9I6J`K~WKl9Hq-N{s%!1PnuUXFn~9@4<{!QDlexrbc* z4%#Cw&dL__7F`7Igo{^igo`KO;%Bq&T(A-TiE#)UZoJtH7w0vvHuGvT44n7T)Y)=G zfd`b)n?o+1Xds_n7i~5!evISdvDEtD8)FT&p9; z%?XfmQ$Gm}VR>HpyUewE)_&92#bh^$o*^a<`iJq$L5quU6Y-^S>CwAEzb+Rk+C45E z+pS5|rX$|GRyr=lYhJy^tJg}#rFcIsRkT~P7O!3t`kA-lExgg|B3zn(*lo^9EX7T) zup=03JOo*4NATdpkK1V+iyV1KD1UeEg;vGGh2w@($(+xP^JA}}K)D!TUx?KHf$1lf zKA>rT>u6fy#LOe)@Gvedf4eerZ&T*SL?u$v>hI}|AGUg!I47;XK)Cu3wffwsh|XI5 zs|g3RdUTgo59?@kC%w4#Lld9Yek=xDLw_y8$u)E$tyV)X<@Z0;&E_LbN zbGtP3jE;s{^Zw4b`KQf$*7!u&kF#m3ns?@OCGd|j8xVK ztcrM}*J&0(X%<1OgltK~l1=jdXsw7eQc*W*Rq3UQw%ABL%8ZzH1gS9{Tyj5R7w+UU z7qjSwO>P;{!6v6XVQg}ZrR)rVFK8mn;wYg8(3FP!%+xBd(FroHwp@co!I zXh%@JRt<9cMGP5fh!g?YUUuf|Idw$}SsjhY=mOwvoBLYKj}>48wzYHU8a~jAaP8vT zbC1G>W(7AFHJ56Q4VT-(iI7&N7k5+jCLa#6wd7rCN3DR&TbC=XHEVLsPzfW-3dH2=MuVT zDodfG(L+(ATsCNNZn}UXs4ph!>lsT;r2oj9Ca+tOPX(STAh$I-YkBj)x(>A3aX&~7 zk3M<$YnpqM=>UWfhd%;davK0{Wu}YBnFRRb8hBZnkN5jjfWIj9|Iy(uk{qqp`F;NA za5yf+;UTf~ML>8E9DXL2x{NnmE)URAa|jMbe9lZC?_NH`)Y zSp@ez=3EmY!+QytN{7&jDU>qRtIr=oRN!Yz0faSxxw> zT?M!ox1#{XN9xnm2}SxzZWyMs3u&DAm_w+m9<(lK3;uWIr_hg%u`N3|{x6D#Cu?SSm!+^ip?lfvM_0qM`?H`4_3^z8{5D^z0*Iz;1shr2qd%{bVN!$d=zoVZMV)nVhP@`6j) zls!PdC>k6X74N{59-oj!*44~(s|5vrHQL+ikMgZGDt3%JF?UJZ_#Pb1-Pl7eB@@TX zGvHx28)F||(%hZ7#x_%BaMh}r*-q`rQY&NEz;;B}cj)tT^Si;LNl}MffT!AU13c`_ zp4AnovqC?Hf+)C`LBTJ2F)Zjg7b>t$%3?fv!pktn%C!P13$s7r*^Vgm-5MOucQS8H zaadPJ3(cIYlRgk#f+J4U1h$^De9_3mpRGomF@w@EuEyXQ$^4xM`10_}Hc*0%ALq{j z9VGh*UHU`(Yt@v=Q!gsGY+~Fi@0qBgx2IoBL(0dNB}Q^$bRZ`@2M7N{4f4eiXqV0( z+257f&Nki1&s!K(6-IGbW0=x8SO!xFzVZ_L6&=-ev3HPLv8LC`yyO;+O36PQ3PXu` z_&@p$_j@{Hu;1b4fS}n@TYu)ZWu4`!89`dQKXkdW`U{r@ul)x4Iuxm3dumhiWrpvZ z{VZd<%{fPh&4*|s%D)sWO-GP5^(sC@=RlUOB(w^J>$Sz~8#Gr!u8LrVCFI`Xqz z8D_ayZG7~A@uGg@AmB?#4)|Q=;1(ueo85dDL)_zDk!X4nQ#8j+w^hH%*(_Z1B|le^ zIEnMu>>rSxe086f++3t%TwhFN_cRqHdR&nyg8=gTPV!s(DgRSQ*Pe2{J-=$t+4h`c z&uV+#WY78byv3di?0K6#YwWq$p0)P8!=6j*`E`5VWzW0qS#QsK?0K&}|JR<&?D<`L z-e=G6+jF@+AF$_-?D=DRuCV9N?D-3O{?eWe_WZRye{0W`_FQGp$L#sIJ=fZ^(Vpw< zxxt!S+1Mo@d+h9D5G4=ehPA zVbAmISz*r$>^a(=V|d2=6Mh9JuAJO{$`kvsbekzIp5Xvc`%E@c3Nn9Is9Yhoq1$Ip zP^d+rYZPL6(mr#(Lcdi=GF9eh3N2S?xk4Kh`d@`!Rp>5-dNNEiixoOfq4^38QRu4* zVL4Nfxke#&?F%xODWtm~GLsa#OQA6eagkg>W`sh`3Z13UO9~BCXum?ARp>+pf2NN@ zBNRGBp(_+BP-vb)dytrC-lLFi8k_mBLN6<{O`+`y1qyNdYWvI&722SXeD!DkKlZ)@ zu8HJ(d}cSBY(fV?ie<5aLPBpUii#C0V%HEzfG8xGB5NOP~Y-MH8ql zftnL2ia==uk`t&mfhrMbCV|KgFl3NpDepQH=mvqvZ!ly~;8S(?EvOzddj-p>KuZWjytVGaZz30EloJCqg+R3k zG>SlN2n0XLSCr9>Kp^)NW#khmn?Pd-lt!Rg1nNwnZ3Jpfpi2Y-4Np-91}}}fjNaBG69+xW&%YMXcd7H2(*Aeod`68K-mPEK%l+^8b+W|1j;ASw*=}*prr)L zB+y0zr4Z-pfL!iY3ng&qOd&{42&Hw06QoD9-pbo`VsY;{C08e%1OfDtQ zq~X%^W}TYT>bPu!zNc2LQFCgQNyVv5T(;h*HEH#_7)}MH3|T6ZNvlieOa_(K#A&m# zGc{Qnok>NCa0ZRZY|z2WDjlaGt^Lf`vrO<^q%fF`rc_0AN>EUAc!VZA0l9m=66dfE99v!U-RY#~J6hcL*dV_}Vq1L1^C{$`yHe8Jgjn15vT|uJXK{#*DDN~bS;cYo~3e~T9YeJB^4Uw zT76(dT5zN~BqSvTS{D=)oTf-o88s1MfkE<+5P2~Fibj{N)oB#z8mLp1smwMTVBj$A4aaeZ!CGPFN3yvM^P?)}ToY13A=u{<}qb8^xz zm6L8ySe&#dWlE!VbxPey?G}A7X`S=pYGIuZuQ_@r&Sm-FHihHw8oqWZ^>B5y&HB_X zdlpuI5$tL5i0yo|-1u(_LN}gS-uYOi%zlX>U*!y*=r^U&=o-tvZ`$4G&bHm-ef`o7 zOV6psF7$nqyyWXfA^8uwbm=ni(Mt26yHv$0mxlOg?)QrwT5->kNvD3%XE{aJeKw$f zeLJ~`8#t%QmCx zZDMBZ{Z-L!`UkCRlyCJmD_~+!LH+oChoxJ(E*BlYx%FL>&?^!@r?k~g$+LRTR6aUFR9IM(7X9+kWGHQCs@ziv@L0?<(r! zw>Knxi7~0gh!s^kY4^83xT(wRqU*C<9&eaZ>$UTS0lx1t*S>Ai>C}n9yjzLWH1V(2 zZEig3z?83!~Q^t;2 z)??Jtd$UfD?|%HmsN>fv?^~|uRCCn&3Fc96ZoC++uI~EOb;FP$Wga_>nbmb^i!!@L zXN-Mv?8MR?3s!qpP$+UrJ8pd+Xuelio*M3Sc-D`1O!~EFep%u<^~TVn*IF!Cv;Laf zyM8rxe|>(z(vxZ5DLt5+iTS0BhsWoX^7hqmOK%T;y*B50-8TD z*QqzR=ldV2o^+J~3y)1q$?)3m64%7o{9s_i)lC+b>eU*x@^SZ1oL0M?)0ta)3pV$h zlUyB{ZueWO-^iA~>(j3LgGo=_&pTA})ugUl_v`mR$(gVsb=yIEx&*FBEF3*^;nap3 z*=~|Sy1Ut5HLdTzdaYb)zF4t}*X|YbbW3|*o!@vv^26zAt9~BcW5l8dMWv@{Gh3_M zUZ1gY=Ughn%RfPCuH)8WR&0#tt!Y!*)Yg1kx6_$hqr0D}{c@^g`pLrQL3bYAjtXqH zqf6z-gSpEIRqkgG+7`%Y#-4bgSopQEVaNpB@Og!PKmHhV>B7#)u%2u8&%gZ3v<9mB3mxg>POy&8p^@A(1ueUG~_xvr@fgg|4l3YpPLbLd(myV%%oD zy4oYDd9d@DoF)AVyj+w|+J=j|@0)$LhNnwS>D)>ke!e~W>FYO7CI@WWI73&{y)Zng@@}i0r*Cw0 z-l$D#`{N>YH)yqaWRf+aW&fDq5&ac>dovYhR-TS5Y)5`Cny+%{vjj@B$ga5^Gq(=%ZLguGEY5J6d-P$AiHeI$dq1i+P@(JOx6ao+ zTP5)~H@y77*?p!eXu)B(Nn2F+%e@bykEPO!#&kBWjs7k>!EVNk)1|H~I<$H4;fM1B zQj!;UUOZhl@RwD~%MDi_e7wc$du_#8EjM-4gmlcPvwBUnny2s12!6T2ce|Hen}Vsc zl;8B3`f}oe-nCMu4T*e}6L@p7a{SLO{aiCV{D*`)o+*EOU*Xj&lcsKLpF4Np^LD9* z3O+@<1{6$cu+#g#Z1s^gLGr{~jn0qu3*Mad=;{6T_low0sebl*Z>;(C!}Fz@bh)`+ zeWz3x_@P6$SZ>{ohw=9oFPiP%BJ<+$7KdKfeO7nh+D+Xam95c2!}uPFn~_)U9Jt31 z?$)sBt(GbMYCSDXIo6=c$WF5c40$_y-M$^WD!KO^XF8;{8#b`vpjG4AqHUd|-!}4E zYFe363OV+#SZ!q8_V=DA*~dOxT2_@^yW+UVhS0b^<3~PupgeQ2Mup4{kypM>Ha$Ev z|LLGQx{#cs1M?;GX0&|em2~dWo$$%$Rg30p7w#0>?|Hje)bY|myL|aq^=AwWi{Hhh zpMG~>Mmfh*7mXK>3`ug%yP!<3Q!o9dCT#bfb5XH9X1wyN#T8{e`N=ody-BSVqpQ!n zdHdzk0T(km*1G$$PQM9dswBJ!^Vd#z$+^e9{DJBz@BVCa2Kw%Y9+lW1x;^7U*Z;7- z-f|UcDSr`Nu0edI$)*;*rRoeBzOC%riOrUeT|4R2`ibh}~Y3)5r=7gx@0>G#ZElz3rqfb31yy1OZ*E@dEXqqB3iJ7zo_ zSy=VE_qAJ$So+N!@wE|a*PVIx)z{^YE_$GhJT-N8?$Nr{y4MMx@t*sB&@bl~pN)Pv zyt!+Qm#+_$ZR?rUG&pT`l~t2(-ZQ<{#e~%Bbou2^aT#y8+=I=Z%ic_0{r=pNwsqpG zPHeO>CMGfIn~?*!^$WYdZ#r?(@y+QAlG;ymFHH4ccsTUp^{H)}RGar}<>1<7`aJ9U zb+G>!>dvco*@~*7&hDG?ZwB}=jof!ktdO<$R&BQ(jV=v#+V}9luW%HYC~i((!#bsP zL%Q5=r3^W-z2Nld9h;x3!(HOSa(h)yo?b0^_MKN(eKJ$a?_A^RI3wgbb)rSua`%2G z4qlsBvHSILv7sq;m1ag+l2z$d7zn9+y#^<^oe>Y+M#1yu-`tkF_ zKj~*TZu7cP?{BKU`*v5kk+HwTr8bnAisVxl>+~^^?_NDizT~>#)#dwz3DhStHuwSs-io`FYR;ie=@rW9UkWtz1Hq$C+(Y=z0#)lzIfE`*w|UKySkqr zqHx<(X=$fc+wvy#x__od&(-qi$h;0NhbP~tk{=i>e>Q(<-HaO5yX`%kV0JC@M4lU2 z*R|VEt;Vgty{S;#GWAVUPv`F5uYW%1a&AlIS_gJrztO>?ZvDY-t}@*N`}5WAEk4~m zeYsk>VDN<@ceibQzw4H|UH;~82XBA*_*JjmkjC#xZLA!;__E0yP}#~+s(?UwCv87sdXD9spRdqjegd?`FHOwKaF~1dbV@R&~JAA znwDr9wR(TjQ}ded&%bS;s&fCUfmh28&vWcH@Ww>t*ijvH4YJ#<;l?JN9+7Z`I&gi7 z-S@|t{+k-5EO42z&}3fc)px!0(!y(n(!jLP1|hqt@*VGt*!oyndDhe>&hK?)%hvkd z`|6yzc1}+R7iynm_zk$Q{?dDKbi0D1Hws(#J<f z+~C?d;)LW~YsCvxeqWV-d~NXa?Tgwcqmo$)m?EUtB&$1nkN^ddxA^7X2wPc3qN?(urT4}gB`1^008P;^#;r({Qj8nNuZGK)m z_bq$s>sse_J1uS2^-;@muWqYWo-Z}%yP9sTGJo24TEDyb^|nX1Rf~w+zxQ%j$h5Pr z{Zq${dhM8g4JFr!JQ^Ky?D^|ckvTgT`vmUkI3s;U=em)zThyuA|J2rk%~QV}<#O8H z=(Md*nZPr>cB6gWeMYR0A5-YNb)|0A8eK#;#o|Wo@^lk6pX@n%@BW>QH4k4oCHB5D zvO!sy@$_E!os5f{qWxPo*tqacm5ED4H@j|qeEN0av{r%LZj5-8TH)c~X&ZJ9-Tp#e zsoo;G+}t_GpHAPX+CHFJx4Q)`-G3Z?rjvT(uisViyB-rWfAGYGP4A{8Jv#MBvG2mm z)-SbsQSA=0*E#MBZ{_2`E52EJTUs#w$JiPj-;KFD`E1yX^Xnf6v>INWidk}cQtx@a z@tN3TC;S3?e|@a-%<=^ro-Q@4Iny!W`H+r1miS-0J=g2nyCo|c7Q7z+^T^$&?i_Ac z!_PnM^eaEPTi#f#%uPx*|6Jd3(#sKDPu=_>i*etW^=wFGRUy6Qv6^w8aevo$?Z(u6 z;9YfcHA&3Ef~?v;&wW$Ny-Az?-0PQ1Rs7C}nxDT*TG>CWExoDc#$hfwt^8h{m+ee% zb$GFI+|t9XO5bTV>QYctO8ajk$NtKV-#O;1dq;c4zEL0bZ56V$MNXfa>lQSq<-bdt zc%@PPZ8x`G?)W&61@mtSt}RA*#+pT79y z;Y~N!bnnycyUX!K9b)Rs!edV#S+jY;(R+qX1J$pWxu%V5sIR##^;W^j8C?`@d~$X! z%T8_nVx)tkshwM=pL%#0UUli6xSTyyr_SLUYnpd!a58M*a(C<}T5-K>%#?|1W^NES znx#A1zea6+|HWK*)3V<9RaHaPmC5d^OSQ-UR6Q?d)0WEdVb`OF%xaoG9{Q22_~5t=ik$?mga)b*k(>p+GhM$Jh6#uRGd7yr}a? zJ%+}aWIiLpW;f+}Y~6D%r01@YGsCaS6;lfu>g{fqeR9*O&4q*?$DX@T?pR*RQGK7- zBWWu=J(#iq@AjM=J#cD;H!s@#Qt^4ko+0ys!xxOFjvQ{A((mz-wfD^(Cr5bb4jWGn z8J9BY%JIhE_wyOkGNDx4y*;+<+k0D9>Z=g(@$2!^dOh9sE^*NTtwzCLznUG?cbk8F>1Nj!D4jz{vA#Zix!Hmp3Ii`v-pXoHt~3YX_3C!4wE z?+*<+H}cM~6~8X}s?VZd6FTo~Es zu86B!uYP=khK(9GX`0Zid5e~xAqYSjY*qCQJwvl@^@%!p{PraCz~*xSjZ?C<022m1LebEZj~otgK=_20$} zRS3~02FauN))U)-QkAVGD~mm_`Iq$D(rz{89~?MnS^B2xuO_@V{GzM*B%-V`=6Q>` zC;H!B+PAf1tMZw#)kkD71>LvAy;*#IK>0l1K5kw|u66oXANj97@?U-Azxv33^^yPT zBmdP${;QAtS0DMWKJs6ELdTvNB*mi{ImMVVjT+jcY#9{m)u%o1bs+M zj9HgsP-Xl1Cv)Ie3GS51;3byKfqKgPC49cJ^Yo#_dofrZ!mCEowV8ij-)PpQs?6yb z;2NsZX;X=hDEJL>Da3;myii-_K}$I!c!X*=V}{unO-67s z<@9Nsj<}R&YQN$gNWXy6>f@e)7EfVuWcyN;LuYM=PM^|Elgj(F7SAOBHu|s6`*((< z2#$3IGH^!XwJT_S|5fMyO-*m2IXhc#Fu{7tHfX@7Rb%8-1`U@|HAGdF(*r724N0jA zuDV85rpYq=mU6SE zWoTff8B|#saCIgRGr`eVWe9+4cMaFFZqxb=LgbcSSegM%2qwME0)3}iW7NXG%I=yx zCGTQdQY0`uI0RbtNeOK_tVxX$TB5YnY8@y)%Uvy^{td7WEPvxK3k(EzdCP!VFMh%h z1@PlzEn*!_n};6_thF2&tPd*);67<*fMx8A0o*4owr!SDY0{c9HA!lP&nVb9s6*kTQLmDTkmBnQTjr#sCD(s8pH_TBS0> zWXd+iC=}`7V{T57r|Pp5*?Fldh2?t+B{J z#CyeXFrpd|I5@M;paK4)N`X-%t0RW{Qoa4`w&nNw_y6gB<#&A&ej|3MttOR7h{PR0 z4Z{v{fT1VstU#8?`vSxNIm*WeI9WDWe<^TD5Vc8I5ulM(Iz!e7Ltw|e`^E3A$}iC& z2%by>@ef3dXluxkbq}@|LTtMRzbh(V>Rr(d<{kg*3xxKTvq$JU1oz55`rEcmSP+&g z#9s4%#aH~{--pqj2z?Oz32&D8dL(CR(oC>VAmUmwC&XPDRJwH7Y49L8A)z5*A>knrA(0_bA<>~hp~0ac zp`oE+q2Zwsp^>3cq0wPMVZmV`VWDARVc}sBVUb}`VbS41;lbe{;i2JS;o;#C;gR7{ z;n5L65y2555up)b5#bRL5s?v55z&!Bk-?E6k)e@ck>QaMk&%&6kQNd9mQK3;` zQQ=V$QISzmQPI)R#Ax_@G*lf8uSG+a1*<{FWPlK4e%6F(vpgYtH?kCX4HL{BI8Ryc zEv5N4K_>v~ip(i2BmSm%H4x@4lr(VWY;vEa%GG9>vn<|KA1>zq`#URj`5PDNcmL>* z{zT-@=4+o|8KAWyn~a}9M-+*jrmICJZ4!P+6~L&brF0O}a4 z>aYe!LduOW^t^V^pAfKQlJUWs`OR&3i}j-L>f z@{EXV+ph1TWy`mOUvvFt=%^VY2S*oI|KPBg_y&!eG;g8SbY8dKr;LP^*_A3C5goH& z;konD$T4FVNMto))3l?x&Ym-W!P1SJcZ==p z-OI+*j&C(@{^29DBwpSXD#zCT>A|C-J$pr5#mZIuLZf0DHA!fhnAEm?$Ie}oQ#EPb zjk&%14x6)R`HJnwmo3-nw~p^xp%+7o0_ijwE9Ck8%hJJ4Wki*v<(TSBeUW3e{6*qQ zqDmq^Hq5Shy?&8W4;kxOBR-l=Wu-wLj4$oO;5t#Fri?-)lSn0XxT+$1X#^d^cuPd~ zl9r7lLmfgTa#q%_O6#W8*=io%RmzkqEo}}TsPEt#ZDm(0}9g2cKN%9C8RnG4084uy{Lb~!teV>OR9-Fi>t^Q z$ov?${wq3Znu?+&E_Db>On$`__kk_Ti^ch;t242_I6IK`7E%4`ly`|?aKGc# z`rpof>7O8yiKqcC^%H94@2n}tq9n#AjOynYAX3}6mE|vsD(es+l1eB?asIRc=R_{F z1DzvMitR<%$zBu%o%3TWH1F5OzAUsQf^~$VQc3=y%CdoCglUEmiz$hil}KG=W$e7{ zy&aq#?VUuJ9Ub zdQTTgm*(aTANgHSyY|CJj45;3(Wz;|o40aB?ap14HwKOzHFn&>l^Zwh*?ZvNm0Ld+ zArX(zkuf!DHEz;n;3#;wX5*&42ag`R^&=`q_ZkG>yQ(z<#}<5h;OH?27ypfBYS){Gpx5MJ4H;Oea(A3M0jH&$!%2d>(@b=&E)kDm+}GqbXaC z>^*v{aq|}KI&@VI9W{F8y7k+3?A>?P#iMkm&M#iRFUrsAapkIGd7ZvYS!M4&%a-@u zwArI{x$+GfHg7@jzfa$_dww{5>G6~22IFXxc~TX*V*c{=+x8thdv#i!$y0(xmp}Q# z(W2%pI(Cw;o4Q*^_Khu8&?Je&Aj_x4wka|i9!gUkN#NOf# zlIlzYS%3&|gATR}5P6I3==>${ND|bxeuAZD3}_6X`a&jtrbl6`DeWCnfxLq|Em4dZ|O*Bzs{xdH?aAK7@21cS|*NS z8?g3blU+Hwqo{*4e}HEhnTIq%ls`q*OQsM%fj zNO(cS!dyvYR9PHDUKg=YL`HdIii!rlB%%N}a5;*`cI2Lc0=N|A0bC18L)|Qv&@!qV zt^x1b!<&9kJ=97wfHe}zj<1z82|h}Z`!ZBCv`_d-S=;hjQY@w~!XQ9vC8S1*6~h5xLFI!*L2%DtKdC*%K_@XC1rOmxI)24>WgG=ZbrQafy(k7xro3Gpa23|ePEH3w-zcgot_LGeQTEU; z1rCK;DT;x9SEE?`kPI6}7&$vTBdFyDp2#2?dMWawMR+dMkEoV(1G`{RFC5|I5B-$U z!BD3J*P<&in2p8uRG1V9Hdcb8JBCr9@VA&|-T9Hl*aJICXl55nI#ZgAD$ErrhpGF} zHaIDb@}ZL8s5DGx4l@rJfyco2M3|HLiTRllQ?wig97$k6aBB}} z3e@tI7(M`F4%kLMg%Qkd7{d?;2@9( zEvF6j)L1OtW}PNC8?39aeS<@Y%)E^_QIp!5{{S&!)Fr2;#Bkaci5%p^jtWdCX~a|p z0X^OM%`%wKTAMN(YIK&DVz_o7g6eZXN0MiRy>H3BjqI#R;rgxPn%9r9ZnR+!%m*ic ztw5VazErPe67};z$~q8OU(UX6yy(EA;Zdd5_D;8bK5}&ja=*I4Z+N(HiMGQI>K5V zoYq7P>Kb)(m?e2PqqSD9o<1u}uWOQM^TKDEBD`eN9P(j(Rs(HjW@4T$)!G`NT)a@9 z#l%Ybt_F)^stJsn#j_1YK#hhI3}tG4su74doRwrnm5MrOX*Xk_#u#YnOrZ5mgsNIM z9aXGX@>_T0PYA^dwA>1XL2bHcIcE@0shSF-I$#U~)xzE+h zH^TZYsGRSoLaoV$Y1L+B@*WaVR+Spj-zZcmDF#hXXts5rh0A|BK*h=?vV&BBZ9GG- zCRk=dp4q-) zQ~tB|0Q3bqYy`)iOgM!O0?2|xKd^kZ(1B`(kW3W;z~WBa33_VvW+PCI6b-1`vh`qu zg_GpIKr?K{mY9--Io89cVXQ4{hbVYHwfp?1xM?)0d9Nz1-m2^TM5}EAT`ZhGN0^FW zI5A}qtmEJWKX_KGwFGveHt4fu2`cbBfVaTa0TJ!~mmQb?K0XQ>-9O>}mdOvr7Z`xw z#?Rlkmwj^n;-?f-2hKB4jEk*BVmD#o)w7=2*a9@~n}|R2 z1`%dW#FA6bV)7CES;1WlIsq#j40CW)A}5%!gy*E|T9ceF!h7}d9ZP{ORs|PD-ltTs zB7r}j#bifX2+glrvxI6`y%{WqJ<{e_>uB-vJMdqtxc;T4`?p*T{>J+Fto+g3oC#wG zKAd2% zZ8a{dQd2cX*mZ;BFfTbK@RDO9*p^k`8o<*O!N?5eP!&&g1^Y9oDgM)u6ogxgysF^k zRT#}UOKX5U5es?4#tDS>!(q}H+7xi7f)ki6R1n-ufzT261MpDgr@rL$Xu>SuOlF{r z@-H^({vEVpse<@H{$Lm_+%8cB2qnux2CG3=U`N#sD6%_vmhLtdVNZ>mHi=M2i zVm@xcKP~6C|-e$J4)5hklE#m5{4H^4BabX#s5L z>nHr}OEuaCxs9NhgTW_Aq_plU1Q_l11@P z5E)*=g^Bo|!(tnJ{HyzyPw+R@64V7$P?eocd^?m%B6$Kmhbd4hVH%ane*nkHoEgam z1GL>R#MTd4*PYM=VHy6X+^u+f_}~3~0e)-sdqn9E=d)#AUA;b27!J5r<EbAwJn) zl1=-`ivOg4N+lo<30LZ2R%Kc!gHmZ(w-8xm`Lp@nC-46s&(G)S;YS;m|B>yA(5nA6 z^bzox;KS#~^Dp2JU-ZAyLmLuh2^JCfIj_vJpfHFzdY+2r0fn^MDM_DgL=gx{w6%BI z1O}3N6oj}dcq6h=0j{tA7wG=Q=jZptr(dG1;2`Ff zoGWTmiZ5h@qZ4gDAE+mBz(P&LryPD{1zs|K@;s~|8y)5AY*_c$hz5V>Hefish zogPfof|vke?Zgj!Di)TFCY^I*JUV(JC>`^DC*Qmu|f z)9|NW?->NICPOGfObp-HWbnVSoDD%vg~$SoHEKzu7_nCqXKxi}Dcr#FgJT*)a<*BQ zNA{?_0(%GXr1nq5oc-ByF>qXkAtr{bbtR}Vqx|>)JwfS6P%{HmRuEKAd<_CDRDys; zjz?Yox6_DPF-jX8p$!euMuhPPvYMmJ!4c-r5OYKreQ_n6DCi<9mUJjG2!L z2S1`L*c5{X4`M&my=zyEg^-R;U1DN-rDp0uo2rSaNMv)^q1WKJ>OfwMsx%E(flJf* zakW4~&opX!K^O?vJBAC&m4m%KOa7;31e_~jN_z1p$bQ%a+i9|_)#OC5I46*HYSay~ zOmUW9T}$RiNv#E^Oar)s6_<(6&46t>6eZXNp;G*xz4dDM(Nzd4s0)5H4Iw2$>I&(O zwH*A?B>yLr6Rxy1|KqFhTzF6TzHk+u|JHlLb0Ka^xEHP;zbAZ0$p5W!LVX<}q#V3J z)ZlUhVGsIDf=1fl5Wtj>DBvhH;p~AdLi@8|5vcQY92Xc1CNHxF>^$Il$5pU)8&z25 zcXo2}PMy+l1OQ)S}qrHwZ>z=qg=}^$Z zYx$i1wa0n(%erv7YnjD$DSGylMUrz{_1W>b(*V~It8O*lIw-i(jWtE5clEYU(hu$R z)YN6GVdW%`8t+$L$q#qkS9!kpQo)2O+GD0C1v`Xx2-h#bIX;eMhkH1oLXjI40f=hD zzdqS7kT(3c$Kzy^Co^_v3vS)4+#+gl!>y0jo*prL@3%XgG}D*l94@r4WTvWj&%P7nw(T6fpw=&T*Y;MPFB{)*?EKUE{`9q0sRzZ`I!9T$zkjK>ijxfn$<|k` za-d4*C|@7>&((H!gkR8Vc6If{Z`~ZC60f8#AKu0&(=1q(Q*)E7ThH6eer_l~u(Mx{ z@cyL+1sKMu=_d(=ceZ_pgX(T>n&!P=?BrL+vxhg`8ML*Hcy_DIeV(l!o$uWc!2utmFV9#p%GSP>I#ocVO=v;H-&D5M02d8(My8dLCj>c9!DA~E)ci)D=C(7NwcH~U&3-@wQ=pOcM(fj#EeQCp@^vB|PQ}%zi zr+2DsnZvJJMN?|K_%tlz7H-$WXJBtp#pgK}{l-_?SEtwFgCU!@9&nd!ol!Hv!Fl@b z^s@EV)r~#0^@lwP)%s}OPWSKI;lb-OF^lzwl%?A@Y%;>Dex{qS5I(%}zJMevu|qRB zo?QuNc_+4L-6p=iQYrr+tN7mfT&~unnA4TKqC~FF(Svz{__h-54bN_XCFm?(fyBU0 zyx)LB*u-4xU>|0+1R3ER5RD*CrGYJ)*P!qYzSe&r4z4A!fddoP>*{NCT8%nRtu{2* zo8kmd)&KYhJ4+02pK)YV_0$s0FRbszpT=JPZBgn&$qXziI^u6?vEBUb%2PF&nF^~9 zneaQTU=`x(o8ebOVHjg#zz67We}y=R!RQq0i-;^j4k!U#eM+9?e3JjrAX=>Gwdx_O@F@eYB)?Qd(wEc+d1aAu;gZd_ol}12Zeaj3u^}glK(`>-zp+FEa{6s_fcDTsUC>YM@<##`>6DX zE&u2tsVeTno?2?R_*G}ZhF$Z=qi?Mg#{J_q5W!YQes7u|8Vkbxewh!4PiSt*m;h0* zX%JabAq4$kHw(ud+8!hIN2P4E1Tu@?0Kaz?!qPr+gaGXzbg#rS3r^00UxEg+CPcOM zfOrv$IiG6`u_fRU!82trNZM?bN{AU8`(t#9su^0xA&hNRi@j6roaxkI|*TK85&UYqJU8B(jI#!3IWFpe5vN zGM>?KIlMVA1sp*j3W#joE%6_4&JdV{ZSIP*c`1fJB#-#5SoB{+F0n@Bkl1~z=#r&T zYt30U&ocG;Y;v?65JNu5goN8zcCUV5vXVnk55ykmx`P+BKHDF77N``2PLWz*AFoqq z77IgK9UP7X3ODQ7dRnW>iG&{##;YcA=N7MUauOJ*bi0$oIAIG85Pz@@sne!)J2z(jvOSTA)a_Gj1T~21lJ;d5!3^E3wliQfb-KEEk!v0kJkox zz{4`p>PuDz@BU`>Tp@ZFpqa(L5-+T%62JLkm(5R|^I^A4ev4jc@yB0=!w53qt8#*t zun54{zT`J{UMA~!4{(hoSt!?F%QG_!;> zm_Dw}D#h_r&67D;l*DccL;In|Sg>PSJRXQMDDM>-BZGwnQD5XocYq?mtC^N)D?O-W zV4C41M6=FveqD0wq{KGLx^eZIwrL$#FTPfqIWrUdkYJWn9C%%&02Xt_^~z;R@D?$e zl>A8zO3=s|02aP#eFoU_@e|9oft>NcSzEw?qKMdK$*~VIBRDql0fDiPwr#PX7V+%> z_cZ>16hJ-RSS!S}$v(LIct-zV6@JMr?YA}G+hL5-k?<+&r^%B>Jd?5tL5&HI zvcmNNquY_w>4+B5>gd@37C3w;(aMraYHmfCQM{EGk?b~leFBlzT3b0$U0^!##f*rQ zAUX928`2o-^L)q%?=%C(lK?zbklaW?g7tA$+gAb%3#l4-5SSH!n)93|sf6<+6}#`o z>(g48O)b(arx3Ov>?X;U(R_>}AP|6QB~t+sRIVb8MEBWpF`oAnpP~eW4MYN7lh1P{ zC4?9NodgB?@7Ag(wSE?%(=+uc#5ianTtGmxz%5M&0uD$|T$_YM881GjDxy<@f}+DC zG~p3&O;M$Us8qq>>d2I|v|u>7C?Y&MS`(^{P)Cr{oj*J#i>MIb>w>gPxC9V>IHb^8 zP#`}a41>T+iaBE{2vM-uKo1Wr59pZ@tT)*}$-%i28f_&7gr5Ob)LGBj{{1iT?!<7` zF(0m|fHS?}5G!aWFQ0zyO`ciuY*dkL`5r%}fG2#o0?&c@$1xzXSjND%YZhLcLy9Rt zP&SjT{by$cEG(89Nkkk>1t>v)lY_VeJd8M#5_w4e3Gx1YLc{OTh0Xy%fX#@>s1TNj zQBl8LTIg7}EEU_Ck6EhMo&>eGVxK z%Fxe?io77nAw@%K0jV>jbV#IYLjQ&S3iB?^i*Oa@S$O{O_zUj~;~>n3Fg_pO3-1f{ z3H1x(FO08HPN-LCuQ2aIzHk-hU3gEp3iS)`3*Ql*3;h)4PpD703jGl71v{OP?+1pn zjJriel2J6zfxrfvcQX(WJq$qga1Fn4`4Tm%h(o#qpAnk&59MVNd*C1i!SJBU}f}fvX zxhmMtuZ(?pKS!rha9h^L)60dk^Ye3no8mwCkyOS{O#Ass{QNv9S6@Gov!9>0oAr4m z3+|Bd6k8LqEvi9=AQaL{&#MaKF03CA0UD4~)Y_1JD=^vm*7C$;-V}Dr3aA5G>XBzR zm_lo@Lq7^V!p;B}VfZ5d%o$AtB%eqr-%#io1(rrAAAlCYKrF(J<3wl!4npV-b^&k? zRda#}^`pZOT1&eCxR=)Q<^9&-QaeRx8RfKHgoe`r0I#P55V}db0ytb$aRodSK?cnZeDF`6JM|CT|kMa$u1HyBUIdCi27W}%`2FI=jkT}LFZ3`P{DBkICtVGUqM zU;Z(vN17oSh>_kx(TWP1;W*S9q1N`R7}OPp$LI;ba9kImBUn6+VUAJ{@q7kt7I`A{ zgQx;Ld?oUPjByP69Rp8FZ)Y&69QU?-fp2RW^fS!D&$RO`DSAgw0W6&;^#pjS6g~xQ z@JDl@>2vV|(K;!5A}RHrMI%{uv=p6UD?rXmmI3%J+n%oy%Cl)sImldw^v@kTqmBr5 zbn1?DY#-dyrf&s-*bi-jN!dg>FOr}a6thGEqbdb>0$l*6=H(LUb_w1fv3ek7~xw**#0Kvc%Md3sEIHgMFr6~T*2JHs21}rMoG+mjB=Ry80BN;JB$Xwtf6Jt zZ5PHnF!c5zb{k6JepGR5$lN#vGpVRIGY#YZ7|s;2eu>n*24g_i2QY*Ws9qD?&>N=h zkFMy3SbEYGt&>Q9azzg%(z~u`24!fZ-Qf87Hpw32k>zJL}K{vF&~Q_N6wy5!3Y;mcxj$X1ms_FVIb$GiyuP6 zT}vHzMKfI^5IXHDz2=IGT-~m@;T3ModN;hy%?sdjZZ`e;!!^Z5O1h%hdZeENF{}g_ zob4tz+*)>VYr_$6`!$azPRFb7M&7TJj$Z}k}4Zmv`kWQ zE{m>6Dvo1OKNbXpiL7)Mix;rc)hyn`+8Mq>Q91!?X1?+n>SP z=&cy?zhO$x`h=#yTJtLBycMG?NdZQtRtW9E%t?$7mLNL6Mwb9$ETP1YC|IL9zTIrJ zBpKBqa|3jwmPC!}TVO{7hobcoe~(c=4AdB&!w8C0(oCM5S^DgZ#sM80N6UB8XgdwF zO2!CH15z?gB>z=}4vMP36rtxLIsbkU*1V?dUU;K}jN3(TbeS0i!+2jz;P>M5z@E-J zxLx)}_Z%ieem^GyPjGqx9~kE50dT$tDLLNb2IM^VavSP{hIyB{>5Ue6JDvAN-+Pxi z>y1u(0|B+Pjg50?iJDjB+vI{^nL={hLAVuxt!1342;>@T>AQ!d7Ajkh^b_zI0RhW% z8ivtGY&Q$zDJ8>b83zgDQalbo7eWz?I;2L!7_^X*jsp5Gau~s&Ga}E040386Bt|Ql9E28#?bnI%UNL({jE|O(WvK5%yl9KiLCl=R_*hAYNEtT-^)+$P z&>D6F>8;0V4Bh*HXR%?DPN)VMpAYfGZVi^a#%L4HAY)q40VkpRFc$Z5)Kxn)o3wu? zbrJ)-LS%Q-4($`M0N)Zl!`JQ5WpO#U87-NQf3!oJ*ynsP8Cie_?c9E{L-*|L-`n9A zcEzLh=lfF^p}HeS##>W}$26Wynj@&9iZ^Wr&TnO(aRQU$QK4nloZTAdt zgeLGb`ZDCdWbB8F@qiEJ&I`NMx6eggJqKab%Y6#zNbyLJI{$#~!gK5UfXBVqK^PAp zJW60XysY5Blt->WM5{2NxOz$DWR889rie=*-vRtC$3V{m7+9J0nVlG=F@+!_G1Gz6 zfY7!8yKTXE6XAMyu-gC%zxkk@AJi3(>v%EaDd6xdh>Odx=Xwh5$DVLt-VN;Z3q~)n zv>%0sQtT=UPomga6kfo?8!7f6g?HLe4ary{h8u5v+y28*g}BjT+SOi3E+1WOfz}zfLbEdl7$7;o~%wXm(8GiZ4hb`_)3f>+mYk{BnZK3g6x&+mrO=WTEsr;m^#!kC2+J~jUxsKy-TU-sq zRS_T_B+n@nx`2W0KEqCfC^UqU0;?{d*mD$~O~u&0^GECB@5*y=I3~@$9|O27z9Rw# z4k9KRO*s_+!={{o;_s#G0A5W?kBZP{8pK63kg2eY!SgAh_?O%eK z!&2y$1|yu*VdhEEBZh@CFB!6Bm@Xk@3MIfw zwn{vq$Q6kvRP#pS2}LHdo^M&Sob`m44zncZHtPgsiddIIA{=#mF2z5Wh)6{RLon`# zVT}^GmMIdW)nwcA97}gf&^XF&tOTv5Sb%?`Jb#d&RkZ6`37Rcp0bVRR2QLi}I|IB$ z%s`plVo!K_MeI3Sf?kOk$nP&EWN_Lu~pl}G`;X0sLH z*KKfv(ET*Z1Lph`GwW#JFAi|Og35%h)1Cl+PqVvde28W*()d&fmht-xj7IT~5J~#vkA>q3uAT zAvplH14V&7(qcRZa*k1+06(BShS9ixNptwV$br-#NTH7ybeMLApMjVvVgQ~Y+6?&@ z7y{p6+y;p8n-B4&2$sSuC^8F6Cea`$Ff(Xq7jWhql;;u}y`?;7(XgWcrQTzZd)a3g zh;>DPf5r^JPcdxR{+JK_-E~If^lQ+xYuIxh1zqu+K%vPLTS(!B6#G4eSK3YovW*0#()O>|sBfAC7}jcZ9mzgM@O9 zidw>;G4us!`aKb$Q@@H}-#mg%B79O*vWN)3^a*2ufTnrQ<9E~mPR48@#xrqsTbllNaS6t$ETi~z{JP+_F=dWR zQQO%xLch|LFH2#A;;>PQ`iq%gq-dnX0dl5E#*;?)ogtJ(6QnfQ=;N>*RiC@p|hbX+OWR(({1>fRWAY^{XH%%M+awA_!69iTDctoQ0xu1soB*6kxv!(}vXYnnm@fWb z;d~sfiP8~DXCE*~KNWc25Zd!7gJ#iNp!JtUo{(K6st7rA7^mGJurTomy<(U_V*IXz z9Ke`;se1fzWdte(E&Gl}JqUNYPk913fF2C+P!Tgpgh!PShd&<2KZREh0k1&E(^LvT z8#33Iu@it#Fbn&QUu{+)p+(*S?x5m}1I9QB6J_5lO!korY)TOv3dB{)Iv>EO3A+fR zbUP5h24YXRpMe?3*ofKP81J;*a=|mHhFO5m z;gJ|_j?k4ii_uJx{RlBSCGrONXHiFl_A#DN<{864kvELfA~BjKmd+L9ZQ?3Fi}8;( zTUD~=E1)%?_gN!yxF|t8MBf0G?H4;7lYkuRbYFswNI;n4X@dvsg+LcWIq#;?LfUB~ zjW*C=39vp}2G5pJ&WAv#qn&opXj}2KGN6HTJlbhJ4Hkns{JUk)e4s<~ zY3Ju6^ds%`BhfxNT@<17BFl3Jl!{QQH|&LaN0QHxHaqgH(VN%a@|i^i@wj%mjJ*tc zhn)v8Xe4zMFy$gG0R}lh;z)?%cA zZ7GQ1uQ1+&o!?=6kB1+D>c;vCStss33=Atb2xelgh+QkfOKsK>*fvTt17I2Sv9yEO z3Mw)+kRPz^cs2<)v!QpNDeIIa1Az)9y*Vi zhZtYMplB_rAJ#{SPMYxL)lhOZW_Dq;7fU}>kdZkfW97m$MjmW^lmK>>Hb6>j+T-#q z=ngQNhe6aDOR)u%us4S9xQJ_@(pDX#t*+IP2|#Wjj{_ds>Rp}DBCv8V@^RkmgEsn9 zwGo!LyR{$L(iMBH-z4P8)9-%EUZm$}n zyD`p3o1pbI)n}TZi?!XZHb%SRNKn-a>-e`wzNSXh~-n++3HNElUYwwvkXR4DkT^%YW z-HtAr6oq6;SDk9qL5MS_I$h{8>U1MDT|N~hBbOpH2%*bJ2w@O%{R~1VCf5+gCm%xe zdq4Ym*6FmGqtEaAeSQBsi`6sl=eC~pthLu(v-h06H`h`()yn&@mReQo*e$ix&$VjI z&9nZfbiMSTg;U*POq<2Nygz!Y<-X6bUi{iDZ(VQoee=BMdaI8M>pas(EpO+&wU1iW zj(Y!Em!@<2s10Y-+TUC4KBLyxy;b6@lb82V3%lmc>!WV&dJ(=nbglhmZ}nT(-w{{l z9N#Ow)t+-baI>xFX6ybwYHsg5fLQOm1HIMVy=!mmtsd$9ZyFAogU2qmJo9a}%*y}5 zQtwzkeBO=yi6bkx!K!`GrLMPg=ex1U*SXh?Z_v0XNOpD9+qkCscFyI$)lzG7zeXC^ zrjGgspTBYEed|&C+&4MRIJqjsbs2?PZw_{|R_>R!`ozMv7 z?Yaq<+E17MIM&0jl~bR%x!kAdvH@tl_b zTH{;Gdc?|k%d)UtpQ{%^YM*j@G@XN1Q0>Dpz0c*l&8r@Ed-vt4&)l`}`7V$5=Unx$ z=NNqc-sAlVSDtceepOZ|sVz@87cl+~;Du`iyWKDAT$yxx7{t|sa&H?9Dw zZ*%J2-WZql_u|O^Cco}?jnwb?_hSm)UEj01iCRY>m;fv#Z@UZ{5 z{N;_+)5q7@+erO=yf4#8z0k-9pC2^J|FMz!s?lQj%ry4=*4X-Q2{pR2DPu@o!>z%{)JS$hzH+JnJ+v}>A>i8DaRXgg` z&(u-->eQH1*E&$=Qruju>-n^p07miWGl^R|bUoXq)4nO6mj#UeHVd+k6 zUb6BY2fu^B*Y*s38*jGD!lkGh-&@u`tHylWI&dga2Upg%a?+M-Z>@^$5qzFzwf_n8 z(S?h{&0cn?q}}Wx`cXkMT)n&9RRfFBT33yv%i89u@vX~x$A#NSa(Z;eEB|8Ol~^uw zw^-KgI6^APa6h(DZa}wmaODA)^LX1 z-_{^+BLp8dIA-o_^<#l|9l);zf8flYY2o<|;I)={%V(?oE%R=it>(8{hT*%dO~Zw= z)!H_{BQf{4^V~d3ZEc^bwPB`O*CQ`BQ|;`Pw{)huyH6fCU-oIcZl=og%iAc!&76E3iRo9YE?(e%Lgb1Zf9j1C(?UYpUD&<$5NCba(Q zmV`dKI*-tISLfe?Osu#j|H0Ynp=;U@?}KadkgzYW$$M><`p-3a=tp#B-XpWr@|k&S zW?C=J%=>zdWqmd?@6Vam_cLq7=HYhRwRsO;Yi+x>34#A!TmM#&6|?dlm}PCBmG{>y z>x)@=Bzbst-ZQhU_h;wd7`3eBQ7dl^=(AC)5$XSHj+MU-j$fT)ISt%9*K&;BoNIL@ z`J#E1F6Z!?{!p$`59Kblf2pB1)wq_XHS_VpCR`TI#g~|su6r>Nh`;hpm-UKkt>;5K zJy^}dwR5Fjsg<`sq+-W-Za81vdJHZSszklK^&z#T9&X6|T+jP?Nc~=q4v|M1c(;Yr zV-0YQQ1OC4t#yOd%HyBKblGvj9oD8I^_;)n_k+}DO~dg)>iLsifJL-A*RLf4rcaEj4>)kX^ zZD^hU`vA4Dtq1H_yYajFtH0Xe-k*B4y$9-Fw7=l*{wfuq&-ZljEGkmZcF2R{*E(FS z)Jvy&D4J9A<`t>yI@0H*9cf8^wbR`;g8lCFV?Q0N=5(e@BF}a4?C7u7ommL}4_)uF z9v-N+oO3+D4MFdBMe5ezQ|RQ|J>%BSBDJG;!9yXnyU%eD|Ir8E0o1Gg^6~ku^XkIi zhV!tq`To2H_;_c3a`#&Q+II|6_Z8)>4p|$Da0y-AH_&tIAZyLQAa0&IAAcA)4Hp&% zwT8yhP;;zAp}dzu)_Wn(u8{S0$h$9O-G6@mn!(nl^WTN}f+2Y;hgi#oU>B+P)GL?J zSIGxllWuRPR^--R+fMEF)_%IJx~oRsrZ(!Wnq}axt^Jk#cN_J1o%#pbsK4uZSGH3N z>hHrE@Vh_%w>IkgrgRr6ZU9i(s>Y}|Wh&b15e}mAEL7Gz zLp@egWm|aZm{q5i+bYFd*&rqjI~>hXQG8_xV_HXuH5*eBg>Y3RauRmpb#qj_8Kx#^ zumyJPpecM0`;z#*l=9UB#TA||pi%rVVklv3m&Sl5aKhL^G_2H4&`g<9dG&KtY?M+3 zpz$k|>I53WZ)nDV2Jl;%7^r_CewG260Nn-}UW_YgprIv76*kCGzNJbPfkr_`g2rOF zkO&&T3GtEqW~EY~>Mq=_Xb3szTF}tl*bahb?p3Piv1sQJ*nx)EqFvDBdc+GFc@+IB zfc{3r2kP5|Q$1)Lv=}t-IPwM>tAT4(pwU`b z-U(>$GD~#KxVfyxfre>!Mtsn< zpaE2Adk%u=M5N7(7;mk7c`064f_el@S?)zkb@S2MzHxB37W#TCk2|k4SJvo zHvzh|fE+Xg8oLYg0yK=x_H=IEwvpqx(<151-tbaZ_vzRm>-}KT;N(w7<4OW8W(T&g8H7pJS;?e&tZ!O8hF7{ zTR=lEK@OS%%{v+GyaGMY#E``OKw$0gZkI8~|>GA7+Eb3f*cuXr{GWWk8c1+{)Vl@pp17KWOZ9w<-n= zcXq4kprI~qbtkC*O#D`b_-DD*R!}wAt#*P&hQJSKve>QapNhCHa;pGnbf{bP1Pu*y zt6`w(a<^In>ML=p1gJlZI6xC4-KwA??91G$EzwbK)de&@+O3K}ebazD0nb5PMCZA& z=D_~~w^{)jz?YDor=i`O+-fMO54+k3Vf@&91*p2yt=59ZR^hdkr=z_%;sninj&{4i z9>4DhfM&jPtG=L-h91@UOxU05QRP@Sqn&Yg73*L6OpjWDbuHY>qY_xB!u>p|Io659 zc^=gl$6=%h`kGF6&ifgi5_56d@@7DBqV**4?#`4;Sujypg6w3D^5EQQ zWxT3}zox30tfgvYYAbi>80CrPD=W}IxiiN@ALq_QGiAq`D=XAOqKB{h{NY(QVQ1#;j;C}$x2|@3C)gV)>8v5}=hR9H5B`s%7w2)he@G z6{c3GlOuQFoO_3A?O&{7GeHwkUV#S!G4HDtG*4#PO=~q+i45w;|gOKOcbivGQa-0o{$< zeu22YR<6_@#Qwdq(?5V_R6F$_bxPtFWkr4k?>E&x=CK049IHbl7wc>-%l6l{PL0&I zI;Lt{oubEBr^S!4PLI^V4+`sAoqhEzSE!!VB~TxF4XiWL4JJZG9ju|XHQ?1^?j+RPvwEAFw&^L^|L9~|vcB>1hr2_qB#(`dP)QzjZ+v z`+-D}Wz#+&I>54n1FZ{_*bAfvS{J3U7l?!`J9EA@G*N6_oVeJs(-&Kpq%N~AO_W%} z0;Sevk>S?mYNS=-!+9O&bWdcgGW1sc|vcsX#nH8wfLa`~nr|5L3i5>u@!{nM;*nHkpj&`fKBALskvwbsPY zEW|m>iezS4SNY~!lhX68$?1Pt<;ew>6Yg#iyw_4XmZnIo5oWCP?ShEr6eAGH?yHX`e#B4h!HQT;18nsm{YRBSp?3>c_>}ApU_RZ<}_ASwW*|)|P*tZ22+RLMh>=pj& z?AwFa+jqpTw^izT+Z9}FyVHyDZDon=3N68B(BKWWoxH*J1eW5QzSLeBywO(S8|^zY zH`=a14DG~hcj6}duGli{1(w6>jg{w8Xb|28`w#SaORx7jY=a@!MLjy^57 z@A0jG@7wKr19!mo4*R~~O4}8~-K50bwu}DaAb1bjz1OzG_t{o_we61HZ+nstpxp4Y#W!Xt@s}Mq3~YYmHrLwHgaJWG0D|V^N zij8oo&?uKXJqDj=;->9Pmlc}pvSagIkEE}2tqt4={w=O`z876q=4ID<{LpPfA_JXT zZcnN<_5`)v317bZ(QqA{kL$QM1`FJeg&Vmy`I@*NPd9NtkvhTsWZduGoNDS;>89?d zLe1PN+1zc#Tf6OO8@Cnh;(j`FhWnY|S?(<{ymC5uw)W2-0jYk;O*I? z@ENZw_m6RJON{}&!u^^W?|wZo)%`|tn)}VzboX2F8E#kXYPX7C?aoPF?S4Bk$L)^J zb^kjy-)*OG7uL7HoeC{*TY-h{cOtL3-%Y&jelPNldwcj#^!H$ZcRr8p zI~M2oV?A~nG+E&J0Kbz~>IBb+;ijG)kyg-a16do-N10PRu5^3P$MFF4J9s{co$7IA zPW9{zcJkP<)8OkgTq!ui^J(~O&u5`?Jn3L}&+g#4p3l?0JYU3nd%g_!@q87+ek9%> z{swrg%q1Ro@=}iqUhc7zB_3Ba41Ou_aE~WE!ehrrARf@bNYB^4GLLfma%?}oPU5s& zya+Xoim!9U_-av{MBR^CXshBdDz?|f+fetT23*ibO`{fIn-)TiqHadT_NqAOQNdyI+CyE0 z>dRBbeNm^QCQ$dFuBZ(?RQzFdaTnAG>NZrB4;|DrD&F&697K(v#!*wKst)u~BdBXo z)2Ib?(H81v)IF&Fdcde_PZNZr>26m`pP~)gOP7< zbu;Q7)PnZlp)Nw*jG9692hb*J5;cQb*a2~(u0TzpV!vIC`?bZv+R)2~E#^iH zq3!rXVw7g!QSlDh>fnRjkHKH*o?APo|Gb5BtOThw8wecxxh+q7M0!>->v z$BNp)B`vl21J-YkQzI2`BSU|{yxb)@H&nEgCH`CS)!~TvGe5E4OSIp8FC8BL(fyvC z&F`3B*>79vxA#@UZ|JD;eif(`FXfH$?aTSYi4V75o#I_?_&s-?dnwwaycMG+MgKuo zSKft&exD=9hw{B9m)m(+=cUB3>pRcs8MU(obx|$WKj`L$yz>nGfrqz4cE6y8d~CN} z+g?9AQk4tQ7o9NHe`sZZVr?_y5ORYIh`me{YjiGOh zAK7h%U9bt;6>7Uy|7@3Kp8jx3rEw>}H12CoX1}=1cG?r*{_csbkQHkMPo zU%YVmx|YSxjo4O*-FMpVNyE-KPO{|fU%13rkvBcxL!bQZw11WMJK69n{4D-XtL%^R z=^XzXxqm-Y|PTC>;Eu`~rj;o>8ztYebewKc=XjQ47dOoD2{fd268^d3g z@fn6T7QM@H%+zsoH0&y^!_?1hyLcX7s`nxJhQ85GmiWtBW{E#3aqQG_dh*QC?GC`M;A3vD z;(N@EhTYNElhayc$yfX{9tRh0{ZR4tG5j8V9Cl$HsaU7KXc#zDLa`k3X{iwe%Uq>oW8!`QHS2M)dK! zI;VK|J$v|gR`UNPY5c_g$FaKderD)bTA%CV+!GdkuRaewQ?-6i=max{|2MMh({YB| zE6Tr*^>ItbDc%PSed9PIyS32m@(bHp+RltC%W?B1bbbG2yV+IQWofT5=5)btY*$a) zJ#WOBWqudav9O=*a0`h0x52Q>(%ur-4gH<%=#eEY zJUsxr9df)RsWBAqV#BV|{)Dc%boqxNbJ|jpLl+ zqMtd2Y_{`gyOoBW#6|N0e=wy2F4n(H>)&YT8~JWbokgj19qz3YvK;pXIqbLMIKI;G zTj@9}hQH~eU-7;4QbWJeaYo1em>TRKKNE3^*Ysa>===00XzZ`W`hU1Zf1csr$S37z zFKWiecJ$afD&8-SZr2>STvMOz(mJna8S9dfS89*;uAzo(ho4P3#e0rnmt`K`0^JqI zvRx-_*ZH6AXuiA&UHp92nP)d@yEca1d6o9rq;ov$dv!kAXV=d%Pwofrhuru=O93QYtoWyoDwcT&Vc=kAS9dRr4W6fBWYs>A%uCK*vWx zE7m``Dt%+#Q9t&g`oH?ynLn3kJM(;0XAGR4Eyr1+?K&EE#yDn~uYVO($}jbw=IhW?*zfE3OvT&B@N4XYXnwc9rJs66pH_MxM=fDvb-}H!S*faLbsA*UXc#u2Wo;-@d1DJ8zK@iq|~f z^g6T-(0aZ{^bfMS@|xpl%v;JEt>=l;xt&k{N4qTJG5**r<5AFs{nAfUs2tI6W1O9M zpcgxX?JCyWTw^>8yDahS!nKDZj=#dQ*l)%0_xzTu`)Z1#7Jeq%mvHucT?RMMyUIObyZ zpQGo)d(Rv`4l;kU#Jj6*mUs&_?S9gBW}I2tb7M~T{hsaq ztL;V~y}hom^Zmef_%j3U-=KfCqwy+-?)0D7ZWEg+Z)d}<(t5cX`rZudZ_)aVvg=dc zw?lu0=zp!_I{5VA^WQlCWH}Dr&#!bGkY8F4eJu_+e#*4pegEv2`a2ADb1SyPpGP^x z`<`J}X}?a#LEl2we?aSRF!Zw=KXe?V#Lm{^c=OTi4!~~B$=u$Vx?hV8J7XV9{i5%p zi8gG9pN>1lJK3c?v6C%UlyJgt9@p)dWQxVA$-a3<^fb-vmd`o{QBJ9${E z3(jJ@3v@gAhFzueLs#hc?P|pJ{pQ2xLAL(GF4B$d`sj9^H|#3)XEpSF=dgaoeU6oe zzR?clVJGZ{Udnd6^nKcihFzBPSAF`KQ9^jS=I;ov&%Kx z*={0kQd04*H0-kEuNZd0R)0D1--t1A?9BMGw6_FyL))?)o(c9p+iiti>U6d{13wO; z;{EXGaUOu({?Tlgi_ebTmBx5w>0hT@v^SpZ{%9t4qmOPk4t9$+uw4^@pv+-8dcRGlrcJ zC*=`OepZDav0Yznx7@I+blvg*^!t9y`h)bmT5RYW^Pk%3R1@R1lkM93M{qDZcMm{~cDxdYE0G`s2>S{`7m+ABoLB74I{KzR@3Qrz`A+{$a#r&Vx#M z9tZu+ZvH-VuhR0{^{aZ!J^!!A&R?e51Mr{e8w*kw6> z@~}r(Q(=y~&qVOQz}JFs>k{-b2Iq8!x8#N{4T#7cK-TCJ7(T0v zaW1Fg9c{Fer9V5VKTX&Ue+kBR=NfjE`jdAI){ld%{}HR>da$9NWq$UAUCPgPr)fL$ zI2AsPPdW6HOB56911*lioZb{%vcJ~P(gEc4+@if;_tJ*)Fzo_DjX!;Nt) z484-=;wMX-tBm$aj{MzrG3?^EvE3kC;B=k9< z+l0O=bf?g-g=U2QA=EvW{Tw5-K9h*9v_?Xj16wLbnV3ROlX|{}FmXXwJX5KlBV=D#r_LF7yp-&6lD)eokJA{5Nbg$4~g{l*s@GJh2 z(~JrT-zOCJDxHEYt5YJan5KlL@#7RKMGH6|br`D41UD9p$1Ew*m?3;IQ}q3#Gx*De z-%j*@6Rg{xf%Vc4nGf$Nqk_jMIi&;srBmw?;ZI?zdj4cUQq*RRw<`_#IKrIEmjP3x5%KXI8;)lZ77y z55IFc!ha9&XkMA^65o%CXQMc!kcso0H2N42e!43Q^l_$-b6+>+`$bRlHBA(;d??;a zM}>|bDl<^&xG?#%!E27XTlDojq}>2{F!?k`i2n{fCJ+V7gj0@&Q=%{G%ETXwT(2Kj zL6PQrQf@@){%IQM&z`E1#|QqiJT`#kTkhh1=zddkG+#{qMd0CUqq^#D*4J^qg#f8`CuA=1dnQxSfkx4Npr~_>*QUxj zCj5JBe&_c*;fICa8hkpgO#W2i`=xzabE)Wj$1h;qbR)Mzxu8OGyalSsr}d5ce+S-{ zM5a=~)>PX+1X zEDE=ZHST{LH=TdIj)djF+H8#17HLoSPq(Y>{G*-b)fb|t=hJtB^?t{+3tho>Nu#}- z$GInkELNsnoE9jQH;s98irC3ATw%9V^y;&j+AFwJFrD}Ddx#_W%fO>`!PMVSh5k$6 z)1J=Me;GW=K{kE^@Sl2;`>WTr1>iMAt-qQ1dRopMe5Udy z4rDqOIy}Srw2n}D1pzzz*DQQGSDX4fs?c8mKCQ#1etoptA`74X9-7*{N7~i%nQ~5r zo*PO<=UdY>p65p;DsppOr{|7RX|RR+8Fmo%vS^RuGx<7?FNnS#zZV7TywV(@7)?Iy zJ)36XpCS5j=^vm|Oncg!wMI4hXMvZky{_P&ikf@~|DY5ysmN3CVPVF1-Ae zig}*>K=|f)HYWac-ZhOp=(tf;$(;>9RN`W9?)O4+TvTNrdw~6qevad9#8Ax@JX|o{ z_osEi`k0}f&J)z zbvuEr%vmV*O+?{NP>RsxuNMAl(f0#W*=ocakpAlNX!9cXSFZy-1k>J&im4wo?E4$~ zroEYuV$sL);FN^)-<-GVb(RO;WSUMf9V_;F9LIu9vHvDJ3b5l0`N})f8a~p zZ#|A-!6c&+GWu!C=ZZd^pO#UeFnxRJI`<2eCrXl&kSXAWtxYPOa%QxVv?1LhY$_*oJr)gMjK<KCUUCjTe!n`hC_U_(o5MEYHBSI=|0Uz?3j_v>jt zWa_^PKHak!``+Q>bDUrrCo1%Jlyq#}Bz&3!R2rb4e$b@w#}gAJ4E=VX+4$6w$-ff% zw2nNwo#W8w=a-OZireImL|!PKW8Oc!|6K%^LPq67RIGB)qSxEUh2M|aYCR4d z$~Qg#oQgSL=y~W=GN&?4;<>0){uV#xd9(Hh93Neippq7SJ%2P!1=vqj@}S5=;?K-; zHa@j%@^zj~KJ8~ICo#FJxzXh@M#?}`FJ5W z9`$!5|8|)N1v|K1b9_4q-yC0hZao#VpY$AiDuJ#{mFQh7e$4S*B78l*Nx^!2`oI^R zThIT9nEHLeqkW#qr^{iqj+%Vhw$a*b^6B^Dv@V+bisRCVlla-3i z`0?TSyj1+ozlXl3r1c+$h+NMHO_TbEDpkmXarUdKkOxMwoZc5e#T>6R1&H$F$DCiv z6P2!?FxKafwAh>boWSFUw{QBV_ZCpON&M?|>2z85O#T_*pPWS>@A7u`8}v+LDmp)! zX2vrAX!4}|0g<-TG;luKx7o@4W`uLK;HFNim_vq~p1VxN@BDixE_!bRl`BMF?+?uW z;_;5lGa~y+2pSDqSOzjrF zKHl2zW}7v>eM!5hWzQ}|59)O!s)+ON}l zH>miXe=E)J%b365bB=q2$j=5n1J&er1Me)dUCB5f^%0*wWzp#T2<=5ov{N{bh z`j?1)9F*4oTfSnx-cQngo?4*ygi!H2{~p;NzsSw_=shD;ntYu-K9jHG%ZUDPX)lia z(|AR`IXu1&;9-h7?*zW-ZpNB3v$9>%oBQi;oh zPtD_s-jhP*8PP9wkWxbsKb@Gn0n^V=PNZNJa%&*W==nJ3xK%tz=c<_9)2)$7b};@@0nl25Rnjz?2^ zmOPb|$Q^)xn2UUhe{FB(HzMoX%)QzBW%7^KuZ;K${J{QnJfW=|k=Z`Ihla}KqF*Wo zbj;EGt;&wxTSKMMkJ;lk`8w{<>uh(#c)Z2@z?)3nhm9Zsn#4tn1Xm5As&0RPMrtlOC{7>AEjO#P$DuM>NHT`wkB@6R4K+IvK> zzK&tG_o&EeZ%W1gGv|%Za`+zef9d~Ov8O#Wm9$`;4>O+KB5%R!N7c{CaJ=0`-}Dy} zIn7Bb7Yo+oYvyZ&$o2Rer{+U(q>AQF~eabI=*Eao31g}*VegwQGS@@H{Ygz@rZx;S! z@Mz62+nohoHve?{qh%I-y8V%@-Rr^cmqmXucy#U9Y?t`$v+(Z%@3buZx!}>YGt3vKK*mhePwjHv8hmTG%^@gCI)SoXUPxU3A1wwPBz1<>r3)XtS2>&Oc2Ms^p3jSSaWAW=3TFdaK z{eCU_zX}aXKk^Lyy&^v#w5G_@;y=vYR`Wnk@uLLifpG$C@W$W+d;M4JBw(G}nlFffU__ThQ`owRZg-_Q3v-!CY ze43x8pUc6|1)tt4NyY2@dx+}ad%W-m^-`%4kzWk;06v@iSHWwA+V(Hjr#7kV!~CXo zz~sLSK7D^T`8$v&nn$;bAH7fe6#d5kN9a?&Y23aQefmtL3FZaGQ*w~wq4N|KADlD; zy~*IydH5vMT?&Dr==(|&pijqv$)8*Wza{eHhd#Y`lZwyz_fTHxJ(pC{x3Jug7adWl zN}t}3Nrm1!N+l@zNf|eDzZSszJ)QC$)3E59>xka3O|ZDXE!hgMu;c!k{2Aa=TPFW2 zgh#o(Mf~XV$580gSeX3B!0U**NAziLNaYQ|bnH-B4!^X1CT0FPO#Bm(2kLWH4&A>_ z;azD|!XiiWPSMmCWs9ovmi|`qhWEHqF~`j({*}nh<0W$w+nMox;^zF)u}S4?!8)#Q z1k>6;r6$6p?;W;>?eux0fnbSJnRY?g)qvgUqG#TJY9f5S-s}5|gN09PB^7<#mI`0r zpWKdyn?i2#{{)|o6_fuL_%x?XK0Qy0j!To@unK-uj&Drvs z@$am{4?Wv8oBp#^@HdK|RgyP-JZ(WNw7>en$mczn0F+O64v(|mPt({_Nhf%u{SG>` ze$ab|src|7T&KuphbeC?ayq7|oGe(cU&GN5&EM|A*X#9U!Dl*F*mueU2K4dwsmOJ^dj)fr=yj6Z zL*0)bMXvWV>jdlLWj+k)d{xytf%h_UBvq^vv7^YtcsC%GgwU$SnciDWh2C3CC4u)q zS1!6gkt)`mu3qjpeHWrKUa-#VD#0{2snGkQshI0t0`Etrk`h`~94U$8P4P?LIjNZW z*Xw7{ksg}YetEzZz1NwFRfFU2BzjZP;Q&6H^Uz!uP5Ei!2ZyIqx(U|#>r;!{IZ5O# z41698Xu8$i{1Cn>Y{N1jmRp|#sKOp*=Zj*LTrnXS% z9N!Do)I{$RNemTM@6g>UKyhq;(u*YNwUSu>}g<1tWR)zkGD){<5Sm8iE#H-L>Qw2X!1wT~<{~d#Gj;k5Z(d4Fn zHLlJ;bq1<4P@RG53{+>JIs?@isLnuj2C6eqoq_5MRA-<%1JxO*&OmhrsxwfXf$9uY zXP`O*)fuSHKy?PHGfI_t8pgIH98K}-cbq1<4P@RG53{+>JIs?@isLnuj2C6eq zoq_5MRA-<%1JxO*&OmhrsxwfXf$9uYXP`O*)fuSHKy?PHGfI_t8;K&TrX&R1r z!;v0?dlYw%`0$@M+T1r7aBz>P%NO-{i77Y-AEIvj6T#E7ypcj7&gWrr^h&G|LBcl{SxDf?FiFD%eMjJvGX)cB$ zR6W9`X5>F=fI`Q=(FW+;knT>Rky-A^;2z-hpkV=nK9Kg19?={&s??a%2pLt%N2DN9 zI5;ppn&Ug)nPlC9C7~HTCQckzQamG4rp~`g#fZ~u`iPS5<>iyc4xdt9)@#zFiIWcT zdz4NtgS;$KK6c`SL+pOzBNHc;8@hw0mQ5NpZsIh9J!Hn@^0M&;lL9bU7fddjbW!P~ z31cUWKGe{KrQ@a?Qbe#Ny-UYUE*nxlY08LlQX|&Di4zP?@uVpgoVrjdA2+pR_{53j zlglTSMpSggwaHq(Sa9TwaU)A6mrog9GJNcWk!6!qG#!;^wpcM_?5YT7Y({z6Z+(!NkcOiG4tF3W#wZgjw~5iHjPwc%iTXTrlXYACn2^AwXpcEQqlSwCWNCz!eXk0Y5 zd`!=YBS>R&C5?%b#+QymCo1$vA$dq4gcLX-ZZmkjrjuss5O;9dE1u z%1TF4J5k#ijb0=iQaZKlkYtfa^b9ZQQ&xU%>6FQi&sY{=@ubobWy4EHTuFXcm^iO@G$E&tk9=l(U9`e^0Ja%6DCjLd?gIY;IeULI1Z`F%`ECSp}cHTWKtRaWn;um z;$+q0emzNH8!Hrzom^hhJrXIK;3Ozji7V4`hp;A27>%i41VZNN!?+hrm^^m$gtCz& z)f#(PW5C3bQ^u8*oQokSFFTb?GlvNf@4(XWWrya%eijd$GJbg3q>_F(9GwXjbvZ-F zdL`$UjvGh579GZgFIv7x5IamTxGdsuR~*L0AZhjZ;R5!thMC1vBIp2o_rvN%z7v)C zlBLa+d2pq3<|T*sML6Z%aEjl(pjPVZ-VNx#YcCX6i~>#PlYOt~>I zwD|Tc!=Ug&vdB$q?FAF2VKpu3frA9AExUiE);BPW$i9yfNR zqZB)&#Lh=doWkq>3P(ccRUF{c$2$3n6R&hQb_UeI8bTu~CP%`7m?>A5AlCA+9K~kg zPA+RcaL~Ek2cFxjh-{M;?2%)gu52U5$gz_nbYd%+bZ9|L9VVDuHoi162B)2p5zfj( zzIIfhL2Fm3vz(->(3n=r{n|tFQIpD?lw=$*8B2Eaegg;f>~(r4YGglg(XSEH_~^)C zST>=2(!|IN(pXf%no2MxkPK*s^haf_8Z2lbj>J#5p2%2x}YnIWa?JQ zUCx6qFG{64=w6bFd85_a5`aEB9iqE@n227F)IN?K`m-0hFL5>_H7 z>55xXSK7*0{r>`~6|GZl~P|53tK0gWHT1&yCkg zxZx${4*C6w+?XqrM8vL?owWV_m^+yh&Okq%6Svb=B!V`QHBxzq+Z(riarlk9GZy-Z z|NMT`7#KcZ#vKO9xDuWu`kAy6jiOfC4klb_7b3Dk;e_Q+dE$1|3R35jh%g3UDRd`_ zPvkF%T!HIOqN9FhlCQKUog0AfxD~Y$R?z1UM*J~55(oqX$Wq2i*)cncF2^wvDNn+c z$W6IocG?alX@n>(b|4T)qRFHuS~HNzO}n5DB9KISqUZ_|?IbFkwqrT5 z97rjsK-fo3CXoxM_$kN`MdDAnqcvb34Er-Q)V^Rk7tJB~+>{m1NgtQaOSs~&Nn1#G z(nbHpFy-QK97lfQ9t@F{&QI9snyDI557L>R^2Bm71;MD>pP1oKSh3^$QljV<`j&A6 zWA>o61f?qpPvN+Qgjh)%?(8tS4rwT6g`*ZOX<*Q;U^tFUgd#C3f>!NtFcbne4x12- zT_}dIQg+ggA|px489X8DP121rcE-xo@h9vsg2wa@Ax+^>67x2J4kVqLL?;*}!HIj4 zxzS@YR??j~HFHeDO4W6tkpjzNjU?Rf2A3SCXvX-}daRFJF;ZjZ{FG z@gTMCOujQA9S(6R#uyBP{z#f1eEB>cXi4vkiOPe~-x8b_yi0K8c;%Gef$5#LQNiu- za9zSdd4T&hz~nD2_*cOpd9ZymJn)qC)AI1x3xG-Ac_|FYW|8~oB{3*DcyK)F2LxXN zO!^_gw}?D0_;bNQzhkZ%;=!xXx6^_bF;*J8@GxES7m)`b_Y)kahv}ls5gcs6_<3N8 zCqfT#M>zox^Cg@TJR8{Q4?Q#&<$b}4Qy5>GFYU>Lop%E}`RK~>jy}fD3!=bUB-np8 z%hQ4bf`fQ~GTHm&0myM+YCk3T6TyM*Y+nNpa3*=^T*k8mM+9#XoS}yLyTE;!Yf@lwID^BC_G9O%!u8y@IR_K70K3xO%#*Z{^Ukw*tIZiELxlRPf?8epI3oBYJcyR$QNdFM2QOm# zZv;mK55sZdv?q9l;K(Jc|Dxc)rHuCr4ht^BaYXhB!S`q!X8pGXXUZ5KhvSO$W1|?4 z6zm_(I3+kDxE3DlPWquMSUz2FT<|8rkqIpSRLieo+y}=k*=GdL2Bv%mr?EUEIB*T) z7C5d+o}S4#D%ih}aXlQTBu@x_0GRwo7qR>&k*n(&ck#1+M({jf()TT9`HLd=3l218 z{ea+S1&0Oi7aUr`_8oEDQ#`&K7_Su^5}b#1z>zOy`6R(n!M_7jJh2$dd*H$4gyT0c zUMD!XjBx<#2>A;Oo-WvTGs|}iR(CPJuqEq91?RPr_5@!7O#b|Lv;LQYLxNitvOIGy z%f|@zt!DhV;MDz$U0AoA{yf0ANO0sq#%s0wA;#YUQ~Pnj#jV*sDfl5^lBWg#E%M;Q zY=3zhiT@GCw+jxhWxQQ*N2Oej6(J9jY z6O8W_oP3ILT5$Mz#>eBO7}THG3ydScl&^%~^@5Xve-r(b;By14pMHt$9}*nc$~Xf| z{zHNXc3}O8;QN3{?%&4xwN91xUt`<@nB?kp#*YXNzR9>@N0!G07Yh!(&GMTV+wp%h zenaaE&gmrar&!(v*lF(_#>)iz1wSn~@E*&55&OsojJux3_9?;R1SdaY`D23PA2a?# zu=!65y6c+OZ<0l1&eqo$@hUov7@pX*tsNnAm-2Y70*Yfp({lBt(%d-z^>x&0OO5}?f74e8=lQ_jb{Q={*r&Q{AH1+1-I_T`syIdrvj6{U*R8==LH7^ zH#vvpA)Dpb2#(MT%u${c92NWBaVe zri^C^PM^g13Bk$cjQ^|UEf{z0&Gzw@j5h#N=o!H$^L@BDRmvi!4!Y6s%5T>>j}K!0C+p2@Z8;{3@_B-vpmF zka1k_dSHq_+J*H$6?ym!#^(=`_RnIxQgEOv<9`cQXEU}!tnU{*NN`;6cEN#etl#f^ z)(@Y<_*!6!*WaD-8-i1U+YDxTq9@BI15^C5zKnkooD@802=V2lnBorzzV9N&5y6v(vVL0d3&5nW2C~177mL3^ zjBf;n+>Q!va0%;c{2(y(KOyqtFBSjVUa&vJ{_=*gJS2Fy;I!Zu1P9J%{gW=^_WXkx z4-*_2!Z;>4TFm%aV2Vdw$hgMkjFW;d5S+e<<+lP;|05SOeoJtWUa*Q{m9RW>8RH8C z$4eQ1AUHCD@xZX;XC&j-1*gjx9~2xI#kg;&_!oS$U^SZMp9)S29z2}&gJW2pJA!dY z@EFE+cr43*Ht^Jutgq!(8RsV^`ZItjA4$Q-jB>D@5gcKxG=5ib;tFo>^wDe|xsvfX z!GQ^k_i8+u@q{rFk6_nW#-V8}j|&da3j$G^UBU9i)r=E@GuJRKx{~G5YZ-4B9E&m@ zFplMF4&#>uM+DzBUhD;{35;Wc#|Tac{y=a_@c9#2KQov8zb-g5k8#Zi%Y*-7JW6n8 z0pr^Rt3{04T*dl<>llv%ruiKfyiIUgFz%i?_SRN4kuHfK}EblT^=9l36ft~p!_}FQT12OR@I4<}d!I7I; ze#Lb5m%5elD}v*#W;9BThNPZ zLY4;}XMdjx4hi-xV*e4r;{;~}Zv%Gb>l1A6zmD}&g2xI@3*HD!`k5zL|G4W}-?y3Z zc)FSC937|Ro{Fn%AH+DpF5xWi41quUtYAUN_G<8K8A zUl;i@)(;6j{bt4y!LtQN1#c4^dxP!IzD3#>yhX6@O_uv^WqCmGRf0oru{A-K(L zte+A*Rj@zB`UeHaw=?d$ob~-5FuqA}Q1Hisqk>zkVEwe^s1CyWouAI;+?|^cTy| z6C63n_y)lN%ckvwN(s)`jO)eOKH+9OLU1sL@kYTBFXN2hSS`k<+#~k28BY=%I)?ER zf>l1_KLp3?Fz$9Q+Xw41o+~&l_(j3V<5^zgKGx4PV%$$~s43$I1^em6(I|fkju$cx zu9kRPGoB+jaw_9j1qV-KT>pMqKe{mP4eT86JsCeIa@C7*;|Ex-`Y@ggOzVkX@Z*A0 z^H}bEkmVV{X9|wfi&If<7aX{W@h-t3!G&wMJ^kL&iGpJye?o9V@Lz&cf_py1_8Gx9 z2-fds{y=bG8Moi`VVU287XUl!t>7<3uHVOf>LV=I@7o>)?BqkIw68(Ewe*EK%LMNPcjY(9<-TpQgGX+80+_Xj~1-o1Ad?2sJ!?4#iv<6C3yccV*dcQ z7kF0u3m*R*B-cL+`h-YeMm zFw6VA#QK3p7(Xc3x0Z2@tt<}?0cN$2L;EUV0`YItRL9Sc%k6vQ;gpboP3&b{#)Yz8OB2dr?)U(F4+GZ z<4**u=NX^)Hrof2j7JJi3w}tj|3#L6EI5&3T9q}*tUxE`qvix(wsh=4)ewXz_|6zQg;JD!11SbW5AUL>>^&7s& z_Hn@%3eE_=O>p49tpB=}|H`;vyV(E6c$DDKe#V;w`+jF^zt8$f!6CuXKUjXZ;NYK( z_X%j~!t7BEdm=fj!Cxg4N%Qn|~#4 zhjFRkP+i9B1jp(#{zh=J9pk1Sv3=k)#+M0B3yup;oWt@TwEnq_dwtCI3Bk7u4)kRC zk6JGHoKILk*q`My1;-~beo3%z3gg_Jtna&)ac{v%!3zXOX0iMY!KvAdo9try@La}a zf_=9!P6`ePuKB67w}RzGf>SFQFVph78T&pH|MxKt3QnwHe4Sw5dd9yAj(x(oW18(F zpD~^*IQkXiM+FCJx}EX=R&e|n#$9%^eX2R*3Ba`8g<3IwM{q>2`kdvlLYAK*INh4@ zLctlqIbX1TvIEOY1*bbPeo1ibbjCje(|#!2nQ_xE8Hc(sz75#f|D4IV#a9yVS&T0d z92R^du(QAF%JR2G9_+^0{WZ(|JsA%GCjY7z<7YKKk8$^JSe_Zcc$#1}nDJ_0YA-T` z@h*`kiy2?EhvmMD7;h3B6kO+9mh1PY2{b9!c5gZxG*z-O6O9+k$PL{E};a--9M=`z&nEIO#eBuv`lY(aeQ~dGKtp9{y z-!#U)AEiCPw*WiiCAi*CEKdtQQE+HF+lPUje9vI~j9~n!qBGwMGHf3be6!&A9G3qM zO!lF!FmC)Cx0m^jaS1T>FJ0f`jK?~`k%o-_6r60wxc`2M zzdhr-fhqo=;B6ug32yc~>t_Vd0w(=ffbE}TY$pWQ{e$Hij~5*7!1`+hCk5{moEGf+ zlkL^1tlvX$Q1C3lNx^Fc`#Q4zmx9BB3lB&XM&@GPdv!>=`&e>xZq5X@fyMYa~c04 z*w>43H)T2F6&AceaHKEG-_i1ZjB8q~?>~?68G;jnrwR5IvHWqt5yATeCkL>6pe^kW zWc-j|-yp_m!9l_0F4hkTepzs8FzdH>vpjtv;}wEaLm4X%%afNdo}lqC#y<%TmoUCO zhxPqo#wo#R!3DXNb9|*nuzaFme;MO7g2SU3e=9gNk#TD;+egY74-*`m!g#6R?_~Khk#D(+@pi$--_7{geD>E<@Fjw; z5`357jNs>h$-i$E+rKRG|Btu1OXvj#3DVg#ehX{Gw&Bg-EGoKAWb(- zO3Tfax#pZJ*>q>`&Av1V-Xd11=Tr?BrAJYMpj1T-$fa7qAYQ8SYxL*Was&+(un1@l z2R(@Vc;0u6?^}DUvDVs`q$!@~oRw#0t#^Opony=~$9;U``$EAF-DdB1T<~sShCg}I zhTkjr?At7Up@cvEE{nfc@Mi?SPr}cY+8-GVI?`)wQklE>Klg@X43^LdU7J|KA8T{ir@guhSlNx@(L9xMNxgg++u zUqyaG@DmO5_LLXYrc^ze4aQ1Yi0)R{kxIv-ev(W${Y|6ny zk(K|L;79z4#eXU|5&YP1wBh#%zESW#!GA3H9>L)gZTK^PVehvp_~QT9;yVRDLGZr` zo)!FEmstL*1iwP?dj75pSLwkCZaw)cCg;1hzMDfpD&SnyfF-ww?5T>RfG z|N8~sDEO4%LNR>3C)FWzhApBMb2f{X2z|0%)WCwSuT zYB*l zX8AkzNh^P&;FE&yknoFtZ{`0W__W}MeT(JK+-K#F2Ilkps^EQs?-Kkv!NsR+_zw&J ztl%>u-}Vny{*+7Y{k~IhBlv{iTY#DV(}Mqt$hUpk^4}`>nS%dG@NvQ0o^J2|Ho}|BT?D6TI!SR{mxQ9}51Y;3xj0l|TJk?fs7l-UZD2ofJGH__W{~Bz$|; z@_$zFoZ!Ee@W%vyQtDw&-I>EKz-xqv`;Li&F ztl-NYV(%YKS^l!%!-9WJ@OuP5@ewxsgPvu>KU46Pz>mbE-SQYKe}Ui=g69OkL+}p@ z{*3EuWt%YT#LLhw5U-zfMG1s@drVZrYa{29R?5&Z9hAMrSQ|HlM2y%!69s^CO$ zA^4!+=L$Y9_$7khEO&p-!6FPH`wsI1+NJ12tF=&N$`6F|A^pi7hC@81Sf)j zS@6|@?-IOE@c$!tzu>f^QLgQDmR*cEOJq{0_mF3Z8s|P0x1-ex~3(f_Dnu zFL*}qlHeB$zD4l&3I1upw+X&O@COC|w%~gNe^BtH-)PhGH-dKyrrtX1%c9_~jxGK^ z!H*YwtKg>#zFqKl2>ycLYXo2NL>pg6@U-BU3EnOEhXvm#_@@LP6#N#!uNVAVf=>$m z6Tu%B{87OdU1H<^C&AkVKPa)!w^Q(A1@9O9RKatC3&C#{{9M6z3jQ9!7yTz2-^&C) zTktJ{j|hI9;1hy>MeyB%-z)f{C)xX*7Q9{X-w7@R|BK+;1b=O6pYMZ$FA;oJ@UsMO zf3m&*WrBAK-YfVP!9Bqr6ns>0Gimv^3I4p`HwX^C$;#g@c)#G^7kr!Gdjy{n{As~o z68vSsmp;Yb@6nlkzN-aq7d$687kr!GU4q{#_(g(0BlwWuOTO9O|Cr#b1;0k{ir`-o ze7oQ~1>Y(7j|G20@J9r1+ivgwkAg21{Gi-EPb2tof=>&6n&2-8E(8}(wfB3D;2FU$ z7W@vu^MdaYd`$4Rr&<1M1Ya%q7X{xa_}zjJ3jQO(w+jA<;MWWOC&BL!{Gh@<--iT0 zR`5mNV&i|R;Az3R;6=f^1ixAEiv<6k;6s8xBlrgeKl4(1|5poM5&VmS-y`@=&?DDCszBKR?a?-aaU@EO6G;K^^b_unP>nSx&|__*K&!FLLN zh2Ref{wcv{1>Yff+cWI_?-Cpc{!_s_1%FKNjeY_B+XR1H z@U-B^J=4a&S8yV@CwQmeqk{JfzD@9=;5P`qP4L?V-y!(-1^=Gldjy{m{As~o68vSs z7k`^g-=n|7KHs$9?Sgj;&IK<@J_)z*Tw$+ZoxYRPdv-s??%Cw3Z4`E zdBMk29@y}&6?~`QI|P47@OuQG6?|IoLqp5|xZp{_Ul6=c@FTv{ruT?oo;zduUoSWj z{0_la3;sR9FBbd}!Ha^=3cf|~<06}$+XV-L-zs>g;8TKMEcio$Zxei<;FE&CB=|#u zw|$pQ|HZM5Z@b`U3N8c}f_DqvEqK4m6U$!_yif40f)@q9UhwULPYT|dTK?||zESW! z$`||@1L`tU6le_Zep!Iw^3`JIC21mE)`HvCD!$8WXxe+d49;Pf)fzwyVc{D|O1!FLJ1 zRq&SupAdZ6<(7Z?$1VRB!S@ONL&10dgq1&RhYf$9;A;d={G^q?O7O*k|3ATj;3w>~ z{Hq1OMDX-+%YTF5BZBW0y#G~J{>@id{^YAIZUqN|-y-;k;7TlH-fqKx-PJbyt%9E?_=Mos3O*_LuLR#M z_=&qL|Bj!r_j`%p`vkv1@Wjtr`NsrbEO`5KEI$x@K=9Rqe?{>0&sqLw1)mihJlFDX z|9LB47JR4RcL}~*@V^Q^Bly|7E&mIGe^7An275oAV`crgRq$6`WAO>WI|bh(_?3bu zPFVh*2o3~4YLDe#EqJfsTLr&P@M*z+E%=P!CtoY+6kj7X^P(@U4Q2j+LJf{NsY} z6nwAX(}KhOHvD~pZxK9k%BJsciN6l}O@g0VSsVyHM*K*;FTwvPc;fw*|AMZSpAh^r zg6|M~ui%q{uc&SKI|aW<@F~F$YOMTj!7mVepWt^2{*>S+w8+m#;e4Rr?-2ao1vi4f zAov4=Ct9?A$%OhVggN};dm6IPl+1%dP*CSu? zIKC?7uRZwh%p{S;E}!-VNAYdw@%+W7*buZoNWNmm$M+ZT z2R{5_{H~nwpZI1Yo}j%#@)a{Y`6u`TAAXVV%E_O8su3IehU6<|coY9uSvfKJuAF?e ze@J_XCjH;C7M}e57WU)U@Vp=SYA=!Y6UkRh`Kaf2<>agWCG|1MSFHRKUi_|{eAU;a z{wDc~l|Sk6RZjgal`#nQw_MEmm5VvQa`A(}Y51Rf?wTEJf4=6WgZL@HquQV2@3%Lg zJu;Ji!Mru|Z_8-VuO$X7g$ z@5;$v6h7^{k*`?!C%@X>pLmZaCtvNq(HaekWB7@)yt8 z0JP6YzGBKp@m)FjXM|6Cj^ryI$9LuA&wR|rPy3JLD^|W=eqA~FY9EsJBFR^*{8Ja% z`xEc++sb+D($6`ubAo9&GSoqJb!1N-;007u-Evf969-VK9A@1$XCqx7{AYV<>c#mKA!I* zU-3A;D<}VCj7?yCcpi{^#mZka(zW!va`N@OAkPnyuUPq$9^aLdKb_e4dEStG#pC#{ z+&sVVc|OrRzhLE`;tzcIwFm$0cjPAhnT?<48BO{HEB_eD_$Xh`I}($x=N)@=r;6dA^c-#pC#{oP0fh$@7@xD^|W={#-fv zdR~*~H_2D5eE<1X&htf+ct-v3e9@!=eDi#fi+R4t#XMi+VxBK@G0zvdnCFXJ%=1Mq z=J_HQ^L&wudA`WSJYVEuo-cAS&lkCv=Zjp-^F=P^`63tde36TJzR1NqU*uw*FLE)@ z7rB_{i(Jg}MK0$4vx~X^>|*XeyO{gWF6RETi@E>o;s;F(u6KRTTi?3)ror{D40zOf zm)g(1>Iz%l6!ZS9FaCVrm9xC6z3m?mzGCJ7C4b<d;_*9{2FOfJf!0+Bc-VL(~48=AG^RnV-il zGO(W?8lIu}JZcY-_7TZfOu6Cn2R{5_e!6na3cKJ7b_ubAOSrQem4ul65l z50ZSv%0G)g@k7k`T{-z`FOv2n$ydyvqvChvagVP1@rmU$OEhJ-#b9&;L<|oS2~fPV@YNm4C`eo#%JtqlzORQYGWVEMFfO1@&{`~9gaXZ&ja zl=e``SFHRKOdLMMOus89U+tyRek%Ej8J_9)^WT+|ul7}GZ6*D~3A9(ra%E?#zwr>}{V&(hw&y|y}_HfS%UvZ!B#qY|=KPmQer`{;f zFIf4wt@#k|al#Xmul9DA-e~!XDd+Q_#KjLW`L3LNwa@#mH(I`8ipW3VrQem4ul9Vu zD160zKJLK}G2?gTldtxOX`k4X|0miEV|eD@e!D!-=WBS%$yfWuv}a7dV&$K{2m$dSX8f+4 ze6@E>`^V%fW_ZSb%qFMLcje@(ePr58CSS4g{rwA9PX0-;r%e0GD^t*EM)m}60H#2_4%HQ_Y$OL?d_jq#hXT-kq<9^Zd6)S(y>pxvN`KNZ; z1YRk8#mb*%lTCH!1fgX8f*v3i!D2X}_9$#SA}+@5;$P zDSXafqaM}+iU$OH2 z@tZ3*>HjI4e%c#1=@+d0MJw)?f3-(WIr)=fkDT_&$ycm=|M^`x`P0IuJ#+FEkK?;? z^7jj$_Rq;zJdW?m$v-B1+Dj*2vGTWh@6VN!ulCewU!8o#%0KS$T{-z`f1UQ&$ycm= zKYmwEzS?W2{dV#dkK?;?^3}dO?Y)z)cpTrAldtyRX&;_^#mYbFJ-;g_U+u@!o;>-A zmG3{lD<@y=&C~uo`HK5|{=kP{dptS$YM-9=>d9Bk@N7S)z4GtM$ya;!v~N$oV&$K} zJ@_GJ{H~mQwSP~0_~!Y4-bSeW{RqO3@-;lMiC@Cge!hv{VJTkeDyy- ze+1+!rkv$3z{L+S<9FrctG@#JFCbqr!;`;=iyvb0T{-#c-+=xOO!~#&f$~p~jF0j) zJTdv|4}ty>$X84`c=d{|)r-V4h#F^7oUBkMcD~4dw4A86V|qcw+L^{|5bWkgu3>rhk$@@ZlHZcje@(zmBUu zVEKv}p8PYo_))$qH}Q-Aj<*P3{e39kuRpGweDw!H{~%1iV&(hg&y|y}{zK?bgnY%y zKW>xXProZS@r!>E`X4dz3s(M6{EpnjFZkPkU*dP<%)gU<{EnP_^=I;C;Vaho{rBg} z$yfg;kNN`}zhdR@_u_ZubHvRPfLcaQcQNCY(T)9cV@aZqcq+hV|{r9K- zWGE+J{mIb34Ec(c@0TA}PQLn|p+6e(6)WG*e^+ke7k@SMUt{7Ito&nM{+)E>~ zzV`gCoP70PM1Mx)D^|WAzbhwS{T=CA9ws)k*}EHP5Qm{b5~Bj`oE$-EbQ9XR#mHBz{AvEc zhhL1}m6Naj$LNoYe8mjU^q=AneE3DaD>w0rzcTtSGw};n{z=1L4d{<7s`g5ayH}VxL|AhDauAF@J|3-gs;g( zCjH`Hj{fFM`UNZB&p-7?M>+ZGkB^$9?!oP71yNB@1~D`t4|r@iNQ<>ae>Kl=M4U$OFoC*UUd5Ho&PPQLmB zq<=v26*D~JU-b5`T{-#cKalF7Ky-znCW-rd#(o}7I3-$;Ls&nSje~&Bq=9f{YlclB>9TR@m)Fj z>VJ~{D9Kl>{Qdla55M+!a`M$*CH+^DubAPPf5*N2bLHf#e@ptiBww-ePd*km!H1af zyK?f?A13`{lCPNI8UG|Meu&9;<>agXO#0I#Uopdze}+Hs;TQR?+{7>bHtB!U#4lL+ zr@Z>R&5@I@{yFKdlYGU>_uEfbZsHezp7if&;uoy^nFpKX_tU@4k(0mwO*Vn_2TH!; zaeP-!zWNKL|4{N3D}TQizbiNC7yqL4H)_%^Soz1k%}c){Ctv-M(myHrij{xH%YRo+ zzWOhX&se@<@L!V{CP{!!m{#>TIha#9yB!hiS> zlkdvOKS8Gy_VLKPnB^;0{xQG)ZnyDKPQLnUofp1h+xMV`RZTyn?7#&ij{wwKk(rf z)9=d3pA>(*^v}!q6*D~FzrX(C%1!*@ulK2+koW~F-+%uzj+}h;_j`lz6)S&{Kk(rf z)9=d3KP~=&e^U608J_9)`L3LN^(XwN!dI;PGY`g1@F8aWuAF@JKYY3^Ag#mb-I4}AEw$CHz<{+a2onS8|z&;0Y- zFIP^!`g5j#XYv&*KfpcsA!hupoP72FOn=biD`t4cKg}Qb@QZv`PQLn!rvGU26*D~f zvc1;lyK?e_7ugp?f79eER=!{VT)9cV@ado0q+f8K&mZ{k%cS3tlRqQ=tLe|0e8miJ z($63G@QZv`PQLoPrvGd574s+g+xPcje@(KW+NgCSS4g zXKeQN<9FrctN(5K<0fCR@~4pweu$ZVS5ChA>!$y1@)a}usPwyX^3}gL{e6?KSotS# zAAX1#zbhwS{ejazIQfbhp7GD%;)j@gS5ChA52rtIlYa3Zu6)1zX?V)XSAXO5KW@_R z@y{R}KMc?KHN5iGKRNxCldqU^rhoBK_zxdq@?AOOSAXX8Z%)2qhA007E`Er~cje@t zbo`;4=NGK}Ns{qVzJ@0z|Fnds|8(*dQ*Pcr$@ma6epgPu`d6pFb@CN6ym@|-@gXMP zm6Naj*y*30e8mh;{v?0k!!Pn(Ir)p?zn%Wv$ydzqCjY$gn=2<@{k_xwJNb&0KaKnF zL(KSHIr-`zp8n!Z`j1`I56}4h{zJp_e&nk^dHR`|sbCoA@RCbA>;-0pFFAA4vFL6~5we@w;;Jr-lFU z&rAM$@t^hTpN8lCP5eJ=pMO&Lfnbf_e}Ar={E63F{w=~+to&_W`E}*wZ~J-6fA~L3 z{tH(AG=Jd3uRTt9V)AF+VEKE6ubA@fxF&J&LrlIaCx21+KPY^~3_ptR%E>=2{2vp( zV&zZcKKu|fepgQZY2p8s@D(fn49WN?-<6Yp@`Qca5e*Ya-@ zzT!ULn}4`+@`L*<|0BXzto&2n`*-Cg{(rFiOa7-#|5?GxKl}8-^t*EM&pgg1up@lM z%0JE@`0#6w6P}p-#m8IzuL)l<<=b)1d;|W&hnRdXJcmcJl;#mb-d-k&Qc zfByl?zeD(nm4EgjgXwqW3u`F{K5%E_Nz zwfq+gU$OF!dC%|4$v<`2@_$13ij{xLK7K#_uAKa1M=bwS!dEYzV)~zUG5t@wnEt0-O#jm^rvGUd)Bm)K>95Dd^w;BJ`s;Bq{q?w*{(4+Y ze?2ayzaAIUUyqA#@i6`MxN`dIaWVb%xS0NWTugsGE~fvRr$INv^?yUG{%`0X#SKsY zC@!Xd6c^J!ii_zVmJ0{pT8`0vRc z4n4fv!!PvktcP#*@DF?VxQBnu!*_f5UJqlsK9GJsi2FQW2jJo-c^JiYK>nQ`M)4ew zztqFu@8Q>Y_zn-><>AvF{yPtU-op>U3&fxL@9PO3ewK%KdAQ@@qaMD^!zVmUwRSiD zzwq$KJp5S?f62q&fPDe?eoy!CWgdQ>hxdDU$-_V7;n#ThjUIlxhkwVzr#<{P9{wi} z|GS635pBEsype~m_3%Ltzud#G^ziK-zQe9=c_AaqQt89)6C8uk&!_ z;g@;%dp%6Im~Q-cc=!Vz{)mU~_3(f9@V|Qa!I&4h@qL|#pXlLl_V6=29DDfL9=_be z&++h#hbs@i%)_tr@asMN4iEpKhyTXIpY!n7K<~@VpG!QPd-z%pztqFu@8KWy@M}E$ z1`of*!@us~ofvyuf$K_KSK+!E*DhSo!S!5RyK!BEYY(n#an0a*9lx@f5CMdt{=zs z6S#g7*Ku60!u4ugufav1WIv7Tb+~TF^&>`+5!Wx_dJC>QaQ!l_U%~aOxZaBE*KqwhuHV3Q64%>sy&czY;(73`W{?Ah>N(1iSK8&yWy^b4mS*PGJBe-hz z=63#yBXzsDGP^K;O$AZAtU}zbFS=oN<>1bRx-VK-I#kUeG5r84nL+AJ#Js%$R~%8< zb?x%X!jgFaO82%a*LGjp*8Sl4!`jm`#0}LFQm6DAmS$Jl>*trM+2yJ`XK!zCUlK8U%OI`Zo5@|lcZY0Bg007$6p7+U$txZ-j!;l?OZXxylS(*|EKHPxfU6~+wPiQX_pq4 zTKsQ=Bi?a;-?fvH-LuOpoy!&%+j*1i21*&+y)b_Og_&O_q=nbdFV7yBZyWwuMb|7e zt8;B<2VUMv8!@o_1<~)R4z+7VWY6lMZoAakHQ%(ROjt>0M>RJ`nn2L_qMg57*Dksc z+2aL3p=0oUtBXho_`C2<*Zv?+WThYvO0{b7wUc}0Ty?YXUGOulZ*Zj;JiU?EP*|p4uX4ceCycqszXNyc?^(DBn znp3!>bI7H=rZ z>(E$?N+Q~f)k99w@LsRFZtZq_%}i;h`|@^)>Fcz%&FC~o=bFxecBM0W2#M?*M3d8^ z^!R_DN68)j>&=I%rdjGN&&@V{sl89Vu*zn$vod#c2le2{tb*>s!pbr-esQ8xbX zYE%E5z-uDb*$P!`1nY3cg!YzNB%rs9MrQl2J=gBMB1k-N=#Q+uA?RqWY~x zW&g&P<^OGUe#BoZG+twFY(yh&ZvMWEf?$Rc>;;iC9Vc(_C!58~=-->p(b;wmZw6Un zN_7Wi1i$B)t%upiPMAWzyt3NubW!(B`R**OqOsRj#G?LfJC4-Wl+M9wzL_)37w$<7 zEnlh*cW!R$Fzn$OmJfCgEG--k^MgU$6m45pVV;z|ur01YH5lTQ*Hwp~-`3lA@7um_ z`;P6GZNF;Y_Apy&(YM~*c6tj-oyFDVgScB6)@c@Z>!6OSG)^LWw=(RI%Gwvr&Ca(| zQ@a=HiesMZ(A;29G0SFsY5QsvY_FEhSB+XRHHF+*nwmoWn_XG9sKO9tYKo!xi|I(_ z(efbbB(I9PiKDQMnmlh4iMk(YiCTD2)0yX48Mj$e#bw^jqOJ{`FxI$tXeBj+ozlFH z4lr(CXIU6TS)TT)A`g4H%UE1lit`4QtTQ{`S!7SZ$F+|D_SBRak(f-&4|c;ij_at` zmT4PytK^EQxw)GUO@%?2C1IH$U5KU3iy%qOtFVbe6iGA`g?Y16Qz$+d-b_vHHQy3X z71q5tshc8-o3tBLHo<9ZUd2$_hO*wIduQ8SJ;3`hQ&?D{yo&3h3gbMj+pH(|94ugY zT`gAi?8?y&nh!H*12a#fIPGPN>G&fz$>Zn`RNm}GZH!izLGcp}sLC=CT z>Lp3k4eC5AGAZbJWb$MCbysdjF1jU9^0wETotmmyL#L*8*bJVUnr{yyx6wsnbb`U^ zoXPTd8Gq|^iC(7l4!V;ax!XY*foz;0XQuR%3g9kwAOq;l_$~3B)sPOJ` zXeC3tgC2DGDA-L> zBzYZ_d6QP%FqMj&7PbvxOFC5IoxF2OwyDH?HBylgGj5+&P1qD^6s1L)r;SwP^SON( z*oLA$STTaU4U?+Q;-)F`pejTA+OsYOV_A~5^9RrZhUtM8d4-A6;_4Fm&Nhsj)(lXW zSMhp|_%J_MWi@IL%6ynLWl~6?%y;WZqL~$*aD3E;&pP=J2mCsx7*}RmbGD(S9Mhc^7vUgs)7urYji#F zTlp3hFRt?>FXOUqD{18i@9*a1J{=Oc<;tmt{{2yW$}Eh^5WR1l2O}#;X3HU}3u^^R zqHS5?G>wZYN0#PAuL=UKTV_!wvuiu@g>q7)y|6(uScSbh3ENge+d3nStiHg#w(lI1 zLm0!)RYzG^q$jMKx=Gq@QAc@*K~Jc?cv{9m8U{g_qjyTP^n`wL8KWU2Ip_sp8ni*%je@LbYn$XWvDMr>CQGmhJ}$e55*xQw6a{%yb%P*n zYH7zcpAw7~F&oghN&3oNzQ=l)7gQ9HP8fCqZ42hC7 zDW-MT5uph?O$8W_c5h!@YV9!l+#atvd#a;PG+ilERM;p#G0A)RW`)p`(X&Y7gdU%f*L)d6|l+5(orWggUhi0unSuJ}FN=sL3)wq{3P%S!(-J6=;)YRoH z&2AxRW)EQgiDq=M!Q7sS%~s7%L>R~2B#ujr(aNfa0jgBD(y4A6-uKGcBW-i->dNBk zis?;aOt8%A55_|)3ydU5)2xc4G7V9yf`Lq5SX?f87;|wllwCQ0?R?!P0oNEh3;4Nx zHSc0%i2rV0;iBu*^1<0dz#J~(Kjv6a#9244+qw?xrYB>}ejgKt!#&sH(S_LbEmKow z8QKhIIbjijt|(!~HFI=rtrU$s-xbsM|AR65OOs zSz(NsrL{J2{gfr+Q)aqks2L&w?We_idM@q@0_y9=!5|>9_#m<=MVhG$h)bNstT(%ExILo3aM-|DOsCN zpabglP+s!9tPwuTbP8ZX+BsvGwns4D#_EAAV4*IwJ&e4|vdOza(yeP5B8Q*0RvDHJl16fEAR-AIVT#mm zFor56ZWRPc*27g+_=JtLcIR}f2($Pok0U%e208htM@X`D^4dP$=CZmfV?2D22PIZ& z!d%9S1Ifk=*3IgE<^?%cO`@{I>PP}eOIW-h#l$^K@FL>c96j7o{|NfV4&UOT_w9FKDAEjL=a;qsl{K7kNgPa??p} z=5dhKSOthsf48718n!>OcU%(PHa;yU4$RlZb+NHBF6eB5}P9>-3qhYG(o!+O9%QDO;S> zh8RF3WrT@2dYTg3N7w@BCl=Eqe`$Mj0|}j4&m5J>_1f5_7vxyOO)?Cc!l-HD4HLr{ zvqRO=P3=-Pa}@d(^I^>4z~PSFXj(=g54%~?P1-o=Ruv|pIs)4aHLCI!3;S);!@Q`> zbzQ-oc8|_mr%Db@l<>H+TF~@*C02veZrjCZrghqi(RqLWt+nJ4R#1C6Dh8K3OKFVr zfhCYluH|5=GBw4bFg3Lk|FcCh<8HQvMOK@YkF3qg7O&HkpmJczb}$we1t;&!$Zl%N zgfYwLW?9&7|8Sk1%UEWMNOquh>5#PS2V?<2ht=%{QHt&WTMhn#+lW0HTaZy**wUi5 z@V2;7T4zz&)@3hEi=wHdb6Bep!$WKL0iJJn%Iv)tk5X}@ZOjPX{6b~W)FY}KOAuI@ z!Q?&&i>UUaD$}9LXUiEj-&Q$R|YZRfP z!jEpbvtqPE8t7Ib&k`(uhDn`c!X7v1ylru_ujhOx)K$@7xdEMeg}GdWok6=jhutGq zp)kiHe2AS*tX~eck{FE*y(zzRtvl0pl$o|Z)sDgvds;EpgANO7)06#pM;0 z)!BuS^X9r&^{TvAMimx!u#4tqJeGGJfI034Z^M)|Gb&2Wyg8R?bBJBy!<{ZC*k%~V zidP}4vb>FI^t3JZVeR|e!W}TkPZMl7r*Vb_Po0-|dz#)dY2GbDbWmMv;-uZGtILi_ zjG<7Pb4C@EDfSDf!*L$_@LePg>n`24NpR0ttMt|vF}V?qt*j(Ug1DQ7y7p*BA`irZ z;qX>Yf5{Q=5QC(k7k9C^U4$uG9~S~Gngo;ZCJ2M3(eYdsj7;g^h+=f2oc?&7vCNp=p@Hp9-Mz6pcKzKO zY-r@j-aO^%QIttx8r&IGs<-ijhPTCTPMzkMRF=8a))SI+9u+eR<1CLclERK|QWUZ!pp{@m^xYzFiV**` zSZHi3eL3sj3N7e}MZ0m`{r256SdhiF18cHlnr!LdOH9YhUeGHOq`sTyn|d&&W_ZoA zAC=i$pPK5c$V^RL)>Mns;=vG&3&l{pG9$bJB?k`sY}v;We}K)!HbV}zEi{E}%RVlL z3Oi!mT=e@GhdaD_dzIW3J7O6ckuWXFAPX=hOYK;q(7P6T(=g|XA#}#tBWMqr&P^?A zeu9Ek)qA`D0T`J>y0_fn`fpw?kThrX}tx8WlO?ateDC%9Ny z&amc^Vhtxr(2F{)DfhL)#7q^?^mUf11}YYKKhR;Sp~esfm@r~HV53LMt?G`A-%N+F z$8Z2E_ePD4C16)`WSz3-Z-is*sqRAI06Y0;UUVBGw(F)NHub9cqo`){W*<7|D5o=P zwrit03$ZBQcI$4O>zaJ#YI@b}+#EL;pipr5npLY>Kc<5CiNxAg#1)nv#=ZDS>S4s;DYCsy)`H3#x=+3gC|e*Vut!8+H9Y8Cr005M*fX zYb>lK1I>;bbzx&}S5oRMv#G;&AG8g7m~1!yI*VOwuNEn4W*W9owDB^0?LMe8EEg?GZ_-8>S70=Xb;Ysa zqqH&g-%jLBv5GoY6&bg|0%U>JgSM4D|jNTVyKf1h3n#k~w_R!NlxL9TU0nx}Q{GyLYU3xU0|G{$VRN(Flb-EnE{-}=&*0$s%~BvJ##`~LDeUUCG!ir`DBX`VxF2Z znx|IJZpXpZ`I|;m?5${`L%9IjTTRr%>OaPQ?zE0i8p^xIsv}gt)^asYnr?{QKg@EX zEGpcpm#^C6OXVWZ_i-Yanyo`TBNhk~4C}ffHXKTn|97OOW&j-fEr!JB%hwK|swW(Oj`+klc~iV7FB3I1~ntv-R>*4z9Ocq&r`R#ob{ zYFmzggV9mgc5qY_w&h~0*3Y3ha&ibm!=k}1cpD|y;Yf5jbAwU4KAJzI!&qTz3PSX8 zMxAaTUhlcqQw5Xz$9SUk)Xk(d9f&2&oTtNPLjr}Hs11uIMCUo;^_)W-vjaKUR8bv4 zKe$14M%Q#d#j!dN2Zq>Xfjuj%vqdfDcK6S7tPT|AF0>kZSSZS{QI1*9*f{K-*T}Lq z>V0@`9lM@I3B~Ldodfn2bcJ~93y<6;!zc)vs3DZSyPECivKfm-oe&i)!3@9XHdqXm z6F2KNP}<~%k+i)XXb)nphVj*!qIfBH$trebIu6E_)xd%?B0o1`>ou4upkdLH*3R- zm`ee}ih7bdWMCEH!F!mRU^y3qi-Ex}xx-3%jy@vzHPm=9N5yJehOtH@qms-%%s73( z&5Z}MCT!8vbg__w-E&njDEl{MBf}#dqH~C0lT}y8D88<7oF%}TNdoP_b1oA&sUQB$Ieir3>qYxj7gDfC}nz+QqTNHkpUg zJr>okHpd7#AduB;CnPiz8ILaC~Y^+ zB(M|M3g@}cCnLoKf7XnqlOV-Juj%157*^?IthGUYgwcP@{MaSObj~wRG92#1GF%d3 zT?R{p19>v;^k^Dld;xXWvc<9=G+%82_qM<`eXOr2puLHeQS`PwH2%5@i-kpWk2rb> zUBe9LR8uS_oY(FcssKjKP=mrwPKX(Tr24?@p}Exi^qm2^J|MEJOu3qn zXAjU8m2C!DLF9En;feb}+ude%Jw=4F(+=O)V0co1rewsM(y!M$n_g z(wC1e-z>d2R@iAW0Jp*NK^L?C1gD0u7NJu{+dZP8O@})$yLPy0>@=9npX2#YocTQ> zc3qgMxHAe>+xFrfws<*T(R06ffc3=^^V=W}@efB%vcW!cg!+}Vl-&g!Jm9MC5w^OU zN{6Hci_JlkCfL$Mh3nc=H1-g=U4St6GRfdV6Xu>c7D_u51<#!G@lx|w=-cQ+!T>^B z&6|NxokvO4gK{c2H)70V?Qm<{gPOO=jZPc@#jGDwj4;Ft(!Yek>O3J2zcUxHz@L;* z^h4#VFv+&Bd82!TJn7%*u0j!q)fel*SdN3r61FW0Xz1CS^j~s_*@VAiu}m`wMm-6w z?SiTznY}G1u_pOAux@Q1P{8x+rZ`-0o zCXC-@#gL|(L@iFGcH1J>ri|fZ)UGg+j6m*VkuvC2uwh_-N6&4KGLdG-EKIQ2i!qa0 zO~D&N$w3v2bLhN7l@hwgvO9=_=QxFrvsqALFQBxT+RCzt7;(N9YcC5&JFrf)%9>6( znwq+TLOiOU9-r9ycpbXYId<{Pc@iugpU0F3Ys1jsX`y-$<+(OtgG2KRI3pjqCmyFQ zmVsL+D3sj@J)T=tFkKk2^^JvNj8;pm_F>}IQ!V&@3Ep5gu-jk?0s9I#GKC3MF%Tcx z-!1AZb;}rM(a>pP@1evIBscZA8;<|@wP|x3%qA2{IJc*;uZ9`o5uQnJs5Z5C1s$lX z;a4PaffYd%H_Y$*9oq%o(2g@KC}FOEvzReTyUh0Q-*)mV(irs%66RAwFR$N7@958H zE~CMKHO)>mYdByS!U8~q(O00oaD>5S0fqh)eSU`h4;n>^|k{(9=jCMapr2xm!}04w-7vEXi5 zaNB1@69k>N9+t#=HFO=Y7UR#Bx7djEO02eHk-b|NP@z$47X5Pgz%(MTXp_U@K@G*h zE>^r{#&LlgkzOx}Lu`eHXiBhrCS9aAyYmzrt2oVJU8jcLQ;jtbX?Q%&re}mWM+sX2 zP$|cjQ?JmI>l-v<=8*k9?vlui3;k+V!c+v5pfHo{)mpMKXT=aALjMm-2Us94ORI>p z!TrNvZSW*9G6;PS#oioPajpm1Env`Yk4C3h%tz7GTgUTGTDCC;#8eH%)vPG+I>g@|&~ z#ScpVn6YedCYgr;j6qDEYS^bhClWH5sM*_9FciZ@i@q(ee!KYkD0g%Jphh_Tv6ErMWR7o6#Zp{8}x zivcNB3s$gBYmT|>wZG@8mz!CbeX_NeKI8mVju;x%vzeo!e8xAtnN&B}5<$wKc?8AE zw5!_G>(?~%IKw)FTgv`@P>!?t>z#brxo~*C#yr#r*A#g+`8*i7BuNR=HRwfp)G69b z%Yo+^G2)OifjQ~0>9zz)12FP~v0*O=hDRLfaCLSvXXLxq`F$Bd^%^SJJ(wkfX}Ha% zAC{5UDP6F6JT_M`(QX5bts9Jg1FSR^sXrRa$34wjc^qvRVYo;lvI?dbsyqr{Ypy6^ zEM~J$h;)s9!i`d~ep84PL4OEO4^`Y2xtMh~ouU!zettb2oiAFXMjX4u(L7A#c>p-5 zVI*N-4;aOCg!cL7qGTg6)?@@$^Rc`VcX4Vc$e}0f^-g$Ae$Lym(eMek(RIeF;i%c# z5h3?c&Y_vsgJwS#R1#h46QzRz6{WY?+-`rd=$zl5`tkE~+Fd3%`-kH@49yf4YPwCy)Z-XWl3VeX= zaO}0@wGJ5gvSYL#sp%xb%qUEo^)h>Oius8xq8#V%3Me$4c3R>@n!V z)*#;=Q!|>~=ByfcIkegn9O}WI2y|0xomqIi;4n;__g@lp=3^RSjbMs1$02lEMomdRqb4+L86n!VS-&+lI$)z4Q z6UXgX=pJD5>KB?2%8#a?^`HT1E&n3H z)UJ%7L;_{PG{^BcX>Yf_unp@24UH<)DfUP(5|JC7iwX|L965?3wu4akt3nSEoXf4S zY=?ca9LL`!Mvf7l+M?b#vwZKMkC8(PzPeFqcq+0H%;O_oNTV2y?^S z7#`->?A~aAxs~DE=JKN$v5CE@X}_AX;w*B99^BXV5(Nc&4wza*6~^A^=mym>IlLUs zf(tp)TQ@T@s{}sw6>McR1^a$IY}~2iJV<)b`)CWSL`y%A*^?>f z_6$QO6}m7!fmKlG(qhaU_LsSN_d?5P7%v*zD>V5|!_Vk!cpRv0anKf~`H(v4Bgjh4 z(m{-AnwT5GKDae0IX1;sV0h4A;c2&lC5JGv+Lj%f2!V$U7P+Rz;#bqf8gW*Zi93?D z@rxY*&*0Q>3V1TE-K_P!qFU}4`vOQof)h;v?2WWIzhA&or_F({jA7;5=z=+ru?1hb) zfjh&|fx0yu+_4!}yll0a6Md*C>IEA=!(Sw>lPK`=EAJ7y^XfZXR1yxwT$86qMP-RO6t^JKGBQ{W1PoNSA#ltqi z2`L#_KpzX5C^(gdjZf^hW*HPxoT1V&(cM)DHbclL74> zW(Aai%>Q0qtj&E6%tChozNoHRt(K@USifv_mIpl6F(S#%e!~E$;#k0lvZ#$~Zg%5< z`{wc!Pc~vyYR3p>Qre#+A&Op8w(#K*U@@Xb-?hnChA7T=G1iVN#=fNc*~7+0u?^VR z(uQyEddAHACy~7a!b5%wE@0H_dt}%k;)G3EjM5v%&^U*-DvJ3GocV>Zwd;&F9tQ}y zWweNgSFfa0W|e*^Le7a%m^UUL%Ti60>MCu#K~}Si*K*4}i%+ z=E(I&RNsL`l@=`;mh`X-3r)NJIeaIBuf1W<6+1iEUjCdbcI?}mcj!-Qb_H39lD5DD z+E_)zk!4uxh1D6Dx)@m8J>TYWXg2ONy=(;kW6in;6E~tAv*pdaNV`V0?(7;T^r43e z{|GcM1+_6KDiniJJV2}UQW-Z+&X)Ia`pUzoW3bZ&|0n}G)9hq0x|C(4a+f zC}|!Q8zn4fcAyLM-mo}mY+Tr7SG+;!8o_^94+n!V&@%3C&>FnUDqr&C(`G3(4(0IzLPfK_*l;^L%$ov6X;|3FmCe!iE( zwqNZj5ZmDN6{j}Vq3It2iE#sX^pNfj*4<&XD8axLCYfQe$aZ&QGl6-jGjVt;owM8U zqPOe~BJCa+Jq_7yF!kDN#=SaxX<3ADP$%52Z;in=Oo1araO?+L;XPe;lpT7hP4E|s zHAN~B9Oj(+^3e^p-E19Njm_alsYC&Q%QtSq$=3A)Zc!QM)NpPB^*U^!wyjHb4|pvoha2+-utDUjiFNwy9gC64?!QoKO^!L^`HaQWO%K_=~}E+LR(cPjGi*J zr+^Kw3pnzEUJ9Fb8GLd{0|KoDDDh+8G@=&}n5~WMbi%vYrZuzSt|Eax1Wv1A`r9|P zbgp-6uqljH&&Gxi$Vo4LJ*oR0H__l?j6;3HYaYSpj zX;Ih;cFO)BkYkPhAP`pMm*LX^2Ic9dn3Hsj;9>tWh+25d1|xhYqqF)baj2Q^m5aKpFwfN1ospCdTzzJ*N%@9CY%2J02hx%!!8tCev)lB2t) zXYBr1xre3v_lA|E;AS5;@YaZ;*8PKQQ9hB+a}V@|8WlLbko7t zH)gwC@MJgDNYSxk_Y9+NoCm;WJys!Psd&rQZY%i4sk%7bm(>_9^cNLOS-@a=#Bo3< zo#Jp*ox%4C?3)bQsJxKtZ|8mQ5+~kZIl63n1>D5xm_|$eMoxsF7J)BL~dU1(S95ypyMjo2;#3OaW84z zC}O07s@B4=F?z>t7cTQe=_w30&>0<=6wP7ppHo=cB==YT#s+lePg%9N2>X)#`9W5} zVO{{^UuD*VZR`8B3gTcMat+4LgAKPU7~O7acZ35tn5#-*un6a8ROh4L z()@3{jq?>A6+S@v4^FRxHg?4JPk*`JwZ_&Qoj1*v%_Fmrav29Kvytj53dla zb9)Ysb+Ok6)1vTXTfr>G5Z01$`C6PW%>p|C6C&~sUmYGAV-j>uq}i*w{$ zm!zyE&AxA~G3CgsU@+gERPf-_U{?~$WdnV4e@VitGd=XRu$u=Xi5V=u^$*4Jb&s)X z1S8lbOdypZl=|VtSGQjc11-~t&W`qxt#><=Pv~KU*tCT&1-uFvzH`U$qz@m?>E{9p z7j6L4Ha%>6!uk|l7#98_Tso|eV9Ty?GJqbJ<#mRJJE6*Q1tAM9?h7lbFr|=T*3pH3 z8eJE%BLu81WwzAAPODke>d)`&&5gGU8Z3dw4A@@d;q6`g&AJ3~zc%Uawq;>Z15=%j z@1}jm>p|Zw6=@iG;XX(otmpS?xK@FgPG~zO?grug?Ep#adb{q^2F|G4)Q@cBVQB@X zwP2_fXRlf~d$X_iLac2JcqbbFayMCZ;s)F3(9Z3`PZJJU+GLAeD|y9q(IH+wXkKqg zy?hMM3-HF>pyCb0Z5-jS1kqt(JAvbIn52~WT*qGKCbp&CK_4W;(OBX7t+Dts;ba1q zPvJI|X18l>F^`L}|AdV6TplqD*a38KE~|zy-GewqkKNxi$EhSZLkuKdnQtwvF0a(s z@H~V%Fo)IOx%NO+L)UDl{AKu=ZJ`_PKx;TIXka0@gd?Cp^HbJh{8(-d&|@|5?X>CJ zL%}14Qyg@XpcAXxiW@WY26DM!%M=JyCSfv=NNWV`K(=IAA;#*RW9v z>!xbhG#tK9W?CqiOgab;Jo9otG@dc`ltX$t!ip@sDB72}4xbhf+5;FJ;PeCZU1-P( z4O|Wb05Itt@N!GHfY)8Pae)V>E}S2QxoQv&zkhv@ zD6L#MgIoU+L#+?p9SN+a3PG{zclSZ@p%(%j5NOXF3WIq3TGEkzT`P+=v$&I zzyco}CZ)Y(Ofy{QhyV=43U6&e)ZxVZ1&~t?%6|#uDSBiih9Bv zKc6+DiT**ff!TgR$LNR=Lnc_{)uvUvnfmc=dAw5KbOwxpmQ{&$|42R{~f~h*H zOu`;(i5(QRq3NW8_j410eKz>FN#KAosbM2Z_uM>2l-p;(IXj#D4sO%In6J9|2uC{^ zc5J#ZU&VZ|44+i-Yobt%C3T_&0{%kolU3fvod<=%FVeuu?!y@Of_JeW<-Bp~3s%v;V z>937!eeI_TA}DXb6D$nH!uPeFwK$ixp9s#4@(c=6aMOr-r@MdWax18h(UvSmr@gYm z1VhR?CSM60iJOxfDNF{HsDREwGMYc*n{eckhMj2*`PbW$8?TXuv{5#pg9Vej^n6sp ziQw?*@B*u!D(VN(lcCuudu!k!{tO1*`%VsRE3`6Bru7FmJ2zOD}=!LEVKB zPS{gxapn}R%+XtK96S0x9DagHYxshOK{)A7@1Kn*6et`^fV-F&M*z!08zqw$=evQ1 zl7%ImqJ{-@%*F;S)t>LY3-};PQ6jMT2hU)s>K5ED>4wp5%yesXglH7u+|YeP=bP@P ziZS(SVmg_CI@y4ZHr6t+=st8HQ1%Io3m4jR#Mp%En|8@>2i6K<0fDnt3gKxrC+n9up9SOWB~H{C)9kw5ZZgp%W{j7Ker#BN;o(vY z1Qy_8X5CH2b%m0iZUc)r7_?*4F@X~MK*lpY(XcW!P75qWbF=e^e8&Rj@kdseKLh@x zuuU~v&39zI^$LT`a;p>4hM8T#LelQpm6f^H24lMPVz=AF_#8H1pdMD^B+fu(**JaI zwaeFIOyI<7{axLE>4Uw0Og~{A92!XUsqGfrjnlVxb@2kHugL?rR_Rt8Fk&fQO|taM z8~jH4r(p-)WCL4~boj-u3z&^C^#@N^aGRSUnMr?xWi6S*)nZgKFGyzYka{l#ll=)i z%q1<3nCCdB+UpKwYO<*og%3A1HSCLN+~2p<>NvGXYdVaIhH&LwQB#T@JDec~ODc>B z`6XdQGw4+Q3tYJ***&aRVU7VmmKc7e`B3Y<$d;#7gV6cKBlR_I26G5Cq z9eRY}eN0smI67a$AL3HIi{4p>TD}LOS(MiRQ?A{T$MDmJ3h4vGF4o(8*t(NxDVEI> z!0GBdMk({gml}*zU#ECCe1sTVPJA}o2gVO^ZMCqva$R+p&*5HZK+!2-Y97&XCpw^Ns8Wy6)*06-4s-){ zRI+QHYYlVIw_plqmKNZK*&IHmJ98cDEd$bk}_k7`?1p^et z5o5)^LIKV|W8tG_F9Z8Cal8aD0%4D;s{D}ep|}X`oP=f$l%&u z568OjkWS8WFpU8y{?|f(POswue;YcjKxM+Z7DjmmjcVd7YOQM>d=6S7fs3x8>>1Iq z{~wcMQkJ_|tgq_;wzzVrK=n1{*K%#RSsf@)wy9wQbKSz><@^2pdo}SZ)v$Su97_7W_3J7a*r<$s z3@LP2u%$T(SeA(3Z6Nc<;L!-jB66z{qr(3)YOFV+tJ@exb#M|5h9;^s_Sa7~R!r-4 zv1VRjNio2TVr^wu>phl2hFZ&UMacercmg;2m7zxx!T2)wfD9|W;wy1p@Ts$?!LMI~ zP?y=pV38cVi*$btrNlG{;N@G#O6$zHV;I{yl#^TtYe~p;<_S3yK z1fQMfKwq05tmVU*H8#AVVGAt`Z#sl{{BhJkmp8UWM7H3NF02nW6%1>`^+(@EvQ{ft zmEQWTcU1L3W6%NjhgBP>v7*vI?PXz(!udf95bigg!r zV953rw$Nc5kYXDQ7Gg^rnNcUW{f-Uh-uxJ(I=idHTEmBIW9b{nu$x;pdEUceGHB-d zk1-sHd5r$*?*?nl_DSG>o^8(vEr^(1Snyd320ZIN#SqZ`5;v{@ufAPg@;}RR_&^GhR!nmjgOY?PyS--DqtENBh;kZDj2l`Yng@;Xtq~&&R zJTz#_hilKczHOZ*OX6x_Q5!2>1)PRqD|2uw2hHFJ^9xe?MhtOAS0{f+06nfQPQOF# zq=Lmgr*!iudEB>yRa*1+~XXCBc{0)n!#5ZuLXNeO`fU#7klplA9Zym{QqVq zkO_ArAs}i3-Uv#_+-KJCG6|sI1u?{HcXu+GOh~u|5VnG-|sh>WF|}`?Ed%jd54d2ewXum z&U2n~&U2pgoaeH8Q%hL6-pCRVz)sdxQIC~*lr*~|$H=J4i}Wpiva5_UCDEIVTyqSv zO7`Xo18TfETNQ-HRgY(FmM{V)YT9A^0y^&)(MH87lE1FXi!Er_n zm-M(vN!dV1gpnGD3>kWjs#Dj3F>$-=o9kP{t-FQT2Ej?IjnN7RZ_#ig3?glGr7MnA zMKW}hGOoN_>E}YqG9bmcDg%bPb|$56g29mO4~sN{&0|q!S_fr0^k-J%>@c!3hI5eA z{oPp-#uaejgu{LvgD;M8Q#8&Ro78^yf9NuVUcQ6l{i=DWd_s-aCmEDH=L##jOb z2Oo^uQiaqp!|=EWO^4ArhdWN9z@-X|V}>CC#n53!8yYJ(+V-TLTZ|nB$N1Qm74P(=n{3*|=2c?9c1uSM;WtFMa|9gYIxHYaLrK!Dp;HSTxQhkb;k_lQ zOnhpQNR-aeEl#^aQq02}v8ite2OOj#H75U9z6_8_Gl2Ib=UmJHGmwG)rCTI;hnKTO z(K#k7)sG_EHmQ_D#EK>k6XtILvS*T()EF&l4Ij(*c#FCa6Y&ej$QO(GkN-WkUJ^eQ zD>#hy%xN&@`U%_?AxbCgirAPQQ_(s0_LC$mf@F>DAHqGSxT*O2TElm$)Vd>LnFgX5 zFgHdWUKnivFO`hnj5%Z}_D}@>Mdok>B=p~Sp%IamZ3E(@r;+8^Sl)GdB-=A)+^`Wv z8-n?@1CI!lW#en9%ikD{lDUXgipXcltjDUaKR#}5I?Pc|svSQ&K!13gbd!xF=igBe zi4r`h+{V{ZZ@utf1Pan)GivoRoy?`p#6GfjxOY7Z9Eu=@O8r`A_ zb<1fN&VkA&v$1(oG_(^pye8sGI|F=+Z8*z?nV%=^JI~d8u@a+)-TDsRqu}s8i!Ulf zC;9&>8b}*$N)IFJ)ysz@`e$?fj_o2zIebxaAaJVh7FUf1Ly}6X*{@^VKwhi}j+nc3 zv@y>o)&n_h-B?;OD-7a|sMhIAqAjaJ4NH-6T+Plf*@OxLTS7Es<1ni6sG$T%MPvu( z+>Q)Q;LMH_Vzwt01dC4^9jAZUwy}BZP}`NSNdPxNd?C?^5w5~iucUoRc42X$6=$wc zi#lkBa6}-A;;H9y`iPb7aGT5^rR@q|f0apWz3tLuGaq<>HPD0Fn%qMbxO^L1@sZWz z5JrzTN86So{1Plckxx|_4uz(@ij93MF=XK`R%WD{vFD9sVRtY#kaRtQfdMh=+_RFn(;90Rq+~fg)Q; zYT_u4eolhbjnW}5my%vrZ)t3iW1&^dNdo(s$Fnsee46n?h*Ja)tZ;h#U_!JGS8RP*DgI(hm+)aq=zCSOE}8LIlXUp@EKJ zmYay=Fb6NrP^OkFWt5Ki+^Ig_v57nweXvW%moL6XJd$H68%KoT^Ay8nqmdAz!wS}iBEI?~jbojS(~H}ArAo<6|e#f`^52EAljL~WoCXv2%M1s?!+XKY%udq1ax0YMS2by=ziT8Pps#YMsA~ZX!@o& zvZ+NG@XL?PXODUS75pUas33^|-hE#5VFnc>_oQz0FC$-E$wRU*Qy$+s$pDOfXakO? zjRr?aDbI{a8sY2H*RNPY2t|8H*ng)yrkic?g){Eh}Yv|nnc6KqCN!9qqOD8 zK_<}+*b})){o;!>_|phJlqRV{22{vg`&jO<3J!YUU++x zF}CSRtWm4jN4B-;2k>c@Kq<~|3}GXH8Oj^H2m%oTNw}gBw=s@XL|PrTw^mhQtU(oQ zFfbB!22ccZ7Gf;3Qrs2YvJ=h5j#e7XAZ->UO9R@`h`-TC=tH`|%zJHUaTNY(M>u1{ zIzXp7=$wGqRRzq$KtaRV+~QGZLWVc>h?qtxG?1Fi&_yG0X^n1eB?!cJf_!WgJKh@Z zW!@V^gIkMCiTKQ9Fr%LS2!&xw1YUKx>Ap(@79+Sm!rXr>nWlnag0riefbU+M7WEJ<(PJ}W=YCc&nDtIAn{@7 z8mez;5CNZD2*^=HQ*hv*gGtIz=caw`BbSR2L4$*n2KF{#2lfnTXH$km+E;{TQTrSf zJxR>W6)vhFR8Qn#&XS1IiSmfG%wUSC-6l1b<2PqEB6XPSCuYs4r^%Kvrs#dxu#tCx zMGPk|GTs@IZ$MXwtFifU>uYG)K~y9b4FnSGE7jdfxsjDn!V3x02&mRe=c%De_Cu!& zOC_SsMNG@?WRJPmO1HU`w7xY&0E5P6iIYaEKY~=_dLD>68(7Xpbd>ta6WY+Cl=AMV z14opohr?!q0h<~sslri#g^z?5*xa&(4Z7ixsfX#H7O%riG{Jgo$=EZn^V4ey=)6bK zXXx`3kIwRP5QSSn0G*vxn~>AHOXt67Tn~>865Wy6+C$Q5a(xc9FEh#ntkc7S057ZX zQt$M!l%t$PTSwFeLwFgT9v=%hhnU3nMSmNK_@KHmrp^WMtnG5+@=cmId=+u1B$I76 zqB*^xkTSPnxN;;b2eZjBK<`)3@5B>`Fgn8|T{N@fospl7(mNi^c(!86BSNnsruz_p zP|c&{ZV0eK7{b2LNmsKW9z+|%_;Q4lCN-qiaAgVvY7w;JC`Zv}NZcR9&og@0>y1<= z?26rTvZFr|*4Mm#3tNatbgRg{>dZ%QNC~cuzqyWwm?6p3b35G*&J+j`j~3J|3z{OL zZUv)ra0LfKsVItSqMVJnOq%GUfEc!SDK<6!?ct5W!i6!QYeaibv;gSaz{#sV2L8)X zaj`537FaPh5*@KILMUw*h>k@dFm`%izqY+Og87iy&a)wgm(b_ZQEo9$Xf$Py{}MC| zLg4!sCR`VJbex=nn>vLNBaG~$X$DkTCp$r3ILgLi0lgXN=TbQ2(AafWjIgFN=Z}|| zEyM`-HE;}!<|JjsPWjk1;$zbkkN#~8qfrx`WIge_eC%4!IREZg6VQ|7jGPIhR3PH@ zorbO7*>pR`Wgx{d5t~eMO&P8G&&R>&b9bW{DsW^985vG?Eh^X_hp{O9NKW4552N*6o zh+P4jRJ0hxlNEci8uT(^N|x5^A4jUg_5~B|u!A8=z#(&!>C@xCs3EA#nnzTfvDys2 zGRij{>V*kD+=$HNC#fo?CB_l4bc_q|=%+ThrCrX(Hn$v2cvbW?;#N1g9c=fJvBg#l zyGz4vHPeSmOKEJJD>xA(L1Gx$o}GD$yf?hImNqXOn4Nc4{z15EF9WLqgK9taFe&_F z7(|Cp-}Nii(56s>M95^fvL00>N-TAYS^`m&AV1jm$kyJ>rg2@j zcagu&L3}>!m(84UX;9q~;?ZBr|Jt@jBd#sV0029j02-2ri&P85VasZXmj$ZB*|wuT zBo#>=bfU`_X~Zp^=tyn{o(!IB3@{BoLzA4fB6PCA#T1R#OtbdaJ1^s}fJPF!APYkQb?}$K(~p2FVB=gPf&%ysk$1s?KsGZW{fE z3M}9xI+-5}LRZv095Q=enVooBl^2CaIZ=3Z<8y~|#}+Wy7*Y>`L-GJlVgmK7VCa2J z;Yr}=lCfV=wMFH5!+n71OUPcV2GH3l?NF$7eTcWCtu)DHC$NbFTBUICs6agAkCSjb zjj}e7IF4AxSTJ&O7$8)KPEub=wPZ0F(65ALq0e{Gy2fz7^*kv zh%=+*-i-AYL?r&Z1J!<{!p->PL}JYNpbe7fM1b%(eVim8=4;dK z-hfw6a(i@VsOxYgg0ZHMD@9G=a2N|xGsmkANA0Sbl~pT3tJhq8qc0@E3!ArdBnmHS z5q%bm0LR~$_R)c|ht)xPVdex(3e;~x0yFkaEHzkrA`5%H^#rXpNHYeD4;E=mn|I>Z z*3cqhrQ}+j&FG#G(k|2}w23L@2onII6Co-$Qfz7gC z^og8MWv5;# z3v5euYWmwYgYiz;(yWuKTcXOST3K;Bu~g7kGtOw3Pii(Qz8DS@vt1mCVZjKA2G?;g zhmu4=WNziqAms_6Rba~7qoF1oQ@4jXC6WHZ85!dxw5Y5@No$F8NP#;UT(Sk-=)aY# z>$w<4BZ+I{!&!xYO!s6|{xpm-z!^y>oG<+_E*N;kizSIUa3zcjQTn|y-wHLI^@6sVz!4QGXuSU>^PgB-b~ z)}yux&I$_4s4@fVs8dk4vDe^$(@6|u)-wkaB$;4HDjUPsWafy7L6V1f^=PwGQ60nA zz9^O^#2akHImsI^_b2B>cJSb>$d1SFKp3m{nQD%60-6})a0aZHa4lfmrZVJ|Wj2j9 z;OFmjdI@7LL6tE<)qC|EXVNqlcQkVi7)rEl-4qt#RdfLys3ID0&W;(Z!Ief$O)8x~ zS|T;HAg${;Va5^zdnxvLBJt>FD%3=DD57q`FP%QIQZ>bhGXZo2Oe>ca(Y8oyvl5}4 zf$c3VWDD4`JG8Z>ty$^_Z<727s%F_zapc1p6?=w8j$6rgk}^p~Lp^g%{>?0*%|t2F zZ8O_KoaH2Iq9TvvI&cyPgBl5pY4lr`WOJFCf=V2qd8kgoK7Yzb@)|w z8D03@syn&^rykEoED;fV!zeLLQwAl8i1dQFxALQNxZ0XGOO$-&Mc0;9hbQ@n$jrkQ z*H7PgO!Q>6P4O|r6qmJjqu6JNv!1kz2;$_TBU=j=Qdpg(%Frnv$_5HIT_){thfDzA z4CTjOO~Q%7`Mu_Z8d38Z0D!eaa?_G+6ZUQzWGjlKV32f=q)Lq6B@uW8!M}l84Smj; zzThm3G%UpIK%l^Ke%O9^oO@3vUJR05N$h*rY#Qx9Crguz4-Nz{OGJT+##`qh=L9q| zBZm~S=fjtPWEbZUbd=<7>{p1?=;Zj(+)oV(Ji)}Q^0Qy@I1tD% z9wKvAAW-h~nkU~dW)AkSiRP04c`n=@4K?7HVEE4jg8^2~u2X>`l>!-A@tY%!7+P17 zvXJc+7k{W9CZnUb+>r!DVlAQz5?BaDxSNAepI1{SEH1OIOa;bPiQ9Q57^(P1IF|qm zx0}9}jRpt74$Pf#5(pEI#qTMvFd)GJg|N&QT;xbAhSJt(a#j$IGl39f90nvjThRgG zibcE$A0F^>It^1NWu8PAsAwn;=#a!wk1c-%Z;6+L@nyxBAvg?V#sk9Wpz(lkpP?a& zA_mD2@Gus`-`B~RfaFhc&{8Qt`V=)3BwUnJbcSTf31D4Kq<%6SadzOxbk6H>mJbcL z43NeK!Z9==Gr%x9P=1^`Zsw3-)H^t9!-!8rRn$!`bI1t3SGhTUGlEE|3gK3@LDJ=-e+(1;iET?1c?8fEnD?Pi31f0zZjM1W$s)lISiRNLP1X?oQvU|+T^TooF+5M07&(9 zb_i!cMM3aj_02xMfumb5Y0=QRl4}HKUGgJ)Sx4RG#E`t-4kRMli{DL!o1KI?FUatU zmkDbZKXL}lp0WaUpk!9|lb+3_r^7|I2(nR0WG8gmthLTDgMc>}!)ZJ~ye6+37m#y- ziO-yZW{p0*DpifABHD-Q-l-bOQPu!sEiZq274OYQmx0Bo*~r`qd;LkQ3Ii}PhF(R(l(1cUWtgrLMjy%`zbkF5rS8;k>j!x$qOK@2CG z+!-4?bGPN-JO!r$v^&`Tdf0)o-IR1G(FiB>c#)b!(T2!RJKrXer3s_GHd>JB_1GF(f4JHxcdZ>f&BE;U*OAHO{%FMZ$6~vIFHx3v{LGSEg zIL`<}@gQ?W&QwWCkB^5MuH;@IQzdF(WTmJpx!{fi#u=%h@W7xl3@#+7C9)g)b61$T zC0Z0>JBZ$_JSjPoVjZ0>*$Oap5*c(Vl7_K0NHohi43<3$@K)~LpE2+_Uh=TxI1c`->o|149!|A31e-qx7 z$Yc1uuqKCH61E9B3I9}lyK~$m&4g$R->IzFlR0IlB*5kVjAOw}<=+9I@ z^b_TLQsG~ zs3@lYm|`-aTx8S}DKFs0)rEe;Cy=~2=&%BqTe!;&cAe4UOtmU21asBM2trLqeHkA0 zy@9!T0_t)#uywEC@E04U3YU16Vl+)+PgfYb52ldU?Cy-VN($-hFwE}E2t)Pva6)2y zPl#mxv0L!Dh)_#dPNME&qT?kLgulULBKRhe306+pADq<@u8vo1fnK>9uF*{Pe~<(qU(q zwa)bRJJSi^Os_H1bWa~{88`rTMk5C$X9Q`F(vfhb6M|!xv=7ssq}P{;H0fi-ncfu{ zs5M49jH!j0R)q8q9qFWTq?0B?d(tSAPQ6SsEyK`Cr_5NYOYevbjY|iV0jKmr=}4yI zm|lN6*)otMy|S@L@@Wx&Ok;ah(O`uQ{9g8nm&R)GxlX6SK_=F`4);v7E`o)g>o^k?a`B3MF(avAE# zz*w9aSfw))%gZqSoS8UWCccr0ab)5g8RSJgchlRJL5Os^GtiGyhBW$RU@1;_hC1*- zN&nV75YO(}lGLY-!?Pu+^%)gLc9)hUjB$9Zm zakyoe3dwPRNSa-Y2gbR;!#v<04<4otesmaF-8~EtqkCawg<#qPjSeEK`-CyNP+O-t za;V{%6@b&6s%H-&8xC1LI1Gj}x(7#A2u34Dhv3cT1Hvh$p()R3rK^aU6^PSq@|X78`!LvWVcH;`NrsW$=P9;c#IAst8H_V9+@nH)fmYN!feTS z43kZ<=?pNk+4vfALPqmhy&>5k7)Xo*g26$@0l{HR+VOxGKPAkSada%Q+vyr}esuHH ztRS!<8Ml$`__6RBQ)C`g<>W{k(o)im-M7mOs|Jo~obV4)isjKhH0G|C@OTU^QY{p{N^~cS0dO2JJm%(PJTT4y9$wQFW*m6}!|)NbGsy^N^pwjPtGnRBqqBHQMIg+|oeeaFPW`tmcq^^_tq1 zHEUL`kSd~t)*{>rNy8k3oimfV5b($uAl_vK4xaeJiE(^N)XP+${*X#SJshf!7|`Sn zmZ+x~h7)*JC+`@b;-=oxvPn*;Ojjd=(g+j? z6uCW2nBwyCYJn;N=XBiEcje`LNXEL|RaKkkmS-KB3&vXxSdFCz@1T%blt@C7aAJ1k;P(5Z&I?($FSf`M2!|Z<178sYs%j z#xurEJZ(pPMc53gm_jW_#Sl=xp7QDpRMT@5q!Dfi#IR<7l*$d3iVzMsBr^39#Z8tX6XF3CXOBXpNEu^yZn-bZs#s%D6(}&bAxYP?Ts~6 z*Q{h35?(awjYbK%Oz=uls0_tr911E(QmB-yj9J2_I<8(_v#vI@wrb7l<-#HYjYKRW z)wYx9w&BK<+`3tEsw@u^1Kr_JS=81uFT5wEV`K*VLN0xo)Wv{##GtH^QHh zxybFsGsleDFEdWQbGUB26=oZ{vHIGT%WKz-_?Wy&PBJFC{KAWzW?=bbrK5c8Syx+C zE2O7V;tTp3>mxX$1%~A!C$wZTC7UCAO0$ZZmDj9Z$HJi21+tG3G`E5<&mQs|hXX4m z?gKF7*9}irz z*X#Yn2xgRe$<+i@a={MujtVF0aJNPYeBK%+__;(8b$ZOC^u~N6j10NALR(2HaodOy ziQ5r@;)t?ImS|$#r!I_VF`O^izG>$r5{ETOLWz0$F$U)7!)G|?bWU(?*-f_E&LQ6! zUR9D8jGY0E0^nmali_gAV(vS#a+UNd&f&bR_)mrINQeIM=JROmVZ3n9#3#~WpL>Rp zT8Ewoc1w$qjH|7wd2@)c$~#1aCLs!3K`)^KN}Cz4!&@3Qk!q9t+&g5`BvFkN`^YxO z9cymBA*82AlLe=d{IQZ>DoQG=Mj|Jh5vefCB!q(#2XEYf$pu12;IV)Ytg2eKsu91c|NG#?G$steJDiYhIuBWL}n%uXMjVfiN9-A9ULfX$Z zmk`yY+#?hj%W+DLnPRv5lnlADh7bKXo+D@ZU5-XF%aBt#^CIbNY4fjKb4$pm&KY(@ zT=;)`3AWbYliXxWBt2$i3Fs3Q3S?x%UQc!tG8B@0fOz2!QXmmOC=eyJSA%y6Suk6} zt-F_~Nw=h}H6l;STiccdmuTu)Iq`&WEq8h&biIodvx_6^cOYaeF%%d}c7|J*G?Kf8 zo%oXa$P(Y~NbA;3j(~TAuc0lnasBo!&duKSe$)pQ73;Swsa>+QdFx{GZY-|f(Y&c) z@eU%1!wDR!YD4p}gw$T-GF-wYDdcr84sRvV$>N4^>z&P8mb6C6P}UY*(h%J$)g`qi zpy2k;t8{5hPP( zLS~tAvP+YGDc~jHh~(S-?@F}cSTA;?S7`LJ1tYE-!OHyQ!{3k6s!W7Ci}8psFoLE$ zDJME%z1u6v&>|=v!VUjTM<1vzCZ{g(`y(vr=+I$4<)h<2f@E6mUycGf3gjq|qd<-V zISS+`kfT730yzrgD3GH-jsiIfeOw(qEKOFkM2Z`G?h9Je6BKe2M>m!j+bXO!wm|5a2jfD5oFLih?U9Q(J_ru`nkCXoo5qO8dO)2-o`{N-+ZB2Xn zvw9J^*K0_AGVCHm94O+uG=!SBG`8?&Bz~0->J5GAeEl=IKQn&Orch%mu}k&xBjMS* zba-!nNq;Z*HvLllf3l`ErQE7<*UN)YNJ3H)fsoip>b*JMf=1~P_X1P?1Xmf$q0su4 zA*ziIZ!2ZhKj5X}C8JyDWByC;hvE2bHSpPAsed8&sqjoV=I_w_5;*2le%p2q5EC?bo@FM z=YU6Wp9*iNq<+QxZ)znnREY3JGHXY|oAYTMUa0|3?o;8-8UZi~&p>k|JpX5Ocz)wM zxle^Rb2NDMZHlRkgtygz_lSX?+^51jFAZL#W%K5iE#~8q@Mi4S@!Mq<;5QYXQBCq~ zC}bdJJQ)dZzX7iz`Nf&x$+%m^Unq3_>NVG`T(Mf8U7FUdTj2=YwSZjv!bELh3cy`2PSo~K0@$k) zwNiehR)O99+C=TEFp0WYzV^^Yi^iq4mOuID;70xgjFaEgajXiY{O_3u^R@p-xi>H8 zaUu28UOM>c0*B|*_swWqQ2pxX4$HDs%Aby+)H+RFtG>$rqiqpSX7FeJll8>UpTN>7 zCNnEvTe73ARYHBqU$X?#E_ap_m%O>2xAHIjJ3kE5GVHr`yW6%$H)$w<4tcrtctlJj)c~5?Dp!D?M;r9jyiwBomz~2V`dGXUWOROwUd-jA)tCe=x z!FSTYJ;y?pf>W#a-2ccV>RL8m>vQjU;E|IycVhnOdyaL{uI7osfs@m4Gw;(*A^VWx8ZOvb#GswQQr!1S{|qVBu+uz|BI#_I6gTzV4ZC_ zFu4+(Et5}G7ihK9pykU&(>o>=1_!Pz2o5}EnRIHeU8|isgZl}=f#)q#PA#x%wM#6) zfyuV^n!jH<`O#OnzK3$v`C9D^+A>5n)&FY7lQHG(Dk&& z@84lezDvI@n4le6s09Nh|D ze0$tBJ8^<%SMzK?^lPI3+o9_s?!R!07XQK|ZQvT(ea}R#ug9X*F3jr=lvpf|4zBN+ zruD_CZ{ZaE*#@q$*e-lrp3MmET76$fO^KyoWA~p1Yxn;=82=)87BDZCf!}e;{PkoR z|3w{TeIftr)`E@g^g}V+Y)wRju9_JUv+Z{)FMMJArXO?R(x@a7yZydHF|ZbKF*xa50{b+lmu{$l;&S?=n!c%u_lLgIrRF2B zh3*1d%D-1=IUsZv_`he47BVMF>D%MHt1Pk{I6+wpd}Dsl8oTpytx#adT$R4im?z)A z%%Yx^mR84YQ-cFxD`nSOV^091PAmEOpv`jB920ioKNef8Oy=$7TD*y}_9|;^aL^L( zovaP$_1I!EpEptWe+9poMtjG~FMcF_0l#=3n!S7DKQq?h#mmRWhhL>%O0C*qJLBS~ z@Y~_zzA$m0yoXPlJXOl2@?o463Z-A{%t_(X!+CBM{rrOJ-@$#Bqx~T(eQx6!eDa%7p;{+2#;ew8i+zj!UPIsO^P(uRlY61_ zNE*vJR>=BW#Qb>PT6l`Jx%P__wP$g`sqM9S5*F65pE7Tn;9L?nCl`d?RDB0KQU|uN~UY z_seE#eS2wd5%iIo>HN=F}S_+pK<)jF-?_pGlo&eQsiForrTlRKWaOzYTTnbNV0aj8M8GRve_Ce57G zaqWC9cHM-k{vEOgOwjrsXUyI|EjUmhvXaOE%m*zH{Ghk^vGads>3^=vqInK~aL=(X z^8UTN{^y3z@1n%#X*1*1pnFl`%~_TM(k7uZYh8RW$^Wd1|H-_YcbO)A<>|3?FRin- zFYSfSO^UDU^340UGFAA6pf_u4Em znO~2WYX{!Dm@#id4!xXly#zUw>z(|0r;enR|!Mf`BuUNx-_8qBI;{}-dc)6B-TupzjqF=9xf3W^)D5bQ-p)#Vf#3IU{U>0h?m=`puL!;;a)BM0q{L!9 zwU4>9pLuV}B|qa^Q!dfK*W4$(f9s1G<&yW$)8&#c!rOi)dk5r*bQx1iEYqypPEc19 z<(lCavOefC)GWpGk279>cUokq!h|XVPV<`=`enUv(AL4}+BcSIrQ2j}TlmR|>+BQG zclNrpfPF@L&B8*>)$7v&wcv~YV&Sr2aNAy0Zpu1)!MtR-0?L+MIni~Jvg(_ww7_=0 zk#TFk2smrcbD1zz*%eb%+2nVWSKlqu0tfhR2W@GhEjld=PrWGZGiZ6-rSEh0D0&ul zNdM~e9Fp~*mA=nWYlO&og^4Gir@$3jp1$jO_Fq~I+MSAAuGLoXTSXlO)D4fVIWj>z zv|5|-RDFq7yGWkR*8&9v+Q2^AGgGs6oU+YKY$yu)L+@$ZEc$n^t=0;jl0DI+&iiU6 z&D3^F`8z59@~RE~Wv6Z1L}s3%Svu}vKhn3lfB>)cuMIc_D%0<+m3V3 zTJ_4HyhDcD!nfD+_xc3w*}7Sj-LSAQ}o`D@bNr2AUlvt|~*x~k6qI_+!cTZKPunSY)ZTQp7Yf4yzf zUscv#b-eZG&pte8!2$nkC4ZX4_u9d&asgO-uaG+qGvqY5U*X zwb;ReyB~hOO6v=&Hcd-(f`f^Z&`j{Ui)VuWTdYAFrET!jAbZ-fyY1_mo67yqPk}yD zwc5Xh??1$Qvu!e-wi@4U;Q5c~yFuF4N!tW}`MrX@?mhIy5w1HdmRF#2tb}*nw7ZjU zKg-|a{4oxn-OIDfHb5WxSo&b%4DIOaJhwszP5Q>Fof0|aA<83vg7cK8Y;TU3BXxE) zN2-|Lf}hat7nE)0*PVj9z*x%t%d0l3`B()#r7z#IO-?N0`LKBx%vUh41g79C-9Y6`FYGQ^SQ|r+V%1iMn3P+ zpAXI)fls%N&j8PnOCGX^Cm>&0;feOdW57^+rZYd*P8;{|CwQCuQDk!I`_)Za-$~c~ zkAya9eft<^GDp;yV0MH1zd9CcZt+k5&GuuT=J&^zNgaJNOZ;!nFY(WObqnvd`THDP|6`N7p77;* z%0>NsRg}4j=b!m=y-b+vEw`xa8MmxG_E7Uyf8Vwe|J!>?{LfI|%qK$qj%nS$x|I6l z`!{1H{!3MzTtCh=b*bmia!p<8`UuxXeQzG+n!42U<6Kjhy6!9SJE%|LY0&~RS*M28 zGeHX^>p?zB)-#oBv!0n;oAnfNZPqiFYqOpUwLr2S_|1&^VE+u-GgHwI8o~c((jJ9J z8P_K57ISUTuFt_W^{6r)u1(qnxK5#6-%>3g^xKHO?Akr-BdWB(J;)KweS@_p-?98d z^UYuU!|G4I{Ak(fs$*A9C{Sxyz32n!|1JD&n5sQnKUu2{(f?iNiOxrR_6hEn(f_^N z|JY*hsL<#WYcO!>N7cvvR{8__PGAlEy9?~=9Ic<3<(M6O_*wdX20VY_MfP=nyX!Nv z`k?!>h5GY8=stro&w%IK(A_>$i*1~$#X_tJHe|t7+LTvH;L)Y<9g%HW!&UtYz;kia zCjVsc>^fb2tf{%l-_%s*-w%Hkou-W0CsiM5$7<0UI3iG~zJ#b#)63VK1uT4unD@pr)iu(SP`F)*~wX5$7DO&(9DLXDO z<(cr4g2XfvZg48kC#kXp=Ce+DrhlJjeqS|X*!Q0@%W5-|Wq0#T@vZsO4VXIbYBS6B z$aB42TX;73qUGp^Ef!>aE3&=~nLiJC9UahJ6WPOAViTuWVpH>ifhqQ2069Rd{ZBZN z_wux(i<+86rt51*R(hprga00p+b%-Cslor)=U!{d606Hj2|rxIczScf^p5AXyi+Gx zzdEEpnX9HOBx|fLBU}v*E5T(2I4uXa>iCB(az>!bsii0Hdbk7`^raKPMt{}SX`?!7!J}cvM6=fDNmuk_~9&6g}zvm-cpSD1&y?H_~@YALp{>S7Vx%HNU zVBlv>JN?gd-$NU2WsLp2=}!Oa+;?+-+st6#7frkTgWPv=e|u3d@XMy%{*pmkUpx1A z%nb(qrRlHy%eb%O{u37l1HWpz%OB!C$o*Yfe#e3G>yLfmtyzh-Zx$umo|v6zd!RVc z);cHAcE{XATlM*gHuzQB@{+H&eN=a>ZC}Z*+WA8`*MZ~Bmk!}vhg^G0*$~b_?r&W@ zgmWqPw>gGz*0{gjGlX*w^6VXfA)LFp|HRTEoIAN6GtN&MIKKhTRYN$pv!>m=atP;c zWZGL+58*8Lx85*>v)tcy(-6*bfBVftILrMVx2NFD{U`on2xobpjmF!B#`MK@tM-ip z&>6kg?wi9yI10|UM2B$fEC$EsAspMezismnj&m~#{LYC>Ln&t=}XKwJjXlC%?@(IC* zueD5j}BJG;6I42bR+A? zyXZ|sZ@G~*Ny<)_Yv4#(V*M0u1n#@GISJXrY%G%Nxe3wRY@93C=O;vOx$#1|o|lmQ zWFhjzWcEDAJ{l}8hu@g+*Qje9{uXtu!~dMR*5UuXy4K;ps;+hTzf;%q5-%f< z_!aOqfnR`r@&nqtR^885_wRGRRoxe>`#*61kh-TX%FF)!8FfEb-M_{CPt^VS>i##} zzpd`)srwV$JK&-3L8F2Z&8Ei~^_ z&*mk{z(Lwl1ikK~EkUdHw#Hg~g5T=8$!g8KXgWG(^}IlTu1!#~{2ZREa@u6ptjUbk zNr@vo>!qyyctK1byY|Gl&2rsRPG3i#GoJ+~8Q)Gw95%mwT%O4qsIQGr^IUXMqQBD6 zC0|skpHZbgn`=Ci^DNOV4L`fIsIyBubFw#I8<4XtWSD^}@SOk9%-9q3t7cjD^LNnM zqCX4_uGa$U-FIfjeodKsdsx4hYw8T_4RkO2O0)y&{V$F8b?2$~Z(OXGxr_HF*9QZ= zkzn9{O>@7*Uny%RG1&@BnBP6jZ;`V^|66c07&xiT@M-gPoWfS^C-YZ0W7U+G@jdK$ z&>366bHUX-3p8~@ne^}P$Qj8`f^oCG3ii8;lQ7S@s?D@*e0U^Fw6lRb1OA?0;mIWmaO{r2gkbSKSY71{hzW z2c6IRZ6)Zj3-oj96Y!Sf@R}ZY&l}9^UsI+9{`+&Q=7xr+o>wQ1LJZtw@@MeRL2 z3nBx@ty)JSAKk4*3rM|n@bhKJWOc~!$m0QN4`&9o%k2E3r&`2*O6H>MOG`BSQ+p}b z%NXjRPC2i=_Y%%Bq3c5WrpI=qQgr0^Sna2(sLRed+B=k!GcbYCOL;j%*UyQsfu2`G z*OkzB1@alT5;k2wtmZ3wa#>q$nPxd~G2g1W{U0;+x!rSK>~YSs2c{bP?u84C=f$xq zp1;F$&fp3^)o<#VXC?lQXFA+s=KQS0KLJ?Rks~%-W+~gaz*;sqIT#yUZjG5XK5{13AF5)1@m-~ttP_25U9qta z6~>M*-*z(o)cCrsP=DSzD;8#b+sbp!a1xgN!MNUzB0sf?HWz@5|b7QjpsOy-lqI@V)`zsj`-G9fK~QI*d4JR%+PKs*`{q1eTK|QpXgOt8=jlo|J-}b)qWXkHtIf7icTVk>|C6< zjJeP~Njo&aJLYy=c=`$Eo;-h_wSJIu%EzIDJ}+h`#C~kxUxV>w8@>J$PX^-!$fYMK zw+#MJP|#j;@umA8>9lq)?U~NmZG?IEqVVcjiC=T(Cg+K9_>tHmgo-r3oG~9^%*#3O zNgFn96Z@aLpZ6sx@6=eXm>28aXMt}PDW33Wz%rkAMJz|v`U|gcOC49iOD=|=&eL&t zeBZAskMFy;vTNTb`g@mX1IH&cf&*U#4_U89o>|9vF0|ajugEf)__utsC&fOJ@pxz_ z=ajc_F1rKya9L36+t1p#Oe;LKieFh5-eat&b6MaDjhhx|vF2(m);>u)d>wdTYc?Ri zZeXO2AAyA}q=L1Yb-aQyh155)jMO9b*;Rdos=oar>MG6G4$Jql=9=~InW!DUf@gN^ znVMyq{nSgW{bHACXDwV-irmw_|B;@HwU}-;r^4=A|Bi8`C+`6GSm17{iM`kDCb z#8%!*n{QFS#mTyeU7M_DKW)iWk4`7O9)Tk;Ib(C1_*ys{a`U%{@gwq{j4AV7>EPfY z(V=TbnGI@O4at1MzfHRa>DyErkuv7-iF0f-y4A3==|v9g1<&nguo=Ccu`Kp3J0{Dx zv%)9soTXafX~I7W&HIDa&G(zJ1t(E<_Gmc(;Atq`RlAYnsx2-l|LO z^O}*{%l^d~vtJl|c;W7*UA^n9yY_S5agzOxQ_;WuHG#nyRqQ(S$5&3(&YOxI$Kt7) ztNiY~b)WwW%go2h;LDEBpTFs}CBS$(x~xjucG5O2v6nL=k!9`B_>3_AO*v} zyk+3@0zC31+EO;*0;k}=n)7yJ zZTN{@+Pu42wYN*PSBt&H?@EjP6$Q6_QS1`xFyY#0!-)%p|F2?9=rXBQ&W1TpvT*KR zF8sxozJDvEKlU?sQ}=Jk;t$QQER8M5uzyqU>Pq$fTRSq_a_mAVC;PWq7ib66`_CHh zwPN-Djf*t}YclW0v44AJl>Hkvm#KRq{e0itzu9SD0plZX)7&H5&sb1vuI%Fq*tf2d zHP&(|YoqWsdtxtrRmz@F?OlJ2?GgJ|Lm#hP$GXWuUQ zjy^VRJ*$8_|Lsd+0#9r`m$6rUhrO!kYTjjz$e!kL_(v~$+a|u>|5`Ax&@#i;R&8$?=MN&f5Oj&=a1aWDw)l$%WRu2LS|b&G%saN+9#Cy?D-3Q zGDjDkUU7_d;29Z*q3;&-y}|xZc+tkPj@Mq9@s&Tk^37lV;i(6I^M@%HJzBH*^LuNy zFkgQUJ>D+)Up3GCb7yNGdWN#QU*Rn1x?`m)r_8ffTGv&7a_YS5PtIHy)TYhTDuWNd z!8wNY_WE7*71mwa?z&xdYpuJkoyq*P&NyXfZeII0*j_wnQR~J3Fy^V?mT|6w?(#7bBj)-undbT>;4Sl3+7YLZuUKkbw+VV}ynD*Ljd#ynw+Xs6 zUpi%8*;4eC1=`U9<~%ye*!|6mcAZ4`1E1&@s{RA5|q18$_tM$p6%-8 zyOY#)sb!Mzh-a$d5qavYNasDmBmRZ)n#v;>&u^PN;!=3E=y^U^pLw76KKnMY4;6W# z2s`Jw!4=B>r`R(0mD{x9QzyW)(>fQsEV0*`op@rN<$%{VyW=u&y`4S&(7WQqqr7Xn zY*m~&_-vV_pT{2YXb9O~(AoJHQvR^gYj2b`U_i~4s~=LJUYhdx-Z?}viW zMGIakGTKk7JLf1F%{fW-z~4lcvmn!@+YX!iU;7Gp>F9R-cFM=kcA#UglSLitG)A zZnL3VK@b`8&6mIM@D|A2Y0@WOE5UB#1!&NoLZ3afQ~R~n(z7q`V9!1qf7XLNv)Y&bF)}%>m&4YPe)v-T z4CB5iA#`oyyY`9I2Q_=?n)&?gowod7HNO%56hAz2c`UCec<|oY)`NLPRs7lxKK3bl z{4r?Pldl~-G2L=d@we`Uvc{>s`z6x1tReOz3)SAer&!;+_sqL@>4_3!@4nnVaD3Li zOJz?j-w7|ZaxLpf9=|`H%^p4F`9Bw%_k{^5_f76)k9{0IF_-(VfA(`V{(}cw-9LP= z#{K!O)~8`G)MLWuM*4S}E6}`;#+{ zlBtI8%uMWxXrmpS_I}!>v6o4;qimp_S-fkS7Kaf3ZYB{NY`$wVv z9pK!B{f4wr*4{4er7d!Q6KxS1^m2aC3vZEefc`T1ezo!b8ueS0n8L5n0>0PxchqOs zWY4c1lDhtVuC!mbIn-(I&}m;cPxbkE&~~(Mf0^Z58{ZBtw_zJPiGAs0^Z@7rY@!Dc z`*Y@M-<7eK(d~%8341ZdOi`?WF(djNk%2UDE}hx`+$8oD*k9F}&(ZG;Xp|@WL+p1~ zYX=IsK5(Ka_C~-y|XQB&fx-1yqP+k?E0=}jERqay&A#wbr+Tp$ zX1w-wi_Zgf_UwB>)p@c6SrVPYLiWUFos+3+3UyB9cN%p{8(y+>JQAnQ2Qt+8#vBW# z*7zHAtcZ8MfiEQUv-7@B#-G^t7ybW-cj9v;?|PumZ)NW0UmZVz4&-ONn*~iprthaO zbs6${#>;i+F|K7_k)ppa`9kn~#TPc(6h(_&-&qzwARKcfuerSKB! zk#YBJ=FDR}lluM-^;vk=W7A?++@|xFFY|8X{4ZnPE}Vi+0vePuo{**cw1VIV$C*nq z_XK~n2MI2Ui4R0Ca|^i$dDsGP(|s<*mOAmyVDUo6pXG*N{A=)tcdWXfotnQg{*(GH z_#1twDgB7ABV_`p2$wG-h3cH|R$%)xP)T$~}93P}y_egoAZ^+bhF+_f*Q9WNr`a7Mk0{zFg~j4>*Sx z1qbqG-mG}*U(=ptCvq))AlC(4|D$d0uEVyg;w78`p#!SzvIcjrzWTGucagQNR?bbN z%no?n;fc=JD)2pg@m2BEa_x+v)t4FHAcwwmo~|3MM+Y@{j~!jNH75Phv5@gO9e0)^-a#$p^I%tyZC#YHpw{z%7p`6`)d11e)DWSHo9H3GybCGXxHW5_#sHA{6?#8p-|d5s zY6EfP{>d52ev7ho@IF;`Dmn$qzDz#|?<~kehe{un9hryjJuluf3;kz)`_hwFz=O~$ zi>|pD9Zyd_el-)(&BC*q&Xe)|3C7MHjG^0+QEo#Yp0D(p=D6s*ukxUx$wGfj+WZ7< zJ_4-G@P^0t-F>kAh5IV^yzrUI_62(?kK1eq!;GOi#!w6V06gEezc~{<(c7=ZpLE50 z`L64jJFdnFw6**XXm$C{c&F_bl|7e()8+O!;{#cpx}fC=`bg@6Sq_!+wJ&Y@J1s7C z+(I3yyw1O#sqVZ$@vp0xV}JYxoPz6}<=kLKnoIpsq0b zsv~?Syezf${ z%*vB_8t8pe)(MN)oFC|AJ&<+6!kYE&JmeYX0WweD9_GY;*4P5kpS_GtJNL*Pfs%i- zZ2J$!amlAG%HF!G}X^+34`&@|+4db^59H;Q@>AUWry|>fu+t@4J ziVd57W>Q3bvUYp;ZJ$^b?|RXCv=qHnm+j{M{kk4_7#@>>h3)<@Jf!}6_TpOwK6dbF z!bfo-@S5O1z2MRNr@_NL^t14*{rCgL_ubsT2s(uhVj}>ZLWecgc3DT;k;$>s=zE#x z=r?Mvqn%yof3KwcwRb=DXz1>`KZyVLXOCz%J$9+K&5rHOZ$HTQaSjnfhC6z#Wy%%% z*n_-AeInCoA7CHPyOK-s$HTwMgemY$7`^>^nQI-B=gBv6PWVVE$XORV!NJL2dz`?_h1rmg?-e9QVT zm*&mc(z^`#!nVJ%6FA2yM?W3t-uwN^Bj>$Td1P+~=Nz~6ztlRVzX|=lX3=h_o2Z@c z-up^r-FbT|UuwO+U*>!lb!b}m(*4rMHqJqcWsJiw=ILiPC)+HXQ(YAonXAioLH~2q zC3p*ONBCF$o5UM_EYFXlcig0Kc@;c<#NWQk?!EW2p6L9bgF1WmcJu7hmB;rUseHlu zgUT27?&W?TW$&%*$XqV{L|1alshws|~uP#co6R)6?F@+sLT;BgHwgxgj z)Hr3`sHY7w?z-L@q)kPM8fhc_FFgMH6LdL={r@x7-515WdDa6@kg?mcRF_X=4h!7x z0(T0}&HE!G>RDyf^AdV-_S!jYsbWxA&yUe}SCB?({S!SCbpv}SqWzQ<#H5uQ{QMeT*{tbGL1-FYR z--(>CDus8*oE?dqE???`m^g%{h=;++6vQRg0hRZ?| z;LS7OQ8VFH=fRt2Aq(XxS?G@<3k@n+2;b(Cn8;Y7#}--W2cP_k+P8Jz1~BP>4f&50C#PI$Sy^RU*NMZG?wdMaVtD-tM8>(UUwZ>xMHBP?`zCnvTGsCgYW;?P4z0b&Mr!T7wNlBKGG7-|((bQRAy=|jnccp$>+%3PI_w78 z^Avq#owqQ5+R!5=%W-C!SZ+NkvUoQ5lSYHzGX#GR^#4RE{As|qS&z#49<IbPNnW8!_rRX63n z%YAT)l$)KX;#!x9XD3#0E#pe(i!xqJo2%K0f5p$U_t-V`FZdwaiOkn~BkLwIpRA*c zz(eNSZOgO+%QVjN;nzP0cNvRfPt!X)=#TTq8nm$od-t+D%YixCoJl`tFDz@B=o#@V zR_na7zd>(XN}2ue6j|>Y*=z5of4bm@rVQT&zB0~xWldkq_~p0kQe>SAv{pC!Yx%Z7 zbXS~1*pXfD=ldr1TRmyAX$^gI6MeLnzPb_lbPcjcUWW1gXU6zuoYPmG`z%K{TqWcC znz+!U)Am0ryDs++jc>|4!8nug{VnvsX1Si?_N8wvx2V15@bPWH|HKgdnhfya;csi- z_N(zC@Q(xk$yE5PuW#*R&CW2szsvYm-?uA0(KFSCo@hU`R`XJuF8goRuf? zW2<$F{{728314OJ3hiIy-Qd1F_~A5YHys+zV0<&im&^EO-#b}DKDESubGi176O4uL z@Yj`RKUy-u{_H~JN%kni)~COb{+w>C0gqqB{#1Ns)m~;;xi3(zbDB|Zz#nU7A9E%- z^YmRef!kVeypjH;Z<&9x$Nt_#&Heg!v~B2lYOg8Kd}4`htHXMe-H_iYmr zGWOnuKlXlsGgq;(!6r#~nfm7O1w0cySU$3;<*4wI-sS9*2JP@cORVQbOYG6#4}R&7 zzgQVR;bYD`iL6fli|i4h>_>jakgV-uLvUZ!!Or}pY4iL};nkF{rtRjO_#S&q!OK2? z>`LGKnm7c~za!~-4d0aFE4xZ~b=6g|0_b{(a&I#KzhuC@k}`5{!u}2NpupbGd=uCb z<3QebeP26z(k8ls{5WllorE5;pE^z(#qO~OT3tI?JMd(3oGD%KGu4`|3;vzW&_RzF zf1EQOFlCAzT+8@*&cJN~xQPs9j=>*(ppU`tfztvRgRC=YdXB0+_N z*+Cco{>hr>D_>aW@448NO^UGZosE5OapFyQ|8KDSJ*niB6^5Mh-Ab|bI?4PwiSARa z*P>^bZpbMY>vD?tSvSe~g{cp?*kSN&XI$a%qV4GE062W5EgqD0AhNHr_bUauJ^-0S z%AA0P!n4<)|2E6@T-Cmm&5Xz+>99jXuzxceY~&FWw#XyCRM^Yfmo_7JiyR{QP#v!a z*<-QK*mqw4*KITV;n_dY7FH@4Ptb<>>@6+>hV)y{a^xz;TAY2!$qwKkw>7i>GHE1! z)@J{9=3jMC!P*2Y`a^UQ0&5nqs`gbMtXuxM%JA|BE9+j|hdtYUm35Il$-UJlfiq~c zVKYR`lDjw$c+rY|xE@!AIq;Cyc_}hsmc^Fy8~Ncf^_{d&>|?$|yU|%6=w-~VBL0vn`)gJ9?Z^!HDKwO_Vk0Bxnm;qj z_7dZYvTx6yVG+1*N3Il}`~R``E?`k!*TVn%&VbBt69h!XW(G+j0~+HMs2T<^6*0j? zP19UjPt*L`^F*mQ&N3M%#0asA+0qd!nID@5fP-I507a z<^o2;|F`x#BO^i6EeEpR`S@36+ zZ3&e1_LbdFy~3mR2FePL^47lyu9;)2wbmap&Z_=**_WfQVh`h1?Y5XMwU;k-@a|vw z!*&bi^-7sGVavW@N{{VM zW6vSF%~VIg-Zcz+*Kl`>SwG@q-EKah9XSTBdU|@FQhh08e?VQ^$QN91rQOZaCbV}@ zwb@5|g5wjkhfbhpq0E5;;mGyzoVN}^o=8BhNQ4%Xm=oAC*N3|f*5dz*ZJOwMjPvyf z&ejL`m~BCN}bt}dZt`PpVkBgBrD7(Sdou&2bH){K8dnCCoe>xbq+ ztg(il#Ax_`8|%8v!ME_WdK2HPH{hEmlx?lpA`VsiKr8dh5`!OTcv#m;Ima?L0{0H9XMYiNT?sag!@GGis9*zF!_h`FL+|63l>)i7)wv#W1#U07j#bx z!zOI4NdJTM7mWE|25Cpi{mVDz>LdK+lqu!iuX)!4?%&*`yH64)=$tu*bN9F$V@z#~ z-8KAwu5}iDckIKTs(xgv9oqCpj38x?ACc19`)j=iU)-MD3wjsxY<_9Je#wqh_}(OM z^~S7W&W)ok%xssk$0_Tjoo?_Y_GH7BXiv&FIpkx_3N9#H zAL&wY&$gL*-rH_6@&ex<=6hd3eox2D{GQI)`91zQ`8{vX%kMdLXMWE+_vH7SF3DGN z+L;22OFR2G=cSjo^8s@A-7~daAKs(6ds4KXIQEIB@gY4uNALL$(syR-J*}jtX6ilb zNGtjG|18!mex?roJ9fn2zt;9=U!~UbA>&pkdr|CPbo@``tV`FSgVkZJ=cBZqQ_N4X z)%<|iS!Xyqjl;LARUdY!HDB9x3Yn&3PF_#?#bxcj1B2Wd7w>ORzgX7p+Y#PVK9IuazMj=_>rN0g-05us!6SJ0pP_ZrGJP|mkKh3B&Ny>-}#Q`WbA1i!z;JL=s&oae&!hL5Os z`!M&KkM8GL>P_aklxL}TD9^X?EcGV2U#9Fq%K5e@@?6HV)S1BZmw1*shwxn3e!i0R zR^Z(p@16x5g$mv{ccH*gul3vk4D*1&!hUkg_=cu00f(~b9?kg|{{P;HJ6lT=)=yiI z@Ypo(0c6L7$EW#(uDV{GR*DSfjktsNYk0pFndOT-H}br0+Ie$KPWP)3?(T?~oO4n9 zGxqPz)Oy|<9Fxg0vCChlRU2`^^-P|o+f>q z^c?9Eq#uwzMfxG>CemKg&7{ztZyTwZbUSGT=?>B;(w~qHCjA*{0_h8+$)vv|O(ES& z3jO;IklILpO`1k}h;%gRtE8Ev?WE&K|3EsC^e?1Yq(@1acfJ#(Q%O&f=92nJ3rJ6s zW)hbaUhF%^^EhXZ_(b|X;2C-Lf;@l7a~84a`MK5UPaIR@Wb34ioZ&fu5C>bRCz zdeEU-e{AsW6#f-|jCY-saw+?!AG7V79^~PtkT3UgPPLMChqhkp9_@t1X^E0rqE>A5 z7UW+%W^!J%kF?)_e0x#OwCwEry)(%l6v*dXM{Ea6g>TO$KQfRXN&W(@tC_mJbI6Yk zEKEz&#qcBZjv^6MHyg ztMb0yJ3j#!<;+ibKX!ZZ@@}umQmOIov(80dB{XMd-ff%d?ucOAqWGUl-e8%3x4AnL z_?;|s?{>F8g=ZW8OL?D0`UL4{(x*r>N&n6{>3e|k1(g2@=}gj}kUQTbbh|iynL7Wc!7D?^LNa@WA)K46FeTi?0N0o%jefhV$uvW zzXmhEWc?O<_Dk~&dM!!Qx(bk~y-(y_HkWEf1?JLIzopQ4yg*n6w_G?_h$4|~w}{Z99X zW_2d_yyz7~M|1R1&WhQaNI%MZZ*KPwcJ|z2eYt79+q$VXDP{+{qWLy$gnvKj+r&>> zjNSMxoK1I{qdhj_AxS*+TIOW$fuUE`39%o*zAxNGJ!kU08EQXp`XlX0_1l>Ve;eT$ z-mA%ZWM8@FOjYhp%3YRkH@-i5DL=xfR~w^j9RJimztqTY59YT8%46G}icQ&X$sZ`L z`ups$K0w}={nUH#a>sj znc7PwdnB$yC~RWG-XFdvf$t!&iGKB^5Ez4X{D?Ya|A#JC`7FK!tb(6|oUN1vbi-ez zOdER2O{#37r<63*PsFNmj`b=0x7bhpKkL86{P|4&TkIRI>c6Gxg?{_{Z+$cFW4;;e zw+;WTe`l;L;NA+4aQ}V2OdCGQmr2dvwlOYmn&Hcoh<%AK0-fyDeVI1=SA3b2e(Wl~ zOzQoo^kvG4H{$KfIgsE;WRd>1)f-~_Y^x1^G$g>!Zcu#Zmlrj4_Arottf9ZbJ`(=- zYauEU?umta4>ALvIL z{YVb<<1OmE)DLW`RX<{!?iuvuYr~!HNt_v4MruQB0ULXP$@t#rOM3`R1NG%=^uqXL4&T+2e#0(I-IzN379xJ%--^MRO+PFQ??m6E~=eRi0{(h9y+Pn=}u%#f0DCzv0rU|G_QLQb`%$o8~WQJ%eYFpHp=~c zq2_94{67SL5`RYGD+w*W0dAc_KL>PT2Min=PtMMUI-NPm^PR*uAL+oS}X8HTd;r zdnOZ0ehqq+Ec%r^Uvqb3!Hdb}n$)+3Vn|L#%`03a-%aWKY-y zoK{s=j^_@w7aHD}44jwR<9#;kx$x1=><9PBo=Wjo&I|Z1>jLvM3LX`g*f{KKnw#-( z{Z9Ih&Kfz>UBlUt!0Y8Ks8nLvBhwkN$v++&Fc=q5owb6G5!5YXEN!!%t2i%inJbLz z64L&(BfL^2fl%a z?3&GU9Pgf>@A6*SRp(8#TcP^SITWe-HURrgfwrX|Q+XEtay?~MQpZ5Dq7XnF+mw8k_-=_0(~NA?^yJGCeGlGipyo8R`(=erA;x990+FY`|JHd5{( z>agLPD)9lUuVqe1d^_@FzV)UJrhi(GXPf!Rp5F29X3l3Diu2uTps}b_VigZU7tUIO z?$zBeit(MJxiiW4z4LIp?k8V;}CFQpWy{vd>*l*)q;>TBy&< zSTFcy> zwK}gmS0CxmgU@Pp-1z}~$IT->FVJrDN4=9DFeUGJ*XHcWzg}W)CHaq&mYrSE{&GcG zcPIPIS1QuG-SFQ*I(JCGZ&iES@KNmF9{XWC`_Wku1GgtJPNY2_{S;l93A>>dv+0Pm zEpzY~eVu~6NOQ!)tu5eDtE-)+*BSPFZg8xD<5#gGI9AVCpa+ro9_PScoy^4pX4l=E z`Kfm`%m>aL)9uzx9cetnXGdCD6Zj7N5*Nlery|z@K+@zB+?ACv$r=_sa}&w$@@VU5C9vI&d_Yh`)n> z!PRU$jxnFk9pDU^e}Vb8%;8hC)dPP13BQu`-sSCO!?ow%r_G6{p>^5Mg!n^UFXK2& z<}UY2q!9BK+ohHv!y8}5o?Cp@GVY1ow3qnvqsA9<%&E;!k8qw{18nKo@uj0Xbg$H0 zuN)`#6ZCV-KJ7^Dt`d!=HwiGt0~#P2>Z%?vB`}M_!GPw%e_3r*LPejXcrqE3wPWVvTn+^ zYw$6UzI6)Ug_eXai)e#BceS1BouBzgUN-B?q}jT&XSTFkz}Y_kPtcZ}oy#|0CGEq9 z!B;w=C-FsMe~It>c;J+^BFVGiJbdiZJTb~1rL5%1c*$Imx%EZtZl+Q%>-$cvElKui zhx6?>s(sq+)Zw7+Qf0%T>>IiN!mM;nMZ6ouJL9_qdY=;9i5w<+quo7y z{sA)XEu8CnnM+?#!?<%o|`&gxH^N^Qux?8oL7xMWchtDlrUb@wk{Xx4fvXho9I8)y z9hihZ_fgm9XkWhVFS{ln%OLChm;JYo(S`wMpKs`2BlSd)=Y_xFQx%ZG5B`jN4Kx_7{=ZVMHNsMI(0+pKW<8 zwkKwFkCeb5XH*(|O6ctnwq073Art+IXR#TS{3n6sFBMMrACX-?xKnfgiE+v~F$ud6 zVos)oyYFN!aaN5_!yxwu6J@WC&Zj_kEezA-o~h>-EOolyd%(%r)=2-iCqC08v?)5q z=cu>AJoJ#;G_(<0J@;mFieLPbg7x;VubBEYY!%b->9#xe6r=1yndrV*!4Vp8-@ z6#n8!(qpkiLQo~np@yq<3WyO zeZIK7m~p<9@xFy|pUwCeVSht>IOd+vx)=KZMKj+TCi;=Xi|i9cKXQ1L9e-b7TR{EW zpr5J0qwuzGf=g@)2K=VB@0;)Q%?*5W#rnN{Wg96ge94Qg!@%`U0Tx47Q%hOF+m-8; zvIg7_QdWF%KM`(c)}?RC_(u4H+UH{5SlVsu^~CP_Jo1y=>6$oX8Xw*2B>IsXNbUKYhis z_N>R_Ju7!dc8=aWLSn4SeU+2y8k^P(N^Bg3tedxjeKx$d9372?7}O&Fc8DGiTRjVM zRp_0c<)0!BVa9PI4&gj#wSW9K(eow(Zv*t?i_k*jm+wryWz>N2@6gfiOuc_pfFI|m z_;zCFDshYE;peK}KNEQ0Y`n+jR@F6|_Z^=xez~f5fcWJq-+ATuccEu@1I2hNq(A=~ z<4whc>%eFNJYl_pLDmu=Vd&sh8}F7yA86@3;cKAZE!1bdStxQ)p-45 z?lypb5KGdy+rY*=mVE)TC9i=EiZApWxX}+TRz7b#a5G%62IxnhzKTiiy@n zob*UyqWuV+TWCx)FXbgBntLKLGS3eX6YX1^=Ljv=a^7y~7ZXjD4~dDk0Dl;XiT3T^ zi!Q|YM)r{GO>+8|9VjN6(SEFozq5D-dbc^t-7R6-t`_sX-OcrXRsMG(TS@FQ){85~ zKAXs%AsB~DpJQ zcOskizqk1~{NGDFF13!XTCbj~ABv zA6kz)P|x;$^+>#ka`J@6g7h_Oke1kA&kCLGB97)|@NZ#^LeJ`@-NXwe-1|a&Tja?W zMPnb2mHDWGMdo>*uC*?FU|s9-K-p@QCV6fm?GIZ5ZM6eme|jGXzE6tdSuy}@cV7Xv z`GK-?1F$8N4s17IGGZkoYd1qPC7eU&-}qG1&;ZR)|C8wFp_fEOFAqWwlcATE0qEuD z(97;i^fI&`y$tn?3&1j#^m2Mh#3w=MrSIPJ?vfW85p~L^g zH$Rg&wifNSJ<+;e)UaaMyqGVQ?OyZcIJUiUuGqWEcR&6)ZOGc`mU&jq?z-`=irtag zjjlO&E#3WFJtnGEk1L7|yKT=Q`~_O|!BLfZOwoO+j{9~mp^n(Qmh4{2_xJPtjd$I@ z`?BvWx9$0j9<9Dx$9L-k-#r%iPTJit(09>&?d_o5zq`G-&)8n#XKZiSXKZieXKc^@ z8QZ(|Gq#uh8QUB48QZ(@GqyMBGq#ug8QYt7<@PMhhb7SUQs~;j94g|sg?VJrtwmPn zZF?Nd2a6sV#XS>6)*13Us>ohv@yNWsn(fWGKn!;|SHh0%HA^je3+{`xkKf#6<9^zO z+<$82PIbxa7+u?x!TEQk+;^*fuTj4j2Yz>sUei=wR+{aY9yiaC8kLc$M`z5Udizu8340?ipKX-*< zp9c&Hz|f%DEa6$&n@xTV&;HSCn-=rDnP>0lMqp3yo05ogQc;$@rlLH1ZAC?PV?||l zw08Y97T~j_S~I{`Mp>$bG`h&>qtsv9w3hOjfqFY=L!Q@>C+*1ZMtmnKsiPt_lDojexuTWF&QoD`+TFrKj)5Aj}TMaCDs z$H)4UPk%UbRAX3%oX20xFl2d~8CpKuJO6c4oU3;T_fl~W`qk`ikO?>BYd5L=?yYCl z{x|SD%rh(Gx9lTjPdtOX(6e`uulnY!DKKZbmz?uhgPu)_o@LHvsyQmZjX66e@LT4P zV}LoE5ty_0RrJl-ihgre_Gmh^`Vsa4a>ie3vZ(#+`QYzC#_#uozax#`XM?|EjoeLVR48sqnW27V_3OX(;h?@z%p6_dK3WR7h%#dV3Tj+7C& zj|ASAnG%_grk-G#)Q~aUKEkiHxB47#jLsI3Ds82%SB*2Z0{N4hlZ5V3P* z-yu9&{zLDNJ3d(3Q)nUH@OthA!v3cYU4}(;1jH;YWxrq}W~tqhcfJ|>x?JwDDnx%* z;?%0jwrhN)0A#}gJr=@ zmuwnB@9bmGwIQ|nCZ)gr@J#=CZrH(U(91mh2Q*#FDh=EPl#1;{YWi4LKK++HV>9+Z zcAi6NuamK(ax z3OxqzD^hLTKi0J$eUI{yKsV9<-rvG|wIR7TYE`#Fe>F{7)!ULz(W*3bNi}PUuM53d zthG}bX0Mw2FgPd1`lOocp=EiW!F$R#99lp3LEhE;vsP6LUDte5uado6Lu2FIrQ|n6 zJvtX1LSl`{RJ9G7ZWyFZQMv`@^I`E-Vjjxg;kd>U%TTmxtF%Of_5{wceaE5lvN}CLz=VN8mCoT(lzddLT@)l z%ehJVG@E-$NDmHjW(E859dx!{#!=#KG?=s;>`?Yhl(LPF%^geHdk=lf4D{_g8ou=j zo^tw^LH~;A->mZT?2ZyGr=0$&=S4izKlRL=RpsOO1N3eT4c529U(Co>Q% z%=fIiNGJ9n3Ci!P`J;%y{O_~b?=JbmCAG^MJb9{e^_^I#c=CkG) zOYsTfj0$di%n?iZx3g`mFFxXj?l+|z@K7F68Gr7nNGVTqG`BrR@g_c8gf=&&; zyaRI9HwgQ<2>65rdpZ1BmJ_S49@}U5gw^iM$)X=pzdKT!EHSmt;YX5)t@4^F&OH)y z$#R`D#}O8nC9uhz)2s)F9oJ28!8Z>V4WGciN~_A_4wXW|OHxBq@IE~mb7|E zv9XqXEhL}$c{nxBxKm!<*`bqkMMDNZkUZhvE%?_Mc3>t?unqO?mo4m})u zG468UcO2)bwa5-ZI3-VbS|s_5je_-9y}=6whGyN6C48JIYpGgJ@^zdwfyax>i@^UZ z#-Wh$mYD0lE^Ow>X_SL!qNG=tF!bW`HBH#SuHWM0C0h z;GxA7m(|UfrHefmW2VOL)(NhooOPt)M|ihl06p2!I;Z^;~+NU-zJWp z(7|P6a9bbD8oXQDma!JT*b#z%p4FYjYXbQ1NV_`z3-MtJ#Vve&iok3E4(}CkChMQr znI}25oP+2CD2uJ=75IAnz-y?5c`=1{q^*M%ZL-YQGWuk_)`@SX>|5fp-0(V)C*{t| zAby39%lsAm2#wgG2f>4^kxte>>5uqiiCh_^Yx(A7Xj|&CP?w^CdndT0Z5g{!q*69G zE``weacE263F5ajK;J?9mV@64=sSqt(ksw+AAXJX^;6;3uH_89R?E2(ZUbi`8&b7! zb!Q&(0`aT!K^wAIf$*g;=0P~~VG#2o0={J2Z7aGp@VP4<}n>Qb7zca>qXxIYH)zjO1 zCg%yUo5xp4&g;_h-TPLSbPLV}zt|sVS@7BS(UxU&zQZ?qki)vI#@)dlQtnBTb)^L# z7c1v>vSxVsZDpP8z@FR68KvBRmdg4hz5^Ecr~Iq&33)GTtHoT>E%iy+(E7l=s!x0% zF8^M4TUhI*tahD~d%`uB&{Z4s^g8yN!%pB&d0gwt>*<{@J`QpxTmyT$a`1tE>PXQk z=f+C`;0w^g&G1CI zW69u&;yZm|sZQRN{HMc_o5GlDX4Ytvhj}w)nB2c=c5W=kwmZYrJXhAHJM}dqhO^G^ z*5jt^U8!|RyuIg(a+c^8EwWZ)3lHpx=M`@; z)|N%s$otgq5uRIlC-uxGbq`vxv5go~Z=4JttWCN$*7U4pT;8*BOYP6vm!{Kak>RwF zX~n6}+Q+4m-u!IbxUIa)=lO@^Z6nQ1)wWH9@mqw13 z@=Je6x{CTY@GkBedA2WIMPBVHZ?XR9vEr?(ju#(5R+2kSn(6P0#MpTg*j7!t?laY^ zt$L$4b=8^T{8eujFIx3h@q$&yik-A&=U?01^%Ve7G^|%C%&89OX<68?EQ=SN4Kc44BV(e^nUo7&hkZ4l z^;mpX#pg-l@JnpuB+p{b$B`Wa^83f_sxB<$e(wXu*?XFjE2IwNzOjMqu!7}FHQVc! z8=ZT6=#(tng>AV}+cOfl1pgMVmLu>O^zd<*W&)GYhR}N1hY?v1qPHbpSC4#38itqGBOgX|jk8PRSx0m(iwU<+V>czZvv6uHDU#ooq?Tus(j{v4;BD5|qxC+)K ze!RiD{++r8!qX_RBX~a|AY1j}K)$n+FZ+)ggw&z~>=rh0~@Z0nhb$Ea8h1Uru~- zOsZeTJR9mk)=}duwn>T5%{F*l-&pp^$1-*Xf9cB;nfXe0@&?aygdW8XC{nk2ijuWm zvsh!IShLr%M-m>9iS5tZ(2m&SthdVEKKhVDk7<0HxLK9ZwUa%|X6&=s>#)Cw_WTQU z|ISCfQ+~@C)ZRLCmFWBS?lV_yqmPeq&(wb;X+s{jI&(I}@O*3HymyjDOpG0>P5c*Y z?8Kva-~#>R`gm+2z}xy54HvoIaPi8*!gfBzACsUxxC>a`PQ#B7JjHCGvYN>)YGrhNc*PBU4lr z?pxRNoqg+@l1lU4!znuyUO^m=E~l(>itmUlYS=wE;XC5XW4YFdv?5!rk(?qTkTz{JT=9L_Ol^9Lx{eUr=F27fR^9^M;Ci}n( zOT&#;Fw`uMV4`{9nthLnNBmS|y`Oc~`SqCRKH1(S7RkL_bCq8U1I%Y@U zd6+)5@x6IYbciDk4b?|B`mib8jPG|F=dtIBo6wNlmYodWN;h{;DU3jO1h48{X|6Iu zs~tnMA@>gE3?Yhh3GxevTQYk08~kmp*~q(-ye#-wZ~lxbJ7;(ICTK3vo!%S89)HM) zi65{J6FN&CZ_V&NA!DBGIbN?#xQ06}h+COs(@j-&?x7?0Yfi^6MR#SLZ2=yUJ4(?N z?Z@YF5wH$}*V)X8ia)kgbaP*i!5@)35*KjBG?e#8u{{$0*;4U-whcLlck{n0@5RRx znPUractk%V^Tm5EB8&LU-9BO~cZ_rH>6nUqA?*Us0_J-X`fGIGiAmt`SeA1SzMgw} zDJ$O}r!E=Gwyub*z2Mr*deZG@&vKgnm@Sq0=g?tA5Es<1<=8Sg14DjVP`NBS^jjyo z&hN^)%s21xEw<*ByH+-g*volBAv)sSJj;Ed-ZS{#e%besdMIK#H`QT-BA=9`- zcUnPxK|INsk-`&rIK^0s9z@1L)`^uS%OQuthuk5b;IRw;@JD3Hvq7tJzuJ}Q(+Lj} z`^h%WwVp+9zsf!cy;+bS4MQeO^xW&$o17<4D& zJTx%Q%(J=2k{Ra|##!l&8E1HqYU5%AI#Xku->qbvmpXIUcU7{NmUEnVVr=JZX53aH zCv2(smN7PgZ)Ke2JWalNpKp)y-5(fR8RMgT^E;l!#f$r0Qw+jPX_Xp&i&)W?DVW5UZR$2;8(sQj?9sZ z%XMPzU^j8VwmVldY+1J)uw{!LB-EDG@$jH|j_?r^+`O}bOGlzM(cNy#7QIUf^cJ*b zbvztB&tXluR4$UT8Dj=b^iWoPbHbLrkZ)uk>v(v`JV(sP%gfG)R%I`JM|t(#Ia~Hh zzT1)@_a#_7<(z5D`5}EU_%-|2i^~V0Yt>y|?ixlG;yzY%r+IdKer{5C42$ni3$$uE zHYjjklFk{6iF;bn{S%``Xh&q=7dxQQPgCE5h^yAO^V8OM?CSMBLw$~ET36@9HBAfR zv|S<(MvX*PLAPJ2Ylp^gj~uCZ+~dcx zF5JVnH}cMA(*2|GONcAGKf4zhTjoda^X95!qENeT43RqenG1vOg2OhyM?oN0hKXEX5{oeRx~W zUh*n`-`G@w&aiDLdDf6TV#(PhFD4`pUo+xhu@?-Z#c3(d25Ha<&*^4 z_-E-W_JPMvhR;a{hbDAK4&U;PX7Vgf%@s!4$sRABG@Snk{s-}&z<(V7N&F}BKaBq& z{3r82l>g!Ur*zb`KAe?WylJ~-+%wxPOMkFEZt1^ow=exq+o<9P9{s5JyZnA;d)&Bx z+ioBCZ{)qS>SFN^crVWTaDbFf?-E=ri*J7P&0-B**(!8pqB~o(>LmKJ<4SL)p*!o-ndyEFn#&Daan{S+ zl`(OgS+P;ZPM81BS&9pF>!C<3vhg_jyG+J%5o0OiC*$^oN1PX4nlvi*C3JyY>PofVziB9n)bc9F98-I;F+n2s1`bJ<{wWgUNp^CWcr_F^A6lK-+kl z`!Y^Ts>d~+UJN!gbaUfwGHQK0-*-t8Z`wK$)5GKQ%Z>=m)YO-1iH z4!x(%r1?3en7=`fZxosL46re=IMd)pn<>_>)9;_M7P^zZyK!xdwQ&|_3x2c1Q+aV_d-?EL9>+dyV=w&0 z%lORZeBy0$re_`R8i&vJV3)PAT(>s%!fU+n#UiVGo1wm~7+&Nl;yt#kjTwxCgYj@k zN<8&W#?7%Jk};WutZt0!mGoz_{|?6JkT^SO?1|(Yxd!{MeF46Tz1VBAJ_y~SA5HxJ z>tXJvJ_>hl{;uZ!9`QQU?bz*1(5g3AU<1QFLqbEsb2BJEmVfzn4F4K@RqT2fI?=IJ z+?V|hwz*67=tiM~IQAD+q`Bx(On`~}!=xdvP zeBI+smhq1@`6o6uStqP%x{o^cq6afW|H}S>wxvB;n*`7YD{nJy zHFB=S`rp9#+kj^!&pz`Q&wZxIL(R-*>HDb3l9%DJaHhhZ`H++|k#`DQ_^@%_t6M75 zz@enaptnNmw_&^COJ3X58L_qryYa?1p=D{ifp-E^2lK>Bo{YKV3yd=60%sXGmwbUU zT90J?wRkoM;A|0ExCG}|&k|GAp|${=$HxhrnE^N>6`cFY6M7Lij{;vha7rq0mMJ)+ zfwQqmXa+w41*f##!aISf6FslMDe`DKV^jvc?MXtuNW(Ui^*M;=n~Cu#y3&=@8_Ziu zUyOBFpChz93f^7bX{^JYoUI8T_kYH9_#W2b<+fDT%)T{P)?8V8zcS;aCGEDK75}rW zcdVITo^f%>k8D3GUcve(?|yCDUMy?2JRh+=S9~}1$T}?F%bI-ej0;O1vHeiiW4^bm z@1M0jE9>u4c~@`Srq|)Y>iO9<)7gtiv$UZ_}87< z64Ka6b$*rLm$RChK`Yc6BjZwjwr?%YV=bd64EJBGPyKC^hrP9&N2qf)Xcs=P5jx%|x|r?Iq3{Kv%WXX8)_*dc zI=BZ;run`&foB(~(;rvo7x{?IX z!8euu?{I#b@%zQ#Z+j&AK*J|wZ!oXfqI87v-RIv5e5Xl_hT)!^%YGX+JLAcV*p4x{X+L8>i82+{o{^ho-6f`4)3_=Vxu(%z7bf^7wLpw)oLh_4ZB~ ze~okFmh!6X+&IJ5F*h3fZSa(9(W>^LZy3)yDc_BsumL&7nKORSh#|S?0*_()y_h|I zC+kpZpiJtG8<00RCqjQN`ib118~TZ(b*V}}kspu0df z(ZD_?SJTHAkqXRL>Qf%yE=E6brT1;`_0E@bhw&q9LzIpJIL43E5=7@w!SmJXUceeG zb^kN?8VkPgJv$UbT)_-vhjn_?A?sMp9XVci%f2P3tLUxgPUPjpkSs8}I6rachJ|$% z(2hlW5xWHN#B&)mYI)D>vX=R>bIH3Eyo=sZWL9hm-Pqb~aMWeEI?_z;5>5Auf5#2- z{=xxO$5`qp>{rKP@=Sbx0y_0Tqn2)?tPlM`Xj`Y)4{%Sk(Z&kyEvBAeJLnVV*U(-W zX^Cd`qf@jN$zxD&)hP4x?5sEh;EWP4qNIXU2CXU@GkHd z*48)q(ugHy){SqJ9+SE*tAjdK9n+0E_C>qOslzuq9KGfsVj6Mxti;VMkUNpXJdeGB z{}%cgsb6FzOWARCzA~HVh^X2s;2dPn$*F8qUsg^JY}Fq3aY_%i~8( zG?6;SM`v`3Cw6y^W6{tRv;pn#d#6Lc)}Xh`Xa}9Rq8+6ZhyJ2mZt90uatFs=_eC@Nh+6m! zFfqpz47Lk;)mDC|^P4qh$i?ORluy3R=~QPTlv8`4$Z3{&=%a@yJ#=-X3!c5Rbx)M* zF&)}~FTJW`e*q44wGWG|tOHjvE(hb_Uk`_MS>idOk0wScj)(yqXSjr7i<$#Jf+;LBF)tTLf19ss5d>-1a$rUm#|egaJCtRuN` z<}M3ok5__ecPLB?44BkDWE$tKz?BJHl~ra}9&pLtOVgq%!`|oYP}k<>{##gAGyInM z;kvcFBYOw*2fvxJnS70PN$_<``Qq%w!-q|jwN1Xg8Gh7EoAhmNM_nU(_2zHphC3@u z(JxyMI&XLEi@iP4vuSRTPQD&lxeeX1wJc?b!|l91w=Sj1F27%-+}N1gbCa~HZTNs{ z(P72HLsQr9pRTRiVm!O{Pq$BMUZV29NB+oE^k>f%Tk+A&jnTe&>@X)-1i$fA+2`q=ze*1=)p#j*9>3PyfLo)6YSZM9a_PE zXly})Hi#z%t8ktVz3h%8>3CU;o^+;$G@z{Z^l32$KxL#vG}5%!=Ctv*!A^~ zxwjwseUljR9n_OfJtjF19U$i3cJA;Cjd4dmb_VatItPrQu=R_3xF=)9jCPBhUHxf- ztK?VKsuRd1LSvPV#@7zTZ9jYH7k@mvWBpraqp#UC_rAwh&Rrt%5%8R`Ju`Rbzc+ug zOZ1y74sCK=oZW7}IXcBO%``9n;h2>ChvVltwb&GGnseg`^bn@I7A{+OqiLB|UAnCF zHq){qcx$dH&TnBXihh6$xnA!oV{H(>umJw{42ZuKVe_tlzp5bqWUc$eI{u~&GzORI zxKiB1D~-XmwAuN8A?~4qXMnheqpm^|O9r3`Uzk1X;Gpy@>xDjg$o-YIYa8?+e6Rv~ zcm;ZR1$yv64^hy=V(8&MISYgyPD2krfgaAFvyFfFl}+}KX1B*Xqf$oQB=iui=;8Jm zF)8D3a&9~TZw%5ye09~bD(JxhJ=jcx6+NK4blKMFUFp!nw7^)(9LQh}L`7>uqM1w4 z(b~iqU|qso5?`Rk@sEv|9hgftCpuE*`bua^e5`~PuJ}E4aJBD03mtSo2LivF`5Vc6 zs02?%E22`0R>aS%1YfiDsFcd-&W-TkBT?0r%aFNUjpdGIUVNEs>FA(jy@n@P!bVPz zIZ#;c$QIvZDQ{u^1oD=NJSa4GGdheuI1@rJjL!yC+UzHN42 zJb?aCb5@rzzijYR^wWefD|9F39T^E%S1rMo&hg95E zvCKi=IuDqZl~o{RrRsoD+du64JgEBQPy{drv%kUqq05_Huk+cy%uL9gej*Uzy z;`@y1ie;UA>k(WszDn+)|LJ#?E$bK!KP=B!hRmzxoDZ2#$`FToK6c4REa4+31j=Ol zC@bS}ogNv2qsYr}bf>~m0sdYA8?6wWh&*7$&Oz+PGVfS(_hRr9Nk59{$7b-9hI|?g zp6_FR{FeFgTjobA^COn|v6Q~uPoKJg!OQ$;W_}z4*2)#X-Bby`To@jkQUHA{dU$Zk zBKYM(OI%7m{PJ4#-350oT2>Fg%&%U!Y$fw!o$yOdQ}bgT^P>iSi5#lv`)&FszlGlJ zV|?H%AbR6b^zpE&~UD|%Z8-YUSGpLZ4IV-&qf z`69{(@|Jb-&QDukWAD{rc4VZku+0n7-3<0*vM(2!GhYRtg3JDEj^OYU*BsjZKe6Tn zarmiuH}I^120Iwf+yD-R_R>RWPv$K02XmHrKzX6rzlR=wc24H(!1M_IxSzg{N3&*k z{V)D5pU;c>;m>j{_fKL=D)edCp6MRlB7Vab&wcOq?Mq~xh`cRn-WX`yA^ZOLp{`7x zqr-1$99zA3ckAs*^Y$Y5wlVJ-IoGjVx2|ciZt+{-J0`}u0U6YW4qMi(Osm`x9_5*J zvvarP%^2=HpU3>{yqmf&-qBvh*;?7YlHK@h5AksZSfX2Y$a~q#7ID915oM&D@1x%5 z(NWC}mMMjA0_WT)Eo%1L)Rp_?s4jcmI`PLi!oFz3y3}DV8@3aogIbR-yu?Z3+@@0K zTy%9M?5TC&?O?63hwQbsip;1Db{(V64zH4hcjh-6vT-Unc!NCg1+#=1cq@JnpT+_c zYlq?QrS8EEw`Ubbq-R-}=Oyq@VPf37Bah`Bw7CcI1h*{;CiqA`Vhpe|o9y~25S4181nbR{YA$g{bG!-xPI}DwMx;(rS;3m zQ!?i#$y4U5(8L^QLUgq9FZ$Vc=R|WJVCZPY?^$ehCH9Kg{$pEDT$nW1R`{KUjqy2b zcD)7okj~U{8nDYv5AV+M*|a^X9Pxp%4c@uR9`Ev|5&QcA&1J$yc06|s%Xuw&x>m2* z%s=;Pne|q$&AI1XJ$9M=o3JJAA?{3Vgf>}+rpqc8WH;b5K-?Sb08Hxqtz{ebp_JXt zzN)4E%iZw!=UYa9*WI#xx?8pHOEcPUj#KS#qrA*nYqfJ@?sRN>;lG`^kIyZ-?%;?b z{Lp=A0k{*d4Zv-DcY-!n0=L{DqvXuGv96-(^6nkrqH;^TtNgC=?v6~cE&beX9ln~n zOSQXUmA$Xst$cs(bnjE@y#d#TRROr9{)N2v^S)yyw#e8ruc5C8`L}~-(Ul7C_7bNk z7@xv=1lxKoE=z2DWn8HD@Idk3RsLo1-*3e)^cHMsjk|n4?lZ=n6Lw%_EvzwxbuF0i zWYYsC{ZNvoH_l`{*x%p-p5$SDofOG$SywtD^a%o=wr|Y{S#vdD4vm+f=&GP^T@raI zROjKq<|ZINse8#qe)^xncLX-!!JkEE6x4ZKwT^*x9v{;?<$rul8u0G-|BE`0!}$Z~ zJl{-8i2-9LzP-eqvz3{8{)}(*U-8YJ^^KxxpLv=m3*AKWS0k$n7bUn-svqu-jIEu! zwlZ?lT??G<*h z@0dvJkctTMxl?nH-r7)Xac?e?7z}g4*X`i#Ht;tGJQm}3bSu8OVai@!gSY75>lc4h zG9>sXjbMwiC(cZ{XaJjwHvIdmMq)olgGYbvap#*TNoGZ{xaW0)#q7!lrTmoc1JJ3WIj z?5yO@9L6wJ#xNpGjiLW%n)?)fTip9S|7mQ?)|iK>v8?0w@N+BLWjtjpb$qBt0FR8P zUU~U=CXzp2#xvq(Vw*5N6B*AGVxUw4FZaiJBWAQN`+8Be2CYc!6Wc^=o;jarFehRw zrTMq;Jj*=1@jJ&8T_)}kNwDbS`b;Cs}J*MT(_o4)+^Z~ zlWiI1$ zJL7a4<246*DMr^4-bXKt#|;C}%S>oO)}w*wWh3Rq7FE%ZJxSexF!d_*^(f_qzJw-x z_%6x*OMKaUoaI@lN9B*sbLZ;N9(%P?`Y*Ki40saSYf@>Fr$lJ4;2(dVS3C87(tTc` zG@Of$vkaafcXiETKX4;`NR)WlA$&{96mo9d|30tker?(RLHBtrSM?@)@M)g>0l3Q| zens%EP>JQUfcLVV&s6DWzt2nR`R}~X>p1!;;rkYNN$7oEo@>{%bcZy3?!dQ{3q_`PassUSIjEL6`5&L6^H68yj?) z4({T}zXI%Qk(-Qr$JREjE4cF@k-4^?!F4XnfjT}M0Ua9owNvpLXCBkddt(z*U z{E#+VXiM;3_-^m67V2&}*ZchD5LiO_kcK>PFXL2O0MBI{1RnPk;Gqp0>&}(n=-otR8-!sVCTnvRF-Gu$|F*_D?U3teq}Cu{$yhd~6S=B`QBy8OgrJPr&Ez@AS2-_wrNFZD`$-iTSP zWwa^dq%%g|d2Q2WjJy$rtui)i@Dq-57~|Qw16l^BI%C!G^~mb`uwRzA9ZuGV8tx|F zN7@1$azASG0rQb#@Q7*nJ4#%V7+?#{pF+NcIGz^r5BB?J9PgIfn49s8BlTpJmv#H0 zZ67o~6kI<{oDc_nUKxUGKlkgr@%E?3bA!V3$V+%`rw%`{0c7p}G`Q>>UEmgc3N9nB z)7<6ZTD;5w!Eb-u2JslgaS)&XT2kfy<-BjYn^#vOi-or~uYRa?tN9PpTFhVS_AS?X zjx`QKKC7MH8;L(ysy5%fZJB$|U#gLbzCd|&4^xrd(rTx7au0UrY-!t&=_Z%w_e>tC z?YaOxUQlsXhWfW;X!EBoD60NBcs+UpHhVVozVL_l(jtYfl)a45lOz*K zC8nNqh5O-$n)i#HSCZ#jyz@pBFgNO_ZCME|rXl;Sd}Nw$Hsz;Ce~<}R*70uTwB}Js zt}Uh{Rp;0F4jn_HqP-A!1_MveA588G_{a*a2`%M7OIgV4Q`kp6j7+-^UiTjHCOha? z1F&vIWmfkfPG&8 z_BLP_nA?E4BL!YfyoHxXY3|>_7 zf8_qn=16}&^OpB6$KaGk$Cmt_3h|4`11^+r#+D1&{Xdd}z+vYS&*< zd@Nm`srZ;ZJdb=!YmhdDR!gx(l6jzL6#k-UbVraz3&}UN3XLZDd!HA(QpFEK#__!qvZv7Tu?zuao-anM%}yv!48X)L1eQOtom==*H? zF6X|vdemp?dk^&dbMxKZ(*IQM9~dR{DfW{4?D)Ajb2RoOKOv@ob1-ou*zeoE8d*K! z8B-5&8C=dvQ%}jF$m-Iqy4z-EuHyTw#=I6DU2Dt>t=6C|t+sAjI`h=R_ahgxZY^f) zErGG0#MsxaoHo4K)MKa4bm~-VH8P6K^|GN_&np*ulY5Su+<$~VUSN(^)BZ8$M2&f9 z<$h!$Z|v~KKNB-HpLwtjcm?Oaho*KboUhJlRddw*J!6iVhpPFp;Les!cK(I-3)LJS zaj1E9cI(4@9|azy4x#5O)uHA&<%Qmb7nV_1klvfkzgIFu^Xg>=y)&<@RR+Dg&0kb< z1@p`G0{c;+d+En<O^`}ew$iv#Y39gmM3;EnHw?$%i{n^+@s{PrTL#I$&Kj@ZnHW5=vw5cITBk2W6KIigjY+Qe?-!Dp(Rd zTLc#Nz3<;?Vn5%v$B=k60>A8^TOM_G9|X1q$iHRCgnhDTlIKtG2$fHrwZxCss<#;O zB=Q@yme`CuX-h;#L2kHg9!A#A{Vi?NpIxPo($6sZIh60?YNsz)>1+kJtu3++))Sk7 z{gmkbxA6PlXs;tJ&n<1)t6QeYe3JJfLzW}!dF$JzHJgy{;4?DbE8($aL$pQ(TX^ks zfnUwRL89~O^H%@|N^hZP$T?KC^#f=^(GRd*_@i+TxR3pBnT%(Yv!_wvFu`*hsf9gc z1NoM)Jazso`f43tgxq21ZI}ldzTA=*w3SuuG!I3GrhBAcCdSN)4QvK>&?O_at_I*< zNqjR4ywlG6%(61>F0oc>#4ix|GqFFeVSOlIefT{6w2X9a^dHcE8jYWBIsNOgb*JO!9F?lcT?<|H@TS5%?MMyh zRGn?}VX;1EZm`=Zzmwo$~ha)#N=4I|U z4lRid731AihmAG|K#4(|W>SBR)K6b419x9Yzk~JY>e;AgtE@SJdL$OAiF%|zp>{V7 zqD#}0FU5toh2*jO{~FTbD0?5RWl6%D?m&kJZzd_qRi zj?5=3_|70U{A~2%>wtChb=*$^?qjf}?KQ{vw*Zp`8xl)TO}iy;%#Km~X5+j|a45DO zQm4TE0P*Dtz(YRs`~i5c7hO8|nENii+$UH=oag{*`A&R}E%aZ`SdX*Da1M%py~G+f z?!}PtHh7Kn$MBOnNuT2#ph-=((>Dxrl6!q=pZH}i+AN5H)7X0Upb`m|AfwGQ3 zd++!@-d;NKA*DaE77C79LS;ejH66pZcGmWWinXt`6nV~CoQKZ(+#P3G%QrYuvt5>J ziIMU!F@EK{-%oK_ZZo+PhRNE|7rXMeK4?tNN2u?ce=ycwfmQk^V}V}fDZ$4}z&8rq z2iE`@4}1ZhD*G{a2b14hFK1ZM=+a}*smG#QAIzE@hm62ERza9c`tX=$tV0sZ@%N88 zySX!?rl~#D>j-rmI;$_kMx(lyY(4s56sq*dLXoYF(DPrY5Vkc5Y++nxFHR@sjKK1j4|~zk z*KRB`m33S7nvHU2x8319FLO%hZVoy{;;g;q+m3Bg{l00(>d~LnKT5iq^Z@@2(>nh$ z!+jK=`mDO|Hyv8Jxv2w~eA~m_zD2sr0mE*u8l_apq0BOU6jzrpeg-p67RwH;-Pgb%~v-F&A!UOm1Ur<}gOZjMc5^ zBIPVR%(WUixVZev?`5tad+yYnpBLHlaK3%Gy6^W6Xhvd|UiPlmcvl>tC*fm3`O?Q& z*sdeqhQP#_lmn;0b_1!*FE4$c3!O-wgSb17++s#cO_dmPlM+`R~y^+@9lm9zE?IvY{2xYGWfsGWSK3``+07@{$SGr=CO^n z#>DvrocGI}3^yZ7Tl`*VG(+f_F{sEu{uDWd`~~p(vg?iU!GC+c z$l5_(+qXAbn~Awibt0 zRGNfP4Mr>1p;&zS5TsAdy%Y;Aw9<(Ht)e)9Slh=A2C$kCryxi|#r)o%ea=a4LO^Z( ze!su(@AdoRzRtP(>|yP-*IsMwwbtIda-^k;8(g~BX^i8hH;%M)ah*>W;Zc$0ynh_r z|BA7S$9)Vs5bhPDf4uv!(Lr`*HjK79$mphyv?!;jx5V#lwpFt46IrQ;W=WFG09`b(JKA>DISHG;mU5H}{BB@}yeqkMy@_Rf&9 zM*?}^XG0eBPwc$zci50o`NXu$$|te=1=nU&Zs+|e-V=D=$~&?GA9_aR?|H}mkKHSy zvVr$4yqmQ_+QfemIj0Zf)R*`Q>}zGS!|kPgWozrVc1~c%T3}dPYVT?2!~X*QV-v<6 zSi1O*X>%4MkMP%*F0SEyDencmFXp|P_d?#6@GiSinD@$QO{=vw#%7Joy$Lxz2Rmic z74BKH>Mz<^gYccbn-I zo<1HthuL#~^tR6ci+ulXtjK?`=e0(3y65Ch9lL%mdon%!x{mif;9EMZ=w%f2QuPb- zz#so;9(a*o{8@@2#yEuTP#;Wh3pouhb3fV3^_)FfKZEu7ah&b(-R_Fsn5nQQm4)_?zq9x@ktO6=l5vVXU$mMrUQFJE*KF(_F?Qbf zI`{j&u_p2e-{1cSwvB6v-JAO%v3uAadWqdzcAVI~WtrV#_uME z&TAIuyoNaEl{q;zMENYvd9Cl|oYySQc@1&StDn!F3ClUJIuq8Gi96>tbPDx+cF4Ki z@^a3r@^+RZzbzMc&g+%vywY#{GhVf?!Iz`6Uh5bpncH(c8cGP?mq?sEXSlZ}u=ZGm zz7@Z=Q<>EFOROHHGxqDzUnSc#@9X2%tu^pGcYV;cF0B4X@9Wk@Uf$d6Gc6Y8*%Pi5 z+S(0oEbIH>@ZI!5N!!i9ay;1P^a9(Ljsx43UfyC4wh=trN`8Y*;K1Vp$QE}`;bPVT zx<|>k8?=2p{hTY|VawrrhXbP{TF<0V7XG~{aZz};Vp1~E`TvMa+040VkDT++iZJ;l z)4xx?bYfa6v3rF1Ue7sw+WYiCz|_Sdji2K{9AFzOt-sPyND@%!CGe4L#)v`i7Mwx|b>>8CeiQ7jku+0PFP(#l!cM zC#UyukWypZYQaJo)#WT6ttbkwCz`=ah9=R}AYrDcU^YuC!)*NgLlopAM=D(tiA7}=&~!kau3;OYV6BA<8|3xb{(A>yNdLm z?-p-Vd}<1FA(gq1hFzvlBvjg^$JRlAx@X}Fi~)M=y3i_D*Y)+-^M3B?v4S;=u`0VJ zkhdjHmo2lpEU~EQs$Xv8c5qh+IggHowlla+S=^Kg1oF(3-U7R zp5*)XX?ylnPHW^YJ^8Og)XzF_Hv0|M&CDDU3HJ#T+i>36FuvltJEyI6(^I_k>1)G@ z`2A_8W3FlInCrB0CqtV_Ag&la+GOBAo=`d6;FFU6Y;{R=ZL33~Td%6VeXYSyT35S> z=aOjw{G@fkzi|cS9i-hxTIIB)BIGvyTPE8zQX>}kg~?LT4f$!+Mu z)zX6%8}0Rh*z6E+G|iPhOkeKw`hs5U>%*OTaH*>Yt9|Lg(!(#NUFqR@JdfUX8Eq>@ z+T927DEqE!q<8KadqTZ;vZwdrw|QV2^e_y%8ft0l|4zC4x!&dOy3B?#k*~jc?43fN zl+0bjc?UgZ?vMBNE_3U=y#HmNX|cIH|5wV~CB48_aU9qddU?O?!8VQO$CSD24hP0q znLCBD$es_CxtqxMzf#^Ia z=YMDHb|LzqwIQKr#m8=Ui+_IYR^p!*?pExB8~=Q3SNt<~Pj<#XW9PQ_IRx2XIG1yU z;LlCyj!ndIG@yXafM@I4xZ~Guoc6(;&|vVycS)Ba_d>UC#}624S;hHK zp#;NymF&^Qrjdlb_L5VdT9M8=q=|bPMq*noB+utl8eUEhIt%J}m!4?Q5!bCZ4-|DQ z+`WB(?s_%cujs^zU%z$tCidOrZOh=?#<0DQQ~pbbzR53m7vrNoA=?%tB!-U|V#8!_ z8^-U*SQAzJNC|gQeeuqfD~KB%auWK(LG;7J_(Ft((1_I9^hNl>KIcS-W|~dIvdt## zvq;76eNbhC!|WZ=9mMoC$~Qn;x`R?@V+#)H`QHPtEs7tzO7Y&QElXJs97Ny$KI7D( z7!Ppo!aFqf72s`P-{xWb8_S8gj^A%^A>ZT=k$*z8o6Ud4NUGlk8-6bTOYw&_;g1VB z!)K*^)f)! zC)`RWImEcQeu1=D(;inAuH~uyx9?vc!vB%TS|*9LTQYh|*M8g>bTShkK{oVw2|fb( zF&^Q3WZB9tS@ab2nb@+2|NEhftNSF?{)YUM`G#J5pWv$*cmY0~p)H2^xO%>Y=43>M zZrR-SeSC}CS$F9^!M)Jy_76HXyvTZa#mG?YaOPXPjhRo4sgA<|bf}=yYS5R_Q(rjb z`G~LyLNCK&kF(x746XQWX*ZvG?1IB0ENfDPk4%HHd**;q>p zrfSa8lYO}n{3&)c6?)YCNn$MQ7?qBX*s)~HG8qr(b6xh9@sYLo$Ucpa>+$f@F1%3Q$HNOBu=m*;M?+m9>9DH?Mhxo( z?I{clC|JAqUT3YFJ}8oq7GC@6^1#}@tQTHOXU`gRXoySe^Mk{{q&=QrXGYgP<@i0yvN>vxa+5>+ ziF+>F|8G;}4vEFch~u4&fPb~uv+@2<*;Fk&z3fr`&7SUilr1ecxHi=gG|Af1o?#nL zM`embN(;BA;NK{NPln*b7cp;@mv8MU&>wyh_SpJyINf~5%S`1dk}b;$OV744X9o0K z)z_67)`o$NVcJQO3#qZwsH>XqJ?&AVWeZ0pvK%;SJUH&K{KMb_g9qRvlMJt*F2SSv ze0!PiM__&(15Y~bWq2{QDl>xeA?EWO($(MX%)2t=g)75Cv0Px(dhUJpbRQSa5g!ic zC4D{~oQIxs;q?0^Tg_VoTv_bn@qXjt@sGeZ5%>*rxdHe?JQ=svA0waW8~!u1LA-43 zEAsWb=b~ENG@R^?l{wq;orxD9*Xya+%VJtdh37!~$e#TfR zZ5!W&-^YM03D}M)PYl$r$WsQ+6U{p>q;pnK0( z%=kHDW^qDWHFi#>#qRR(@EM-AEZ@|ZuXwQN{c7HYtBc6dlBMOO8}udm*z3Hh5r5s{?fXD~&{+|sj9W;$&cZaS-p8@yEJ1m-0I^PjGLp z{od=nxjp>O!DC}zG#7L~k$7Pdd;Ti}@8o`qF?=ZpSpgrAe0%~OdwamNzk4dpEuF_8Iv0qXX{M#RNqIYdcFq#siz*vnC<0G4S1LdAk~8{x z`VK4)?;&rmg)X$O#(rb1=#Iy^Ru-4?P5i{J?SSo#XX53uiQI|Kox=D3BA@t%c-rOt z-8ew^e@bi!>l5tcsSkGMNr{yVFb^oEb6H&449bbWoJs%hBK>&0SGI*Y;@`w0DCR|d zKN}lcD)_GP@OuaN1+VRCp>X>lXsF&x|1s$g* zw5c%=J@`+-a5(u`_=+ujX|cZndmeQuF5x`+<>?3o1J<6*-+$a5Jtcl=bwL0D&?swC- zLjJ!6zm@Ov=T_#W#2%$>(WTOS*dB?4Z6)u*^AGKFXsia@ybArxMjOA!$k6|MzJ(La zM$P>u+J8j0H`bFi^s^~Q{P2XrsBBRdk3KJFKK+hz1|F(;p2!@}zA!x!BSt=vyCYb) zFUu~N$lV?(vBpQ8=zhk^_I)+>D`-;mSO;CIJ;Pf2kL*`fT2C9FKX;Gr5dZJ}4r1Bl zG+$Mh;<>*WLT&-SuV+=EN6V+IxwNrQ+b`q$p)tLieq>;)I!qn1^JxE4C1bBx>l);d zXdstybM0U5z3AVi%!6NX?`11<=VvQ-vK5y>D^1|d-yingRWn#;7qY%~W1HMQ9(yNn z;BOue>!G8b#hBgy3wI7l7HZ!A3S4NO`8=x4;x08d5SZp`jKR};R|TQVuDxx3i~xN{ zrsYJYP#61~qlyPhBW+_KHFAh~r8P$Ja`S-ASI|A5|NTwYnwB#yzQEK^V){eb}@0~dK!M0@&5hG!qErN`QpdM zP|vCKse$=q>45*Yd3~RAS2(Kjg7-@C-hSceUgo~irc)nrXv2nH>h1?c&s~{! z*(goy7v3CtpL`nsEj*Q8L!ZhRyGr!OL!_~1aEiw3OpD*N*e^*-vG@(_I^G@g?*;o1 z;~$K**|>~Q>_^~eIdkki>ec*`jiVhJ{biEc=Duw9jDyF>w;1ClY+^pmI@qh;eLWl< z4iD3J-P5hHzph8V0`eVNEnBW>ZR30q$tBs7fAN0DMx9@g#=F~28hcZQv2SH)teF^I z=ANCm;5(Ye+#gFh-7T?NJPUts7C36EE{ry>nGvm7Y@%7|j^PKt z0zYBw#GU-$2gADa17|{{XI&eCV{^dd-C|6x#$q{jRPaB~8>8OtI`60sMDF>kbl+p| zLDx6wjnD&YW@oLHO_vUjuxD=B+{)7;UxoiKshkkmOJ57vbJ_wuXa3U48;jo|r`otmFIOTqFczLn9ZcljoLMQJ_z{&}zO zY*a>u6C1;SjoobfOpOiWskqFxk|6RXf%(n8Rqy_6(VS#~bT^+5>R#-|jUCI|o)1T5 z!w+fQiQhx~umM_s|2Fz~KCl?h zcp1(dE0cWPa&}}`u@faOAlig}YgTQYE*`45&V!%15O^0!3aa)xU!B#p|aoBsfQ>ACVPjlu(5p%E!eWr4ZdsgHgaFJOzGNQOu#ljubedw!+ zfqm5Ei9h$IYd(l=A_PB5#LmQiiS^_0F(f+3tWlh?q53k?-8oWsdZdv#vTvIkH#_Ao z9m|D-nK>c~~`4Sm>i+9E+1P^L@)I<-BGMg?$hF!xPFZ9+RmOp!I5S#AV z@@zV~)4r$Nb<4*o^Acq;(5KwGCq&$O^X!`EdA_w_2eIQ0&FwqVL6_Zg1sb=RNc}%M zmTMiyPGOtJA6KpMG>+N}qwzi88{bdy{|J3@$loy|h@O_jI48q1@C^ooc27qASWX|n zelZw3^2X|`+cvDeJ!<*h&7&fl@kcEUEL{;p7YaeE(bb=d*3WfzWoxhG`U#PyM-!0M z=y-z%N8VlC$K}nLXSy-?=;2Lc9XAFaeZ09M$bD1Hqq*qd$cZ%MQ+@DDZPL#(;7b+` zbo009v-ApmE3^DBHMW+1yoV2Y4?36R_9gt+JSj!~p*L+%+K)&pU0l$1JAE&MCVbtd z65ObsQuM5c$s-KP zTc^%mP@S_pnCigiWsH+_dzDjP^z`Ap)#gu${gZyG+;sl`fN}55{w?_$!d9p~us)x9 zg0{t{N;waqk+{Ed^w?(3(W&VnGjE_?;8Y)ob2DpK%HAc}x#!G?))~Id!?)*Kdc>yT z(xYqBm;hXzvI^Pt%k3_XT)xEl!}LM=MLGH6aV}ePgYXW{-MpdLG_T(dPpu1&J%2)H zPlRGA^jGEl{=WC^l_M`A_CtNH^!mK?IDMW>-Idsb{60g!oqevS&w|nNM{n)49lG$> zfbU(!x@kuIx~cnF5gY#py-oUB4;<|UCt4fZZ}5b8KJgd68DxfRie(<|Tz+UGDd0|X zc_g@V(^6vhk@gbnfSNe^4ZHMf?JPgze2PkN)67#e{}|6Ck9Pbx?G)1NIL|rD`upu( z7~l>$sh#`X=RgOUb!Qn zjU^*)4S#MwmuH>uJN&oYwjx-mh~Cb(TV#(Cda#dS{M? zi3b@%|9bQ5l*!%%4ae7gE^|zEBzxr(^~A4Z(5>V11^c-?b*OL$EaFjms?GP2V=5!w z*Ur1v6b1BA-^EvI>{>4^Hk`hT#{R}Wd|TFo{SB2D?DV6VcjbAJJZDpfaANrfI0>09 z-``_@?(&V;F(4+$@`1W@tncrCo;-fpl^;^}Y04ruV~O7lx5@t@-S9zVdI+7mjQ<8* z<{#9dG3;#~t8WIluci;Z&Eu``oR2b(|E}`?#yrkF!Cc6sk0*ltoa4ZL|3`%Vr~fAG zjP-Hn@qs5KyQNztqEjTHTcKZV3$Pvw5buv)gSBLq;*pq3oIzHsxuf$LGZK*B)!&_# zJqUiDiyaub^-=9xEy$@-&exk$j*Y8)UYph)=h8+K>Cyvd1(7MW7qUL~)^5x*yJoX( zL&HwN&wO2`l5?ds5A&#F4`rl3{*ZacdEwE$tmAc-z>UZO)%!iYGf&F+&pfa?Jp8Kt z5M?A2lxH_>i=M|;$nns)0JH%x0Bs53eX+Nh^pdpGgl zypxSyse5o~V`nJy99Ng*?%Mio#87H&!risH$F{OBdpqg-bANW%joQoF**{l)ZqWK^ z6m;Oh-ug9kPQlI`Lbj&FeoNmp*N@&di*cNZZg>gnAXhhJPP6W@b9!f?H>Y1^+-e3gBQa=*{}c8~7vNO66F?_o#y0kLbDvkKd*u-n!sj?Ebo zNjfzgUDMCm)iNOge}ZY(nHHu%K2s+$6q~B@`+ez)twViL9!tZ}-VF6cx(#!3^KAAK zL)*hu2kVn5^vQ#xbv!nM?ck@Wtpgew8ao|We-CdK+*`2s4duUhw*e;_2gSHar_o%j zqi*R$_2{TIZogXZAXbn*w3of7`ch-VDZh^T1cT1OYh(S>hJB*R!$V)zXq$$bO4-WfdvyVMDw6oS5pY4)=%(puBr8jaeu+I6+qHoe+HJ0bMBM%ry;KC+* z0XEqSqr?!WHZva4zDDVGpB;42`kL$v&_! z@rm>4TtffqIKxYLKsVeO@6$my+$o<i^KCYhRe%#*XMm!-sBw7!Jlu@`u1t_1oaE*RXlQewZhZKTC&8T;3%KVFxWtlLFwuFtQu*I&A; z%V)ddkYt-^D@lYWb+=Eb+`I6lhoBqhw8D1I=iHEGJRXEB&0^j%zwBD!$~4V2c$DTE zKD9lZAEdorWuiIO&uQpO_1?U>gR-I}d#(<4u>yFoWT$Z!{cJFOJILJE93D%b>Jqo- zZU7|@esPpA?kNW4awTO>4`EwLIT@!8j@$8R)1Mgew zYsBQsj;`-zb`A}TjiOBtPRkDjr~54}mddwpagMlQzC2Go8iUdSX2Vc$v)yZNe6l<5 zygJt3!GGIV;Br=c;_`*Lx+Z%LeNZp;&?O7E%n?n4cjCOrEE@CdLj(Yi;kwXV) z+pc-<)L9pmoORJvMs!#KzY>j95MLpjG=rabn@d{>vemP@;NMxdaqpl=lrt-}$A7=@ z3XiKRgkJ-541BIaAI~!GxL^B@H}8AMT?6e|dF#n%fBpy_o9@YHf6g8Jy?Nkd|67;6 z4;!Q#bI@B|uTw_r3BQhR_3}+IC%t|9AHGR04+Rey%va3|jl~=M*Lr#cu)Ar)Vy}}X zKTc|A8skNp=I_AHG~yOWla0wO=bp={JbnE<;JubS;sZZoyo4Y8Rp_bx&~J!uxGj;r ztN|NuBs!9hp zEX~QWqBRp)kP40cB^=GNbCUUpj%R6ZEVi7!mD6jy_=lP=%1&d)xAklIh036{8vKNU z{VHG=pKV}1=JTErY|IT|Q)&83pRV~>Fy7iCZM(o##`@mp0hQ2al}Dd7)a$nco{Q~R z_2Bp4V61coj_6!_1|+X<>?>WR%m3Hu_mf`OgATt!d5y8l^M=N5^v14^be|6{vg5+u zIQp}K^yB&2#QT!fXYi-8-|_Z0h<2)Y*SP6hTFAy3bjnu2egoyu?QNWa=u)`3_^`Xy zYod&Avk`7xzCXs7{=au3ZsXhAxC`55iJI<{`>XYEA~4}ia~J=Q&D;ht^o82EOgrTq8j+(2(m zyaN8t6Yi^fkMpqef%Y=DpBfORl+ek6rGk;2F9< z#QMo!he*bJ4&Cc!HzuSLM;fbs;HVLO@Gy0VPxKs*K74-<-BGblnkx^+*)so~IFL%l ztG79@7JRj^wjR_2uelyxeLDV)<{7kbH~nYL*6TW0Gz{IWb3RwtzJ)$!d3^jL&Wy9X zVzr4}n?m{Bh0!AEraI?u7<>YKQ|r4@_yp(q!efw0$QAM5gZLAy+^6hd;xT+0{hCLk zWmcA^#)^QeQD-pqHEZQBS3U7-4u5@TWzaQ4tPG05=VGT#i`EBEZc{(&kVC72&aM!4 zR`oSr7WF&QyDa)LxQN3m_piEkpsPIm`LuW)_>-J;|8tJB#b-)vDsVp_d~TCnp+Ee( zYj3;o32&8;e3>(+u)To0uY8=|fv#b3y3OUkgN4^CW<;&dpQ8A$71N~i)CWhk^~9^c zxBb1VINNZWyYAH)NZ@AKs&914gJq%2lrDKNp>MSLJWn1}JCV)U$duQI=Lyy`@$kGk zgjgBQ*iV!^u<-onv}WLmf@{H39>)VZ#}q#yeQghMcBJq>4t(iMC(SkDZgys`pT_x5 zebL3RL7di4wt{t`Ip=z|f?%|{BO%%ZY~ta8nhh$2@t!(#|?hesE{6Yd?5ytJPyV|3gPMk8}e2?#io9n%e5;@6vnL$yV_j z(ldNrgMRH|K8v?lTB9$|@?X5`hrr)XUfJLL`-X%AeA#(7tKS37ChUfjWXC3tjd!s) z-je6}7i2Vu6*`m!Hjy@^uRZ9s+uL~xAz+t|k$8JkNU<7@)_uS-{GNigG-59j zfj>&zMizO}->(lT&L9K+y9dv`7c!atZ@c;llt+$Nq6+{e_1pJUig;s-A+ zXN-+sfLG<(_=S~Q+<11EXXVKL37?u`eIO6< zP5ekYt85RlaX9?kwMUBLBsal-|bLy55?bidm`{m$ZS{h`c#yFY-~lAEDE_pSsO{AweL%B-qqm6Bda_+w0l-QSew=iU; zMG~PWKgK8t+{}a~#xobX(xfMK`M-6xuFv~>8{158Y`c9c&9mb^l5aNsn-df_v~F(Q zWLGYf=0^7Bb1x8kvHzPqH?LujJo7{I`G*Z%Yo#-RTjTuhuCBCfFYPU*_1Ifg37!r2 zNNUVwXVsIr-uh|rHSsywEzv#80>ZVs#`O09{brYYhLWX)z#uE%mVU?M70elnzp6nI zCy{!*p(l+d_}y+Z&&ll z)Ho*RjRpUq1k+ zhsfXCeh9yg4&v%{enTR0Lr-%i=gfkPNOZ#VC^p+=*-k>Fc`SNBM=%=2Pt%Nzeh%ZF zSvkq>TiS~Z`05LsWl!wZd%KD0VU48mEmph0Xjm({^F1~8Q_?hMWz7FlWWyT%Ywq;6 z55m&elJPE$WlV8tEIir9-tNH`-ya&2{_3-Z|7-_Eu}t#?eXYsTk3Czw)E6k$I~oyxa>s! z{*!1=YfJ1g8^jOdX~y;${mSxL&xUnAV|TmPM}M7`i~nDJ8be**;k#h?cm4fis8eGS zrjO}*NA89{roTTIoT!e0Uikrf_TumF2feE=Lm4YQ#sBnFo5m{>W=(Mv-;CCW7t%+4 zFQe`ni?_7cXghxRVAz{&%X+ZCLm3M@{dkji;pxxhnM55S##H>`$IO+G>GJpgY-cxr zKl*u|I|dokEYJJfW>*%)?|sp_P4zLSZQR5v_(@VmK{OG5FP%ABeM;MY)?12$T{V|I zMq^FnWWmb1wU{|kU;UM~?L3>I)0?o7l%p3}8CnyzK3jCl2V}QCX#2ZmT8R5svdDiE zd`{~e+44Knz}0aKUq)H#(s*_*g3o#=bc~~c?XmlAH1E_8jhmi= z-P$~W{U+el{LbU);)pm$4~~mHT&XYL16T3YERHqt~|h;NN%`Eo~>yxE|xAG1dI9 zCtv9!Vfj?^ig1-N$JFED7}VvpU=Pbym(EQuS|9H#*^-``P}md?0gL;xZ_%P zzU4`e|4uQq-PdBFap7oE|4?l)zVXRUXvap{t>o@6HX-ba(UXKK;h$tMl@S zcJHDuuYJsRmVLx_?ucvWo3!%`?Z|J~(`P6?n+Xq;Uu`nD(tI97{z~@TY23sool2wttH``O?;m$SVQ&e5!kCzZ5^W>NCXR`s?H%Fx*GHcO~$Kc!x(tZ{i%dQ-M#u z#j9JfBV!*6L7Pq07vhV*C_2*nR_uL42kHD)=K0FY@s(4T&g$AIKQr&|_-hZ@ z@S!&GXD;jEcei^fkG07k8#8VDM}1dOUl=&N`qpJTfzG{HRwv9nKhhJn2Wc zy?x17-`OT>OWLe)zpd9d!P5lYyFO^GDN|$5QIGJ`8ysui*I7~0HM?S=d>C(h&R=76 z=Pz}PM;5s6jraV3Z=^5tY@Ns&*VcJI>7$NQ=5D?z_P)1r-{qUV7pBwC@2s`$ezTAC z|7COQrc3`{wxl#avX^nJf|mL-_8I6T;tTSJ=_y?M$1O{l7dz#(uXp)eE4DPeL!~4-CF+P1O6ppciBU zi|S~{pQ7@I_3TA2X#MB$^@9Cg8R7kP-lZ3u<>4h>FX-#xV+VHac)j3duWjiCf8t$p zZ7X?Bp$_4#HyQq)&-PeXR3^J)SjRpqX!yzB94o_Jy`u63#g{g)PD#VgTzYF++plO- z{zC2l=_$hn=jM~#{J-G5$I@GGZhMUUhoD>K7p%*H^y?(LaV}BL+1;=k5fZpsqG~INUym%j9Tgj|WKOg;JFV?6wgFf&#YezS+D*B@Fs>7zL z_`x4aM+#mPtzjRo?ME^`TKb{AocLEe{j`d`+YU|0{*jH%nsY1c-ktj3=(c+ND%h^p z$!Ax8+IgO@&f6n~zpS3NWS^JcthuABKQ}$vvAmA`U?Ij?^X4`DiXr3r=AH-MLswi7 zeGfg!j)Nax2+x}ct}2s=kKjB|*;XsikI2J$-NcCC^ZOOFE_kt$e}aRd)b&$7@~i>Q311@NDb#2Rk;_1KVoauyC#N;%J^Ej>d~iHC{~W z0&G(^kgv$2`E=}x@iZUu`t958YuIleq3*q!t6G2e;1j?7b?@@_mu~to`PY+fa>dc@BahNF=eLn2f0di(>bA}N zXADzc_VP51_3Uq_N$#b_*3m!7xSM&(t{-npk*}xDu93R$3&O`6`QBUb7VIFbt2bJ_ z`}Ba$xK?!{&wL#+NZWoKj9>|!Kp$ogEc&+-wfKIczh`H}mI*yADGk`Yu+mWv#NkCY zf@xMCNQup$?Uj5xUaXJ!WGS?-vqyxZ2KWWG-52V#=Z*7R>XBpRd~e1^)Kn3OrqULA zL}cY7?CWK%lFL1$=&tR5#Ltt@{#tyn#fQ-)!dY+B>m6fE>`h(89wM^0<9Yjs3*y z^P$c@_imSAT#xB<%dgx%XL)_r7>PFbA-~jT{a2s;^uLkb$e4^rZ&CaIWB;eceh&;8 z^f#TKKbL#j6o0s*o9std9_+5)8v<7LZwD6PtLIrO!jEE=s%S%SNM8~D-z7HB)lt)8 z+MoS>&beC2I;G5&&8_2!Z(x2XrjxZu7fxuy`uH`Me*I?WT-xBz6RVS3+UZ{A>%dQa zJLA`xyMU<q`Vh>{cI`a}}OYz;6#D3l7#eFQruIa;f8fW*~G3kMaJHUfKe^Ypm zr^P6GglN>IP5&O&)Yw;nqe1wCkM#5nYR#uHN!t~U`uBZpk$v#s8Idv2k!+1R*Qs#^ zXB}K@@|ctxZe(q7<0Abx@c*C@meVZk^Y5740U`UWoQeXs?v^lxGj^jr@9;{kFa1KA{)f|Kk(H{kUFm|8sCI+}|SH z&*(Z+S^B-sRW1r-qfx#*dPXC9rk zyU-ahYR0s{6?1PtY1G`?2VZebXyB;AY2o`40?D;wzcBZf>azp4j9GZiEsH-JxMlue z=9n4W!udYM^M449-{Z8ht|~siYm7F10^@xAIzH++1Jg$t=kdVZ!kDQaQFORVrw6Y1 zI{3PK(ST8RFB*Ks*TLIe*#kz+oF2Y!KKIz=ESz`Co8U24KH--AoSR;fZCXVm#0%}Z zq?1M_OckG0{%rEQbTi==(VR;k$vc{YSvjFa=~r~oNwTFA-Nh<8F(;stOQ91hr$Vlr zN_qwx?(HjIFo%C~prPrn2h4MC9dH`&e__v8HyoIA?(YxmnfKZO*@|>uAM0h#OAAIy zo@RerFZa%Qwz8d}!5?lbn?a1OWWRJE-?sH%Hg5NXwlZ|BVXm%K+1J|2zW%tY_r>1s z(slj%?(*up1|Pd{8Y8dT+>TyV=Gn@M$kV_YxWeX5ja|UAhtKYWd;ABJe-CxeLDvvJ zjQ9VzI#G9c3xJ^_4px=<6!1w`J(aqu_%3{Z685=q)LTm5!pO@^y|XU)xPJeGXQ+p4^YO!PCwq} zUATIgJX5Gc`XFOz?V2Y6tMC>VE4nN*lp1*i{#k1Ny;#vJ`e>a0zZEMg9DbZw(QS(T zf`0W7llmJRZ{N`s3I4vLW!WdEVjtoz;-Irj zzJ!6;9_spir_(+pKmVbz{@(c1Sl@Tu^^|B+d){S7s$&msY25y~-u4+aah|B+K;rk3 z6jR4dfwo_wFRt^~T%zHdEUd2oQ)?l2Ej+X{Huna;Yk!k$y*JNhj}LmZ?iP7)m3W=v z?^0vG{RMKry0^VzT{!tG`^g&u4Y_Lb*SuGv?~4!qgm>LD)_~owBWR*puh)2MPVINB z37Aek*+||-^v^Wb@lB@{MEBFjvB0c4S9tZ<^+Pz^ItD!noohC_@WKM}aHn=8Wk2{N zexEvJ>*>UU!8URZ{cL1!1irJFL4Ki|ypugW)%8neo2XrXuIgj&P*YvTtE)-t0QM*} zPq-jj`iOfLrTnSmXfuoUJH}#rz;;`&y+{LQ9Bn+y94#XqTWOxo2=37S>>zrX*0)tb zyDyD(-m=UkIo5}_7k#zxY3{-9YbGDMA{>2>HAgqt(dmQ0UWv{hZ?`OxZE#OtYqt~} zlv&stt;hzT{yfv{;wB6Jh_8G0o@(9sEq}GUR}&aJ_flW`Zbxy0&NiwX>e_rV`dXXA z8t6cFJ=qgFuIfIPPquax%Z_BrnIVxGz&AIePviogONc#qggp?7yF2rjaeJ2O+j#2C zzz5(M`Y(ow59hZ{F`Oax8j*Z3u{Fu$g~@H>idJl{tCw?lfAc|eQiG9 zp8N=OdnWmOx*foKsYkaTa6W_RwyqbteWC~5o``b<;K*o!`l zA6?A8I?Gpj@S{7uae()A`4O=8wvWh_N8xq{yPEou!dda0;l82Fm67Ym!#7B8A4DCM z^eGp+xz+-rmv~>le{LVP$aOb9l3~w(-9tRRYl}{aRb%gzELUH2eve=OX-7TWn&B?5 zuN!RFJZA&%H{R%4@2I_OVg-bgRABk$arz@#xEUCJKJ)_JU%s)FcYEeNuv`NSO848o z0~?_F_TU%8QSF6OoWx7)ORqylZA9*>E~QPRJ+<40{rp6Iw=~kDA0IF-(tFPH`XYSD zKH}dKzCs?Dd`zY}oE2u;L zj9;T3B2D-{UOY!{{rtVxPbY57{59$xuf9!Q-yHg;Hn(^7Ej6~1JPq_s_!q7p)_>MH zA$X2(WblhV{|9&N^GU25zYi>>w5N6B{d)fw){Sd`M|D(t<*W4UW!-q&yT@NQ-sF`L z{ul7Bb>k**Dg2aCw{&yOnPnbcKF3qveAvJ0wXJ^4;a#}9lsxs+A>3grZ0+gW84uk4 zo&h_S4X3zs58p;6ww}u=+cP%PKhHUfI^~0?0k-XycEty}_QHM5*4_1AV`b@>{2E8m z)t7Bw(qdzH`s-M9(sweKxaT?lyX)9h&j0t;u~{0^kFn=*F!5#o?m9Nvw)xT5u?LAI zieJaZ`--xk>=?Eex%~e1zv5gihcmwd#PD>#r$Ku$6+{=?KgtUS}!?NGP!RmgvaJ`(Sn)ZG?Gt}Vcq^Mu_;^Ei8}7bclq zD_B#FrjB0^NvTa@KC8~2_2u<5yN1u;9+u#!mQrLOciXkvJ*U8DVe|U@7W*h9n^ech z9x&yhyQn|$`S-@@L<1SpLwQNHV=)z@MY)L0B(>igvr49cg zHVuw&jM$ROU9m_ppC* zjzAB4E@O?%k^ifG7kkl;Xa9tM?lj?X;-5PUD^slQ;{2T0Ue@m!opA{%u_MGs3(kK~ zR{`I}7v=x$ZGWir^D5+lVt~t#d%&>aTg-(k(Z6nHUgU>OYYo29d`$C2JS87AZzQj; zVq6r@T}GTmIrK=p(Z*TOAoSa==OpT&zGc3RMs>+Qp}H=i&u5b-mG*k(Q9H_mJh5Y} z_KsS-bhVZ73EdgqVe38qo#Dcv`nj>^ND#qkUP8LC!9i>+Xa9Ch-NbO*EnBHUZ~N*v@=-Xy3mJL^{sK zE&u7>6TW{v>j3C3K7L8C6|!dQ4Ys>zH=nsH*cP+jH=8}g`RreH?=xStd%Fi`h&{zV ztRean59>uA1J30hoDG7ry7zb-tws099>cvKhnOQ-#?*#dOQseD%p}=i_EJY%Fl_Cj zy7OZdd`D-s3y0FJLyV!Fx0RXpzJNsjYd^poV(=8tnLmyDdnlvyP+9rZtbS$^v4fF( zlh{&448^C&BR^3595L9A@}Q>%_E0NkU$(MatiCfemPvZW-xZ5M+oMecT-_IPOiL;A zO>HF6MiS?!sSWw()kb#M_0^Xn2c#3~|Ng)9``P|iRvrj*KbKS1G;Pe1#>)yu&$(<& z!f>9eF3Vw$UC9>bfMi;TcnQ_@6n;p_&^onMRyH*Xtuu$|3-XV4v}djvd}i6Uot8N& z3rxR;NA~QWLqDXas&9&21m8PDPKvbwW`o;uJ0H5@aN_TN^4F;|8P|+Bd)r0)7v1@| zdWn6;(h(ol86ev<{=MDz;-14dyfPeJg}#lCaA)C?Onc_*Hsmg`i_4o{2}ck9r64N( zSvJ{kb5_r{xSyp6INfu1dOy>tjtDImq^>z9yy>QEOmzMbv#I>=PV}ai1JQXu4o2ChXJwgi zp>>n$`j)koq{KdNagrLl*TYRQ&tv4*faA-rO!A*ter3Dzt0B$Guge*ed$EsboTQ6s zJZ8S*%CE`P72*3a?WY~TedlAgKau*c@6mpa*M1sxE#SMqHiVXsS>L?1rQ7;ur{PXa zE1yf#?D}Q|<$H@=Q(whf?#CbVAV1l%GT_-uw>s?Kue>kgXw!Di;8ZZ!n!~xF(iylTsFWC?Oy-|>R>G?;FSqns z4Xv#y;EpeJ$MbbQQrEpOPauEMncC$i@%B=6%5w3b;c6efP;(d`!_Mq2<2v^~T>>20 zb5bM6+Mc@RtRHX3nvJt`(I56YkyY5vwMXYpY=ce6n-FvAc>ba{;TuiJqL9-SbA6|4 zKSNLIPG`Sd*A+W=0q;HKl6$uu_i-XGC%NM>u@XL}zSY2M%B1Tn{u6Zd-Mc489OQD;dW0~QeiijU_v@60A*nYoLveumkl zv$P7J)6B-9#0i_o0P65<6`Q=6$#~r*o<_DcV54M=J^JX3-TW~6IQ1ja$DbRHrH^Sn z>EjRCJ?7icWA1%BmOi@Ut@Wo}^WruIzwA?r<%O* zvWb=GG{Q~2=889WdfMezlGle%-!!l4!D;-u*XI$MTQ709u;x}#+}t`|Om0mt_50C2# zz4`l@I9&bpvF>#EPwVGQjZLK8dxV>6#YehlxQ1A>CJ&MfNN!n-KA8b;%m~!o@FKX? z`97C8$+d|Y=#cDdUNw@KGGZTR^$F+QwZ&Xcyx4+$l)1|pbdA1HS#WPPfLu&cWADoo4CShuB%N4{*U*X)+ zQNq1jR~W1FbFWLZexKRZ$p0_=p<{V{HTy)k^RI5~qG;o4C+e6`t>i8-X|bHNhN(r= z7aPWB+9v2=qj&iRSpFSUaDgvT86%;Bds zOvRp{J(EpktN6wD@eTU)2L0;~eyE8aW)GKdg3Gnw zaxJ)A3obWLHw(&W|9SFsczK>9&vWE?jy%tkr-M92_@dt&JRs-ItJn`mf9B$sT1mTe zITz^k!StVa$o{9B=$VP(yfX%b^PY(tzh|iLZtA<6`tH{FQQvmrG#?|+D_)yxZoe`~*7(a}C^PdOu4Ta7TglAx`e!Qs5@v~XS#b)|cC6;W4+ z_CmB5qONqo50A?sPl=Z&n>^X%$tF(@c}mEWh0awpIF!=_{jfK1SYn76=D{P+Z6ZcA zpS6{A#2lv~FR4%46wzJ@cvy{2Qo^{+k)nyA9MzwReNgKweQ)GDdL3tpgwS0$x4PPmArH&X)tD7I zmw5``TW2QaNfxgwME7v8m3@iyZ2@>hb$XlhI`$kd%U+Nbseg1D>tyUf3x-6R=bA`# z_4H`{ShH(sM+f^MGWdSJWc9jGL3U&*FzB3d&6{$)6I;?;kq|{*bAE{%Pm)PHA?7&x zU!H6Nz`8DbPkv+!_k*B+uFGC^W+aREjB$n0v8-7X&nbJqVlUwvc3;7>TiI7I<6n=r zX7cX*zct?a5n%sU;;oU*0(a2(jPRQMaZ|4gPa!` zls*^aP8sIfkBHYl&5b|m;J(5=*rz%sm`&2#6wiHRfOI$RJ!P+=^hm{dZ-E{%LlYx~ zd>^-kajrJh$9ar1Ol0%6^v89krFh+{ZRu0Tkmpq9LcYnce9}LkvYv1D{7KG?tlynJ zRdtP0KF+CJ%>3}rsr2*N^CdZZGD_YomD!g*^%}~YL>d3Q%5Hf%uTptC%aPxfdpCXR zV#?{9k{l<1k3n|@79MFjjs3g$_ARgFyZpQIUHJQIR;8F-@|h`ami}5?h~DkIX&fE7 zU^8(`;K%>%lRkp}P+;iG+qZk!&#T!m`PvGKie!ggSskKm<7-1ImIk!gb!BSWflNaam}nHv!~Jr?pvQ! zG2Sew)VCb7U=Dd}cHA?2BHt?hi*)#6#SPAaRg70nZSCv{q}L?h!I_qBOh&~A&Vr|` zy*MQ{{TY0teaxhexya(P%)8^JZ@SIoX@5n{tnbZM{7g;D zlGy=0YriMk?!xp8(-sOdo~epmbI+9QqSchx{_Vt1a{rxZtpJ zryn@2cFv?9mz0-JZKfaP^uxZ>k8=89-|0s={jl%!qnv)&cds8s!U1rX(U%Z?3DFlr zU(!!UmNPcoTOJ8HrWTyNlii*c$#KF9lN_@!8`+YWh<-DdJB!#K#(wmL&120%;BH?! z#4N1L;d~$LvNdO#yg$$fWW%z;(t(iz(kj=wx@~WJ(b7H}j{5u1R?)u`?L)f)n!GVE zyw`nbXZ-G???bcge8@huIKT0_%$p{6i+}D(?~UNY?}Oz(0etx`hH~VR`jW}Mu*!co*r(`sVRt#b&_^m!1uHHor<1*htp@rqrATx z92nDn4fP?bES!fPHmL|+22V>pJJq!B4-SfTVEbY|*nKqmKVh`)VoHw9a!#`CEk+++ z$zHEa_(iOI{?wV{o?emjLBA=RO-f6w^8OVnA2WBYD8Vj0t7_?rgXm8cobhXb|3N3U zb~AhK3c3IJLH5;6nRnCF!(}&3J&1qimB6t14cM`tHfgmvz@mCe(J!^1=M~LI{vQn9 zzhXc4&#w$5wOqqKEY1+!rFI082iF1s|Gm*tq* zS*0d#4EW8u`+_KbpA97@*s_?iN#%Q|mWY@0Zt1M%JMEot; zz}COcwJpJ~@HHKK?ybf~{l~{soX>cqqu&n-aR(ZGaL^mou59{CgJyCD@Fh8c+F4FR zUKx7ojzHTKt-G%C*E8^U^z|X1hL@}*?I$Dp=cG%ACA|o}HAGs7v@`3*#0zoec1 zRu}G%41%{#OwL)#+z8Zgt}rm~=DYOPDqzThp0dhJ-aMr_fd!J6O4GV0-N~@)8PQxa z|1V+8gm(j-SUt9G1ovfyVt-zPEu$d3pp1N>$u%oN^d~F9v>2XgwD1Vhl1U52o+K^Hm>ua=rZqs{h&yaCJk#;Pjp3Qd7_hE-AqO~=|C{KeN^7J( z$<(Aii|#Y8n(MQHAroKB-q-sK)S9h@HiM)m@aw~G{CC6eKQU>{Nl*MJbk>tU8g$k> zKgu|3&?%Xhz5b(&>t7$8dD#;`8g%_G(k7Dj1Zhu@_TNihyKKpl*30HDdHpi8`QO5J@|9?{qc2ls-5sg~yqt&IkT?wC|*BInkzRu81qexbEw>i%u! zXE_x~56=J(zJID>h-u}n%wqYeCKMpIfN?Wt5bM6d{=#kfbyG{65%Viq8{I8ml+(Xu z4zS)pTS+II$V~iWGwEBHa>_q|{F}*dm@~>>;^i;FzEDpdr+ojk%+X`N(bFGxIyhSC z`NL-74?75bfEU_JYH8%Iu;lW2Q!A)fZNI_TZ4dOXRs6#g=FcmEl$Nbyt~ydq{I&29 z3flg+EQUYK1kOVGwvTfV#Lwfu@9WnveFp2(_-$kIM9k2!cXFw%tB~bGOT*ED z=-k?uJBhU=cJTJMx%0dE=;qnkPTDyk=aeDMW1Z|o`lP!zLaaSy^V>sT_XbDWGd%a_ z7eq5IHn}Cvz?MVE^SX;n@hwGW!#|17)LMTeZLvox@-*k@B@@4+{kw0#6P`+#Iz>FI z!Wr4pNSRV_oS4v%m(N@ra4~WNUi-y<*ks6C9-KPm8+?BTzI!+PG#^{RKF0S9`0jJ? z-RDSq1|BOLlK8IjJ_qmh(|-c*T?s$U+;gERzV!lR(pvU=Gp9;6qT4gyOZssqXn`r-4?bGJOUVp3W@iNb zmOQ*JEj;y%ia$Nv5ggF+CiwB|ug^Ed_k>OE8ObAR*S1&e-c)e<8t8M^T>uVc>T0ZbeuZbVGug@^W<=|dEd1Nm>a`YVVI}`hm?2;AOi^AC#-5Oy2y%I=l z2~Re~EsXDV@Zh@`@4G+fm@>hWt+EGcjAt>%XT-@?*@sq>p2PUgWZY*m?(-Pm62`aT z9Owr7nf5|Kw2@00XX$6scd`eV$X&?Uzw(|XyL%ixqr)!C9G7c#P3gCFXPaEJC~i(VAq+So@R;_pY{+q|0i?t2xm3qDJCcw&P$J= z>!MSpZ!!z2sOt;h&Ov8828Pe(M#eCQ1w(0;nNrFaiKmqTM>Dh~9jakpM{zrSipSgO zPFrpXZHTXB2NQRk?j(~xIaWe@bD$@5id5nC>)=ax9gFUGDR`X#US(tZ`iKEJ!mHA| z@H!ypE)TC6jUB}kz^mGjex!Lj0sMa2;&(ty=>_mQ>3tKxb8KS&9Hp&d4lRUMN`fO= zvf<}t^V==1o;|&L-(7w(!t#^SaVFR1bDW8HL2L8DL6PPHI4|$#@`tr&nBv=+7w?Zv zh<1$aWBrIttDU@>1bmzc4F|YKqg{9U>8?EiEB<}ZEi-k1ZcNxKK29Bl1Uqb?ec8;7C&BsS@r{s6*70qA-+4~kKeDl zlTGf8%&jjlH@VAuSQ&juhu58vg?|a!&q|$|+YC)&>$E&pv{HawKAtu+L>HsrwF8NJ z1n#nA7w+U7Q+#7GHu+?;3%NXOPP*cfM#b9UNx;6oK{OW(v_w^A{$AU!dAy$lZdYYe zHW;V{FRfwh4*4P3XH0R`&W;Ub{h-}HGUs=8xNQM%fAWl?Tum^%usrE5J0BXLW&OV- z_5L^4xc|fc_eA%9hWGyxul_C2(N^YY;iTNi1K^pu z^6dY!b0g^koCS^C;VL-yJl#=T3LemHcP$M%wfmW$uFl;*b{%|3evg&#pi+3yR_2P< zIt}o0=`r`fgVrz(YvDncGFR?lUQ|@MJm@;+%4MFMd6v0SvBl*Jxov-8gg&6h5Q&b}bHwWBz6)VVzUyJo@aEz)rv=0~{wdTb1pFZY{rA$ToM?()-A z!wWdKZpi$BZXe~NNvGd4z*||0zphEj$)evq>9%yg%OmU!sfdmSN8f;`yS4X zNZ#A`X}OW0|2{Q0(tS<`?3p#1(~Z0OP0_wrt~y=!X> z`z8zPPKsoZU$)#^>uv1UGSiqI8OeJVX_AYQ%dBIUEeU5>e!mahG8i=v6!D$-?>y$~ zGP8Y>_G2!a+c-+Lm1RpzW(50ZWDb6br>QGMUg>{sJ!8@TMxmE6-${Rm?>4eMfa@m)5k6)dSZyR-eRg0KfkHlKCa^OXL^g z*NLwBMlr?GbY1$PuO#xJmbtlf`Itp)mf z6Pf-PeCiqa)MKVCS9}GVK&!)?BrZMm>+r3|;72Q~Tv>h(^Y?oA*4w1LHR7b4m0R5O z>)>0`qwglo*Ny8=LDs^zRG)N|ZPdqEBa!dHzuw@?9HnnTX8cy^@Udsmot2h>j7mV? zyL4gJ<4xFuD&VPGST|We0cVNC`>eoMBt9l0elI|&Nq;GU{;JPQStsvj4U&uvd8G-o z-d$O{;(G_bv-?lL_a?Y_&KXeqT$R~%$5oZHmk~2_IeU@=@W*`xKYSth;;I8PPJZ#g zwt}Mv{=r&hcp|ov!0?v0&%IZ+wAQ!3yK+TGxoK^j7+KN2#JT*ebTfqi3+Qk0+YRRO zx4~@(>wz+4TKnhC<^PSIa9Vo!zI4;CWht^R}hS@cW^S08_r83Z^eqcuI z_-W#Z+NtQA?ORG7Z)Z?Oi|4?=s2zQ7f1W&jS{(kH+Xp_p5`F95J6-&%?Y#R<Wl3-#> zCi>%eU=~eXgMWMt^yI_;cIb%}uY&6(W?=2gjDA)h?+cy04j$jWecQvY9=&k)6U$8G z?e}NwR$51PdaH0C-mQEg==0wG3CV9yKIMuf51GMBrkNpcC;pyg^uXFjO*rrH5NJv= z8-3v-=Kf9aRgJsGdK-5Y=VlZ}gXm?ewBITr4<0fsHiq@{K5XQrCjTXD$+_>brtt5F z-pkr|AMri<*2uXCwp>v~J9l&4Kbsw?6@9h!rRd{xujfor!Tz^2< zs9VjM0znheS(5eDUv8^me?U6(vH+eF4SuDqCXl!z9s5@i|5vg`q;DLPQTc*os$_UG zu+;=oZJtEN*znEYkM8^RmA{OAU*&6-e)?Sa zsK0hrOwTN0D=G?r4|`e$x`xTfiX<=|zJIfs@yz6$!7SoPONfQJw6baiwx0W1@O7@l z?kBs&0POg(7qEV7e+<}uicXB(Ao2<@Hli1E#%uBBMb3gP;C(Lkh`rFY>S8Qe8#ygC z@PkC`@%fH3aVBZwbXG(iaSYJM3&4VZFi$pY;avGcjFIfk^7Z<6CuP^+3r5DtRy~F~ zX5qi9P@B}PxtfI?jM%$&>d6y*%V(jy{jqC5+mDzI-WQYiGRnO|xkmc6l5x#I4t|ET zx9FGpBi{8E{d=X{SReOWUnY*ltN;2%&szRf#rR$Sk6U-Q^hw?^-#K&5Sk||)t-sYL zuH4P$m~y4yNqzL|E5mlI_JBK2Hg0rJ3wtQ8A6Y*MM=OAHF>Pkk{~X4mDXCU(zhz!B@@e$#o2sMq@6MYVuge%d7VEVYY>RHamRgs5#;c6Q+EL>%QD|BLut3>ERV|xvKP6R*MjHU1!0){Nc zBb{;FOJA}VmF~`P(yd=Xsc%QF{WZ4GWA7Ez ze#=a3_(_S(8RCX)+svPAaFee!CGDv{Nz50GtMX`^&tmKoz5k2R3sNXEA3xcA&G%Ey zf+lDY0*R2Rz2anZ12Urc7Ubs2fMdshCh}uG{<_Zm^!WjNc*@_u;%R8Jf6Eri^iLjM zdpGvMhnxv(3i+@7WChTkc&yepoOk|$>f8!U^Qf-`nwi79UsrWt_!^CWP;f9GvuVel zqkbH>&MMVDtRvU{!S2aSWzMV4M<`b|?_j6BU z-fU8LJe6Rk$W|E&rq;68r52iv)FTT*nG@N&IbuyIxXE#_NA4+^Dw~;LE`U!QK@JVW zM&imt-P_JR7@QH-M0!VGvwjTod@ndEF=-ZuiPWD>{n^x&-N&^J^#@0mCp9R}!#y); zAN8#HZ}Y&=V&WG)I6}8O(FWw3WQFjEJ#)SA8eiuW;64=0BhGbX?B@46HiQy5gS^;@ z{)}?A4erjA-Cc41_f!9|aU;5?BHaEIy8OIHMBDgTfp5b9!`_+4RbA!(|MR&ZTy{th zw}h)L;2K#j^R>L7O^BwMPPR>=HWP~L*uIRQEy&01hG}CpqGiG@%t|VoX2h-ZqoQ0* z+osSKQB?4gC^Qwn=lgT-2QEm<{C?j*e}C|}-1|A7bI$vm*LywZypK=bsr(OyJfXBB z_f3KIilM^)jAd45=VrdgBvb^?;hr#&0k=rL(9BD)D>yTFBYpPD#Zcs8zRBxn;Daw| zL*}L5)R}`C8CL~tu2v(>ys%gCThumeIiGBdddh3#%?A@vce6*4e$1pFvrX9;UA>0! zo{ek_3liDb&y6WI_P@5o4iIcv{}Y58fpE1d_1tLnO~oOx`MU{;nJ1+KrDa_Y^w#?Mvb$ znZ!>-*PA(C_#_94ob4Oz-=4^UY1Erfy_rGI681QhNZVPRmCdXJ|K%w0d700@1#+Is zmuIDxxmKu8a-04C`4ycRUHx0<_u>Dg`Mvjld44|)`Tz4PzTN*T|Em8>^IP-wf5*Sr zofq-1@a?X4>yb_*VE=&LFg<`<>JyYdE4y753g|bzq%<9HmEzDM$SQl6wj1`U>o|9cR1wF< z-<>lFIUA2JC3+|xS#vblxtaWQo5=^&;9pZ^pW1 zA6?2z;y+$|9;ZF?agg;hxi|70bA%2#;COk6&xdYr#{4FM8+63L2Pl`<)492W+M!x( z1XJHAfu?Sj`1%CO<#6xI#qr#W&+wV;^d4fqD{)Bwc$J*t8UA)-{Fl>Mk7cZOJ*CEQ z_G)uw4_Rw!?|$K3uP=Rqv5=TC=TRG0ql3QTyH&5(r}y?hMf(4r;DNh;8h$WO>=JT6 z58WAZmc6W|T`-Nj%X;*BLnrUDo4m_mykm<;%wR-d3#uwZ1NW4$5w<`|Y7Bo}Hwv8`O|JjAd;a`>X@$ zqwukVu?xU1I<(0IU(x@F&4+sQ6WvdVSbwKHF*{&(g46 z!+n0$QEV)1D$}nL8-P2P-k5^jG?Ou4?mVXb!I{vH!hH5iZJ=vD{n}9qmLgc60B>TS zW%X1xi(O{*n|*C76M4P~ye@xpi0eGIr|`9Z`GJ1rv3pl?_I2Q4a;35XYiH9UlM!P@*5re?(btS zAQlqqqo)jC!lb8Yh`IhgUB;JqnvCZ{!31_!Pw!~Ra8HY=L9%pZ{uC26J29|=eQgC(w8PFPM{H!SrP2;5+!59G&JIe-gyn68{sIY>+!kcm2qH6_mk;{dJte&#P%Olh6MO zr}V2$obr2Xoc8wNCdr4l|M87aYux?|n((zuI;zk|zcx0R=;*e_<~8a`G-JZ;-On&K zv~z9ivB4pUmAQ@Ma|Hbo`6d2SkJD}Q!Ak11_(1k<`166RkIQ$9J}ud?ZJff?QL**7+kvBz=eW5_zpZ2imWqn(ZR&v4C$vydz`5QYN5Z9Jh5}J zIf}qX5!kTNUulCrd%SzmTINy{9+qc9PZ8sC0o@_zqQ1X35c$}S{8>Td=nN(nNxVA1 z#y%x%KJG~qT_Q1yPl+!||4qKizs_aR@ecG{SUbdJ=^4Sfsb|1>CTm5vi%sg2L6Ub# zWcOg`af+^>@7PsMI!gR|^Ic+px%}_1qmEIpB|CEYKMT1ba_(yA_Ltk1%#J`lZ^6$m z15d&WPIy7&_&(xLTYP^0K4PF-u=mAg*@w)w7)r8;FMuZ@N>Xt_ODj z(Z6Ro-$Q#|**Jul2C<1PQtywA*ZO$NljWni8tj#UZ~s1QlK!*SB5g|h_oItsouw_F zN{6S!_7y$R-@+t3mEQ(WF;3&p(^d|B^zxKyuRMu0d8!NJ#dGdIByS}0R(MMI zN%XCMPD0@$`Ca%Z5B$~tLLYxC-&fMdw)lP)eRTTxegfw$EB$z0^uhlP&$l(6N&m%o z=KRcf4wv~e`x@)sueKaZ>FaMDOIb5JKOq>rHLsgl_H14fvV!;@c67{CiA@m$EQWUl ze?B}NaQLv7NPpPRHc(#E!3!`#x1Oe@$1`=mdZFabKq3LwL|5_U#p3eoN{OuWtAHKD){DTD6@s zFfm?zMIScRB_J1k&l9Puiv4$0-IPtsf66>4_h=UeUth91ZTOs{mnq}rEO{~Ofp#^- zorEnUv{pv=_{_IA^P4xpNq1%7B%Y}}D`Z{#IpV{G4rSmy@bi{X=wQFomPkHXL*8-) z@q6~dN#DiC=N`wE&O~J(@$CUE#?n{+KB+%J87R--8845scS!Vs$hDn3uVOqz?-X_O zj>(^?lf8YV1El@Q>Ku4${FXnnXRfO<{yyrFbIBsB*D`;h$YojYN#%db9+YR>{OrX^ z{LdM3Q|8P2oC{z-V0$-l>RUKRy)yA~<=XrBZM?UCoFN|QyDQIo-_{FFeeB@Q>*Vbt za({VFM`fVQb53grSVf$W!U( zQ06%?&Wn#-@SEV$7t0h~}b)NV@C}YWQ zd3BAOix_JLHavL4*dgJO6ZxTOJ-j{g9(0?$0cJI4>XXiFL-fu2X{QKG!%{r=S zyu%nvCD=*QQu|0`kdZ1f{oT5>}twlBbqwh{_n<8lOMs7f1B2t|M>~*zgu8)eeni& zulm^<$?OG`_mI_IKKAwFko2RCwF2=8Th}Q%(65e-jn_wO3+IcK0!!m&kMCL1L4i>#uAs zLZ5rFVt2O_+xYw7ftH+lfD91 z@ZNs*d?@w7rkpD~=6jd@BkZS$cUs@8hBWc|)4uvd?p2-l)~6nAH0AFgFj`pWt*i1s z=xXXfUTjpN2f2E1CUi<=XBTT_8=pw*ZQkR)20mQ%_m(-D#0Hn~3NhEmS^s7HO#8SG zW6J*%Q<`Hrq2?O7w~S>c%Q_k|%Oke3tQA{#EuH*c?#<@jl`-3jQW;aR%jCJpH|zH! zoX`I?IpM@^6*+-T`(Mck8~w86g!J2rhlu=dEhi+7BKVd5O~RMse$w%FVxYtYoA4|4 zfnY^q8{M1cq`f-}Jd55J84MP0k^L94#w%qlIt9zJesz9=%6RynZTH5|z{@7fhd+i6 zio=KRMSrrf{a$08aP^gx%Z1PJus7nNpb0n!lUlSF%?4?Z(FVEotf;^0SQJ(m|bbO7wdW zF$VVDiQZ2n&&`%guwVG}YyW`bDzAP!EbZf;i;j94-=k3W7$cAK{OFe0u^GD%yg`T9 zzT$gT26%0pTgzYnpJEe)%*y~LB@DJL82YfaY`cZTu-(~NlpFC;O zU9VGKWRmFC_bFqIk;tTXeeV=@AjZx90m%=N3_m5O_H#MN34&dCAURhtbA`MG@4fbW z<|>5!jAG9rizEiKH-{VlqleHipX>>59MH#*q6ZN2{&c|Y3wzRc?+ z>^7&R_s^pn@R#qa51Q+zj9|s#9;n$h* z#qpFcI~P1q-WPfud>+QllWw z9*)l*f$tuPe2XH!6HR<4&}I2lMN!T2Esg$%A>Zcx!Mnc)Kg*1v$y^Ra&ddHDj7YP8 z@?F*x%<|}?t-Nc=#d$ni%QJI+Be3g5X87VY#E&+X_VwE45~te~rVMCWSFpx6@j932 z{nusOuw98Ql#2aY$@-$iNDhLHx?awP`>~JC_rqUr&$+dM$gK8C>7gHk2a11i&Kjpo zS?`K<+gMY3p87JQl!1+(DaEqRQumo!-1wQTxH8xlRhgjtm`t1O6&!q`KzUf&QaP`> zvlblERyumPYW)qxC&9)VTc~Cu_rVEl*J}clQpp!nHzn1?=tmutYck_oV)Sv^ErgFs zDaT!4gR43y*NR@Mx>6l{vIpPSJBvAYbgk@hQ979C3L8>YyVhN`?^zBV(*Nnykpmx9 zT?rqJ1iuTm4LQ1C`;f|~WzYOp{x9RtR${*{{a{fzeuFiZL#{LFPoup%g?{W;;UyoA zHadoTW%GEcKgh?Y(CUlRZj`keOaIMh{zJjXL}GigCR0ZnQdc3L*1Aj@^YmUiET;HtEvMHTjesc(& z__9*Bmyd1+`(xmN(eT1e@Wd$2r;H?q6=?F5@cECA{(PDGA2}!K;{|CCpS|=5JSP9Q z=0}^*?~P-b{3yCg&RI5qr{B?^^US5m13d@3#4eE-R@IGZgY)nWF7#(CUs5X^!`NF7 z?ur)Nj^D3rD!THK;*((T0=Vlaxa*}f9EK-kEnnU(s%^aX`x|Y8PYz2PTy^CQO<1a| zX&ir&IwydoL15|d57@cHU?pDBoxU8|!2Dph3cnosk35qz%<=5o>gYbeGwEyMe}V^W zpqX_IM0H}{7jQ^bB0zS)M|WAE6!H*5rY zoiexd=Wi0@EV6zo_DwpU*nx9mV`NX0taS|s8^gc`cW5(5B4h2eYuUqh@lIm6+{qT_ zE@Yf4y?nJy;tMi{PcaViOo6{c*y|{J+GI}2ceHFSyc1UJES59x!aL^PNq7gHI(`82 zs<0KjizBG-gR|Kh8UafgTO?jO)kiTJD1Mlrl0u}Q)82x4jn7;iZTE8{bRy>8|B z5c0pY)sL}~eQsi#Z=wA%KCj}pDBnIeS+lhExlN|L>~j-a+uFmH#`wz~HrW#`bFl33 za&wOpdU5Ub_f6I;#V?aSy+(hgQa*(83$fLQagP~sKXN#+mlc~m2|gXl zzO`gx!=c#fX)y~|VW%xiX5Sjhcw+|p)>8RR=)TGv2eIq96M!5bGDgd(pSf#jj}0Ho z_hoz!rCv9C<&{A1zBOsv-ci{s`YluJ9^Zborzkr@`o?}w>1!_EB`5g#34zRiJM<#= zlPyq9y?6`nkz4%|vDLuN_yLr6K;u-#e<3tjdlp6i$zI%{TfO>Ea3eO1_`eD4n{zVe zNnRg*nPa2ZpOraoC_z4Dfl`=StoH{Foi7Z0A8DOfzy94 zUcK_v#H73@<0tQaDeZ_qPQQz=n~=q({tT!yZL5ZKa!Xrl43lVo67|R$!$O1iEI-)7 z`^{cGp;KoLwx`I<(a}^xPb2rbWKTiB}=|fe0W0PE;&z?q8 zt}}KH{HfgvG8k~mLZexE?(;Dk4 z>Jyo!G5^w*llajZ`fbH*T95CN67Ki#t#Kekt|_#}+Gl@0CH=$x6dow^j@3ph_BK!2 z!UmPOvtm0-1$RH=Z-ycpb$o_wa~&hBdU7oLj)>2uqH}wLEn?CQGw>@*@GEEFS8lmD z{=LkK4QA4|6W>MnMA{a6BMV(b?uOVtfvjI0^;9Dab!8SE4WLgZLtR=-%=U&mS7=+ zSS#^FFAne}q+kAa?|t-3>Q&%nb3WK>Bz!9M^$}Xw>yd5Z%8TKJ--&I3{!PU8z$Uv~ zzEf`!XM&5kr^L>=w$FK#qd#_{q{vDmJ7O-$n8sNN(dK{80J5i3ew2 z*VKLl?ThUt{SjJB-w40Jj3a_e!JuWYY%~3use>$gA>k%`aANHV*wl&Sr%f1(9mBd| zi?;lHPUAH&gB>RAuzzf2VmqaDoo{TA6Roh?G8XXFYmM)pZs6uxX-IA8(-x)zPa>&os93d zUaVFg@%25&8+)mvT;(_Hcch)4yQf6#nOOA0a`pv?PMCDqS-gd_DDL^WtI#jcoIuvf zI!-1whc>NQ{!C}T!wmL0U^lu}CzA`scb07)wxPs_d$1?*e(IFEx+9n5{7Mlv&jolV zZ(5ys#zn^_Csw`8d!9|sW5&5J{Tp{fKy#+o_iB;}+n}Y)w?A0o`BJ9vBDvLU!_-eC zrz>{MrdPe^31rN@YYrEe5!+n)C4J1}Y+#NpPLn+)ubgdMIak`j*6L5JEa`{g2NT#Y zx*dA#*vC`ZFS?ukqPy8ITFidYQ1*+;{>|y^+dO@x;yS~A(GBbuUCP|nu-CMf@lAPb z_wx?+jixw5efvhkeEUYj&3&V5@u@1=H|k{H=vnrSj%DAd-P|`CY3>`fvu{-Be+wJS z|b#sw(z>4qc?4J%OxB9%36ejlL#79@-_D zy{6OXbI*36T{75fYG?1LMxV3k^R$PjJyZ=X)21dpB)RH_CVBUqVv|-R2eRjsXCt`d zPVAJ0ykq7x=KbV{Cq3kQ_RtB+c=w*#W$)=m*?W4K&`BRf=gHpFYu#dZdDl>?kR4eb z=ioeB^uQ`&;USz6A39Z;BX+|H;^7O4hbLdYtMhK~VE4snvG+GxaoJ=rWyNcyjsA?m ze0V^iEs-ClFIm~!`ekp=AGF?j@gA%pV67{_B^UFuy6eI^Fs zlh7=3Fv^)vezSPw*5|yuQRt0T`q`Ev@HNuu|BcY`d*To`m}_)(?#6hj&rX{iXy*aq z@kyKwjpzT4icPC0PIZBMyRz8BsVv@lT_t(eDgzb_A=jwuTJE+f`k#NlW#78+ zH?rA_ao<|vRxl!VK_dN;7>CSfGheqo2EyA?PWICrWxm+o?vh+=ayB3be}Cu;-kiY} zEwZkwu(wFY;2igk$UD;aT*k11IwX(FA-QuqAhqc%K}X+N0?r2Ba`Z;d5{%?5K@X+D zzs}6>8?Q|W@SY|3t{1VneyM}!$yoyY+${49fI4^{X9FZ|v31(qLH_SLIZLpew&k6A z-X-TicBcj8q3NZ}X}@4)=b_{g$l>fV>-wBYpdRusFm}}QP>Xsx27AvEY@{xm1C9{hwP|h0XbZp9lk|+EU5Wv|EJ6H<=bD{XRVdUAi;oo}C z4T$XkkJqL>cb$0-eLG{)gV+D5Fh_8+OmHQ1FgYV;n7gBJEsE0_z{J=|GXwBXKqIm3=0KE5bcDSav6uKLLx zxzn3{0uzkAEgqZnXrzp|d>3|sbVcz#2Cy7m+W{l2kNiE(&AJ@{yLdNuF@^!fQTTA|L zE{^+H6`Lc}PT$Sh)c*RCVmcOC^6)#v_x_xiSxB@P~gcf!F>YbJ#hd zRq_T%{wU5&H07|Xl<({dk{ouDKPmw1&I4N#H_r2&!7UlU{yK8viY$_SXfN=o@|)a~ zD&^*dlG{OYbCJt##GZv_ZmzB1QPz&+w}qk3!6!#*{2rRUi<}{eYWgEN$b0|t3iL{S zWymUi-+ZE4yJf_l;=hQ`>EO3{9lW{8@-88N6L_C7ki2c!ZF%sWoC%e8bI>Pwk>2Me z*D&`y&*Hh{K*$UA{vOevap3oKe$TVn$y3O^u-r*|0vn1z4(1PI=Y%%y&>ep=@aM8iSrU;pv5Scgpd;_ncw=5w@Y&3OyTzs#yq?!FHS_y z>EyMNxhIb1T5RUPiEszVcjn+V=3q7P%}mB}b?WdrTlo~arZ6@#RwqXK@|@u#^L=o_ z2z(#kxK(<8^NuxRCu5x+>K$v9XA+Cvb$yvBD@uA}*FlGjkDa}^39P}3t>l}p!Q&Vk zsXG-tX1?dkMY#BK?|UJB@8P?fHsV0W5xb~1nX}lO0jtj8U42@WdCoqcape4&2Rqx$ z!y|b@Wp6}`IkxnxueV=)F7wte^JDcZnY;;Yy=%4gYIkxC->nvJ8f_~s?#W#UkB&rM zXCSvnU?Ze+-+?!W*7=FecOx{mZ@wErh1R!-=OsFnYb!-|vHk@+}5&LF{_li!x`{7ZbEwan#fkMA*a2jo^a zj(;sA!pt48IJNJqHogxfW?n{awlnCA{qV>su(kik#sPA#&3-=~Sptt-1&>5`P%eq; z9M!}lz2Og$P2Sv5Q9bvM`&N}5xBz;O`uatqlRh+$hRi*aV9FqQyx`j)G&67;GaeC z&jDr7z#4Q=%u~wPp?_B9OlJJWuQ|(jCNg#j^U0S7-eN9ME;-70I%1Ve*r(DnVH+}s z-)rf+jB#{lrRP0{cExRtY^oNqtWsVnxe0Y z>1q8g@+{_&&X=SFsbhyu^WOUubCN!CcSRD<<~S-=4Yfs{#E&NrY(#Y;<5dgY8ykiW z5Sudk47?J_`UUf2$$%5&9A#d}or+z6j!n$TTV>j8@387lOlW#G*;jXG>sd~7U#(~D zt!J6dbF74mq~ZA=9z~qX+Ji`vWUFx=!>^Tqj<#72C0)?P_214#A@J zzbh`DH>9}gCC}!t2(V(1Lrh^;n4h?e*@`iF> zRL(6jSI6K>xfi?$o)TS<#b+gXm(+E#CvW2|!ZTC(O##0$*VY|Ajm({0{J%u@TftM6 zj8izdM5?f(W&KuBSFe&ieAXQ}6Mb#S9R<>c+<|bVuZ@YV+X!g6-%s}S%YJ^V&55*` z>TB~n^&I2x^vkqO8R=)1s$BaW{pgRaDY@v^UcG`fONlqfx+^Fr>&ow#pR%u@WsF{E zl)O~;JRs}iKcA00GTd3*Zb)izXz#S*@M~m#l!mp#)lErVZJOY^COD|LdSJWaQ&%bt z-z>EiCvlHZEoY502I~cZ5oMn`_)8ygK)0_upf6Of%Acl2=Z|1tY_S?bUYI~lpHp6t zL~Lioj%Pg~-@Ippe7DmWF}BKJ@2oarVY#0CV!2L&cRfRm%nw(iv>9sed~NXFf@A2Y z4N5>hzw0wc?A57L>qR}g*6r0pY~lIS=Ikj*RwLY}uXHw)s492MglHKH_vj^?7kN%U z{<6{MnO(-|E6x~{p&xcF34bfXmX!Z3cYxHwn~{Te71Xeo=PY@LqU8kJu@VwXNyvE|pOHobh^F8UayjiH?rbM_Zp9$EHjzG}};Ubvs%Biwyn+^?Tt z??f`~B%`-Z{^@Ctd*MHglMjDsguZ*8euQd0)ktjw@_UJzoS!mycR@0)cN8*JyZ>mF>#kG9WGRGsNT9r~b>B zJ@RAYK+ogGBHCI6U78xkUZP(4QwHxTn3BFnpYrk^eZ3l`f2aoMzr}bSSK8}}60C(Q z;abj|y#-3%UR`-%ul@nF-AJFLja~TPlCSKlfK{H2Wp5i-UB8XLYVacT1Ze5x3>>B= zsfGn zT!}O3Qm|uev&#z7^2+qI7s~Xf8M|2KYq2fDeNqY4z=;;oW0|MqrhgbEpYAahPpMO#7q@%q z>h7g0?h0qa&Cpd#tf@P5Hd={vhuOlkY{5i&j%Q}(CL?m(N5&cDKZg7^llyDr-ksje z*<|J{jX6tW&SI4){XQi&KVFH-Uv7&Bi?P}!$}j%QA=*8pZ+P*L{x4{|i8*^s4R`Mf zkU0z2_Fh=*3Exm;^v>L4OuzXUa~5vSWdwXPO6`;X`rv)c**^W)x_$aAMbVeqqVn%o z6y_{WFQ?3Y__T^Sv%^z%_~{H7EKl~)*4NqaF|uYRbG(-}Ljq*Z!nH+XS9lhEUTo}r z=YY}ssjr!{aC0vEa=*xQwQqje;PL_`yFQyE~M9P-jJ6aA#mTeam=Zh3Dj!_l#-p?lzr6#90H zOi>m0tIXR}`c~b?<;foNFGJg~$JjGLr(5( zWGv63v?xDJP63n4)h^&8Hh-ns#l%K7{df=zSO4WmLH5EUdiIM)^wZE)GT2L3SMCDe z1YOwj`6X(UdkOMpALTdve!l0-yDuAO4wV^89{tWJ0beE16{&>lXKa!AQA&9Jel<$p zpmx!EFpr-xkB^Ql*JrOU*R$!@4C;6l*_e%N%tkJbVa{sQ0QZ8?hYF^gJET9_alF1D zs_fG&Q=UX=OFd6``kmfvEbaS+F{^()a~B0RqqQ2FqQ8#psI>_WqxGu-w-!Wq->OG< zOVyuHx@m#7Ky72-PJY|TZ#U=;rK1*YQ?;!@hYK8uhjmBSTh0FT3;v{_#_@?>bLs7T zw`=Q=twV@$ZI!hn^ive`pRV=;yHWXh&|W0*L57G zKd*Grz8<{4;EDA8`V%kj*QbJY(Vb(zVD*9bpYWUyS#KP!-DMoU@FO_vKs(Xg$rX=WQ_S)w(fSEGLQy*CZ;#qpaQOUA{Yd8<^!WjSTHx;vK;HrAJD?+{OkLJ@&hCQp zg}e3g7kBG#zrD({V$K`J;dc)j1L}{0$quv=h^!>{Fzt!%i$taHJ#FQiAB7< zsKB$LZiBI6@F8PG?$<^+Z5~m(YUP0+6qGwY&_BQQ_h1wLV~le~?I=*r?a-Bu!M>o|R@602PSR?Y@~Sdh~FLp`P2jrt_wsww=Y+WMjsBl9QO zRQEx!JvXCVpZiL={(~(_%QNMvs=Yos$205lSB;v*JB@z-{KmvA_J?Vkq@q{Al|Bnh z)PRW#U_x^J3C>PYKN!+#?+oco4q!De*Eez3A%&s_F` zr|eLP;e7Uhku&-Pwt#{y5UoYe0Z;k6bmi~6^krZvL{Uv#?gb;2U<4b$t$+aq3@Bh= z0I}YEwg~zht}T9KwWm+fJI3Pw`N)V^QB9rbP4LtQ?8bnn5;aCo0V^r_yY-a6@7ATw z9PrSS_cM4ud{7y3xJ+NPu1r6zCg#V$+kMc%M{U7cU$AD%p9k_ieJ5`;Mt7+&`hI!F zls}`vNclot|L{d!@2lGN(acYO_~#%th4gC)vb0)hk6sDa_KZGUkX?6J&+c@qzAyNT zf)d9Udda1Cqbs>j1{?6oQCk_et&Cf$-ah!_g1Oy4*5`J+O`mJ)rp+a`9nbuCQX=yQ zvJdtX=6^7FJ=Bk&aGtrYmhx>S$7#2R8erDdxd_X z+gSaAt)n(*%qImMFMOhR>~cHb1GRe@ueX9eqVFHk_dn=3_1a`xjP~8A55dldVCP0` zlCGMaHfLi$L}%;)6MOWSw5L3-x7QhO?EBbA3919PF{Z5Dh`f%@-=}x``#wDyOzehE zvCVgZiCJJm`WXc#YVap&@F(i&6LDMUuxn?pe8Mv);VmPkVTUnCId9fk2+xa*c?X`4 zN1rEx2_aAY-NHnKRze*myx$&7#DR%YTYGl_n0Sl#1QQQJ&)mT6%=LEWdKfs3 z)y9wcv|#!9Pxa-U@6i8>O!*EPX9j-;U7tbMo%$?WG~*Va%^rQQAo~14J)rYAy#oB7 zf! z^Jl|*QOwT)cq1Cw7>#T^M7~khLo~7PD{orn$yDAq5~uAooS#%0HOK%952dCKh|{kH z52eV6Qe*_WU8@BTZr&F^&L3x);O`^wS7=k*J&?~{n?ccH$`^YoQr8$~d+#(-o)mjF zMjHzrQu1}=jt=%BOr3Krcu=s}F}L;BfHk@b9>$(ot*I^Gmh~04E z{Ac=w&Ufnn!ry7fTr3U#9NIpIw!8EV@KOzWx)6P@oZE?h6neQ2jIo;oCQ^_QDaeQ& zm;KGN_8G2qCk*p9WJC(%ATlBaj1L487r?{?Fd??xGHjib zyeqav46-LB;{g3Tpx*-~j(`c|p!;jEm1o+K@mkHJD?G2i`Ia$j?N%e|Uhx51$_NV+ zA|n)JQVe}hLT8>b^CJ0=w=D{cz{I_0RE7gTRBoEnIHmLDkBzBNXfi1v^6U-x?3xwOSJos^&1B@u&&!8S2amW73Fv@StjIkPi;V;a%hdzMVb@`Os0@t#@3#Teo4S z-3%T=xyvep_EqGA1AEnhy*e2@e2jePNWAbEct|(pLq{#@gO#48dZ97v8r@iW+UsZf z+Ypv~7-Y(aj$)Iyz(dXGBh2>^@GwE2g-=oAILNq-V~jd$_1F;pK1&WZgpzm&JaEl0 zb_{-&b`U&t1`p$i6I(XK9pIrOG=!OWXs@Zm@;yiY{hr|n__vXI_4h6CfGy$m55U7* zY>2to5RcIINMZ#u7_Sok7d*5F58}I6HpD9M@QAJRMK(k|v6EQrqUGm5#*Vm6e+)U* z9!$)_j;O(osKJhyNlXCWUCYFdP|jgTbQF3!nV84~6AGA6z=YcUSGQ)9D z>3?CAu@u!2`yyAa_op@CMJlFw0pvnc*boMZv4O~%l!#V zG}{sHfr-w10*i*l@osg6VlI}$cc5xiFL?{_ibIY9DEH0 zdaj!LqUXTbe;CV7lpE0}zBV|r(j+Iuwsc?@`P-K5u+<8Y6CC~p6O1L8aHN+ZC(86c zfr*d6#5(M^udy+_c0@ZZDsG`?R{!^n*H;`dqE>u+5hgAN6E|RoiEX)#_L}8HJ20VY zOYz@p>OMzK+||mC=!R|C(vH}P9kC8OVjXtGI_wCRt4upWF!5*X2!Blc3mPmtV)iJ_ zbJgZ|joB-<8q0bd2NTgvdPD38htkrHxF1Z2UAfQ1M4X8Uu_LxJ)|MS1cI5{$e)yiH z_@1Tso~7KeYt9_X_vg0-dBJ?&XK>Lnv8mHjWzoxKPfSAvZjvB^YM$XZl0HiAuT?8o-5srvwI z{Jxb<5u+W4XZ>x8XR#?tyB~rt$LntqGnk7G`3U_H4=(C#aV>n%v(V7X#6_GIy>o$Q z_VkyHn;XA04#XQRaM9Yvti#5XSjN4?sY*dVn#8{I@?AMdm?blB#{qnO}i<_o~ zx?`CW*^en}Pt*RC@5z|?zLC*wztOW?Y)x!c-&#)wYdw3wMVJzne*j#}W^F^(+{1`Z zj6ja}CU#YXFKWjZ4Z#<+<6GDrAM5r@Z=+mi*0nlmdBiX5#4qgF9n0|Xqq~2OU2zw7 zg{*-DX_L_T-yz?{4xEdfHW%N1F24O8v@;?g*p#pN{TF%k;r}%BPd+qG4sT!_=%W&; z=QFpe63JS&s^?;BI`BOl;NnVj*9qiBPvmC?w#{kQxF(@%`X~|LLNV>6r_raT&w^cX zoY=&1ViU)SLyp6)m`l8BF7c{*ViUoP(=O}^J9dQ~yP_8V)Q%4R3g2T2zQ<$u9wJM` zN4KN5`mmN(GGe!0vTnCt>wL}=J?Lelw&M}wz*XNfw%BA6ez08yh^k?jUjPak_u3uiW&};=CRRt}AD60P8VepeHi8BDTO2bNeRa4c2q#jFL4bVo2~wML-NZ8g0^4HkX)O z9x=HWzF<8yOdE+^A48lZQG5W_%`3n^b-617B4j^B{?-7|&#Hd(ru_vk;fqX#FOrFa zCKCts`U74b-BFtBx$Mh#j3<d8=BeCmU@W5<%09(Nw zt#s3Grf)GyH`X;`^sk8r=W3kZ4eD1Y{dDmy*lh?rc2Ka>7zTOvoQ%)SFoH$GpzP^8~;@)ST@Eq@0 zWZXOJBjd)~#g@m;fyN@@+jipH!C*59xqgbckJ#>I#Q7(wcGE9a;b}+uE_{Vu`iI0u zPKf^s&o4Q$($jbIT4VIqBSv|_apWfYNNuMt0n>%}1+0PU{(ES|mhB1tBdKFI_?fBp zWGyz-TpP_n56C)6E_xtHQFSZ!q9Xq)u>+OFBk=45Glr0cjWwJ&g2dRJtXC-Kwh^OA z!=6%E$7cNtTxZwq*C%%xqmN{-O7;jHzS8w2wA&9mr-t?08rE;0D9-f+&VS2zqJFRO z@{}rUtw2-nZooe+cYLJpxbzS3Ydie@AWi(RYU*B!Z6toP#Q%pwC+oCs)^mx)24eSy z=RbkJVfkzQ=-(vPJ{@^`&>MU74{pu#d~ok(TZYrh|tKBph@{u zwNL&I#vm7a?jAKn#~;i86MXdqzU?>hoa+Ubz{33(}8aGr2Ky8QqL=k zwir+K-)Vf?Pxd1PX#w;#iTyHX=i8(8_mrE;50* zDK@`i?*DS3cf_~IQKL+m=R^i5td%RQl^=_8Hl)y3DLV|>o@7i<2LHbJq{!O-><7zVySv&Rm@Zw&~dpOUk$ghR& z^Sy45QeaJCZXD8JuAl z!8ym4_krh}deM{Eq0mS?u+7MMr_pdcwA8cprOife`%jG2Yw8X2EZ}3SJ<5gGjIyfF z4W;~yp;i`nj^4A$nACrVadg_ZW*O(Vi#(M>-A3YVdyT>cCyb-xpYh}lf7h6_@C##2 z-?L_!%&7}J%HKB|mERmOa=tikWS$&B(pnRn;q?*gn?xJ++JLL@)N?_G(vL#a>`L z<)*S{x9Uoz_(Y>xT(zA&$@oi&foa9;i*{8?o}Z$hmHnyP>7s*)P!UFk6L{ zk3Z=e=jQZwi38JvlLpd<&2s-+=pXX#82NbMxT(JLyz_R3%=wBldU7^pI%l5uMz1&a za_0Fp&OAqO=6NRPh-Yzrn7#6@vz&Q;gEP;S;3VVmz0YU-IPzec8qsAK=Z&X47TIMA zcjQdAM|DXX;(R6$U!uqDQyyBtS?BH#Pkv}VXPvX|T2tnRHZ5j+eXy zcG?f2k0)tor0BN@<&p^Y3HOOm`uC;3OaG|G$T{2BQkHg}{-ZkBE@#kEIm5%=()pZO zlXEq{TF1YYU#vq>ZLWks+gZso_)UOa&H%fT=*wg|*L>h=?$oidkDWU%nV(_&$=RW5 z&bkU6#he8gb)9Y84908G;}KmJaqe2~7RpbKFwb3Qb8fmP=dDjur+aFzhfZ<^U}CcO zyfyifDn_*9yfx28Ozmaf@gwDvDewF3A?eFW+PXmv+fx;g)YJZW!Z@>E=6UNd&RctP zsmOV2FGe^AG|Xn^`XQ!Wn^xA&ykq$Cg>o)h0V8VhkHgsKy*=Sw_E^u6{7-APCk*Ni zU6(`GP$h9rcW6p_ENGm)UFWNdcxLA;Y*MV!zvy7Xpft+K+0CI&r+F7b(qrM{>>*v6 z%7suixpz?iV#=EDe3dXr_V>%VHG4Pex%ra*R-I8 zKThuFZQj2vcU^sduZp~|AvXe$AA!gb@-hwc=45J&BHz1@wxj)(!E)BQE!wJhX3#w*P9!$9UHp;NaVdI5kVJsS#9f7 zJ^$*zt#VRcav|lAZ-KlmZ{)xq*bJNUY)bV4uw9D$KZm@?`>C-sl=?b8p83`V^0!q5 zaW{L2a&{Q=?%=PA-0}&RD`&TQ_uAhg{e$mZ(l?oV|L;dQ*L7bId0hF-qn;4(JCwTQ zTu~lvulQ+V{c}9GBl{&Mm7I03qZ8P7PkyEj?s{mFJ@DuGd@u-k2MspbVDEg3d&8`I z?&bb4k@=i|*_h@G=ln~oduASI3Rpx@_)RGcblNnmf#;h4pU?ko<+T&p zE$2@-``jS>?Nm5#vLI(j24`1JvUgl^cf={R+({c({Z&BDDqAM!o*W7?$nKtVr?NcH zmilIb8dpvHigV`92B}M)tutwqa|CVVsiQtQw;*}RlGW5V<=ic{()di?UunJ<>%NQ6 zw(f3{_u7+#FOzdJzPoNLOX?kaO$Tb^Z*JGK7GSooiB zkl$n;WuBxyq2=SW5NPb+UO=7a!R7b9I=xtF@19}yGtPZApG%lydB3gxT4#IAvzzKv z^IUl@^=}y*@R6Lo2#w)vRj3z(LjMHnyWf*qypl6^f{P~lGVQL*lxF(wGii%+kEDF& zQ)$SY=JOgt&llujma+1$+i8|fE#62@nlNxJ&ztC-Y&YrU_a=I!{r1;~gLCb- zK<`-oTHnbbv?{N`UviFA$ueo3A1{fJE-xe~kO4gvY^!oTofIS#g#6=5p8k ziRQiZWnh8~Cd(U`OQGcl{=fgEvw`)LP4|84Y-oCSzTdmNlSgi^GU}-Hd-pW|XPx00 zZQo}&8^%i?&U2p(vS$Ttn|k0 zxnI{DGkBs@`kf@XvwU?;qJQCxS>~}I*UfTAn>?qFne&5PM|jUFCp;=`ERs82=-*uW zv;V1Y120BXw+{oEtuXL6q16uq&&qc{3`i~&!9WpXmI(%|Jm}g=;bm`5c;P|8 zw9vcQht~|=J2&QE@Q2sdF!?e3rh3LAsda zUH=8$6Mup3JB2Pkx+lnYKf1@s_crLh>1XI3VaJYMj;MTPT{;6cnv!*>zpPZ_pV&8TuY|wxu&Fp-pI9 z$EW&Bef`*3d>+{*xr{kS{*2IHx-G~>F08YOoJoF&bpiY9$UpVL7Wzctw;fT~W#rBk zIV)pjmL2CEXJvx3VGC{BCnC2P_blpBCOI44<2SQhwy)eQWT}*U5E(^YO0(R<&W4Tr z_QkKv`}&_5C&>dV^Zp<)^h)@1o#-+jO@&}AzAVUf#+-}zCjD(;;~CnOaht&BTTiw< z$8r`@czXbOQe>Q@&RBHj1hdXqv(CDo!RjMF(`V_g)Kx}ZE6ur$bq}LHxwBI20l`wX zuWwiJx#(y5c9iqB);V99Q~0iFPM7=U^g-sLYJuH}IQT&L>MMXA&cja>x?@IsG4glR0gRhp+jWak1v|0p_xdxxAXW zEMqQ(78&;r%;lrzxO@3Z>UPkM%;C43olaw%E|$roe^w@MjYKA|ZI;R8xADqketX|1 z?+#FJZ|WsquiWE0#~!V0cG4G-Irtw9_OdPYUOd^|i~~Aj3+JyD*F4Su|M=+EBE})s zzfWRA3lHU>r%auZ=+nbjkPnBpvikbIGcPCQ`|o_;uXi>Gjak3<>8gxoT~+yPOI_94 zeiB>z5O##L7Z>>7+Y-BI*WZ@d!FS7+*eZRB^yco*43$1L+X?TP{c8R$V`lvkPcn1J z+wlkN=!}qXXTu2WCI7LK{))|CL>pcldG)b9)+bNMb-ac)q|VkfoBHUGv-l6x{lI@= zH!W^O>p~x`dFX~+O?=)=Q*IkHwx+@EH^=wOc=^ro9Qp1y$1~)68*_Ybt2vgOxvlSK zku%|vC+e{X_!0lJ2-;(j339gGdUn6>*)GQVL=qRL`*PoW%bfdK1)pfy?Ywg{q%`&m>H~BQ}!|safG45KC_rCQ# zdzH`NCy+_dBz2SPyWvafYKsrrOPQeNm_=Z+^ZPaC_%x5HymucljQbh)BIZMEaEW0Q z@m=bd?;o0Nx15V@v}ws~I~cLbN?s4??|bHFoLgj}|6G}J&)0YHO*isfWJr;W>m|){ z%}xFO^JvLd$q_CzAU8IW&$uC>!D)!E;r-s-rEJ|&pGjRJe?OxRMPeq-?yk-S%5w4H zlld$pr*0CqX$a4fCUy7S5h8ajw!HUM`WlNIF@3-^pZ~SZ>whVJ{+IZI>Eh2Zevd(q z*s)psZ;i=={5BODL*Tn<r&kR3fvyrkg-XaB2ukc;mt zrQ#_1s%nYBvj(S#7qOo z0b;H_B$>HPsu=g89!f>yJX>)U<6p@CN0FO%jaHVYqVo?=xj6n{>5}{D^8@hXFU0|V zq6X0LT7C*miZj?XpSu=>j~>Ae%EUjO6q?!)#2nstNovFW z9r&X^O|b=ZTw8GoPD+~n$%;&E!Xmq|m*3Zo_q(Syi0vwMlsz@CxQ5>kgK?>c`vAsg zbx!rsAooHv_jyMfG{_jqxX7pU`6j_3Ko=eHJP2+whMFwU0SmHI_r<%#}k;yJIa*vaf)a~!9NK1jcs^;LU!w6AX;(KpehDmFd$4Gm1XOgU>; zoo`kJuAF}jy_u! zyI1B3p8O=})MXFtULFtJ`}6#qizuPqzm?IzlrWyu?~*_I9Q zs;_LZ`5EV)$)~LUwymF2|115xoVrZ?jJ+viFMVCgZ&N#1`k5Tu|D}E&8v674d64hf zujyx@@#pk&>v<8MZj+x+XWA#o@n6zSw^F|qqaMfq_aR4?gVni=!~MQ@OOdyNE2n9z zd*!Xz>Non{_16P}8!wid=kq$|(;xe$E-O@A&;JowB=$Yyok_cvU6(?6>wl?FcvH&B zyhyoZ+Lie^Jb~w?z7R_^S$mD^mLfn zuV%WWZ>{H`Jy<_TKePT9?CTonYdw}Hku7cU#@D{G$IQ<-_j*2suPvU&-u*=xbf~GV zi)GM0+7wzP@BR<7RQ9Uakn;h={afA(BzeHT<4l>AE36Y^ahu2%?lKCw*Z%wv{?Frc z;0$N6%3hL30_@e3`;)hf7}sv;?_`z7Oc?j=+X^*QPW)#$O)u zFLtct@5OFz_#5(F>X&-ssrP%<&+2*SbL5TnyFy!WYL{wT%JZw_?ye1fZ57$_R^_Sn zZ%f@D|AzXdZmBn&_JoG}{b+cuRlRoV6`#8!{d}a2y8Z9bksSZu-{ zbs}_SKvyK?!ec_&qvvc`%-=jU!lY{-eohXwl`$qlk7D*O#N8KqYS@ob8!@qdo*G@9 z2A!3Z%W1cINICROR3fWImrKr1@fT$-+M?mBdFY=u=4di|4up1nnaOZCW;WwMHnCH^HvWT%20}8g#8@{MSOmXzD7< zEgK?pmPx-0p>HO0x*vj=H9>f?)uegRP|)$u8i`TlrN|JOv=mr zWz#R2zctkT$#0mubwc-c!6tVBFHl@f^XJ26n$WGN6(L}adkiXM{nwx7Q(?}A=@CkU z(9ZLw`ONXnr(iTJE|h#K^wCGRiBliV8^GzAFy04)g~~WSZU7%$yw)Ta|#E5ON)tQXnBe!;azCNI{TU~m0{jK*pi_-%p*8dN( zrn@OGJGdWT)+{fxkeA$x@OBpObYWf`-Xst@A*u9>8Ijr z{OX(PS6?17(f*&tx1H3ZP)|Db*s13Qa_&o?=GnSdt6-(v9K)7(khGRzjOzg(@3U{k z%lmPRYir(@J!mp+Ha^p<9zAGhoX#+Qd*FGJAheKYmGFoq&!WJ}5@cUBI5`RJi%hu| zUcCStb}zq8c8&VJJAFNkEI0*j%D_UUA7;)V-}*5oB4d;wXGvnvmXaE9QVwn>DpA$k zOU_=qNbM?{TG7KMGBcohJM{&iUnaYTeLsc&W#6)t|EQ(BxQOl}e{Gv@EZUC=-yj=D zDE8-**Le9RI~BPe?B&^M@M|S=l9`)p$_&ah%M9L`2L01>@1~F8)!d~%KAY#<B;m zcY;)t8-Jn_ZpsVc>yIzyrHg2PPH1mKR(AKz`+T7telTgD->DSGBNzPlUDZ!a#g5r&>dX+JM)5#8kQ*foATJ|VP%RdQ|2T0??VLJ({dB)vHQ$;#Pm4$9o>fRa;>Jk@T9~_ z<+n=4$jKb0Gk=Z4yz;$qSP-^rd-@j3oWwCF9hj4N=Az#tcQshDfJL&qy;yVH*b z*7`3n4@21pK)hnS*r-PXI+=I(jVAW+aC~#YlbP;JYrV{gf^xfOmCQXFob>O2_GtF*-JQnBzt5> z!D~1DvCH#<#gg2K^YKy!>Xaqa7hSETEMC?73fHPW)Yq5(^`mSpWoxJ}!4_40*0F5WqRSVp zN~B-Kj)kitx-VU|zp1{6>hhEv^Z9A&*`mf&CsVJK7i@aRxTCup`x<53@Hxk}9-H(F zjqD%F@yI<6GpJYS9?hrNGh68Ie%h7#W-~UoGe)mMPfwoTWIhk8?wPV|)k2Y9 zTaaaWU~pR9yl14oMO&4M)8Mc0Cg-RH{LOX-%yc;eXTIrdH*@1nt49Smm6?}0)tNUq zZ8I0#q>PgCcJ`y@vEOx`8d{xc`hKB%GTMb|Bk9XY_Nr&3B1_p@eM0ib(if-tiTsU3clPFQ)RSs`um3~byN5?rU5)>HW`N90E(8)T3E(6oNG_lt5E6yvB%n?L zUVwP%H9>4mf?A{EOJ2kz#7jcZ60dF2z5(eaXOy-UXp^_~Xf;x`m$xqgY@JC^ z3?L*b&iAvtiJs{&+m_U&YW}B*?aA^*Is+Awbx$zp^N%h=kD}Vp5KwI$chZ;?V)Z5yzGQdUC5Dco_8-}4x3s%KZ$WIFx|+o zF63F)RNfOilEIiwV(bQxQ;`wKf4=J?C%Jrk>{-?5fybrKqGvKL9?C)_WY za$`C3o*x--$CL@p5@#;(duad9;m@tmSKt=_6T|ym;2>k+xQUa<{$Fta8aV6%2f^um za1y;b#s|+{@f7_)9wy9IEH&#l)96E_8JoITQCMm;4ay#nBd ztRViD`4M_`aPF~u*X5|5Fa8o2y2R=mo?3c)c^UdY=RZRyWzL~hHr0~{9lD^^E7wkF zKFn3}^m`Qa0xlDKb2>De2F-Tzt>_aT^s~~W(B6p{@RV^llAk+mLUSzf@1yv=$5@eb z1vWYUJa3ERYkd!dp68`u<1B+&{6V} zn1e z9?BGZMdmhveV^ap_CLh=yhmBDUorc)%_YpQE0}Y)I1>9dIesv2FVEj`r1&1DAKvBv zyTH87`(40w(I;o<8_qH6tv(SfdS{ZB{V?y30>6U(c*%q-0q$1d_VQlJdW5ph@UDw8 zcJc0Qvkb8bjZ$9==!`b5Om2-aEJOdsofq(CWWI&@9( z!^!+F=Q04n3wUrXIHSO_iS+72k?#X!V%6dxgB~O zb4>GXm~ut40-tE`*=o|G8u~m6eWJlfJzO(S=&==gi0)bqeWVNr^nDTfN*v;0>ODgJ zg3EqzvFaC@W7PjU&UmAKOYSrxcMfuoUiHiTO*zCSCKzROts(Ybo>gCAJ{#-%tMyEi z^SA|WtnV%BnYx^KlJUOl?l-^dx}tF@|C88tpmU(TA(f>09HecY>jBc{n4RZ-|q<5}j)yI@bbpu6)YRL+5(g&^1Nh z>WZ-IS3sid_KDAS6oyS!w88W6-($oRheX*s_yV zPCYPH>(^Jz)B`E@#`dX~>AC1)^~fC;e4slLWDacfFJdm(>*(B!FZ2k0x}%K8|NMw^ z+>pJkz_i*~8w!Ux8iIKNm{Jpl>%ejxcB7nDV5IEBlzT+J6W^=ij@3Ve^jBp`WGSErT9Xrz^5*nP$_mRxkkFNb6bdup=UB@ ziY;3)vAKG(rZ2x({K775uKK2Qc-Hbii%-}a)%P3WBUvL=@U=6NbqdF5WNPEQ62`8~ zui_I?%(a^wo%329OZ!9?3IC5>p&B{tyfcx#KdKf#-Gu7-6V!M9!&yteU#j|d+Q;>X zjUoF+w@sedy!_cJ{a)lx$QPdI8xe+!_+s|q2fqh-gzd$-TVr}^kOLxnPJV4-GwY+B zQr<1}*YamS9Z=4xhVyNba#}wP{-%|06tYHi2|cVmqH9>X#NhTwy;4UlbC>u;H*rrK zbbr?b{6p;DxdOc>vALgdTZJ4t#lHB{v$Xd7cQ^~kkXtgQ6MPpFJ1Jw4 z@wCK`9GDdLZZ+>VoruU9#xohaMxSMxgq_UdCh6e4@t}qavrAilgBZx$IrPh zW4}7FS@89bd+aZ9*Gz2o#6t_jYy@yq1< z0D6;rn?9u_(QUJH#-XZMG^(yi-d&5mb{yNXOsTme&*mMBK^K$fCHQaT8_s|)^4rIE zlsU$9NGyVzu~q(YaJ$o?C+7boK24L>seF;2TO}k|N zV~qEf^q~iMwCqgY%Q$z^rZN*w0Vn<4dXbhbWlf_jnMgYeg+ zWSk7{xEs1iy#oK4_a}lo%6TvSybit2|7mfyi+(5t*Cc2xcAU@b&yscjJFlEIRm+YO zJw}ID%kUkQ;72-%-7e*bUKe0IGIw`0*b_LMS0?h6AUN`Zaon*;_YGiXgvdprRM3#v>KtJrSMmAR=XUhydFR$k` zkY%6~Cf^d|b0ANosQ zK8t==7A%JU(tR>6MJ~C+=wi{y4KJ#PLi(K#x>$6QGDN@oEp)bgO$H9=cY?$7;2`p} z54m#kyLMgV>*V%e(RM?}3(3`Y+2`@=kdC)8q~j$T^7gh$Ls#1v((yviZn2&jI^G1| zx2$_Zzf17FZQY~a9frUE%)PAtUTEz%8-45MzN&2=2kUp(XyW^_&e8SuRUI71m_SFt zeva#T78&VUHm=#ZWL$I7l+apm7B=SOnRQK9!`Bu+??e8Mg`dUt5gU1@J-hyuW`Hw0#YrTEaWls?wRe(;ORKLg2r$whLv|V&r zd6qKs1-Kfb%zOdSmiDtflB%9sX>n}3@?+zDx>P63THRKQ2 z>(AZ^Xt03au!i6>tG=f6d#Us6nnG|dK<{Rc{oYWF<({xT_KT&B4#~q1iWBWdmk*%J z=PE~!9lgY#f}aF_kn_f5P5LN4g3gWTwTyKy=YJnVR(3}qn^LYa&QWgR9A(8k@*c8E zw}sA8UKgi|dauaWKcFA&wox5N9kCsFFuN` zHYaCnh04hvg$^5bF0#iS)uYyJXwu1BBe}AN;}`k+tcRK&!bX?1bAf+2Udz6kZ=h+T zocSx~1}kiGDf8|!P~+dZ7)sbsAl8{Q7iF7km%Ig|PSj(HYxi*gxfA#)Z) z!!hudHCKOwmQxy~=E(V@UC_c`tK}St2%V+Aj;Iwk&p19VaJwN;MDcCBnh z_O2bVle?L*|5*-4#8D0g^yN%nV2OR{Ni<4!fgI7@j0 zG!$RV0={_%+jk-Rk*dj`6QT*Sf%BTXI9poIoBj!BC_iY>YPfNR@&@=()@3)-#$xJN zjvop;WX>dTbt^mhkap#iaqegXXY(%NoXp!fcQm)gQBezCnVdU{k2hy4&z?_+%E;wx z-V~k}M2F7nP3Kt|XO7AoJdN{4#n&ZrrJnP6i7T3&Bs|Z3Zr;L*&EhBH{_L8o&&3qy z+Uym#@LcRl;k#U0C|`t^ds)+UNlxr3-A5%L2Vc|pUw9@zN>-11Wsf9QQ%mQ&64wcJ+xPF6`nEb*>xH6+39=# z-%J^wG>ft3@^y#ZzsvvY>HFjSUZDT2J|-r}=wmy5yoLVCwX5g4kPo-g$1T*o2ONcG zuQdC(MGZgK$3nZo{Ih^LeH(byQO{snybKQSaYm|zb7;&ueY*rt+U$HVl+z_+1O6k& zz_SO>?p2)0F7m`)!S_XCdzG>ND*EMNXeYiIS$7vY9AbZ_V|@=Ddpmv7nUXeL_4_lu5lzwwFt zLcTZSzIuM+_ssi$nf|Hy7pDKC%*z)2`TvFKzkzxHIr=B%S8k%reHZ8dpXtBxbLd|mM*mrZ=zpnsA0F>&#c7kb${2GZ8*5Ct zbrbmwmWvEv>`9zhT9T`|8vRskTCroqu1#Zpm9ak{CN?b3z~_}OdseOToe8#vYGPaz z@h{aQ^0?Zz{>u zgHo2&j=7I~HqKYdIYK#xe8HYs3OzmK^ih=QOd43`ay z`Ob^Z8`>)tKjdC9X`{rV3;i|?(Z@EPo$up;`^kRyu=Mr7XG8WGbHFD03LQSDl(-l# z|F=?a332!>T)#};0Y4y)T=str6^|plQp22d3SGREd8m~C_c2yQo~(lZPm`GJLG%Gg=W=XGeYgi&#|3CpyhM zvsvaW(U(MDs4~hO=PN{>O$YP@P%jkXYddeCo&$}d!jr00z4Z7&$5O#fM=uOS)N^pXJvov z7sdTi6Zcu$F2A3R5N;lux;@q`#KZ%=PrQz7m^jHA3#>D4U-jB=jXQ% zA2=t|yn}e;kuQPg%_g2T2A+1}gB`?_3?sH=IKJ+IIUjBv719qypAmjeL@!C;C+oEL zIaT8`rye+{-cjG}VqM{{#NEk$f=|$|x>;lR82`gtquJjvn!P#rhxgjG$}V(Jm6jz60(sYg`Gyy=uZmS#aPcaGL}kxXrB9jt6e9z>VR#yicGUxlV!xTz_Z2 zD>2_G^PTt~cbM-4PQKeE_3+&$u0Q8p!X)kS=edsO>f@TowN;+a*B<{V*Va?P-}FQK zEds-{&0L*4Bfp#PKlq=>vmbITJsD(wq0{#R`R`MD8TzG*eyjQ|G3L;H&D~1(qoRv)iC&K zIBO~Ab7}}LWhH5PX^ilf&G+_LEnDKwvPzWxHqSm}9Qavhvg`-Z!`G0@qI#^_ZVU0? zQsKojwMzdu*s>HKXaDMv_}6$gkstc=(ytL4&{1BRU3^wmh|MfKF&RF*JwbbXL-K*9 zAKE7RI#hO6;UqN*dxIDP{1dE2-Ucl?h>a@aSvPClg`CAypP}>?$Aq4zW;HkM9HA<5 z#{D4CO}s-fYYj=nZo1jKe+@A{x3ku_Axr5i@za+jsL_$O?764$x%aUq5Qrca3td?J zAi~e7)Ds!W8Z2dKQL5;gXw@n8u8dZV4V19~yQw}QVOEq;M&xJ8NP;ioC?jg5>THqq z57t9&CigZmKn-I@sm7;oQFkzRztP=XWexh&b>zHW!x*ZyHG1bcmz5Fsn-Q&+ z6hB2SHu?m+`h)ZuXCsSSvD3&YzS0%dP-64EmBBcZJWu*~V5VrRS�_NK$&FtQ(KT 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∋`Fc}~^<2B? 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 Hbvg8ZD~bP6 diff --git a/backend/venv/lib/python3.12/site-packages/bcrypt/py.typed b/backend/venv/lib/python3.12/site-packages/bcrypt/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/METADATA deleted file mode 100644 index d1bc526..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/METADATA +++ /dev/null @@ -1,78 +0,0 @@ -Metadata-Version: 2.4 -Name: certifi -Version: 2026.1.4 -Summary: Python package for providing Mozilla's CA Bundle. -Home-page: https://github.com/certifi/python-certifi -Author: Kenneth Reitz -Author-email: me@kennethreitz.com -License: MPL-2.0 -Project-URL: Source, https://github.com/certifi/python-certifi -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 :: Only -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Requires-Python: >=3.7 -License-File: LICENSE -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: home-page -Dynamic: license -Dynamic: license-file -Dynamic: project-url -Dynamic: requires-python -Dynamic: summary - -Certifi: Python SSL Certificates -================================ - -Certifi provides Mozilla's carefully curated collection of Root Certificates for -validating the trustworthiness of SSL certificates while verifying the identity -of TLS hosts. It has been extracted from the `Requests`_ project. - -Installation ------------- - -``certifi`` is available on PyPI. Simply install it with ``pip``:: - - $ pip install certifi - -Usage ------ - -To reference the installed certificate authority (CA) bundle, you can use the -built-in function:: - - >>> import certifi - - >>> certifi.where() - '/usr/local/lib/python3.7/site-packages/certifi/cacert.pem' - -Or from the command line:: - - $ python -m certifi - /usr/local/lib/python3.7/site-packages/certifi/cacert.pem - -Enjoy! - -.. _`Requests`: https://requests.readthedocs.io/en/master/ - -Addition/Removal of Certificates --------------------------------- - -Certifi does not support any addition/removal or other modification of the -CA trust store content. This project is intended to provide a reliable and -highly portable root of trust to python deployments. Look to upstream projects -for methods to use alternate trust. diff --git a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/RECORD deleted file mode 100644 index abef4a1..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/RECORD +++ /dev/null @@ -1,14 +0,0 @@ -certifi-2026.1.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -certifi-2026.1.4.dist-info/METADATA,sha256=FSfJEfKuMo6bJlofUrtRpn4PFTYtbYyXpHN_A3ZFpIY,2473 -certifi-2026.1.4.dist-info/RECORD,, -certifi-2026.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91 -certifi-2026.1.4.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 -certifi-2026.1.4.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 -certifi/__init__.py,sha256=969deMMS7Uchipr0oO4dbRBUvRi0uNYCn07VmG1aTrg,94 -certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243 -certifi/__pycache__/__init__.cpython-312.pyc,, -certifi/__pycache__/__main__.cpython-312.pyc,, -certifi/__pycache__/core.cpython-312.pyc,, -certifi/cacert.pem,sha256=Tzl1_zCrvzVEO0hgZK6Ly0Hf9wf_31dsdtKS-0WKoKk,270954 -certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 -certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/WHEEL deleted file mode 100644 index e7fa31b..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (80.9.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE b/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE deleted file mode 100644 index 62b076c..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/licenses/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -This package contains a modified version of ca-bundle.crt: - -ca-bundle.crt -- Bundle of CA Root Certificates - -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: -https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt -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/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/top_level.txt b/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/top_level.txt deleted file mode 100644 index 963eac5..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi-2026.1.4.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -certifi diff --git a/backend/venv/lib/python3.12/site-packages/certifi/__init__.py b/backend/venv/lib/python3.12/site-packages/certifi/__init__.py deleted file mode 100644 index 090fd58..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .core import contents, where - -__all__ = ["contents", "where"] -__version__ = "2026.01.04" diff --git a/backend/venv/lib/python3.12/site-packages/certifi/__main__.py b/backend/venv/lib/python3.12/site-packages/certifi/__main__.py deleted file mode 100644 index 8945b5d..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi/__main__.py +++ /dev/null @@ -1,12 +0,0 @@ -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/backend/venv/lib/python3.12/site-packages/certifi/cacert.pem b/backend/venv/lib/python3.12/site-packages/certifi/cacert.pem deleted file mode 100644 index 132db0d..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi/cacert.pem +++ /dev/null @@ -1,4468 +0,0 @@ - -# 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: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root CA" -# Serial: 17154717934120587862167794914071425081 -# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 -# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 -# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c -JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP -mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ -wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 -VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ -AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB -AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun -pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC -dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf -fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm -NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx -H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root CA" -# Serial: 10944719598952040374951832963794454346 -# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e -# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 -# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61 ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD -QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB -CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 -nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt -43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P -T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 -gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO -BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR -TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw -DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr -hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg -06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF -PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls -YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert High Assurance EV Root CA" -# Serial: 3553400076410547919724730734378100087 -# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a -# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 -# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j -ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 -LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug -RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm -+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW -PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM -xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB -Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 -hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg -EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA -FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec -nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z -eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF -hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 -Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep -+OkuE6N36B9K ------END CERTIFICATE----- - -# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG -# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG -# Label: "SwissSign Gold CA - G2" -# Serial: 13492815561806991280 -# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93 -# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61 -# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95 ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -# Issuer: CN=SecureTrust CA O=SecureTrust Corporation -# Subject: CN=SecureTrust CA O=SecureTrust Corporation -# Label: "SecureTrust CA" -# Serial: 17199774589125277788362757014266862032 -# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1 -# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11 -# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73 ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz -MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv -cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz -Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO -0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao -wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj -7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS -8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT -BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg -JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC -NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 -6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ -3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm -D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS -CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -# Issuer: CN=Secure Global CA O=SecureTrust Corporation -# Subject: CN=Secure Global CA O=SecureTrust Corporation -# Label: "Secure Global CA" -# Serial: 9751836167731051554232119481456978597 -# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de -# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b -# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69 ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx -MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg -Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ -iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa -/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ -jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI -HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 -sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w -gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw -KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG -AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L -URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO -H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm -I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY -iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO Certification Authority O=COMODO CA Limited -# Label: "COMODO Certification Authority" -# Serial: 104350513648249232941998508985834464573 -# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 -# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b -# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66 ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB -gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV -BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw -MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl -YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P -RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 -UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI -2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 -Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp -+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ -DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O -nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW -/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g -PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u -QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY -SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv -IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 -zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd -BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB -ZQ== ------END CERTIFICATE----- - -# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited -# Label: "COMODO ECC Certification Authority" -# Serial: 41578283867086692638256921589707938090 -# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 -# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 -# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT -IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw -MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy -ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N -T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR -FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J -cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW -BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm -fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv -GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -# Issuer: CN=Certigna O=Dhimyotis -# Subject: CN=Certigna O=Dhimyotis -# Label: "Certigna" -# Serial: 18364802974209362175 -# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff -# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97 -# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV -BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X -DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ -BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 -QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny -gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw -zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q -130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 -JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw -ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT -AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj -AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG -9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h -bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc -fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu -HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w -t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority -# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority -# Label: "ePKI Root Certification Authority" -# Serial: 28956088682735189655030529057352760477 -# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3 -# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0 -# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5 ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe -MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 -ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw -IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL -SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH -SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh -ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X -DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 -TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ -fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA -sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU -WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS -nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH -dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip -NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC -AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF -MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB -uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl -PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP -JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ -gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 -j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 -5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB -o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS -/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z -Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE -W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D -hNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -# Issuer: O=certSIGN OU=certSIGN ROOT CA -# Subject: O=certSIGN OU=certSIGN ROOT CA -# Label: "certSIGN ROOT CA" -# Serial: 35210227249154 -# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17 -# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b -# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT -AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD -QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP -MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do -0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ -UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d -RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ -OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv -JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C -AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O -BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ -LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY -MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ -44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I -Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw -i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN -9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -# Issuer: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) -# Subject: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) -# Label: "NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny" -# Serial: 80544274841616 -# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88 -# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91 -# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98 ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG -EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 -MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl -cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR -dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB -pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM -b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm -aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz -IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT -lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz -AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 -VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG -ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 -BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG -AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M -U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh -bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C -+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F -uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 -XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -# Issuer: CN=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=Izenpe.com O=IZENPE S.A. -# Subject: CN=Izenpe.com O=IZENPE S.A. -# Label: "Izenpe.com" -# Serial: 917563065490389241595536686991402621 -# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73 -# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19 -# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. -# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. -# Label: "Go Daddy Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 -# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b -# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT -EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp -ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz -NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH -EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE -AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD -E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH -/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy -DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh -GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR -tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX -WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu -9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr -gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo -2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI -4uJEvlz36hz1 ------END CERTIFICATE----- - -# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Label: "Starfield Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 -# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e -# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs -ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw -MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj -aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp -Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg -nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 -HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N -Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN -dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 -HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G -CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU -sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 -4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg -8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 -mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Label: "Starfield Services Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 -# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f -# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs -ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy -ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy -dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p -OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 -8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K -Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe -hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk -6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw -DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q -AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI -bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB -ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z -qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn -0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN -sSi6 ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Network CA" -# Serial: 279744 -# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78 -# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e -# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM -MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D -ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU -cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 -WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg -Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw -IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH -UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM -TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU -BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM -kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x -AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV -HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y -sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL -I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 -J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY -VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA -# Label: "TWCA Root Certification Authority" -# Serial: 1 -# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79 -# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48 -# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44 ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES -MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU -V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz -WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO -LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE -AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH -K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX -RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z -rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx -3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq -hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC -MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls -XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D -lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn -aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ -YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 -# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 -# Label: "Security Communication RootCA2" -# Serial: 0 -# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43 -# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74 -# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6 ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl -MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe -U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX -DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy -dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj -YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV -OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr -zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM -VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ -hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO -ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw -awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs -OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF -coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc -okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 -t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy -1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ -SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 -# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 -# Label: "Actalis Authentication Root CA" -# Serial: 6271844772424770508 -# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6 -# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac -# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66 ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE -BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w -MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC -SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 -ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv -UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX -4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 -KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ -gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb -rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ -51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F -be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe -KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F -v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn -fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 -jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz -ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL -e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 -jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz -WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V -SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j -pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX -X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok -fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R -K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU -ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU -LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT -LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 -# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 -# Label: "Buypass Class 2 Root CA" -# Serial: 2 -# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29 -# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99 -# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48 ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr -6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV -L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 -1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx -MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ -QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB -arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr -Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi -FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS -P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN -9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz -uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h -9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t -OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo -+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 -KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 -DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us -H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ -I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 -5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h -3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz -Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= ------END CERTIFICATE----- - -# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 -# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 -# Label: "Buypass Class 3 Root CA" -# Serial: 2 -# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec -# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57 -# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y -ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E -N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 -tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX -0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c -/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X -KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY -zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS -O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D -34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP -K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv -Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj -QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS -IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 -HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa -O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv -033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u -dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE -kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 -3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD -u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq -4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= ------END CERTIFICATE----- - -# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Label: "T-TeleSec GlobalRoot Class 3" -# Serial: 1 -# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef -# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1 -# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN -8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ -RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 -hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 -ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM -EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 -A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy -WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ -1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 -6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT -91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p -TpPDpFQUWw== ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH -# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH -# Label: "D-TRUST Root Class 3 CA 2 2009" -# Serial: 623603 -# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f -# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0 -# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1 ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha -ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM -HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 -UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 -tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R -ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM -lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp -/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G -A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G -A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj -dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy -MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl -cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js -L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL -BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni -acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K -zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 -PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y -Johw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH -# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH -# Label: "D-TRUST Root Class 3 CA 2 EV 2009" -# Serial: 623604 -# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6 -# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83 -# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81 ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw -NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV -BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn -ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 -3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z -qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR -p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 -HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw -ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea -HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw -Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh -c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E -RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt -dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku -Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp -3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF -CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na -xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX -KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -# Issuer: CN=CA Disig Root R2 O=Disig a.s. -# Subject: CN=CA Disig Root R2 O=Disig a.s. -# Label: "CA Disig Root R2" -# Serial: 10572350602393338211 -# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03 -# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71 -# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03 ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV -BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu -MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy -MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx -EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw -ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe -NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH -PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I -x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe -QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR -yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO -QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 -H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ -QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD -i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs -nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 -rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI -hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf -GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb -lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka -+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal -TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i -nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 -gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr -G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os -zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x -L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV -# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV -# Label: "ACCVRAIZ1" -# Serial: 6828503384748696800 -# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02 -# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17 -# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13 ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE -AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw -CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ -BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND -VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb -qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY -HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo -G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA -lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr -IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ -0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH -k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 -4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO -m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa -cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl -uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI -KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls -ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG -AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT -VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG -CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA -cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA -QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA -7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA -cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA -QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA -czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu -aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt -aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud -DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF -BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp -D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU -JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m -AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD -vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms -tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH -7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA -h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF -d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H -pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA -# Label: "TWCA Global Root CA" -# Serial: 3262 -# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96 -# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65 -# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx -EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT -VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 -NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT -B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF -10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz -0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh -MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH -zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc -46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 -yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi -laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP -oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA -BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE -qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm -4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL -1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF -H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo -RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ -nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh -15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW -6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW -nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j -wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz -aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy -KwbQBM0= ------END CERTIFICATE----- - -# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera -# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera -# Label: "TeliaSonera Root CA v1" -# Serial: 199041966741090107964904287217786801558 -# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c -# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37 -# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89 ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw -NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv -b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD -VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2 -MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F -VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1 -7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X -Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+ -/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs -81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm -dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe -Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu -sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4 -pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs -slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ -arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD -VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG -9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl -dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj -TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed -Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7 -Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI -OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7 -vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW -t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn -HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx -SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- - -# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Label: "T-TeleSec GlobalRoot Class 2" -# Serial: 1 -# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a -# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9 -# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52 ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd -AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC -FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi -1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq -jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ -wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ -WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy -NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC -uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw -IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 -g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP -BSeOE6Fuwg== ------END CERTIFICATE----- - -# Issuer: CN=Atos TrustedRoot 2011 O=Atos -# Subject: CN=Atos TrustedRoot 2011 O=Atos -# Label: "Atos TrustedRoot 2011" -# Serial: 6643877497813316402 -# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56 -# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21 -# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74 ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE -AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG -EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM -FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC -REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp -Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM -VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ -SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ -4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L -cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi -eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG -A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 -DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j -vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP -DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc -maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D -lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv -KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 1 G3" -# Serial: 687049649626669250736271037606554624078720034195 -# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab -# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67 -# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 -MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV -wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe -rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 -68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh -4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp -UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o -abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc -3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G -KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt -hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO -Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt -zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD -ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 -cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN -qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 -YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv -b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 -8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k -NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj -ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp -q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt -nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 2 G3" -# Serial: 390156079458959257446133169266079962026824725800 -# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06 -# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36 -# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 -MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf -qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW -n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym -c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ -O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 -o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j -IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq -IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz -8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh -vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l -7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG -cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD -ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC -roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga -W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n -lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE -+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV -csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd -dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg -KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM -HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 -WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 3 G3" -# Serial: 268090761170461462463995952157327242137089239581 -# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7 -# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d -# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 -MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR -/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu -FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR -U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c -ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR -FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k -A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw -eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl -sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp -VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q -A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ -ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD -ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI -FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv -oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg -u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP -0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf -3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl -8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ -DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN -PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ -ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root G2" -# Serial: 15385348160840213938643033620894905419 -# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d -# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f -# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85 ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA -n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc -biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp -EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA -bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu -YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW -BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI -QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I -0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni -lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 -B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv -ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root G3" -# Serial: 15459312981008553731928384953135426796 -# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb -# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89 -# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2 ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg -RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf -Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q -RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ -BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD -AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY -JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv -6pZjamVFkpUBtA== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root G2" -# Serial: 4293743540046975378534879503202253541 -# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44 -# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4 -# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH -MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI -2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx -1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ -q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz -tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ -vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV -5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY -1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 -NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG -Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 -8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe -pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root G3" -# Serial: 7089244469030293291760083333884364146 -# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca -# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e -# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0 ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe -Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw -EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x -IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF -K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG -fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO -Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd -BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx -AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ -oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 -sycX ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Trusted Root G4" -# Serial: 7451500558977370777930084869016614236 -# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49 -# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4 -# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88 ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg -RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y -ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If -xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV -ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO -DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ -jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ -CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi -EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM -fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY -uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK -chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t -9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 -SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd -+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc -fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa -sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N -cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N -0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie -4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI -r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 -/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm -gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ ------END CERTIFICATE----- - -# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited -# Label: "COMODO RSA Certification Authority" -# Serial: 101909084537582093308941363524873193117 -# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18 -# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4 -# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34 ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB -hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV -BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT -EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR -6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X -pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC -9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV -/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf -Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z -+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w -qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah -SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC -u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf -Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq -crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB -/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl -wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM -4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV -2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna -FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ -CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK -boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke -jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL -S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb -QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl -0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB -NVOFBkpdn627G190 ------END CERTIFICATE----- - -# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network -# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network -# Label: "USERTrust RSA Certification Authority" -# Serial: 2645093764781058787591871645665788717 -# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5 -# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e -# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2 ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB -iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl -cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV -BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw -MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV -BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK -AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B -3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY -tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ -Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 -VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT -79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 -c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT -Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l -c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee -UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE -Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G -A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF -Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO -VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 -ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs -8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR -iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze -Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ -XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ -qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB -VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB -L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG -jjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- - -# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network -# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network -# Label: "USERTrust ECC Certification Authority" -# Serial: 123013823720199481456569720443997572134 -# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1 -# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0 -# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl -eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT -JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg -VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo -I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng -o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G -A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB -zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW -RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 -# Label: "GlobalSign ECC Root CA - R5" -# Serial: 32785792099990507226680698011560947931244 -# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08 -# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa -# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24 ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc -8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke -hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI -KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg -515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO -xwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- - -# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust -# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust -# Label: "IdenTrust Commercial Root CA 1" -# Serial: 13298821034946342390520003877796839426 -# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7 -# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25 -# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu -VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw -MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw -JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT -3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU -+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp -S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 -bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi -T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL -vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK -Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK -dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT -c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv -l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N -iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD -ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt -LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 -nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 -+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK -W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT -AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq -l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG -4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ -mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A -7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H ------END CERTIFICATE----- - -# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust -# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust -# Label: "IdenTrust Public Sector Root CA 1" -# Serial: 13298821034946342390521976156843933698 -# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba -# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd -# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu -VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN -MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 -MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 -ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy -RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS -bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF -/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R -3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw -EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy -9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V -GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ -2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV -WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD -W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN -AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV -DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 -TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G -lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW -mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df -WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 -+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ -tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA -GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv -8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- - -# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority -# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority -# Label: "CFCA EV ROOT" -# Serial: 407555286 -# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30 -# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83 -# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD -TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y -aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx -MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j -aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP -T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 -sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL -TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 -/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp -7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz -EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt -hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP -a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot -aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg -TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV -PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv -cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL -tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd -BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT -ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL -jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS -ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy -P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 -xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d -Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN -5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe -/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z -AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ -5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- - -# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed -# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed -# Label: "OISTE WISeKey Global Root GB CA" -# Serial: 157768595616588414422159278966750757568 -# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d -# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed -# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6 ------BEGIN CERTIFICATE----- -MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt -MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg -Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i -YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x -CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG -b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh -bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 -HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx -WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX -1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk -u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P -99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r -M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB -BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh -cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 -gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO -ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf -aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic -Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= ------END CERTIFICATE----- - -# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. -# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. -# Label: "SZAFIR ROOT CA2" -# Serial: 357043034767186914217277344587386743377558296292 -# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99 -# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de -# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL -BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6 -ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw -NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L -cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg -Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN -QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT -3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw -3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 -3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5 -BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN -XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF -AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw -8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG -nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP -oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy -d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg -LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Network CA 2" -# Serial: 44979900017204383099463764357512596969 -# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2 -# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92 -# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04 ------BEGIN CERTIFICATE----- -MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB -gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu -QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG -A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz -OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ -VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3 -b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA -DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn -0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB -OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE -fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E -Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m -o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i -sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW -OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez -Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS -adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n -3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ -F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf -CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29 -XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm -djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/ -WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb -AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq -P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko -b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj -XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P -5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi -DrW5viSP ------END CERTIFICATE----- - -# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Label: "Hellenic Academic and Research Institutions RootCA 2015" -# Serial: 0 -# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce -# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6 -# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36 ------BEGIN CERTIFICATE----- -MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix -DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k -IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT -N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v -dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG -A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh -ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx -QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA -4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0 -AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10 -4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C -ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV -9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD -gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6 -Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq -NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko -LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc -Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd -ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I -XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI -M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot -9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V -Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea -j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh -X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ -l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf -bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4 -pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK -e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 -vm9qp/UsQu0yrbYhnr68 ------END CERTIFICATE----- - -# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Label: "Hellenic Academic and Research Institutions ECC RootCA 2015" -# Serial: 0 -# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef -# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66 -# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33 ------BEGIN CERTIFICATE----- -MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN -BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl -bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv -b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ -BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj -YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5 -MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0 -dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg -QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa -jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi -C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep -lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof -TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR ------END CERTIFICATE----- - -# Issuer: CN=ISRG Root X1 O=Internet Security Research Group -# Subject: CN=ISRG Root X1 O=Internet Security Research Group -# Label: "ISRG Root X1" -# Serial: 172886928669790476064670243504169061120 -# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e -# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8 -# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 ------BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 -WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu -ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY -MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc -h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ -0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U -A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW -T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH -B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC -B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv -KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn -OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn -jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw -qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI -rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq -hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL -ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ -3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK -NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 -ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur -TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC -jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc -oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq -4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA -mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d -emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= ------END CERTIFICATE----- - -# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM -# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM -# Label: "AC RAIZ FNMT-RCM" -# Serial: 485876308206448804701554682760554759 -# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d -# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20 -# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx -CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ -WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ -BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG -Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ -yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf -BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz -WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF -tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z -374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC -IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL -mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 -wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS -MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 -ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet -UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H -YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 -LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD -nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 -RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM -LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf -77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N -JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm -fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp -6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp -1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B -9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok -RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv -uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 1 O=Amazon -# Subject: CN=Amazon Root CA 1 O=Amazon -# Label: "Amazon Root CA 1" -# Serial: 143266978916655856878034712317230054538369994 -# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6 -# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16 -# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e ------BEGIN CERTIFICATE----- -MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF -ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 -b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL -MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv -b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj -ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM -9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw -IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 -VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L -93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm -jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA -A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI -U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs -N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv -o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU -5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy -rqXRfboQnoZsG4q5WTP468SQvvG5 ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 2 O=Amazon -# Subject: CN=Amazon Root CA 2 O=Amazon -# Label: "Amazon Root CA 2" -# Serial: 143266982885963551818349160658925006970653239 -# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66 -# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a -# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4 ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF -ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 -b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL -MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv -b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK -gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ -W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg -1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K -8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r -2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me -z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR -8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj -mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz -7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6 -+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI -0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm -UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 -LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY -+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS -k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl -7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm -btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl -urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+ -fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63 -n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE -76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H -9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT -4PsJYGw= ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 3 O=Amazon -# Subject: CN=Amazon Root CA 3 O=Amazon -# Label: "Amazon Root CA 3" -# Serial: 143266986699090766294700635381230934788665930 -# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87 -# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e -# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4 ------BEGIN CERTIFICATE----- -MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 -MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g -Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG -A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg -Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl -ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr -ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr -BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM -YyRIHN8wfdVoOw== ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 4 O=Amazon -# Subject: CN=Amazon Root CA 4 O=Amazon -# Label: "Amazon Root CA 4" -# Serial: 143266989758080763974105200630763877849284878 -# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd -# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be -# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92 ------BEGIN CERTIFICATE----- -MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5 -MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g -Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG -A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg -Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi -9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk -M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB -MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw -CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW -1KyLa2tJElMzrdfkviT8tQp21KW8EA== ------END CERTIFICATE----- - -# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM -# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM -# Label: "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" -# Serial: 1 -# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49 -# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca -# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16 ------BEGIN CERTIFICATE----- -MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx -GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp -bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w -KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0 -BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy -dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG -EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll -IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU -QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT -TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg -LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7 -a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr -LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr -N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X -YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/ -iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f -AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH -V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh -AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf -IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4 -lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c -8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf -lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= ------END CERTIFICATE----- - -# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. -# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. -# Label: "GDCA TrustAUTH R5 ROOT" -# Serial: 9009899650740120186 -# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4 -# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4 -# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93 ------BEGIN CERTIFICATE----- -MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE -BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ -IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0 -MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV -BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w -HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj -Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj -TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u -KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj -qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm -MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12 -ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP -zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk -L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC -jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA -HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC -AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg -p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm -DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5 -COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry -L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf -JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg -IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io -2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV -09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ -XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq -T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe -MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== ------END CERTIFICATE----- - -# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation -# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation -# Label: "SSL.com Root Certification Authority RSA" -# Serial: 8875640296558310041 -# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29 -# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb -# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69 ------BEGIN CERTIFICATE----- -MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE -BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK -DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz -OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv -dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv -bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R -xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX -qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC -C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3 -6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh -/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF -YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E -JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc -US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8 -ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm -+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi -M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G -A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV -cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc -Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs -PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/ -q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0 -cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr -a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I -H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y -K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu -nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf -oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY -Ic2wBlX7Jz9TkHCpBB5XJ7k= ------END CERTIFICATE----- - -# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation -# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation -# Label: "SSL.com Root Certification Authority ECC" -# Serial: 8495723813297216424 -# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e -# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a -# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65 ------BEGIN CERTIFICATE----- -MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC -VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T -U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz -WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0 -b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS -b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI -7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg -CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud -EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD -VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T -kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+ -gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl ------END CERTIFICATE----- - -# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation -# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation -# Label: "SSL.com EV Root Certification Authority RSA R2" -# Serial: 6248227494352943350 -# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95 -# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a -# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c ------BEGIN CERTIFICATE----- -MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV -BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE -CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy -MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G -A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD -DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq -M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf -OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa -4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9 -HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR -aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA -b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ -Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV -PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO -pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu -UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY -MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV -HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4 -9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW -s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5 -Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg -cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM -79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz -/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt -ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm -Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK -QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ -w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi -S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07 -mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== ------END CERTIFICATE----- - -# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation -# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation -# Label: "SSL.com EV Root Certification Authority ECC" -# Serial: 3182246526754555285 -# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90 -# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d -# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8 ------BEGIN CERTIFICATE----- -MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC -VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T -U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx -NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv -dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv -bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA -VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku -WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP -MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX -5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ -ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg -h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 -# Label: "GlobalSign Root CA - R6" -# Serial: 1417766617973444989252670301619537 -# MD5 Fingerprint: 4f:dd:07:e4:d4:22:64:39:1e:0c:37:42:ea:d1:c6:ae -# SHA1 Fingerprint: 80:94:64:0e:b5:a7:a1:ca:11:9c:1f:dd:d5:9f:81:02:63:a7:fb:d1 -# SHA256 Fingerprint: 2c:ab:ea:fe:37:d0:6c:a2:2a:ba:73:91:c0:03:3d:25:98:29:52:c4:53:64:73:49:76:3a:3a:b5:ad:6c:cf:69 ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg -MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh -bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx -MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET -MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI -xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k -ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD -aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw -LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw -1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX -k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2 -SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h -bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n -WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY -rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce -MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu -bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN -nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt -Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61 -55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj -vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf -cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz -oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp -nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs -pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v -JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R -8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4 -5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= ------END CERTIFICATE----- - -# Issuer: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed -# Subject: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed -# Label: "OISTE WISeKey Global Root GC CA" -# Serial: 44084345621038548146064804565436152554 -# MD5 Fingerprint: a9:d6:b9:2d:2f:93:64:f8:a5:69:ca:91:e9:68:07:23 -# SHA1 Fingerprint: e0:11:84:5e:34:de:be:88:81:b9:9c:f6:16:26:d1:96:1f:c3:b9:31 -# SHA256 Fingerprint: 85:60:f9:1c:36:24:da:ba:95:70:b5:fe:a0:db:e3:6f:f1:1a:83:23:be:94:86:85:4f:b3:f3:4a:55:71:19:8d ------BEGIN CERTIFICATE----- -MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw -CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91 -bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg -Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ -BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu -ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS -b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni -eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W -p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T -rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV -57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg -Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 ------END CERTIFICATE----- - -# Issuer: CN=UCA Global G2 Root O=UniTrust -# Subject: CN=UCA Global G2 Root O=UniTrust -# Label: "UCA Global G2 Root" -# Serial: 124779693093741543919145257850076631279 -# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8 -# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a -# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9 -MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH -bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x -CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds -b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr -b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9 -kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm -VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R -VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc -C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj -tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY -D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv -j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl -NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6 -iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP -O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV -ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj -L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 -1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl -1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU -b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV -PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj -y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb -EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg -DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI -+Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy -YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX -UB+K+wb1whnw0A== ------END CERTIFICATE----- - -# Issuer: CN=UCA Extended Validation Root O=UniTrust -# Subject: CN=UCA Extended Validation Root O=UniTrust -# Label: "UCA Extended Validation Root" -# Serial: 106100277556486529736699587978573607008 -# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2 -# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a -# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24 ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH -MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF -eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx -MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV -BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog -D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS -sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop -O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk -sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi -c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj -VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz -KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/ -TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G -sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs -1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD -fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN -l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR -ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ -VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5 -c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp -4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s -t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj -2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO -vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C -xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx -cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM -fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax ------END CERTIFICATE----- - -# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 -# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 -# Label: "Certigna Root CA" -# Serial: 269714418870597844693661054334862075617 -# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77 -# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43 -# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68 ------BEGIN CERTIFICATE----- -MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw -WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw -MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x -MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD -VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX -BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO -ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M -CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu -I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm -TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh -C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf -ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz -IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT -Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k -JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5 -hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB -GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of -1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov -L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo -dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr -aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq -hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L -6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG -HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6 -0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB -lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi -o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1 -gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v -faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63 -Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh -jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw -3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= ------END CERTIFICATE----- - -# Issuer: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI -# Subject: CN=emSign Root CA - G1 O=eMudhra Technologies Limited OU=emSign PKI -# Label: "emSign Root CA - G1" -# Serial: 235931866688319308814040 -# MD5 Fingerprint: 9c:42:84:57:dd:cb:0b:a7:2e:95:ad:b6:f3:da:bc:ac -# SHA1 Fingerprint: 8a:c7:ad:8f:73:ac:4e:c1:b5:75:4d:a5:40:f4:fc:cf:7c:b5:8e:8c -# SHA256 Fingerprint: 40:f6:af:03:46:a9:9a:a1:cd:1d:55:5a:4e:9c:ce:62:c7:f9:63:46:03:ee:40:66:15:83:3d:c8:c8:d0:03:67 ------BEGIN CERTIFICATE----- -MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYD -VQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBU -ZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBH -MTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgxODMwMDBaMGcxCzAJBgNVBAYTAklO -MRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xv -Z2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQz -f2N4aLTNLnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO -8oG0x5ZOrRkVUkr+PHB1cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aq -d7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHWDV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhM -tTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ6DqS0hdW5TUaQBw+jSzt -Od9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrHhQIDAQAB -o0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQD -AgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31x -PaOfG1vR2vjTnGs2vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjM -wiI/aTvFthUvozXGaCocV685743QNcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6d -GNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q+Mri/Tm3R7nrft8EI6/6nAYH -6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeihU80Bv2noWgby -RQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx -iN66zB+Afko= ------END CERTIFICATE----- - -# Issuer: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI -# Subject: CN=emSign ECC Root CA - G3 O=eMudhra Technologies Limited OU=emSign PKI -# Label: "emSign ECC Root CA - G3" -# Serial: 287880440101571086945156 -# MD5 Fingerprint: ce:0b:72:d1:9f:88:8e:d0:50:03:e8:e3:b8:8b:67:40 -# SHA1 Fingerprint: 30:43:fa:4f:f2:57:dc:a0:c3:80:ee:2e:58:ea:78:b2:3f:e6:bb:c1 -# SHA256 Fingerprint: 86:a1:ec:ba:08:9c:4a:8d:3b:be:27:34:c6:12:ba:34:1d:81:3e:04:3c:f9:e8:a8:62:cd:5c:57:a3:6b:be:6b ------BEGIN CERTIFICATE----- -MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG -EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo -bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g -RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ -TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s -b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw -djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0 -WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS -fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB -zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq -hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB -CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD -+JbNR6iC8hZVdyR+EhCVBCyj ------END CERTIFICATE----- - -# Issuer: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI -# Subject: CN=emSign Root CA - C1 O=eMudhra Inc OU=emSign PKI -# Label: "emSign Root CA - C1" -# Serial: 825510296613316004955058 -# MD5 Fingerprint: d8:e3:5d:01:21:fa:78:5a:b0:df:ba:d2:ee:2a:5f:68 -# SHA1 Fingerprint: e7:2e:f1:df:fc:b2:09:28:cf:5d:d4:d5:67:37:b1:51:cb:86:4f:01 -# SHA256 Fingerprint: 12:56:09:aa:30:1d:a0:a2:49:b9:7a:82:39:cb:6a:34:21:6f:44:dc:ac:9f:39:54:b1:42:92:f2:e8:c8:60:8f ------BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkG -A1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEg -SW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAw -MFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln -biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9v -dCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+upufGZ -BczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZ -HdPIWoU/Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH -3DspVpNqs8FqOp099cGXOFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvH -GPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4VI5b2P/AgNBbeCsbEBEV5f6f9vtKppa+c -xSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleoomslMuoaJuvimUnzYnu3Yy1 -aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+XJGFehiq -TbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87 -/kOXSTKZEhVb3xEp/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4 -kqNPEjE2NuLe/gDEo2APJ62gsIq1NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrG -YQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9wC68AivTxEDkigcxHpvOJpkT -+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQBmIMMMAVSKeo -WXzhriKi4gp6D/piq1JM4fHfyr6DDUI= ------END CERTIFICATE----- - -# Issuer: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI -# Subject: CN=emSign ECC Root CA - C3 O=eMudhra Inc OU=emSign PKI -# Label: "emSign ECC Root CA - C3" -# Serial: 582948710642506000014504 -# MD5 Fingerprint: 3e:53:b3:a3:81:ee:d7:10:f8:d3:b0:1d:17:92:f5:d5 -# SHA1 Fingerprint: b6:af:43:c2:9b:81:53:7d:f6:ef:6b:c3:1f:1f:60:15:0c:ee:48:66 -# SHA256 Fingerprint: bc:4d:80:9b:15:18:9d:78:db:3e:1d:8c:f4:f9:72:6a:79:5d:a1:64:3c:a5:f1:35:8e:1d:db:0e:dc:0d:7e:b3 ------BEGIN CERTIFICATE----- -MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG -EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx -IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw -MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln -biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND -IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci -MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti -sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O -BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB -Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c -3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J -0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== ------END CERTIFICATE----- - -# Issuer: CN=Hongkong Post Root CA 3 O=Hongkong Post -# Subject: CN=Hongkong Post Root CA 3 O=Hongkong Post -# Label: "Hongkong Post Root CA 3" -# Serial: 46170865288971385588281144162979347873371282084 -# MD5 Fingerprint: 11:fc:9f:bd:73:30:02:8a:fd:3f:f3:58:b9:cb:20:f0 -# SHA1 Fingerprint: 58:a2:d0:ec:20:52:81:5b:c1:f3:f8:64:02:24:4e:c2:8e:02:4b:02 -# SHA256 Fingerprint: 5a:2f:c0:3f:0c:83:b0:90:bb:fa:40:60:4b:09:88:44:6c:76:36:18:3d:f9:84:6e:17:10:1a:44:7f:b8:ef:d6 ------BEGIN CERTIFICATE----- -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 -mpv0 ------END CERTIFICATE----- - -# Issuer: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation -# Subject: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation -# Label: "Microsoft ECC Root Certificate Authority 2017" -# Serial: 136839042543790627607696632466672567020 -# MD5 Fingerprint: dd:a1:03:e6:4a:93:10:d1:bf:f0:19:42:cb:fe:ed:67 -# SHA1 Fingerprint: 99:9a:64:c3:7f:f4:7d:9f:ab:95:f1:47:69:89:14:60:ee:c4:c3:c5 -# SHA256 Fingerprint: 35:8d:f3:9d:76:4a:f9:e1:b7:66:e9:c9:72:df:35:2e:e1:5c:fa:c2:27:af:6a:d1:d7:0e:8e:4a:6e:dc:ba:02 ------BEGIN CERTIFICATE----- -MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQsw -CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYD -VQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw -MTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4MjMxNjA0WjBlMQswCQYDVQQGEwJV -UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNy -b3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZR -ogPZnZH6thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYb -hGBKia/teQ87zvH2RPUBeMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8E -BTADAQH/MB0GA1UdDgQWBBTIy5lycFIM+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3 -FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlfXu5gKcs68tvWMoQZP3zV -L8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaReNtUjGUB -iudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= ------END CERTIFICATE----- - -# Issuer: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation -# Subject: CN=Microsoft RSA Root Certificate Authority 2017 O=Microsoft Corporation -# Label: "Microsoft RSA Root Certificate Authority 2017" -# Serial: 40975477897264996090493496164228220339 -# MD5 Fingerprint: 10:ff:00:ff:cf:c9:f8:c7:7a:c0:ee:35:8e:c9:0f:47 -# SHA1 Fingerprint: 73:a5:e6:4a:3b:ff:83:16:ff:0e:dc:cc:61:8a:90:6e:4e:ae:4d:74 -# SHA256 Fingerprint: c7:41:f7:0f:4b:2a:8d:88:bf:2e:71:c1:41:22:ef:53:ef:10:eb:a0:cf:a5:e6:4c:fa:20:f4:18:85:30:73:e0 ------BEGIN CERTIFICATE----- -MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBl -MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw -NAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIwNzE4MjMwMDIzWjBlMQswCQYDVQQG -EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1N -aWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZ -Nt9GkMml7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0 -ZdDMbRnMlfl7rEqUrQ7eS0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1 -HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw71VdyvD/IybLeS2v4I2wDwAW9lcfNcztm -gGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+dkC0zVJhUXAoP8XFWvLJ -jEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49FyGcohJUc -aDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaG -YaRSMLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6 -W6IYZVcSn2i51BVrlMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4K -UGsTuqwPN1q3ErWQgR5WrlcihtnJ0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH -+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJClTUFLkqqNfs+avNJVgyeY+Q -W5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC -NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZC -LgLNFgVZJ8og6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OC -gMNPOsduET/m4xaRhPtthH80dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6 -tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk+ONVFT24bcMKpBLBaYVu32TxU5nh -SnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex/2kskZGT4d9Mozd2 -TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDyAmH3 -pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGR -xpl/j8nWZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiApp -GWSZI1b7rCoucL5mxAyE7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9 -dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKTc0QWbej09+CVgI+WXTik9KveCjCHk9hN -AHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D5KbvtwEwXlGjefVwaaZB -RA+GsCyRxj3qrg+E ------END CERTIFICATE----- - -# Issuer: CN=e-Szigno Root CA 2017 O=Microsec Ltd. -# Subject: CN=e-Szigno Root CA 2017 O=Microsec Ltd. -# Label: "e-Szigno Root CA 2017" -# Serial: 411379200276854331539784714 -# MD5 Fingerprint: de:1f:f6:9e:84:ae:a7:b4:21:ce:1e:58:7d:d1:84:98 -# SHA1 Fingerprint: 89:d4:83:03:4f:9e:9a:48:80:5f:72:37:d4:a9:a6:ef:cb:7c:1f:d1 -# SHA256 Fingerprint: be:b0:0b:30:83:9b:9b:c3:2c:32:e4:44:79:05:95:06:41:f2:64:21:b1:5e:d0:89:19:8b:51:8a:e2:ea:1b:99 ------BEGIN CERTIFICATE----- -MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV -BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk -LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv -b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ -BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg -THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v -IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv -xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H -Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB -eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo -jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ -+efcMQ== ------END CERTIFICATE----- - -# Issuer: O=CERTSIGN SA OU=certSIGN ROOT CA G2 -# Subject: O=CERTSIGN SA OU=certSIGN ROOT CA G2 -# Label: "certSIGN Root CA G2" -# Serial: 313609486401300475190 -# MD5 Fingerprint: 8c:f1:75:8a:c6:19:cf:94:b7:f7:65:20:87:c3:97:c7 -# SHA1 Fingerprint: 26:f9:93:b4:ed:3d:28:27:b0:b9:4b:a7:e9:15:1d:a3:8d:92:e5:32 -# SHA256 Fingerprint: 65:7c:fe:2f:a7:3f:aa:38:46:25:71:f3:32:a2:36:3a:46:fc:e7:02:09:51:71:07:02:cd:fb:b6:ee:da:33:05 ------BEGIN CERTIFICATE----- -MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNV -BAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04g -Uk9PVCBDQSBHMjAeFw0xNzAyMDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJ -BgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJ -R04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDF -dRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05N0Iw -vlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZ -uIt4ImfkabBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhp -n+Sc8CnTXPnGFiWeI8MgwT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKs -cpc/I1mbySKEwQdPzH/iV8oScLumZfNpdWO9lfsbl83kqK/20U6o2YpxJM02PbyW -xPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91QqhngLjYl/rNUssuHLoPj1P -rCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732jcZZroiF -DsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fx -DTvf95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgy -LcsUDFDYg2WD7rlcz8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6C -eWRgKRM+o/1Pcmqr4tTluCRVLERLiohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSCIS1mxteg4BXrzkwJ -d8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOBywaK8SJJ6ejq -kX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC -b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQl -qiCA2ClV9+BB/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0 -OJD7uNGzcgbJceaBxXntC6Z58hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+c -NywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5BiKDUyUM/FHE5r7iOZULJK2v0ZXk -ltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklWatKcsWMy5WHgUyIO -pwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tUSxfj -03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZk -PuXaTH4MNMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE -1LlSVHJ7liXMvGnjSG4N0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MX -QRBdJ3NghVdJIgc= ------END CERTIFICATE----- - -# Issuer: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. -# Subject: CN=Trustwave Global Certification Authority O=Trustwave Holdings, Inc. -# Label: "Trustwave Global Certification Authority" -# Serial: 1846098327275375458322922162 -# MD5 Fingerprint: f8:1c:18:2d:2f:ba:5f:6d:a1:6c:bc:c7:ab:91:c7:0e -# SHA1 Fingerprint: 2f:8f:36:4f:e1:58:97:44:21:59:87:a5:2a:9a:d0:69:95:26:7f:b5 -# SHA256 Fingerprint: 97:55:20:15:f5:dd:fc:3c:87:88:c0:06:94:45:55:40:88:94:45:00:84:f1:00:86:70:86:bc:1a:2b:b5:8d:c8 ------BEGIN CERTIFICATE----- -MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw -CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x -ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1 -c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx -OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI -SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI -b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn -swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu -7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8 -1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW -80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP -JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l -RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw -hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10 -coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc -BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n -twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud -DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W -0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe -uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q -lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB -aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE -sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT -MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe -qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh -VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8 -h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9 -EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK -yeC2nOnOcXHebD8WpHk= ------END CERTIFICATE----- - -# Issuer: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. -# Subject: CN=Trustwave Global ECC P256 Certification Authority O=Trustwave Holdings, Inc. -# Label: "Trustwave Global ECC P256 Certification Authority" -# Serial: 4151900041497450638097112925 -# MD5 Fingerprint: 5b:44:e3:8d:5d:36:86:26:e8:0d:05:d2:59:a7:83:54 -# SHA1 Fingerprint: b4:90:82:dd:45:0c:be:8b:5b:b1:66:d3:e2:a4:08:26:cd:ed:42:cf -# SHA256 Fingerprint: 94:5b:bc:82:5e:a5:54:f4:89:d1:fd:51:a7:3d:df:2e:a6:24:ac:70:19:a0:52:05:22:5c:22:a7:8c:cf:a8:b4 ------BEGIN CERTIFICATE----- -MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD -VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf -BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 -YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x -NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G -A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 -d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF -Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG -SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN -FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w -DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw -CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh -DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 ------END CERTIFICATE----- - -# Issuer: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. -# Subject: CN=Trustwave Global ECC P384 Certification Authority O=Trustwave Holdings, Inc. -# Label: "Trustwave Global ECC P384 Certification Authority" -# Serial: 2704997926503831671788816187 -# MD5 Fingerprint: ea:cf:60:c4:3b:b9:15:29:40:a1:97:ed:78:27:93:d6 -# SHA1 Fingerprint: e7:f3:a3:c8:cf:6f:c3:04:2e:6d:0e:67:32:c5:9e:68:95:0d:5e:d2 -# SHA256 Fingerprint: 55:90:38:59:c8:c0:c3:eb:b8:75:9e:ce:4e:25:57:22:5f:f5:75:8b:bd:38:eb:d4:82:76:60:1e:1b:d5:80:97 ------BEGIN CERTIFICATE----- -MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD -VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf -BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3 -YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x -NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G -A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0 -d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF -Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB -BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ -j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF -1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G -A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3 -AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC -MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu -Sw== ------END CERTIFICATE----- - -# Issuer: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. -# Subject: CN=NAVER Global Root Certification Authority O=NAVER BUSINESS PLATFORM Corp. -# Label: "NAVER Global Root Certification Authority" -# Serial: 9013692873798656336226253319739695165984492813 -# MD5 Fingerprint: c8:7e:41:f6:25:3b:f5:09:b3:17:e8:46:3d:bf:d0:9b -# SHA1 Fingerprint: 8f:6b:f2:a9:27:4a:da:14:a0:c4:f4:8e:61:27:f9:c0:1e:78:5d:d1 -# SHA256 Fingerprint: 88:f4:38:dc:f8:ff:d1:fa:8f:42:91:15:ff:e5:f8:2a:e1:e0:6e:0c:70:c3:75:fa:ad:71:7b:34:a4:9e:72:65 ------BEGIN CERTIFICATE----- -MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEM -BQAwaTELMAkGA1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRG -T1JNIENvcnAuMTIwMAYDVQQDDClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4NDJaFw0zNzA4MTgyMzU5NTlaMGkx -CzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVTUyBQTEFURk9STSBD -b3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVA -iQqrDZBbUGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH -38dq6SZeWYp34+hInDEW+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lE -HoSTGEq0n+USZGnQJoViAbbJAh2+g1G7XNr4rRVqmfeSVPc0W+m/6imBEtRTkZaz -kVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2aacp+yPOiNgSnABIqKYP -szuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4Yb8Obtoq -vC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHf -nZ3zVHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaG -YQ5fG8Ir4ozVu53BA0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo -0es+nPxdGoMuK8u180SdOqcXYZaicdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3a -CJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejyYhbLgGvtPe31HzClrkvJE+2K -AQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNVHQ4EFgQU0p+I -36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB -Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoN -qo0hV4/GPnrK21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatj -cu3cvuzHV+YwIHHW1xDBE1UBjCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm -+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bxhYTeodoS76TiEJd6eN4MUZeoIUCL -hr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTgE34h5prCy8VCZLQe -lHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTHD8z7 -p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8 -piKCk5XQA76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLR -LBT/DShycpWbXgnbiUSYqqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX -5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oGI/hGoiLtk/bdmuYqh7GYVPEi92tF4+KO -dh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmgkpzNNIaRkPpkUZ3+/uul -9XXeifdy ------END CERTIFICATE----- - -# Issuer: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres -# Subject: CN=AC RAIZ FNMT-RCM SERVIDORES SEGUROS O=FNMT-RCM OU=Ceres -# Label: "AC RAIZ FNMT-RCM SERVIDORES SEGUROS" -# Serial: 131542671362353147877283741781055151509 -# MD5 Fingerprint: 19:36:9c:52:03:2f:d2:d1:bb:23:cc:dd:1e:12:55:bb -# SHA1 Fingerprint: 62:ff:d9:9e:c0:65:0d:03:ce:75:93:d2:ed:3f:2d:32:c9:e3:e5:4a -# SHA256 Fingerprint: 55:41:53:b1:3d:2c:f9:dd:b7:53:bf:be:1a:4e:0a:e0:8d:0a:a4:18:70:58:fe:60:a2:b8:62:b2:e4:b8:7b:cb ------BEGIN CERTIFICATE----- -MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQsw -CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgw -FgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1S -Q00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDA5MzczM1oXDTQzMTIyMDA5 -MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL -DAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNBQyBS -QUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LH -sbI6GA60XYyzZl2hNPk2LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oK -Um8BA06Oi6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD -VR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqGSM49BAMDA2kAMGYCMQCu -SuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoDzBOQn5IC -MQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJy -v+c= ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign Root R46 O=GlobalSign nv-sa -# Subject: CN=GlobalSign Root R46 O=GlobalSign nv-sa -# Label: "GlobalSign Root R46" -# Serial: 1552617688466950547958867513931858518042577 -# MD5 Fingerprint: c4:14:30:e4:fa:66:43:94:2a:6a:1b:24:5f:19:d0:ef -# SHA1 Fingerprint: 53:a2:b0:4b:ca:6b:d6:45:e6:39:8a:8e:c4:0d:d2:bf:77:c3:a2:90 -# SHA256 Fingerprint: 4f:a3:12:6d:8d:3a:11:d1:c4:85:5a:4f:80:7c:ba:d6:cf:91:9d:3a:5a:88:b0:3b:ea:2c:63:72:d9:3c:40:c9 ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUA -MEYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYD -VQQDExNHbG9iYWxTaWduIFJvb3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMy -MDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYt -c2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08EsCVeJ -OaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQG -vGIFAha/r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud -316HCkD7rRlr+/fKYIje2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo -0q3v84RLHIf8E6M6cqJaESvWJ3En7YEtbWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSE -y132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvjK8Cd+RTyG/FWaha/LIWF -zXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD412lPFzYE -+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCN -I/onccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzs -x2sZy/N78CsHpdlseVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqa -ByFrgY/bxFn63iLABJzjqls2k+g9vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC -4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEMBQADggIBAHx4 -7PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg -JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti -2kM3S+LGteWygxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIk -pnnpHs6i58FZFZ8d4kuaPp92CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRF -FRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZmOUdkLG5NrmJ7v2B0GbhWrJKsFjLt -rWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qqJZ4d16GLuc1CLgSk -ZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwyeqiv5 -u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP -4vkYxboznxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6 -N3ec592kD3ZDZopD8p/7DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3 -vouXsXgxT7PntgMTzlSdriVZzH81Xwj3QEUxeCp6 ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign Root E46 O=GlobalSign nv-sa -# Subject: CN=GlobalSign Root E46 O=GlobalSign nv-sa -# Label: "GlobalSign Root E46" -# Serial: 1552617690338932563915843282459653771421763 -# MD5 Fingerprint: b5:b8:66:ed:de:08:83:e3:c9:e2:01:34:06:ac:51:6f -# SHA1 Fingerprint: 39:b4:6c:d5:fe:80:06:eb:e2:2f:4a:bb:08:33:a0:af:db:b9:dd:84 -# SHA256 Fingerprint: cb:b9:c4:4d:84:b8:04:3e:10:50:ea:31:a6:9f:51:49:55:d7:bf:d2:e2:c6:b4:93:01:01:9a:d6:1d:9f:50:58 ------BEGIN CERTIFICATE----- -MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYx -CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQD -ExNHbG9iYWxTaWduIFJvb3QgRTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAw -MDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2Ex -HDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkBjtjq -R+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGdd -yXqBPCCjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBQxCpCPtsad0kRLgLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ -7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZkvLtoURMMA/cVi4RguYv/Uo7njLwcAjA8 -+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+CAezNIm8BZ/3Hobui3A= ------END CERTIFICATE----- - -# Issuer: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz -# Subject: CN=ANF Secure Server Root CA O=ANF Autoridad de Certificacion OU=ANF CA Raiz -# Label: "ANF Secure Server Root CA" -# Serial: 996390341000653745 -# MD5 Fingerprint: 26:a6:44:5a:d9:af:4e:2f:b2:1d:b6:65:b0:4e:e8:96 -# SHA1 Fingerprint: 5b:6e:68:d0:cc:15:b6:a0:5f:1e:c1:5f:ae:02:fc:6b:2f:5d:6f:74 -# SHA256 Fingerprint: fb:8f:ec:75:91:69:b9:10:6b:1e:51:16:44:c6:18:c5:13:04:37:3f:6c:06:43:08:8d:8b:ef:fd:1b:99:75:99 ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -# Issuer: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Subject: CN=Certum EC-384 CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Label: "Certum EC-384 CA" -# Serial: 160250656287871593594747141429395092468 -# MD5 Fingerprint: b6:65:b3:96:60:97:12:a1:ec:4e:e1:3d:a3:c6:c9:f1 -# SHA1 Fingerprint: f3:3e:78:3c:ac:df:f4:a2:cc:ac:67:55:69:56:d7:e5:16:3c:e1:ed -# SHA256 Fingerprint: 6b:32:80:85:62:53:18:aa:50:d1:73:c9:8d:8b:da:09:d5:7e:27:41:3d:11:4c:f7:87:a0:f5:d0:6c:03:0c:f6 ------BEGIN CERTIFICATE----- -MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw -CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw -JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT -EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0 -WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT -LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX -BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE -KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm -Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8 -EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J -UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn -nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Root CA O=Asseco Data Systems S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Root CA" -# Serial: 40870380103424195783807378461123655149 -# MD5 Fingerprint: 51:e1:c2:e7:fe:4c:84:af:59:0e:2f:f4:54:6f:ea:29 -# SHA1 Fingerprint: c8:83:44:c0:18:ae:9f:cc:f1:87:b7:8f:22:d1:c5:d7:45:84:ba:e5 -# SHA256 Fingerprint: fe:76:96:57:38:55:77:3e:37:a9:5e:7a:d4:d9:cc:96:c3:01:57:c1:5d:31:76:5b:a9:b1:57:04:e1:ae:78:fd ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -# Issuer: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique -# Subject: CN=TunTrust Root CA O=Agence Nationale de Certification Electronique -# Label: "TunTrust Root CA" -# Serial: 108534058042236574382096126452369648152337120275 -# MD5 Fingerprint: 85:13:b9:90:5b:36:5c:b6:5e:b8:5a:f8:e0:31:57:b4 -# SHA1 Fingerprint: cf:e9:70:84:0f:e0:73:0f:9d:f6:0c:7f:2c:4b:ee:20:46:34:9c:bb -# SHA256 Fingerprint: 2e:44:10:2a:b5:8c:b8:54:19:45:1c:8e:19:d9:ac:f3:66:2c:af:bc:61:4b:6a:53:96:0a:30:f7:d0:e2:eb:41 ------BEGIN CERTIFICATE----- -MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQEL -BQAwYTELMAkGA1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUg -Q2VydGlmaWNhdGlvbiBFbGVjdHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJv -b3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQwNDI2MDg1NzU2WjBhMQswCQYDVQQG -EwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBDZXJ0aWZpY2F0aW9u -IEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZ -n56eY+hz2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd -2JQDoOw05TDENX37Jk0bbjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgF -VwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZ -GoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAdgjH8KcwAWJeRTIAAHDOF -li/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViWVSHbhlnU -r8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2 -eY8fTpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIb -MlEsPvLfe/ZdeikZjuXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISg -jwBUFfyRbVinljvrS5YnzWuioYasDXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB -7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwSVXAkPcvCFDVDXSdOvsC9qnyW -5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI04Y+oXNZtPdE -ITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 -90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+z -xiD2BkewhpMl0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYu -QEkHDVneixCwSQXi/5E/S7fdAo74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4 -FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRYYdZ2vyJ/0Adqp2RT8JeNnYA/u8EH -22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJpadbGNjHh/PqAulxP -xOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65xxBzn -dFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5 -Xc0yGYuPjCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7b -nV2UqL1g52KAdoGDDIzMMEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQ -CvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9zZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZH -u/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3rAZ3r2OvEhJn7wAzMMujj -d9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= ------END CERTIFICATE----- - -# Issuer: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Subject: CN=HARICA TLS RSA Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Label: "HARICA TLS RSA Root CA 2021" -# Serial: 76817823531813593706434026085292783742 -# MD5 Fingerprint: 65:47:9b:58:86:dd:2c:f0:fc:a2:84:1f:1e:96:c4:91 -# SHA1 Fingerprint: 02:2d:05:82:fa:88:ce:14:0c:06:79:de:7f:14:10:e9:45:d7:a5:6d -# SHA256 Fingerprint: d9:5d:0e:8e:da:79:52:5b:f9:be:b1:1b:14:d2:10:0d:32:94:98:5f:0c:62:d9:fa:bd:9c:d9:99:ec:cb:7b:1d ------BEGIN CERTIFICATE----- -MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBs -MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0Eg -Um9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUzOFoXDTQ1MDIxMzEwNTUzN1owbDEL -MAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl -YXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNBIFJv -b3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569l -mwVnlskNJLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE -4VGC/6zStGndLuwRo0Xua2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uv -a9of08WRiFukiZLRgeaMOVig1mlDqa2YUlhu2wr7a89o+uOkXjpFc5gH6l8Cct4M -pbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K5FrZx40d/JiZ+yykgmvw -Kh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEvdmn8kN3b -LW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcY -AuUR0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqB -AGMUuTNe3QvboEUHGjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYq -E613TBoYm5EPWNgGVMWX+Ko/IIqmhaZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHr -W2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQCPxrvrNQKlr9qEgYRtaQQJKQ -CoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAU -X15QvWiWkKQUEapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3 -f5Z2EMVGpdAgS1D0NTsY9FVqQRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxaja -H6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxDQpSbIPDRzbLrLFPCU3hKTwSUQZqP -JzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcRj88YxeMn/ibvBZ3P -zzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5vZSt -jBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0 -/L5H9MG0qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pT -BGIBnfHAT+7hOtSLIBD6Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79 -aPib8qXPMThcFarmlwDB31qlpzmq6YR/PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YW -xw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnnkf3/W9b3raYvAwtt41dU -63ZTGI0RmLo= ------END CERTIFICATE----- - -# Issuer: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Subject: CN=HARICA TLS ECC Root CA 2021 O=Hellenic Academic and Research Institutions CA -# Label: "HARICA TLS ECC Root CA 2021" -# Serial: 137515985548005187474074462014555733966 -# MD5 Fingerprint: ae:f7:4c:e5:66:35:d1:b7:9b:8c:22:93:74:d3:4b:b0 -# SHA1 Fingerprint: bc:b0:c1:9d:e9:98:92:70:19:38:57:e9:8d:a7:b4:5d:6e:ee:01:48 -# SHA256 Fingerprint: 3f:99:cc:47:4a:cf:ce:4d:fe:d5:87:94:66:5e:47:8d:15:47:73:9f:2e:78:0f:1b:b4:ca:9b:13:30:97:d4:01 ------BEGIN CERTIFICATE----- -MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQsw -CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh -cmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9v -dCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoXDTQ1MDIxMzExMDEwOVowbDELMAkG -A1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj -aCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3Qg -Q0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7 -KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9Y -STHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQD -AgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAircJRQO9gcS3ujwLEXQNw -SaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/QwCZ61IygN -nxS2PFOiTAZpffpskcYqSUXm7LcT4Tps ------END CERTIFICATE----- - -# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" -# Serial: 1977337328857672817 -# MD5 Fingerprint: 4e:6e:9b:54:4c:ca:b7:fa:48:e4:90:b1:15:4b:1c:a3 -# SHA1 Fingerprint: 0b:be:c2:27:22:49:cb:39:aa:db:35:5c:53:e3:8c:ae:78:ff:b6:fe -# SHA256 Fingerprint: 57:de:05:83:ef:d2:b2:6e:03:61:da:99:da:9d:f4:64:8d:ef:7e:e8:44:1c:3b:72:8a:fa:9b:cd:e0:f9:b2:6a ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UE -BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h -cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1 -MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg -Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 -thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM -cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG -L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i -NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h -X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b -m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy -Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja -EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T -KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF -6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh -OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1UdDgQWBBRlzeurNR4APn7VdMAc -tHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4wgZswgZgGBFUd -IAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j -b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABC -AG8AbgBhAG4AbwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAw -ADEANzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9m -iWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL4QjbEwj4KKE1soCzC1HA01aajTNF -Sa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDbLIpgD7dvlAceHabJ -hfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1ilI45P -Vf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZE -EAEeiGaPcjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV -1aUsIC+nmCjuRfzxuIgALI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2t -CsvMo2ebKHTEm9caPARYpoKdrcd7b/+Alun4jWq9GJAd/0kakFI3ky88Al2CdgtR -5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH9IBk9W6VULgRfhVwOEqw -f9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpfNIbnYrX9 -ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNK -GbqEZycPvEJdvSRUDewdcAZfpLz6IHxV ------END CERTIFICATE----- - -# Issuer: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. -# Subject: CN=vTrus ECC Root CA O=iTrusChina Co.,Ltd. -# Label: "vTrus ECC Root CA" -# Serial: 630369271402956006249506845124680065938238527194 -# MD5 Fingerprint: de:4b:c1:f5:52:8c:9b:43:e1:3e:8f:55:54:17:8d:85 -# SHA1 Fingerprint: f6:9c:db:b0:fc:f6:02:13:b6:52:32:a6:a3:91:3f:16:70:da:c3:e1 -# SHA256 Fingerprint: 30:fb:ba:2c:32:23:8e:2a:98:54:7a:f9:79:31:e5:50:42:8b:9b:3f:1c:8e:eb:66:33:dc:fa:86:c5:b2:7d:d3 ------BEGIN CERTIFICATE----- -MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMw -RzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAY -BgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDcz -MTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28u -LEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYwEAYHKoZIzj0CAQYF -K4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+cToL0 -v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUd -e4BdS49nTPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIw -V53dVvHH4+m4SVBrm2nDb+zDfSXkV5UTQJtS0zvzQBm8JsctBp61ezaf9SXUY2sA -AjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQLYgmRWAD5Tfs0aNoJrSEG -GJTO ------END CERTIFICATE----- - -# Issuer: CN=vTrus Root CA O=iTrusChina Co.,Ltd. -# Subject: CN=vTrus Root CA O=iTrusChina Co.,Ltd. -# Label: "vTrus Root CA" -# Serial: 387574501246983434957692974888460947164905180485 -# MD5 Fingerprint: b8:c9:37:df:fa:6b:31:84:64:c5:ea:11:6a:1b:75:fc -# SHA1 Fingerprint: 84:1a:69:fb:f5:cd:1a:25:34:13:3d:e3:f8:fc:b8:99:d0:c9:14:b7 -# SHA256 Fingerprint: 8a:71:de:65:59:33:6f:42:6c:26:e5:38:80:d0:0d:88:a1:8d:a4:c6:a9:1f:0d:cb:61:94:e2:06:c5:c9:63:87 ------BEGIN CERTIFICATE----- -MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQEL -BQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4x -FjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMx -MDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4s -THRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZotsSKYc -IrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykU -AyyNJJrIZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+ -GrPSbcKvdmaVayqwlHeFXgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z9 -8Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KAYPxMvDVTAWqXcoKv8R1w6Jz1717CbMdH -flqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70kLJrxLT5ZOrpGgrIDajt -J8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2AXPKBlim -0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZN -pGvu/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQ -UqqzApVg+QxMaPnu1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHW -OXSuTEGC2/KmSNGzm/MzqvOmwMVO9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMB -AAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYgscasGrz2iTAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAKbqSSaet -8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd -nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1j -bhd47F18iMjrjld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvM -Kar5CKXiNxTKsbhm7xqC5PD48acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIiv -TDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJnxDHO2zTlJQNgJXtxmOTAGytfdELS -S8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554WgicEFOwE30z9J4nfr -I8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4sEb9 -b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNB -UvupLnKWnyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1P -Ti07NEPhmg4NpGaXutIcSkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929ven -sBxXVsFy6K2ir40zSbofitzmdHxghm+Hl3s= ------END CERTIFICATE----- - -# Issuer: CN=ISRG Root X2 O=Internet Security Research Group -# Subject: CN=ISRG Root X2 O=Internet Security Research Group -# Label: "ISRG Root X2" -# Serial: 87493402998870891108772069816698636114 -# MD5 Fingerprint: d3:9e:c4:1e:23:3c:a6:df:cf:a3:7e:6d:e0:14:e6:e5 -# SHA1 Fingerprint: bd:b1:b9:3c:d5:97:8d:45:c6:26:14:55:f8:db:95:c7:5a:d1:53:af -# SHA256 Fingerprint: 69:72:9b:8e:15:a8:6e:fc:17:7a:57:af:b7:17:1d:fc:64:ad:d2:8c:2f:ca:8c:f1:50:7e:34:45:3c:cb:14:70 ------BEGIN CERTIFICATE----- -MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw -CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg -R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 -MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT -ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw -EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW -+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 -ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI -zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW -tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 -/q4AaOeMSQ+2b1tbFfLn ------END CERTIFICATE----- - -# Issuer: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. -# Subject: CN=HiPKI Root CA - G1 O=Chunghwa Telecom Co., Ltd. -# Label: "HiPKI Root CA - G1" -# Serial: 60966262342023497858655262305426234976 -# MD5 Fingerprint: 69:45:df:16:65:4b:e8:68:9a:8f:76:5f:ff:80:9e:d3 -# SHA1 Fingerprint: 6a:92:e4:a8:ee:1b:ec:96:45:37:e3:29:57:49:cd:96:e3:e5:d2:60 -# SHA256 Fingerprint: f0:15:ce:3c:c2:39:bf:ef:06:4b:e9:f1:d2:c4:17:e1:a0:26:4a:0a:94:be:1f:0c:8d:12:18:64:eb:69:49:cc ------BEGIN CERTIFICATE----- -MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBP -MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 -ZC4xGzAZBgNVBAMMEkhpUEtJIFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRa -Fw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3 -YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0o9Qw -qNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twv -Vcg3Px+kwJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6 -lZgRZq2XNdZ1AYDgr/SEYYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnz -Qs7ZngyzsHeXZJzA9KMuH5UHsBffMNsAGJZMoYFL3QRtU6M9/Aes1MU3guvklQgZ -KILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfdhSi8MEyr48KxRURHH+CK -FgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj1jOXTyFj -HluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDr -y+K49a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ -/W3c1pzAtH2lsN0/Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgM -a/aOEmem8rJY5AIJEzypuxC00jBF8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6 -fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQDAgGGMA0GCSqG -SIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi -7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqc -SE5XCV0vrPSltJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6Fza -ZsT0pPBWGTMpWmWSBUdGSquEwx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9Tc -XzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07QJNBAsNB1CI69aO4I1258EHBGG3zg -iLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv5wiZqAxeJoBF1Pho -L5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+GpzjLrF -Ne85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wr -kkVbbiVghUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+ -vhV4nYWBSipX3tUZQ9rbyltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQU -YDksswBVLuT1sw5XxJFBAJw/6KXf6vb/yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 -# Label: "GlobalSign ECC Root CA - R4" -# Serial: 159662223612894884239637590694 -# MD5 Fingerprint: 26:29:f8:6d:e1:88:bf:a2:65:7f:aa:c4:cd:0f:7f:fc -# SHA1 Fingerprint: 6b:a0:b0:98:e1:71:ef:5a:ad:fe:48:15:80:77:10:f4:bd:6f:0b:28 -# SHA256 Fingerprint: b0:85:d7:0b:96:4f:19:1a:73:e4:af:0d:54:ae:7a:0e:07:aa:fd:af:9b:71:dd:08:62:13:8a:b7:32:5a:24:a2 ------BEGIN CERTIFICATE----- -MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD -VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh -bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw -MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g -UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT -BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx -uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV -HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/ -+wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147 -bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R1 O=Google Trust Services LLC -# Subject: CN=GTS Root R1 O=Google Trust Services LLC -# Label: "GTS Root R1" -# Serial: 159662320309726417404178440727 -# MD5 Fingerprint: 05:fe:d0:bf:71:a8:a3:76:63:da:01:e0:d8:52:dc:40 -# SHA1 Fingerprint: e5:8c:1c:c4:91:3b:38:63:4b:e9:10:6e:e3:ad:8e:6b:9d:d9:81:4a -# SHA256 Fingerprint: d9:47:43:2a:bd:e7:b7:fa:90:fc:2e:6b:59:10:1b:12:80:e0:e1:c7:e4:e4:0f:a3:c6:88:7f:ff:57:a7:f4:cf ------BEGIN CERTIFICATE----- -MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo -27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w -Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw -TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl -qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH -szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8 -Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk -MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 -wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p -aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN -VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID -AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb -C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe -QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy -h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4 -7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J -ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef -MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/ -Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT -6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ -0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm -2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb -bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R2 O=Google Trust Services LLC -# Subject: CN=GTS Root R2 O=Google Trust Services LLC -# Label: "GTS Root R2" -# Serial: 159662449406622349769042896298 -# MD5 Fingerprint: 1e:39:c0:53:e6:1e:29:82:0b:ca:52:55:36:5d:57:dc -# SHA1 Fingerprint: 9a:44:49:76:32:db:de:fa:d0:bc:fb:5a:7b:17:bd:9e:56:09:24:94 -# SHA256 Fingerprint: 8d:25:cd:97:22:9d:bf:70:35:6b:da:4e:b3:cc:73:40:31:e2:4c:f0:0f:af:cf:d3:2d:c7:6e:b5:84:1c:7e:a8 ------BEGIN CERTIFICATE----- -MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt -nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY -6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu -MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k -RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg -f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV -+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo -dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW -Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa -G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq -gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID -AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H -vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 -0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC -B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u -NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg -yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev -HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6 -xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR -TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg -JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV -7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl -6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R3 O=Google Trust Services LLC -# Subject: CN=GTS Root R3 O=Google Trust Services LLC -# Label: "GTS Root R3" -# Serial: 159662495401136852707857743206 -# MD5 Fingerprint: 3e:e7:9d:58:02:94:46:51:94:e5:e0:22:4a:8b:e7:73 -# SHA1 Fingerprint: ed:e5:71:80:2b:c8:92:b9:5b:83:3c:d2:32:68:3f:09:cd:a0:1e:46 -# SHA256 Fingerprint: 34:d8:a7:3e:e2:08:d9:bc:db:0d:95:65:20:93:4b:4e:40:e6:94:82:59:6e:8b:6f:73:c8:42:6b:01:0a:6f:48 ------BEGIN CERTIFICATE----- -MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD -VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG -A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw -WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz -IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi -AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G -jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2 -4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7 -VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm -ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R4 O=Google Trust Services LLC -# Subject: CN=GTS Root R4 O=Google Trust Services LLC -# Label: "GTS Root R4" -# Serial: 159662532700760215368942768210 -# MD5 Fingerprint: 43:96:83:77:19:4d:76:b3:9d:65:52:e4:1d:22:a5:e8 -# SHA1 Fingerprint: 77:d3:03:67:b5:e0:0c:15:f6:0c:38:61:df:7c:e1:3b:92:46:4d:47 -# SHA256 Fingerprint: 34:9d:fa:40:58:c5:e2:63:12:3b:39:8a:e7:95:57:3c:4e:13:13:c8:3f:e6:8f:93:55:6c:d5:e8:03:1b:3c:7d ------BEGIN CERTIFICATE----- -MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD -VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG -A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw -WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz -IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi -AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi -QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR -HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D -9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8 -p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD ------END CERTIFICATE----- - -# Issuer: CN=Telia Root CA v2 O=Telia Finland Oyj -# Subject: CN=Telia Root CA v2 O=Telia Finland Oyj -# Label: "Telia Root CA v2" -# Serial: 7288924052977061235122729490515358 -# MD5 Fingerprint: 0e:8f:ac:aa:82:df:85:b1:f4:dc:10:1c:fc:99:d9:48 -# SHA1 Fingerprint: b9:99:cd:d1:73:50:8a:c4:47:05:08:9c:8c:88:fb:be:a0:2b:40:cd -# SHA256 Fingerprint: 24:2b:69:74:2f:cb:1e:5b:2a:bf:98:89:8b:94:57:21:87:54:4e:5b:4d:99:11:78:65:73:62:1f:6a:74:b8:2c ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQx -CzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UE -AwwQVGVsaWEgUm9vdCBDQSB2MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1 -NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZ -MBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ76zBq -AMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9 -vVYiQJ3q9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9 -lRdU2HhE8Qx3FZLgmEKnpNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTOD -n3WhUidhOPFZPY5Q4L15POdslv5e2QJltI5c0BE0312/UqeBAMN/mUWZFdUXyApT -7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW5olWK8jjfN7j/4nlNW4o -6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNrRBH0pUPC -TEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6 -WT0EBXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63R -DolUK5X6wK0dmBR4M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZI -pEYslOqodmJHixBTB0hXbOKSTbauBcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGj -YzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7Wxy+G2CQ5MB0GA1UdDgQWBBRy -rOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ -8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi -0f6X+J8wfBj5tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMM -A8iZGok1GTzTyVR8qPAs5m4HeW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBS -SRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+Cy748fdHif64W1lZYudogsYMVoe+K -TTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygCQMez2P2ccGrGKMOF -6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15h2Er -3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMt -Ty3EHD70sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pT -VmBds9hCG1xLEooc6+t9xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAW -ysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQraVplI/owd8k+BsHMYeB2F326CjYSlKA -rBPuUBQemMc= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH -# Subject: CN=D-TRUST BR Root CA 1 2020 O=D-Trust GmbH -# Label: "D-TRUST BR Root CA 1 2020" -# Serial: 165870826978392376648679885835942448534 -# MD5 Fingerprint: b5:aa:4b:d5:ed:f7:e3:55:2e:8f:72:0a:f3:75:b8:ed -# SHA1 Fingerprint: 1f:5b:98:f0:e3:b5:f7:74:3c:ed:e6:b0:36:7d:32:cd:f4:09:41:67 -# SHA256 Fingerprint: e5:9a:aa:81:60:09:c2:2b:ff:5b:25:ba:d3:7d:f3:06:f0:49:79:7c:1f:81:d8:5a:b0:89:e6:57:bd:8f:00:44 ------BEGIN CERTIFICATE----- -MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQsw -CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS -VVNUIEJSIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5 -NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG -A1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB -BAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7dPYS -zuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0 -QVK5buXuQqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/ -VbNafAkl1bK6CKBrqx9tMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g -PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2JyX3Jvb3Rf -Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l -dC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 -c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO -PQQDAwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFW -wKrY7RjEsK70PvomAjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHV -dWNbFJWcHwHP2NVypw87 ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH -# Subject: CN=D-TRUST EV Root CA 1 2020 O=D-Trust GmbH -# Label: "D-TRUST EV Root CA 1 2020" -# Serial: 126288379621884218666039612629459926992 -# MD5 Fingerprint: 8c:2d:9d:70:9f:48:99:11:06:11:fb:e9:cb:30:c0:6e -# SHA1 Fingerprint: 61:db:8c:21:59:69:03:90:d8:7c:9c:12:86:54:cf:9d:3d:f4:dd:07 -# SHA256 Fingerprint: 08:17:0d:1a:a3:64:53:90:1a:2f:95:92:45:e3:47:db:0c:8d:37:ab:aa:bc:56:b8:1a:a1:00:dc:95:89:70:db ------BEGIN CERTIFICATE----- -MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQsw -CQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRS -VVNUIEVWIFJvb3QgQ0EgMSAyMDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5 -NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAG -A1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAGByqGSM49AgEGBSuB -BAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8ZRCC -/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rD -wpdhQntJraOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3 -OqQo5FD4pPfsazK2/umLMA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6g -PKA6hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X3Jvb3Rf -Y2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVjdG9yeS5kLXRydXN0Lm5l -dC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxPPUQtVHJ1 -c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjO -PQQDAwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CA -y/m0sRtW9XLS/BnRAjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJb -gfM0agPnIjhQW+0ZT0MW ------END CERTIFICATE----- - -# Issuer: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. -# Subject: CN=DigiCert TLS ECC P384 Root G5 O=DigiCert, Inc. -# Label: "DigiCert TLS ECC P384 Root G5" -# Serial: 13129116028163249804115411775095713523 -# MD5 Fingerprint: d3:71:04:6a:43:1c:db:a6:59:e1:a8:a3:aa:c5:71:ed -# SHA1 Fingerprint: 17:f3:de:5e:9f:0f:19:e9:8e:f6:1f:32:26:6e:20:c4:07:ae:30:ee -# SHA256 Fingerprint: 01:8e:13:f0:77:25:32:cf:80:9b:d1:b1:72:81:86:72:83:fc:48:c6:e1:3b:e9:c6:98:12:85:4a:49:0c:1b:05 ------BEGIN CERTIFICATE----- -MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp -Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2 -MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ -bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG -ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS -7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp -0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS -B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 -BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ -LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4 -DXZDjC5Ty3zfDBeWUA== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. -# Subject: CN=DigiCert TLS RSA4096 Root G5 O=DigiCert, Inc. -# Label: "DigiCert TLS RSA4096 Root G5" -# Serial: 11930366277458970227240571539258396554 -# MD5 Fingerprint: ac:fe:f7:34:96:a9:f2:b3:b4:12:4b:e4:27:41:6f:e1 -# SHA1 Fingerprint: a7:88:49:dc:5d:7c:75:8c:8c:de:39:98:56:b3:aa:d0:b2:a5:71:35 -# SHA256 Fingerprint: 37:1a:00:dc:05:33:b3:72:1a:7e:eb:40:e8:41:9e:70:79:9d:2b:0a:0f:2c:1d:80:69:31:65:f7:ce:c4:ad:75 ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN -MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT -HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN -NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs -IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+ -ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0 -2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp -wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM -pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD -nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po -sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx -Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd -Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX -KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe -XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL -tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv -TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN -AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw -GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H -PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF -O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ -REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik -AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv -/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+ -p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw -MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF -qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK -ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+ ------END CERTIFICATE----- - -# Issuer: CN=Certainly Root R1 O=Certainly -# Subject: CN=Certainly Root R1 O=Certainly -# Label: "Certainly Root R1" -# Serial: 188833316161142517227353805653483829216 -# MD5 Fingerprint: 07:70:d4:3e:82:87:a0:fa:33:36:13:f4:fa:33:e7:12 -# SHA1 Fingerprint: a0:50:ee:0f:28:71:f4:27:b2:12:6d:6f:50:96:25:ba:cc:86:42:af -# SHA256 Fingerprint: 77:b8:2c:d8:64:4c:43:05:f7:ac:c5:cb:15:6b:45:67:50:04:03:3d:51:c6:0c:62:02:a8:e0:c3:34:67:d3:a0 ------BEGIN CERTIFICATE----- -MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAw -PTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2Vy -dGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9 -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0 -YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANA2 -1B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O5MQT -vqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbed -aFySpvXl8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b0 -1C7jcvk2xusVtyWMOvwlDbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5 -r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGIXsXwClTNSaa/ApzSRKft43jvRl5tcdF5 -cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkNKPl6I7ENPT2a/Z2B7yyQ -wHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQAjeZjOVJ -6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA -2CnbrlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyH -Wyf5QBGenDPBt+U1VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMR -eiFPCyEQtkA6qyI6BJyLm4SGcprSp6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB -/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTgqj8ljZ9EXME66C6u -d0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAszHQNTVfSVcOQr -PbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d -8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi -1wrykXprOQ4vMMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrd -rRT90+7iIgXr0PK3aBLXWopBGsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9di -taY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+gjwN/KUD+nsa2UUeYNrEjvn8K8l7 -lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgHJBu6haEaBQmAupVj -yTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7fpYn -Kx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLy -yCwzk5Iwx06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5n -wXARPbv0+Em34yaXOp/SX3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6 -OV+KmalBWQewLK8= ------END CERTIFICATE----- - -# Issuer: CN=Certainly Root E1 O=Certainly -# Subject: CN=Certainly Root E1 O=Certainly -# Label: "Certainly Root E1" -# Serial: 8168531406727139161245376702891150584 -# MD5 Fingerprint: 0a:9e:ca:cd:3e:52:50:c6:36:f3:4b:a3:ed:a7:53:e9 -# SHA1 Fingerprint: f9:e1:6d:dc:01:89:cf:d5:82:45:63:3e:c5:37:7d:c2:eb:93:6f:2b -# SHA256 Fingerprint: b4:58:5f:22:e4:ac:75:6a:4e:86:12:a1:36:1c:5d:9d:03:1a:93:fd:84:fe:bb:77:8f:a3:06:8b:0f:c4:2d:c2 ------BEGIN CERTIFICATE----- -MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQsw -CQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlu -bHkgUm9vdCBFMTAeFw0yMTA0MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJ -BgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxGjAYBgNVBAMTEUNlcnRhaW5s -eSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4fxzf7flHh4axpMCK -+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9YBk2 -QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4 -hevIIgcwCgYIKoZIzj0EAwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozm -ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG -BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR ------END CERTIFICATE----- - -# Issuer: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. -# Subject: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD. -# Label: "Security Communication ECC RootCA1" -# Serial: 15446673492073852651 -# MD5 Fingerprint: 7e:43:b0:92:68:ec:05:43:4c:98:ab:5d:35:2e:7e:86 -# SHA1 Fingerprint: b8:0e:26:a9:bf:d2:b2:3b:c0:ef:46:c9:ba:c7:bb:f6:1d:0d:41:41 -# SHA256 Fingerprint: e7:4f:bd:a5:5b:d5:64:c4:73:a3:6b:44:1a:a7:99:c8:a6:8e:07:74:40:e8:28:8b:9f:a1:e5:0e:4b:ba:ca:11 ------BEGIN CERTIFICATE----- -MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT -AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD -VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx -NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT -HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5 -IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi -AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl -dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK -ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu -9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O -be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k= ------END CERTIFICATE----- - -# Issuer: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY -# Subject: CN=BJCA Global Root CA1 O=BEIJING CERTIFICATE AUTHORITY -# Label: "BJCA Global Root CA1" -# Serial: 113562791157148395269083148143378328608 -# MD5 Fingerprint: 42:32:99:76:43:33:36:24:35:07:82:9b:28:f9:d0:90 -# SHA1 Fingerprint: d5:ec:8d:7b:4c:ba:79:f4:e7:e8:cb:9d:6b:ae:77:83:10:03:21:6a -# SHA256 Fingerprint: f3:89:6f:88:fe:7c:0a:88:27:66:a7:fa:6a:d2:74:9f:b5:7a:7f:3e:98:fb:76:9c:1f:a7:b0:9c:2c:44:d5:ae ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBU -MQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRI -T1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAz -MTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJF -SUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2Jh -bCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFmCL3Z -xRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZ -spDyRhySsTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O5 -58dnJCNPYwpj9mZ9S1WnP3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgR -at7GGPZHOiJBhyL8xIkoVNiMpTAK+BcWyqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll -5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRjeulumijWML3mG90Vr4Tq -nMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNnMoH1V6XK -V0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/ -pj+bOT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZO -z2nxbkRs1CTqjSShGL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXn -jSXWgXSHRtQpdaJCbPdzied9v3pKH9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+ -WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMBAAGjQjBAMB0GA1UdDgQWBBTF -7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE -AwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 -YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3Kli -awLwQ8hOnThJdMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u -+2D2/VnGKhs/I0qUJDAnyIm860Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88 -X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuhTaRjAv04l5U/BXCga99igUOLtFkN -SoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW4AB+dAb/OMRyHdOo -P2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmpGQrI -+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRz -znfSxqxx4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9 -eVzYH6Eze9mCUAyTF6ps3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2 -YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4SSPfSKcOYKMryMguTjClPPGAyzQWWYezy -r/6zcCwupvI= ------END CERTIFICATE----- - -# Issuer: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY -# Subject: CN=BJCA Global Root CA2 O=BEIJING CERTIFICATE AUTHORITY -# Label: "BJCA Global Root CA2" -# Serial: 58605626836079930195615843123109055211 -# MD5 Fingerprint: 5e:0a:f6:47:5f:a6:14:e8:11:01:95:3f:4d:01:eb:3c -# SHA1 Fingerprint: f4:27:86:eb:6e:b8:6d:88:31:67:02:fb:ba:66:a4:53:00:aa:7a:a6 -# SHA256 Fingerprint: 57:4d:f6:93:1e:27:80:39:66:7b:72:0a:fd:c1:60:0f:c2:7e:b6:6d:d3:09:29:79:fb:73:85:64:87:21:28:82 ------BEGIN CERTIFICATE----- -MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQsw -CQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJ -VFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgy -MVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJ -TkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBS -b290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9B -IgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK+ -+kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJK -sVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA -94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B -43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== ------END CERTIFICATE----- - -# Issuer: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited -# Subject: CN=Sectigo Public Server Authentication Root E46 O=Sectigo Limited -# Label: "Sectigo Public Server Authentication Root E46" -# Serial: 88989738453351742415770396670917916916 -# MD5 Fingerprint: 28:23:f8:b2:98:5c:37:16:3b:3e:46:13:4e:b0:b3:01 -# SHA1 Fingerprint: ec:8a:39:6c:40:f0:2e:bc:42:75:d4:9f:ab:1c:1a:5b:67:be:d2:9a -# SHA256 Fingerprint: c9:0f:26:f0:fb:1b:40:18:b2:22:27:51:9b:5c:a2:b5:3e:2c:a5:b3:be:5c:f1:8e:fe:1b:ef:47:38:0c:53:83 ------BEGIN CERTIFICATE----- -MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQsw -CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T -ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcN -MjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYG -A1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT -ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccC -WvkEN/U0NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+ -6xnOQ6OjQjBAMB0GA1UdDgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8B -Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjAn7qRa -qCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RHlAFWovgzJQxC36oCMB3q -4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21USAGKcw== ------END CERTIFICATE----- - -# Issuer: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited -# Subject: CN=Sectigo Public Server Authentication Root R46 O=Sectigo Limited -# Label: "Sectigo Public Server Authentication Root R46" -# Serial: 156256931880233212765902055439220583700 -# MD5 Fingerprint: 32:10:09:52:00:d5:7e:6c:43:df:15:c0:b1:16:93:e5 -# SHA1 Fingerprint: ad:98:f9:f3:e4:7d:75:3b:65:d4:82:b3:a4:52:17:bb:6e:f5:e4:38 -# SHA256 Fingerprint: 7b:b6:47:a6:2a:ee:ac:88:bf:25:7a:a5:22:d0:1f:fe:a3:95:e0:ab:45:c7:3f:93:f6:56:54:ec:38:f2:5a:06 ------BEGIN CERTIFICATE----- -MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBf -MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD -Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw -HhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBfMQswCQYDVQQGEwJHQjEY -MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1Ymxp -YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDa -ef0rty2k1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnz -SDBh+oF8HqcIStw+KxwfGExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xf -iOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMPFF1bFOdLvt30yNoDN9HWOaEhUTCDsG3X -ME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vuZDCQOc2TZYEhMbUjUDM3 -IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5QazYw6A3OAS -VYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgE -SJ/AwSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu -+Zd4KKTIRJLpfSYFplhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt -8uaZFURww3y8nDnAtOFr94MlI1fZEoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+L -HaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW6aWWrL3DkJiy4Pmi1KZHQ3xt -zwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWIIUkwDgYDVR0P -AQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c -mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQ -YKlJfp/imTYpE0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52 -gDY9hAaLMyZlbcp+nv4fjFg4exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZA -Fv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M0ejf5lG5Nkc/kLnHvALcWxxPDkjB -JYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI84HxZmduTILA7rpX -DhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9mpFui -TdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5 -dHn5HrwdVw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65 -LvKRRFHQV80MNNVIIb/bE/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp -0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmmJ1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAY -QqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL ------END CERTIFICATE----- - -# Issuer: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation -# Subject: CN=SSL.com TLS RSA Root CA 2022 O=SSL Corporation -# Label: "SSL.com TLS RSA Root CA 2022" -# Serial: 148535279242832292258835760425842727825 -# MD5 Fingerprint: d8:4e:c6:59:30:d8:fe:a0:d6:7a:5a:2c:2c:69:78:da -# SHA1 Fingerprint: ec:2c:83:40:72:af:26:95:10:ff:0e:f2:03:ee:31:70:f6:78:9d:ca -# SHA256 Fingerprint: 8f:af:7d:2e:2c:b4:70:9b:b8:e0:b3:36:66:bf:75:a5:dd:45:b5:de:48:0f:8e:a8:d4:bf:e6:be:bc:17:f2:ed ------BEGIN CERTIFICATE----- -MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBO -MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQD -DBxTU0wuY29tIFRMUyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloX -DTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jw -b3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJvb3QgQ0EgMjAyMjCC -AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u9nTP -L3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OY -t6/wNr/y7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0ins -S657Lb85/bRi3pZ7QcacoOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3 -PnxEX4MN8/HdIGkWCVDi1FW24IBydm5MR7d1VVm0U3TZlMZBrViKMWYPHqIbKUBO -L9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDGD6C1vBdOSHtRwvzpXGk3 -R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEWTO6Af77w -dr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS -+YCk8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYS -d66UNHsef8JmAOSqg+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoG -AtUjHBPW6dvbxrB6y3snm/vg1UYk7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2f -gTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j -BBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsuN+7jhHonLs0Z -NbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt -hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsM -QtfhWsSWTVTNj8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvf -R4iyrT7gJ4eLSYwfqUdYe5byiB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJ -DPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjUo3KUQyxi4U5cMj29TH0ZR6LDSeeW -P4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqoENjwuSfr98t67wVy -lrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7EgkaibMOlq -bLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2w -AgDHbICivRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3q -r5nsLFR+jM4uElZI7xc7P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sji -Mho6/4UIyYOf8kpIEFR3N+2ivEC+5BB09+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU -98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= ------END CERTIFICATE----- - -# Issuer: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation -# Subject: CN=SSL.com TLS ECC Root CA 2022 O=SSL Corporation -# Label: "SSL.com TLS ECC Root CA 2022" -# Serial: 26605119622390491762507526719404364228 -# MD5 Fingerprint: 99:d7:5c:f1:51:36:cc:e9:ce:d9:19:2e:77:71:56:c5 -# SHA1 Fingerprint: 9f:5f:d9:1a:54:6d:f5:0c:71:f0:ee:7a:bd:17:49:98:84:73:e2:39 -# SHA256 Fingerprint: c3:2f:fd:9f:46:f9:36:d1:6c:36:73:99:09:59:43:4b:9a:d6:0a:af:bb:9e:7c:f3:36:54:f1:44:cc:1b:a1:43 ------BEGIN CERTIFICATE----- -MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQsw -CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxT -U0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2 -MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3Jh -dGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAG -ByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYm -acCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFN -SeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME -GDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NW -uCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp -15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeN -b0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g== ------END CERTIFICATE----- - -# Issuer: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos -# Subject: CN=Atos TrustedRoot Root CA ECC TLS 2021 O=Atos -# Label: "Atos TrustedRoot Root CA ECC TLS 2021" -# Serial: 81873346711060652204712539181482831616 -# MD5 Fingerprint: 16:9f:ad:f1:70:ad:79:d6:ed:29:b4:d1:c5:79:70:a8 -# SHA1 Fingerprint: 9e:bc:75:10:42:b3:02:f3:81:f4:f7:30:62:d4:8f:c3:a7:51:b2:dd -# SHA256 Fingerprint: b2:fa:e5:3e:14:cc:d7:ab:92:12:06:47:01:ae:27:9c:1d:89:88:fa:cb:77:5f:a8:a0:08:91:4e:66:39:88:a8 ------BEGIN CERTIFICATE----- -MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4w -LAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0w -CwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0 -MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBF -Q0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMHYwEAYHKoZI -zj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6KDP/X -tXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4 -AjJn8ZQSb+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2 -KCXWfeBmmnoJsmo7jjPXNtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMD -aAAwZQIwW5kp85wxtolrbNa9d+F851F+uDrNozZffPc8dz7kUK2o59JZDCaOMDtu -CCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGYa3cpetskz2VAv9LcjBHo -9H1/IISpQuQo ------END CERTIFICATE----- - -# Issuer: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos -# Subject: CN=Atos TrustedRoot Root CA RSA TLS 2021 O=Atos -# Label: "Atos TrustedRoot Root CA RSA TLS 2021" -# Serial: 111436099570196163832749341232207667876 -# MD5 Fingerprint: d4:d3:46:b8:9a:c0:9c:76:5d:9e:3a:c3:b9:99:31:d2 -# SHA1 Fingerprint: 18:52:3b:0d:06:37:e4:d6:3a:df:23:e4:98:fb:5b:16:fb:86:74:48 -# SHA256 Fingerprint: 81:a9:08:8e:a5:9f:b3:64:c5:48:a6:f8:55:59:09:9b:6f:04:05:ef:bf:18:e5:32:4e:c9:f4:57:ba:00:11:2f ------BEGIN CERTIFICATE----- -MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBM -MS4wLAYDVQQDDCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIx -MQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00 -MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0b3MgVHJ1c3RlZFJvb3QgUm9vdCBD -QSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYTAkRFMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BBl01Z -4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYv -Ye+W/CBGvevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZ -kmGbzSoXfduP9LVq6hdKZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDs -GY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt0xU6kGpn8bRrZtkh68rZYnxGEFzedUln -nkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVKPNe0OwANwI8f4UDErmwh -3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMYsluMWuPD -0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzy -geBYBr3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8 -ANSbhqRAvNncTFd+rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezB -c6eUWsuSZIKmAMFwoW4sKeFYV+xafJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lI -pw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU -dEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -DAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS -4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPs -o0UvFJ/1TCplQ3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJ -qM7F78PRreBrAwA0JrRUITWXAdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuyw -xfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9GslA9hGCZcbUztVdF5kJHdWoOsAgM -rr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2VktafcxBPTy+av5EzH4 -AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9qTFsR -0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuY -o7Ey7Nmj1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5 -dDTedk+SKlOxJTnbPP/lPqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcE -oji2jbDwN/zIIX8/syQbPYtuzE2wFg2WHYMfRsCbvUOZ58SWLs5fyQ== ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia Global Root CA G3 O=TrustAsia Technologies, Inc. -# Label: "TrustAsia Global Root CA G3" -# Serial: 576386314500428537169965010905813481816650257167 -# MD5 Fingerprint: 30:42:1b:b7:bb:81:75:35:e4:16:4f:53:d2:94:de:04 -# SHA1 Fingerprint: 63:cf:b6:c1:27:2b:56:e4:88:8e:1c:23:9a:b6:2e:81:47:24:c3:c7 -# SHA256 Fingerprint: e0:d3:22:6a:eb:11:63:c2:e4:8f:f9:be:3b:50:b4:c6:43:1b:e7:bb:1e:ac:c5:c3:6b:5d:5e:c5:09:03:9a:08 ------BEGIN CERTIFICATE----- -MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEM -BQAwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dp -ZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAe -Fw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEwMTlaMFoxCzAJBgNVBAYTAkNOMSUw -IwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtU -cnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNS -T1QY4SxzlZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqK -AtCWHwDNBSHvBm3dIZwZQ0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1 -nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/VP68czH5GX6zfZBCK70bwkPAPLfSIC7Ep -qq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1AgdB4SQXMeJNnKziyhWTXA -yB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm9WAPzJMs -hH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gX -zhqcD0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAv -kV34PmVACxmZySYgWmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msT -f9FkPz2ccEblooV7WIQn3MSAPmeamseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jA -uPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCFTIcQcf+eQxuulXUtgQIDAQAB -o2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj7zjKsK5Xf/Ih -MBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E -BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4 -wM8zAQLpw6o1D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2 -XFNFV1pF1AWZLy4jVe5jaN/TG3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1 -JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNjduMNhXJEIlU/HHzp/LgV6FL6qj6j -ITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstlcHboCoWASzY9M/eV -VHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys+TIx -xHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1on -AX1daBli2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d -7XB4tmBZrOFdRWOPyN9yaFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2Ntjj -gKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsASZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV -+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFRJQJ6+N1rZdVtTTDIZbpo -FGWsJwt0ivKH ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia Global Root CA G4 O=TrustAsia Technologies, Inc. -# Label: "TrustAsia Global Root CA G4" -# Serial: 451799571007117016466790293371524403291602933463 -# MD5 Fingerprint: 54:dd:b2:d7:5f:d8:3e:ed:7c:e0:0b:2e:cc:ed:eb:eb -# SHA1 Fingerprint: 57:73:a5:61:5d:80:b2:e6:ac:38:82:fc:68:07:31:ac:9f:b5:92:5a -# SHA256 Fingerprint: be:4b:56:cb:50:56:c0:13:6a:52:6d:f4:44:50:8d:aa:36:a0:b5:4f:42:e4:ac:38:f7:2a:f4:70:e4:79:65:4c ------BEGIN CERTIFICATE----- -MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMw -WjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs -IEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0y -MTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJaMFoxCzAJBgNVBAYTAkNOMSUwIwYD -VQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQwIgYDVQQDDBtUcnVz -dEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx -s8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbw -LxYI+hW8m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJij -YzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mD -pm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/pDHel4NZg6ZvccveMA4GA1UdDwEB/wQE -AwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AAbbd+NvBNEU/zy4k6LHiR -UKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xkdUfFVZDj -/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== ------END CERTIFICATE----- - -# Issuer: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH -# Subject: CN=Telekom Security TLS ECC Root 2020 O=Deutsche Telekom Security GmbH -# Label: "Telekom Security TLS ECC Root 2020" -# Serial: 72082518505882327255703894282316633856 -# MD5 Fingerprint: c1:ab:fe:6a:10:2c:03:8d:bc:1c:22:32:c0:85:a7:fd -# SHA1 Fingerprint: c0:f8:96:c5:a9:3b:01:06:21:07:da:18:42:48:bc:e9:9d:88:d5:ec -# SHA256 Fingerprint: 57:8a:f4:de:d0:85:3f:4e:59:98:db:4a:ea:f9:cb:ea:8d:94:5f:60:b6:20:a3:8d:1a:3c:13:b2:bc:7b:a8:e1 ------BEGIN CERTIFICATE----- -MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQsw -CQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBH -bWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIw -MB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIzNTk1OVowYzELMAkGA1UEBhMCREUx -JzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkGA1UE -AwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/O -tdKPD/M12kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDP -f8iAC8GXs7s1J8nCG6NCMEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6f -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA -MGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZMo7k+5Dck2TOrbRBR2Di -z6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdUga/sf+Rn -27iQ7t0l ------END CERTIFICATE----- - -# Issuer: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH -# Subject: CN=Telekom Security TLS RSA Root 2023 O=Deutsche Telekom Security GmbH -# Label: "Telekom Security TLS RSA Root 2023" -# Serial: 44676229530606711399881795178081572759 -# MD5 Fingerprint: bf:5b:eb:54:40:cd:48:71:c4:20:8d:7d:de:0a:42:f2 -# SHA1 Fingerprint: 54:d3:ac:b3:bd:57:56:f6:85:9d:ce:e5:c3:21:e2:d4:ad:83:d0:93 -# SHA256 Fingerprint: ef:c6:5c:ad:bb:59:ad:b6:ef:e8:4d:a2:23:11:b3:56:24:b7:1b:3b:1e:a0:da:8b:66:55:17:4e:c8:97:86:46 ------BEGIN CERTIFICATE----- -MIIFszCCA5ugAwIBAgIQIZxULej27HF3+k7ow3BXlzANBgkqhkiG9w0BAQwFADBj -MQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0 -eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAy -MDIzMB4XDTIzMDMyODEyMTY0NVoXDTQ4MDMyNzIzNTk1OVowYzELMAkGA1UEBhMC -REUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDErMCkG -A1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgUlNBIFJvb3QgMjAyMzCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAO01oYGA88tKaVvC+1GDrib94W7zgRJ9 -cUD/h3VCKSHtgVIs3xLBGYSJwb3FKNXVS2xE1kzbB5ZKVXrKNoIENqil/Cf2SfHV -cp6R+SPWcHu79ZvB7JPPGeplfohwoHP89v+1VmLhc2o0mD6CuKyVU/QBoCcHcqMA -U6DksquDOFczJZSfvkgdmOGjup5czQRxUX11eKvzWarE4GC+j4NSuHUaQTXtvPM6 -Y+mpFEXX5lLRbtLevOP1Czvm4MS9Q2QTps70mDdsipWol8hHD/BeEIvnHRz+sTug -BTNoBUGCwQMrAcjnj02r6LX2zWtEtefdi+zqJbQAIldNsLGyMcEWzv/9FIS3R/qy -8XDe24tsNlikfLMR0cN3f1+2JeANxdKz+bi4d9s3cXFH42AYTyS2dTd4uaNir73J -co4vzLuu2+QVUhkHM/tqty1LkCiCc/4YizWN26cEar7qwU02OxY2kTLvtkCJkUPg -8qKrBC7m8kwOFjQgrIfBLX7JZkcXFBGk8/ehJImr2BrIoVyxo/eMbcgByU/J7MT8 -rFEz0ciD0cmfHdRHNCk+y7AO+oMLKFjlKdw/fKifybYKu6boRhYPluV75Gp6SG12 -mAWl3G0eQh5C2hrgUve1g8Aae3g1LDj1H/1Joy7SWWO/gLCMk3PLNaaZlSJhZQNg -+y+TS/qanIA7AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeX -gj10hZv3PJ+TmpV5dVKMbUcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS2 -p5eCPXSFm/c8n5OalXl1UoxtRzANBgkqhkiG9w0BAQwFAAOCAgEAqMxhpr51nhVQ -pGv7qHBFfLp+sVr8WyP6Cnf4mHGCDG3gXkaqk/QeoMPhk9tLrbKmXauw1GLLXrtm -9S3ul0A8Yute1hTWjOKWi0FpkzXmuZlrYrShF2Y0pmtjxrlO8iLpWA1WQdH6DErw -M807u20hOq6OcrXDSvvpfeWxm4bu4uB9tPcy/SKE8YXJN3nptT+/XOR0so8RYgDd -GGah2XsjX/GO1WfoVNpbOms2b/mBsTNHM3dA+VKq3dSDz4V4mZqTuXNnQkYRIer+ -CqkbGmVps4+uFrb2S1ayLfmlyOw7YqPta9BO1UAJpB+Y1zqlklkg5LB9zVtzaL1t -xKITDmcZuI1CfmwMmm6gJC3VRRvcxAIU/oVbZZfKTpBQCHpCNfnqwmbU+AGuHrS+ -w6jv/naaoqYfRvaE7fzbzsQCzndILIyy7MMAo+wsVRjBfhnu4S/yrYObnqsZ38aK -L4x35bcF7DvB7L6Gs4a8wPfc5+pbrrLMtTWGS9DiP7bY+A4A7l3j941Y/8+LN+lj -X273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q -ntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm -dTdmQRCsu/WU48IxK63nI1bMNSWSs1A= ------END CERTIFICATE----- - -# Issuer: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA -# Subject: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA -# Label: "FIRMAPROFESIONAL CA ROOT-A WEB" -# Serial: 65916896770016886708751106294915943533 -# MD5 Fingerprint: 82:b2:ad:45:00:82:b0:66:63:f8:5f:c3:67:4e:ce:a3 -# SHA1 Fingerprint: a8:31:11:74:a6:14:15:0d:ca:77:dd:0e:e4:0c:5d:58:fc:a0:72:a5 -# SHA256 Fingerprint: be:f2:56:da:f2:6e:9c:69:bd:ec:16:02:35:97:98:f3:ca:f7:18:21:a0:3e:01:82:57:c5:3c:65:61:7f:3d:4a ------BEGIN CERTIFICATE----- -MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQsw -CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE -YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB -IFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2WhcNNDcwMzMxMDkwMTM2WjBuMQsw -CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE -YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB -IFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zf -e9MEkVz6iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6C -cyvHZpsKjECcfIr28jlgst7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FDY1w8ndYn81LsF7Kpryz3dvgwHQYDVR0O -BBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO -PQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgLcFBTApFw -hVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dG -XSaQpYXFuXqUPoeovQA= ------END CERTIFICATE----- - -# Issuer: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA -# Label: "TWCA CYBER Root CA" -# Serial: 85076849864375384482682434040119489222 -# MD5 Fingerprint: 0b:33:a0:97:52:95:d4:a9:fd:bb:db:6e:a3:55:5b:51 -# SHA1 Fingerprint: f6:b1:1c:1a:83:38:e9:7b:db:b3:a8:c8:33:24:e0:2d:9c:7f:26:66 -# SHA256 Fingerprint: 3f:63:bb:28:14:be:17:4e:c8:b6:43:9c:f0:8d:6d:56:f0:b7:c4:05:88:3a:56:48:a3:34:42:4d:6b:3e:c5:58 ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQ -MQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290 -IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5 -WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FO -LUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3Qg -Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1sTs6P -40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxF -avcokPFhV8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/ -34bKS1PE2Y2yHer43CdTo0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684i -JkXXYJndzk834H/nY62wuFm40AZoNWDTNq5xQwTxaWV4fPMf88oon1oglWa0zbfu -j3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK/c/WMw+f+5eesRycnupf -Xtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkHIuNZW0CP -2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDA -S9TMfAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDA -oS/xUgXJP+92ZuJF2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzC -kHDXShi8fgGwsOsVHkQGzaRP6AzRwyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW -5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83QOGt4A1WNzAd -BgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB -AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0t -tGlTITVX1olNc79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn -68xDiBaiA9a5F/gZbG0jAn/xX9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNn -TKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDRIG4kqIQnoVesqlVYL9zZyvpoBJ7t -RCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq/p1hvIbZv97Tujqx -f36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0RFxbI -Qh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz -8ppy6rBePm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4 -NxKfKjLji7gh7MMrZQzvIt6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzX -xeSDwWrruoBa3lwtcHb4yOWHh8qgnaHlIhInD0Q9HWzq1MKLL295q39QpsQZp6F6 -t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X ------END CERTIFICATE----- - -# Issuer: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. -# Subject: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd. -# Label: "SecureSign Root CA12" -# Serial: 587887345431707215246142177076162061960426065942 -# MD5 Fingerprint: c6:89:ca:64:42:9b:62:08:49:0b:1e:7f:e9:07:3d:e8 -# SHA1 Fingerprint: 7a:22:1e:3d:de:1b:06:ac:9e:c8:47:70:16:8e:3c:e5:f7:6b:06:f4 -# SHA256 Fingerprint: 3f:03:4b:b5:70:4d:44:b2:d0:85:45:a0:20:57:de:93:eb:f3:90:5f:ce:72:1a:cb:c7:30:c0:6d:da:ee:90:4e ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQEL -BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u -LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgw -NTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD -eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS -b290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3emhF -KxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mt -p7JIKwccJ/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zd -J1M3s6oYwlkm7Fsf0uZlfO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gur -FzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBFEaCeVESE99g2zvVQR9wsMJvuwPWW0v4J -hscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1UefNzFJM3IFTQy2VYzxV4+K -h9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsF -AAOCAQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6Ld -mmQOmFxv3Y67ilQiLUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJ -mBClnW8Zt7vPemVV2zfrPIpyMpcemik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA -8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPSvWKErI4cqc1avTc7bgoitPQV -55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhgaaaI5gdka9at/ -yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== ------END CERTIFICATE----- - -# Issuer: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. -# Subject: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd. -# Label: "SecureSign Root CA14" -# Serial: 575790784512929437950770173562378038616896959179 -# MD5 Fingerprint: 71:0d:72:fa:92:19:65:5e:89:04:ac:16:33:f0:bc:d5 -# SHA1 Fingerprint: dd:50:c0:f7:79:b3:64:2e:74:a2:b8:9d:9f:d3:40:dd:bb:f0:f2:4f -# SHA256 Fingerprint: 4b:00:9c:10:34:49:4f:9a:b5:6b:ba:3b:a1:d6:27:31:fc:4d:20:d8:95:5a:dc:ec:10:a9:25:60:72:61:e3:38 ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEM -BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u -LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgw -NzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD -eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS -b290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh1oq/ -FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOg -vlIfX8xnbacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy -6pJxaeQp8E+BgQQ8sqVb1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo -/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9J -kdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOEkJTRX45zGRBdAuVwpcAQ -0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSxjVIHvXib -y8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac -18izju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs -0Wq2XSqypWa9a4X0dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIAB -SMbHdPTGrMNASRZhdCyvjG817XsYAFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVL -ApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeqYR3r6/wtbyPk -86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E -rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ib -ed87hwriZLoAymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopT -zfFP7ELyk+OZpDc8h7hi2/DsHzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHS -DCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPGFrojutzdfhrGe0K22VoF3Jpf1d+4 -2kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6qnsb58Nn4DSEC5MUo -FlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/OfVy -K4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6 -dB7h7sxaOgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtl -Lor6CZpO2oYofaphNdgOpygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB -365jJ6UeTo3cKXhZ+PmhIIynJkBugnLNeLLIjzwec+fBH7/PzqUqm9tEZDKgu39c -JRNItX+S ------END CERTIFICATE----- - -# Issuer: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. -# Subject: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd. -# Label: "SecureSign Root CA15" -# Serial: 126083514594751269499665114766174399806381178503 -# MD5 Fingerprint: 13:30:fc:c4:62:a6:a9:de:b5:c1:68:af:b5:d2:31:47 -# SHA1 Fingerprint: cb:ba:83:c8:c1:5a:5d:f1:f9:73:6f:ca:d7:ef:28:13:06:4a:07:7d -# SHA256 Fingerprint: e7:78:f0:f0:95:fe:84:37:29:cd:1a:00:82:17:9e:53:14:a9:c2:91:44:28:05:e1:fb:1d:8f:b6:b8:88:6c:3a ------BEGIN CERTIFICATE----- -MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMw -UTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBM -dGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMy -NTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpDeWJl -cnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBSb290 -IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5GdCx4 -wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSR -ZHX+AezB2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT -9DAKBggqhkjOPQQDAwNoADBlAjEA2S6Jfl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp -4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJSwdLZrWeqrqgHkHZAXQ6 -bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH -# Subject: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH -# Label: "D-TRUST BR Root CA 2 2023" -# Serial: 153168538924886464690566649552453098598 -# MD5 Fingerprint: e1:09:ed:d3:60:d4:56:1b:47:1f:b7:0c:5f:1b:5f:85 -# SHA1 Fingerprint: 2d:b0:70:ee:71:94:af:69:68:17:db:79:ce:58:9f:a0:6b:96:f7:87 -# SHA256 Fingerprint: 05:52:e6:f8:3f:df:65:e8:fa:96:70:e6:66:df:28:a4:e2:13:40:b5:10:cb:e5:25:66:f9:7c:4f:b9:4b:2b:d1 ------BEGIN CERTIFICATE----- -MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBI -MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE -LVRSVVNUIEJSIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUw -OTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi -MCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCTcfKr -i3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNE -gXtRr90zsWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8 -k12b9py0i4a6Ibn08OhZWiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCT -Rphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl -2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LULQyReS2tNZ9/WtT5PeB+U -cSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIvx9gvdhFP -/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bS -uREVMweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+ -0bpwHJwh5Q8xaRfX/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4N -DfTisl01gLmB1IRpkQLLddCNxbU9CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+ -XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ5Dw1t61 -GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG -OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y -XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tI -FoE9c+CeJyrrd6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67n -riv6uvw8l5VAk1/DLQOj7aRvU9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTR -VFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4nj8+AybmTNudX0KEPUUDAxxZiMrc -LmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdijYQ6qgYF/6FKC0ULn -4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff/vtD -hQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsG -koHU6XCPpz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46 -ls/pdu4D58JDUjxqgejBWoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aS -Ecr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/5usWDiJFAbzdNpQ0qTUmiteXue4Icr80 -knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jtn/mtd+ArY0+ew+43u3gJ -hJ65bvspmZDogNOfJA== ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia TLS ECC Root CA O=TrustAsia Technologies, Inc. -# Label: "TrustAsia TLS ECC Root CA" -# Serial: 310892014698942880364840003424242768478804666567 -# MD5 Fingerprint: 09:48:04:77:d2:fc:65:93:71:66:b1:11:95:4f:06:8c -# SHA1 Fingerprint: b5:ec:39:f3:a1:66:37:ae:c3:05:94:57:e2:be:11:be:b7:a1:7f:36 -# SHA256 Fingerprint: c0:07:6b:9e:f0:53:1f:b1:a6:56:d6:7c:4e:be:97:cd:5d:ba:a4:1e:f4:45:98:ac:c2:48:98:78:c9:2d:87:11 ------BEGIN CERTIFICATE----- -MIICMTCCAbegAwIBAgIUNnThTXxlE8msg1UloD5Sfi9QaMcwCgYIKoZIzj0EAwMw -WDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMs -IEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQw -NTE1MDU0MTU2WhcNNDQwNTE1MDU0MTU1WjBYMQswCQYDVQQGEwJDTjElMCMGA1UE -ChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1c3RB -c2lhIFRMUyBFQ0MgUm9vdCBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLh/pVs/ -AT598IhtrimY4ZtcU5nb9wj/1WrgjstEpvDBjL1P1M7UiFPoXlfXTr4sP/MSpwDp -guMqWzJ8S5sUKZ74LYO1644xST0mYekdcouJtgq7nDM1D9rs3qlKH8kzsaNCMEAw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQULIVTu7FDzTLqnqOH/qKYqKaT6RAw -DgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMFRH18MtYYZI9HlaVQ01 -L18N9mdsd0AaRuf4aFtOJx24mH1/k78ITcTaRTChD15KeAIxAKORh/IRM4PDwYqR -OkwrULG9IpRdNYlzg8WbGf60oenUoWa2AaU2+dhoYSi3dOGiMQ== ------END CERTIFICATE----- - -# Issuer: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. -# Subject: CN=TrustAsia TLS RSA Root CA O=TrustAsia Technologies, Inc. -# Label: "TrustAsia TLS RSA Root CA" -# Serial: 160405846464868906657516898462547310235378010780 -# MD5 Fingerprint: 3b:9e:c3:86:0f:34:3c:6b:c5:46:c4:8e:1d:e7:19:12 -# SHA1 Fingerprint: a5:46:50:c5:62:ea:95:9a:1a:a7:04:6f:17:58:c7:29:53:3d:03:fa -# SHA256 Fingerprint: 06:c0:8d:7d:af:d8:76:97:1e:b1:12:4f:e6:7f:84:7e:c0:c7:a1:58:d3:ea:53:cb:e9:40:e2:ea:97:91:f4:c3 ------BEGIN CERTIFICATE----- -MIIFgDCCA2igAwIBAgIUHBjYz+VTPyI1RlNUJDxsR9FcSpwwDQYJKoZIhvcNAQEM -BQAwWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dp -ZXMsIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgUlNBIFJvb3QgQ0EwHhcN -MjQwNTE1MDU0MTU3WhcNNDQwNTE1MDU0MTU2WjBYMQswCQYDVQQGEwJDTjElMCMG -A1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAGA1UEAxMZVHJ1 -c3RBc2lhIFRMUyBSU0EgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC -AgoCggIBAMMWuBtqpERz5dZO9LnPWwvB0ZqB9WOwj0PBuwhaGnrhB3YmH49pVr7+ -NmDQDIPNlOrnxS1cLwUWAp4KqC/lYCZUlviYQB2srp10Zy9U+5RjmOMmSoPGlbYJ -Q1DNDX3eRA5gEk9bNb2/mThtfWza4mhzH/kxpRkQcwUqwzIZheo0qt1CHjCNP561 -HmHVb70AcnKtEj+qpklz8oYVlQwQX1Fkzv93uMltrOXVmPGZLmzjyUT5tUMnCE32 -ft5EebuyjBza00tsLtbDeLdM1aTk2tyKjg7/D8OmYCYozza/+lcK7Fs/6TAWe8Tb -xNRkoDD75f0dcZLdKY9BWN4ArTr9PXwaqLEX8E40eFgl1oUh63kd0Nyrz2I8sMeX -i9bQn9P+PN7F4/w6g3CEIR0JwqH8uyghZVNgepBtljhb//HXeltt08lwSUq6HTrQ -UNoyIBnkiz/r1RYmNzz7dZ6wB3C4FGB33PYPXFIKvF1tjVEK2sUYyJtt3LCDs3+j -TnhMmCWr8n4uIF6CFabW2I+s5c0yhsj55NqJ4js+k8UTav/H9xj8Z7XvGCxUq0DT -bE3txci3OE9kxJRMT6DNrqXGJyV1J23G2pyOsAWZ1SgRxSHUuPzHlqtKZFlhaxP8 -S8ySpg+kUb8OWJDZgoM5pl+z+m6Ss80zDoWo8SnTq1mt1tve1CuBAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLgHkXlcBvRG/XtZylomkadFK/hT -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQwFAAOCAgEAIZtqBSBdGBanEqT3 -Rz/NyjuujsCCztxIJXgXbODgcMTWltnZ9r96nBO7U5WS/8+S4PPFJzVXqDuiGev4 -iqME3mmL5Dw8veWv0BIb5Ylrc5tvJQJLkIKvQMKtuppgJFqBTQUYo+IzeXoLH5Pt -7DlK9RME7I10nYEKqG/odv6LTytpEoYKNDbdgptvT+Bz3Ul/KD7JO6NXBNiT2Twp -2xIQaOHEibgGIOcberyxk2GaGUARtWqFVwHxtlotJnMnlvm5P1vQiJ3koP26TpUJ -g3933FEFlJ0gcXax7PqJtZwuhfG5WyRasQmr2soaB82G39tp27RIGAAtvKLEiUUj -pQ7hRGU+isFqMB3iYPg6qocJQrmBktwliJiJ8Xw18WLK7nn4GS/+X/jbh87qqA8M -pugLoDzga5SYnH+tBuYc6kIQX+ImFTw3OffXvO645e8D7r0i+yiGNFjEWn9hongP -XvPKnbwbPKfILfanIhHKA9jnZwqKDss1jjQ52MjqjZ9k4DewbNfFj8GQYSbbJIwe -SsCI3zWQzj8C9GRh3sfIB5XeMhg6j6JCQCTl1jNdfK7vsU1P1FeQNWrcrgSXSYk0 -ly4wBOeY99sLAZDBHwo/+ML+TvrbmnNzFrwFuHnYWa8G5z9nODmxfKuU4CkUpijy -323imttUQ/hHWKNddBWcwauwxzQ= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH -# Subject: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH -# Label: "D-TRUST EV Root CA 2 2023" -# Serial: 139766439402180512324132425437959641711 -# MD5 Fingerprint: 96:b4:78:09:f0:09:cb:77:eb:bb:1b:4d:6f:36:bc:b6 -# SHA1 Fingerprint: a5:5b:d8:47:6c:8f:19:f7:4c:f4:6d:6b:b6:c2:79:82:22:df:54:8b -# SHA256 Fingerprint: 8e:82:21:b2:e7:d4:00:78:36:a1:67:2f:0d:cc:29:9c:33:bc:07:d3:16:f1:32:fa:1a:20:6d:58:71:50:f1:ce ------BEGIN CERTIFICATE----- -MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBI -MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE -LVRSVVNUIEVWIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUw -OTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi -MCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1sJkK -F8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE -7CUXFId/MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFe -EMbsh2aJgWi6zCudR3Mfvc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6 -lHPTGGkKSv/BAQP/eX+1SH977ugpbzZMlWGG2Pmic4ruri+W7mjNPU0oQvlFKzIb -RlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3YG14C8qKXO0elg6DpkiV -jTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq9107PncjLgc -jmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZx -TnXonMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ -ARZZaBhDM7DS3LAaQzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nk -hbDhezGdpn9yo7nELC7MmVcOIQxFAZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knF -NXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqvyREBuH -kV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG -OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y -XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14 -QvBukEdHjqOSMo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4 -pZt+UPJ26oUFKidBK7GB0aL2QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q -3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xDUmPBEcrCRbH0O1P1aa4846XerOhU -t7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V4U/M5d40VxDJI3IX -cI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuodNv8 -ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT -2vFp4LJiTZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs -7dpn1mKmS00PaaLJvOwiS5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNP -gofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAst -Nl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L+KIkBI3Y4WNeApI02phh -XBxvWHZks/wCuPWdCg== ------END CERTIFICATE----- - -# Issuer: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG -# Subject: CN=SwissSign RSA TLS Root CA 2022 - 1 O=SwissSign AG -# Label: "SwissSign RSA TLS Root CA 2022 - 1" -# Serial: 388078645722908516278762308316089881486363258315 -# MD5 Fingerprint: 16:2e:e4:19:76:81:85:ba:8e:91:58:f1:15:ef:72:39 -# SHA1 Fingerprint: 81:34:0a:be:4c:cd:ce:cc:e7:7d:cc:8a:d4:57:e2:45:a0:77:5d:ce -# SHA256 Fingerprint: 19:31:44:f4:31:e0:fd:db:74:07:17:d4:de:92:6a:57:11:33:88:4b:43:60:d3:0e:27:29:13:cb:e6:60:ce:41 ------BEGIN CERTIFICATE----- -MIIFkzCCA3ugAwIBAgIUQ/oMX04bgBhE79G0TzUfRPSA7cswDQYJKoZIhvcNAQEL -BQAwUTELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkGA1UE -AxMiU3dpc3NTaWduIFJTQSBUTFMgUm9vdCBDQSAyMDIyIC0gMTAeFw0yMjA2MDgx -MTA4MjJaFw00NzA2MDgxMTA4MjJaMFExCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxT -d2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0EgVExTIFJvb3QgQ0Eg -MjAyMiAtIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLKmjiC8NX -vDVjvHClO/OMPE5Xlm7DTjak9gLKHqquuN6orx122ro10JFwB9+zBvKK8i5VUXu7 -LCTLf5ImgKO0lPaCoaTo+nUdWfMHamFk4saMla+ju45vVs9xzF6BYQ1t8qsCLqSX -5XH8irCRIFucdFJtrhUnWXjyCcplDn/L9Ovn3KlMd/YrFgSVrpxxpT8q2kFC5zyE -EPThPYxr4iuRR1VPuFa+Rd4iUU1OKNlfGUEGjw5NBuBwQCMBauTLE5tzrE0USJIt -/m2n+IdreXXhvhCxqohAWVTXz8TQm0SzOGlkjIHRI36qOTw7D59Ke4LKa2/KIj4x -0LDQKhySio/YGZxH5D4MucLNvkEM+KRHBdvBFzA4OmnczcNpI/2aDwLOEGrOyvi5 -KaM2iYauC8BPY7kGWUleDsFpswrzd34unYyzJ5jSmY0lpx+Gs6ZUcDj8fV3oT4MM -0ZPlEuRU2j7yrTrePjxF8CgPBrnh25d7mUWe3f6VWQQvdT/TromZhqwUtKiE+shd -OxtYk8EXlFXIC+OCeYSf8wCENO7cMdWP8vpPlkwGqnj73mSiI80fPsWMvDdUDrta -clXvyFu1cvh43zcgTFeRc5JzrBh3Q4IgaezprClG5QtO+DdziZaKHG29777YtvTK -wP1H8K4LWCDFyB02rpeNUIMmJCn3nTsPBQIDAQABo2MwYTAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBRvjmKLk0Ow4UD2p8P98Q+4 -DxU4pTAdBgNVHQ4EFgQUb45ii5NDsOFA9qfD/fEPuA8VOKUwDQYJKoZIhvcNAQEL -BQADggIBAKwsKUF9+lz1GpUYvyypiqkkVHX1uECry6gkUSsYP2OprphWKwVDIqO3 -10aewCoSPY6WlkDfDDOLazeROpW7OSltwAJsipQLBwJNGD77+3v1dj2b9l4wBlgz -Hqp41eZUBDqyggmNzhYzWUUo8aWjlw5DI/0LIICQ/+Mmz7hkkeUFjxOgdg3XNwwQ -iJb0Pr6VvfHDffCjw3lHC1ySFWPtUnWK50Zpy1FVCypM9fJkT6lc/2cyjlUtMoIc -gC9qkfjLvH4YoiaoLqNTKIftV+Vlek4ASltOU8liNr3CjlvrzG4ngRhZi0Rjn9UM -ZfQpZX+RLOV/fuiJz48gy20HQhFRJjKKLjpHE7iNvUcNCfAWpO2Whi4Z2L6MOuhF -LhG6rlrnub+xzI/goP+4s9GFe3lmozm1O2bYQL7Pt2eLSMkZJVX8vY3PXtpOpvJp -zv1/THfQwUY1mFwjmwJFQ5Ra3bxHrSL+ul4vkSkphnsh3m5kt8sNjzdbowhq6/Td -Ao9QAwKxuDdollDruF/UKIqlIgyKhPBZLtU30WHlQnNYKoH3dtvi4k0NX/a3vgW0 -rk4N3hY9A4GzJl5LuEsAz/+MF7psYC0nhzck5npgL7XTgwSqT0N1osGDsieYK7EO -gLrAhV5Cud+xYJHT6xh+cHiudoO+cVrQkOPKwRYlZ0rwtnu64ZzZ ------END CERTIFICATE----- - -# Issuer: CN=OISTE Server Root ECC G1 O=OISTE Foundation -# Subject: CN=OISTE Server Root ECC G1 O=OISTE Foundation -# Label: "OISTE Server Root ECC G1" -# Serial: 47819833811561661340092227008453318557 -# MD5 Fingerprint: 42:a7:d2:35:ae:02:92:db:19:76:08:de:2f:05:b4:d4 -# SHA1 Fingerprint: 3b:f6:8b:09:ae:2a:92:7b:ba:e3:8d:3f:11:95:d9:e6:44:0c:45:e2 -# SHA256 Fingerprint: ee:c9:97:c0:c3:0f:21:6f:7e:3b:8b:30:7d:2b:ae:42:41:2d:75:3f:c8:21:9d:af:d1:52:0b:25:72:85:0f:49 ------BEGIN CERTIFICATE----- -MIICNTCCAbqgAwIBAgIQI/nD1jWvjyhLH/BU6n6XnTAKBggqhkjOPQQDAzBLMQsw -CQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwY -T0lTVEUgU2VydmVyIFJvb3QgRUNDIEcxMB4XDTIzMDUzMTE0NDIyOFoXDTQ4MDUy -NDE0NDIyN1owSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5kYXRp -b24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IEVDQyBHMTB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABBcv+hK8rBjzCvRE1nZCnrPoH7d5qVi2+GXROiFPqOujvqQy -cvO2Ackr/XeFblPdreqqLiWStukhEaivtUwL85Zgmjvn6hp4LrQ95SjeHIC6XG4N -2xml4z+cKrhAS93mT6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQ3 -TYhlz/w9itWj8UnATgwQb0K0nDAdBgNVHQ4EFgQUN02IZc/8PYrVo/FJwE4MEG9C -tJwwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2kAMGYCMQCpKjAd0MKfkFFR -QD6VVCHNFmb3U2wIFjnQEnx/Yxvf4zgAOdktUyBFCxxgZzFDJe0CMQCSia7pXGKD -YmH5LVerVrkR3SW+ak5KGoJr3M/TvEqzPNcum9v4KGm8ay3sMaE641c= ------END CERTIFICATE----- - -# Issuer: CN=OISTE Server Root RSA G1 O=OISTE Foundation -# Subject: CN=OISTE Server Root RSA G1 O=OISTE Foundation -# Label: " OISTE Server Root RSA G1" -# Serial: 113845518112613905024960613408179309848 -# MD5 Fingerprint: 23:a7:9e:d4:70:b8:b9:14:57:41:8a:7e:44:59:e2:68 -# SHA1 Fingerprint: f7:00:34:25:94:88:68:31:e4:34:87:3f:70:fe:86:b3:86:9f:f0:6e -# SHA256 Fingerprint: 9a:e3:62:32:a5:18:9f:fd:db:35:3d:fd:26:52:0c:01:53:95:d2:27:77:da:c5:9d:b5:7b:98:c0:89:a6:51:e6 ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIQVaXZZ5Qoxu0M+ifdWwFNGDANBgkqhkiG9w0BAQwFADBL -MQswCQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UE -AwwYT0lTVEUgU2VydmVyIFJvb3QgUlNBIEcxMB4XDTIzMDUzMTE0MzcxNloXDTQ4 -MDUyNDE0MzcxNVowSzELMAkGA1UEBhMCQ0gxGTAXBgNVBAoMEE9JU1RFIEZvdW5k -YXRpb24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IFJTQSBHMTCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKqu9KuCz/vlNwvn1ZatkOhLKdxVYOPM -vLO8LZK55KN68YG0nnJyQ98/qwsmtO57Gmn7KNByXEptaZnwYx4M0rH/1ow00O7b -rEi56rAUjtgHqSSY3ekJvqgiG1k50SeH3BzN+Puz6+mTeO0Pzjd8JnduodgsIUzk -ik/HEzxux9UTl7Ko2yRpg1bTacuCErudG/L4NPKYKyqOBGf244ehHa1uzjZ0Dl4z -O8vbUZeUapU8zhhabkvG/AePLhq5SvdkNCncpo1Q4Y2LS+VIG24ugBA/5J8bZT8R -tOpXaZ+0AOuFJJkk9SGdl6r7NH8CaxWQrbueWhl/pIzY+m0o/DjH40ytas7ZTpOS -jswMZ78LS5bOZmdTaMsXEY5Z96ycG7mOaES3GK/m5Q9l3JUJsJMStR8+lKXHiHUh -sd4JJCpM4rzsTGdHwimIuQq6+cF0zowYJmXa92/GjHtoXAvuY8BeS/FOzJ8vD+Ho -mnqT8eDI278n5mUpezbgMxVz8p1rhAhoKzYHKyfMeNhqhw5HdPSqoBNdZH702xSu -+zrkL8Fl47l6QGzwBrd7KJvX4V84c5Ss2XCTLdyEr0YconosP4EmQufU2MVshGYR -i3drVByjtdgQ8K4p92cIiBdcuJd5z+orKu5YM+Vt6SmqZQENghPsJQtdLEByFSnT -kCz3GkPVavBpAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU -8snBDw1jALvsRQ5KH7WxszbNDo0wHQYDVR0OBBYEFPLJwQ8NYwC77EUOSh+1sbM2 -zQ6NMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQwFAAOCAgEANGd5sjrG5T33 -I3K5Ce+SrScfoE4KsvXaFwyihdJ+klH9FWXXXGtkFu6KRcoMQzZENdl//nk6HOjG -5D1rd9QhEOP28yBOqb6J8xycqd+8MDoX0TJD0KqKchxRKEzdNsjkLWd9kYccnbz8 -qyiWXmFcuCIzGEgWUOrKL+mlSdx/PKQZvDatkuK59EvV6wit53j+F8Bdh3foZ3dP -AGav9LEDOr4SfEE15fSmG0eLy3n31r8Xbk5l8PjaV8GUgeV6Vg27Rn9vkf195hfk -gSe7BYhW3SCl95gtkRlpMV+bMPKZrXJAlszYd2abtNUOshD+FKrDgHGdPY3ofRRs -YWSGRqbXVMW215AWRqWFyp464+YTFrYVI8ypKVL9AMb2kI5Wj4kI3Zaq5tNqqYY1 -9tVFeEJKRvwDyF7YZvZFZSS0vod7VSCd9521Kvy5YhnLbDuv0204bKt7ph6N/Ome -/msVuduCmsuY33OhkKCgxeDoAaijFJzIwZqsFVAzje18KotzlUBDJvyBpCpfOZC3 -J8tRd/iWkx7P8nd9H0aTolkelUTFLXVksNb54Dxp6gS1HAviRkRNQzuXSXERvSS2 -wq1yVAb+axj5d9spLFKebXd7Yv0PTY6YMjAwcRLWJTXjn/hvnLXrahut6hDTlhZy -BiElxky8j3C7DOReIoMt0r7+hVu05L0= ------END CERTIFICATE----- diff --git a/backend/venv/lib/python3.12/site-packages/certifi/core.py b/backend/venv/lib/python3.12/site-packages/certifi/core.py deleted file mode 100644 index 1c9661c..0000000 --- a/backend/venv/lib/python3.12/site-packages/certifi/core.py +++ /dev/null @@ -1,83 +0,0 @@ -""" -certifi.py -~~~~~~~~~~ - -This module returns the installation location of cacert.pem or its contents. -""" -import sys -import atexit - -def exit_cacert_ctx() -> None: - _CACERT_CTX.__exit__(None, None, None) # type: ignore[union-attr] - - -if sys.version_info >= (3, 11): - - from importlib.resources import as_file, files - - _CACERT_CTX = None - _CACERT_PATH = None - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the file - # in cases where we're inside of a zipimport situation until someone - # actually calls where(), but we don't want to re-extract the file - # on every call of where(), so we'll do it once then store it in a - # global variable. - global _CACERT_CTX - global _CACERT_PATH - if _CACERT_PATH is None: - # This is slightly janky, the importlib.resources API wants you to - # manage the cleanup of this file, so it doesn't actually return a - # path, it returns a context manager that will give you the path - # when you enter it and will do any cleanup when you leave it. In - # the common case of not needing a temporary file, it will just - # return the file system location and the __exit__() is a no-op. - # - # We also have to hold onto the actual context manager, because - # it will do the cleanup whenever it gets garbage collected, so - # we will also store that at the global level as well. - _CACERT_CTX = as_file(files("certifi").joinpath("cacert.pem")) - _CACERT_PATH = str(_CACERT_CTX.__enter__()) - atexit.register(exit_cacert_ctx) - - return _CACERT_PATH - - def contents() -> str: - return files("certifi").joinpath("cacert.pem").read_text(encoding="ascii") - -else: - - from importlib.resources import path as get_path, read_text - - _CACERT_CTX = None - _CACERT_PATH = None - - def where() -> str: - # This is slightly terrible, but we want to delay extracting the - # file in cases where we're inside of a zipimport situation until - # someone actually calls where(), but we don't want to re-extract - # the file on every call of where(), so we'll do it once then store - # it in a global variable. - global _CACERT_CTX - global _CACERT_PATH - if _CACERT_PATH is None: - # This is slightly janky, the importlib.resources API wants you - # to manage the cleanup of this file, so it doesn't actually - # return a path, it returns a context manager that will give - # you the path when you enter it and will do any cleanup when - # you leave it. In the common case of not needing a temporary - # file, it will just return the file system location and the - # __exit__() is a no-op. - # - # We also have to hold onto the actual context manager, because - # it will do the cleanup whenever it gets garbage collected, so - # we will also store that at the global level as well. - _CACERT_CTX = get_path("certifi", "cacert.pem") - _CACERT_PATH = str(_CACERT_CTX.__enter__()) - atexit.register(exit_cacert_ctx) - - return _CACERT_PATH - - def contents() -> str: - return read_text("certifi", "cacert.pem", encoding="ascii") diff --git a/backend/venv/lib/python3.12/site-packages/certifi/py.typed b/backend/venv/lib/python3.12/site-packages/certifi/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/METADATA deleted file mode 100644 index 67508e5..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/METADATA +++ /dev/null @@ -1,68 +0,0 @@ -Metadata-Version: 2.4 -Name: cffi -Version: 2.0.0 -Summary: Foreign Function Interface for Python calling C code. -Author: Armin Rigo, Maciej Fijalkowski -Maintainer: Matt Davis, Matt Clay, Matti Picus -License-Expression: MIT -Project-URL: Documentation, https://cffi.readthedocs.io/ -Project-URL: Changelog, https://cffi.readthedocs.io/en/latest/whatsnew.html -Project-URL: Downloads, https://github.com/python-cffi/cffi/releases -Project-URL: Contact, https://groups.google.com/forum/#!forum/python-cffi -Project-URL: Source Code, https://github.com/python-cffi/cffi -Project-URL: Issue Tracker, https://github.com/python-cffi/cffi/issues -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta -Classifier: Programming Language :: Python :: Implementation :: CPython -Requires-Python: >=3.9 -Description-Content-Type: text/markdown -License-File: LICENSE -License-File: AUTHORS -Requires-Dist: pycparser; implementation_name != "PyPy" -Dynamic: license-file - -[![GitHub Actions Status](https://github.com/python-cffi/cffi/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/python-cffi/cffi/actions/workflows/ci.yaml?query=branch%3Amain++) -[![PyPI version](https://img.shields.io/pypi/v/cffi.svg)](https://pypi.org/project/cffi) -[![Read the Docs](https://img.shields.io/badge/docs-latest-blue.svg)][Documentation] - - -CFFI -==== - -Foreign Function Interface for Python calling C code. - -Please see the [Documentation] or uncompiled in the `doc/` subdirectory. - -Download --------- - -[Download page](https://github.com/python-cffi/cffi/releases) - -Source Code ------------ - -Source code is publicly available on -[GitHub](https://github.com/python-cffi/cffi). - -Contact -------- - -[Mailing list](https://groups.google.com/forum/#!forum/python-cffi) - -Testing/development tips ------------------------- - -After `git clone` or `wget && tar`, we will get a directory called `cffi` or `cffi-x.x.x`. we call it `repo-directory`. To run tests under CPython, run the following in the `repo-directory`: - - pip install pytest - pip install -e . # editable install of CFFI for local development - pytest src/c/ testing/ - -[Documentation]: http://cffi.readthedocs.org/ diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/RECORD deleted file mode 100644 index 3b5a411..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/RECORD +++ /dev/null @@ -1,49 +0,0 @@ -_cffi_backend.cpython-312-darwin.so,sha256=sAq-2hIPPDAav6Uv4epkk1XyPW5ioWDTZPDwZGa-o0I,213008 -cffi-2.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -cffi-2.0.0.dist-info/METADATA,sha256=uYzn40F68Im8EtXHNBLZs7FoPM-OxzyYbDWsjJvhujk,2559 -cffi-2.0.0.dist-info/RECORD,, -cffi-2.0.0.dist-info/WHEEL,sha256=V1loQ6TpxABu1APUg0MoTRBOzSKT5xVc3skizX-ovCU,136 -cffi-2.0.0.dist-info/entry_points.txt,sha256=y6jTxnyeuLnL-XJcDv8uML3n6wyYiGRg8MTp_QGJ9Ho,75 -cffi-2.0.0.dist-info/licenses/AUTHORS,sha256=KmemC7-zN1nWfWRf8TG45ta8TK_CMtdR_Kw-2k0xTMg,208 -cffi-2.0.0.dist-info/licenses/LICENSE,sha256=W6JN3FcGf5JJrdZEw6_EGl1tw34jQz73Wdld83Cwr2M,1123 -cffi-2.0.0.dist-info/top_level.txt,sha256=rE7WR3rZfNKxWI9-jn6hsHCAl7MDkB-FmuQbxWjFehQ,19 -cffi/__init__.py,sha256=-ksBQ7MfDzVvbBlV_ftYBWAmEqfA86ljIzMxzaZeAlI,511 -cffi/__pycache__/__init__.cpython-312.pyc,, -cffi/__pycache__/_imp_emulation.cpython-312.pyc,, -cffi/__pycache__/_shimmed_dist_utils.cpython-312.pyc,, -cffi/__pycache__/api.cpython-312.pyc,, -cffi/__pycache__/backend_ctypes.cpython-312.pyc,, -cffi/__pycache__/cffi_opcode.cpython-312.pyc,, -cffi/__pycache__/commontypes.cpython-312.pyc,, -cffi/__pycache__/cparser.cpython-312.pyc,, -cffi/__pycache__/error.cpython-312.pyc,, -cffi/__pycache__/ffiplatform.cpython-312.pyc,, -cffi/__pycache__/lock.cpython-312.pyc,, -cffi/__pycache__/model.cpython-312.pyc,, -cffi/__pycache__/pkgconfig.cpython-312.pyc,, -cffi/__pycache__/recompiler.cpython-312.pyc,, -cffi/__pycache__/setuptools_ext.cpython-312.pyc,, -cffi/__pycache__/vengine_cpy.cpython-312.pyc,, -cffi/__pycache__/vengine_gen.cpython-312.pyc,, -cffi/__pycache__/verifier.cpython-312.pyc,, -cffi/_cffi_errors.h,sha256=zQXt7uR_m8gUW-fI2hJg0KoSkJFwXv8RGUkEDZ177dQ,3908 -cffi/_cffi_include.h,sha256=Exhmgm9qzHWzWivjfTe0D7Xp4rPUkVxdNuwGhMTMzbw,15055 -cffi/_embedding.h,sha256=Ai33FHblE7XSpHOCp8kPcWwN5_9BV14OvN0JVa6ITpw,18786 -cffi/_imp_emulation.py,sha256=RxREG8zAbI2RPGBww90u_5fi8sWdahpdipOoPzkp7C0,2960 -cffi/_shimmed_dist_utils.py,sha256=Bjj2wm8yZbvFvWEx5AEfmqaqZyZFhYfoyLLQHkXZuao,2230 -cffi/api.py,sha256=alBv6hZQkjpmZplBphdaRn2lPO9-CORs_M7ixabvZWI,42169 -cffi/backend_ctypes.py,sha256=h5ZIzLc6BFVXnGyc9xPqZWUS7qGy7yFSDqXe68Sa8z4,42454 -cffi/cffi_opcode.py,sha256=JDV5l0R0_OadBX_uE7xPPTYtMdmpp8I9UYd6av7aiDU,5731 -cffi/commontypes.py,sha256=7N6zPtCFlvxXMWhHV08psUjdYIK2XgsN3yo5dgua_v4,2805 -cffi/cparser.py,sha256=QUTfmlL-aO-MYR8bFGlvAUHc36OQr7XYLe0WLkGFjRo,44790 -cffi/error.py,sha256=v6xTiS4U0kvDcy4h_BDRo5v39ZQuj-IMRYLv5ETddZs,877 -cffi/ffiplatform.py,sha256=avxFjdikYGJoEtmJO7ewVmwG_VEVl6EZ_WaNhZYCqv4,3584 -cffi/lock.py,sha256=l9TTdwMIMpi6jDkJGnQgE9cvTIR7CAntIJr8EGHt3pY,747 -cffi/model.py,sha256=W30UFQZE73jL5Mx5N81YT77us2W2iJjTm0XYfnwz1cg,21797 -cffi/parse_c_type.h,sha256=OdwQfwM9ktq6vlCB43exFQmxDBtj2MBNdK8LYl15tjw,5976 -cffi/pkgconfig.py,sha256=LP1w7vmWvmKwyqLaU1Z243FOWGNQMrgMUZrvgFuOlco,4374 -cffi/recompiler.py,sha256=78J6lMEEOygXNmjN9-fOFFO3j7eW-iFxSrxfvQb54bY,65509 -cffi/setuptools_ext.py,sha256=0rCwBJ1W7FHWtiMKfNXsSST88V8UXrui5oeXFlDNLG8,9411 -cffi/vengine_cpy.py,sha256=oyQKD23kpE0aChUKA8Jg0e723foPiYzLYEdb-J0MiNs,43881 -cffi/vengine_gen.py,sha256=DUlEIrDiVin1Pnhn1sfoamnS5NLqfJcOdhRoeSNeJRg,26939 -cffi/verifier.py,sha256=oX8jpaohg2Qm3aHcznidAdvrVm5N4sQYG0a3Eo5mIl4,11182 diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/WHEEL deleted file mode 100644 index 266c700..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/WHEEL +++ /dev/null @@ -1,6 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (80.9.0) -Root-Is-Purelib: false -Tag: cp312-cp312-macosx_11_0_arm64 -Generator: delocate 0.13.0 - diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/entry_points.txt b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/entry_points.txt deleted file mode 100644 index 4b0274f..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[distutils.setup_keywords] -cffi_modules = cffi.setuptools_ext:cffi_modules diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS deleted file mode 100644 index 370a25d..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS +++ /dev/null @@ -1,8 +0,0 @@ -This package has been mostly done by Armin Rigo with help from -Maciej Fijałkowski. The idea is heavily based (although not directly -copied) from LuaJIT ffi by Mike Pall. - - -Other contributors: - - Google Inc. diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE deleted file mode 100644 index 0a1dbfb..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ - -Except when otherwise stated (look for LICENSE files in directories or -information at the beginning of each file) all software and -documentation is licensed as follows: - - MIT No Attribution - - 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. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. - diff --git a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/top_level.txt b/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/top_level.txt deleted file mode 100644 index f645779..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -_cffi_backend -cffi diff --git a/backend/venv/lib/python3.12/site-packages/cffi/__init__.py b/backend/venv/lib/python3.12/site-packages/cffi/__init__.py deleted file mode 100644 index c99ec3d..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -__all__ = ['FFI', 'VerificationError', 'VerificationMissing', 'CDefError', - 'FFIError'] - -from .api import FFI -from .error import CDefError, FFIError, VerificationError, VerificationMissing -from .error import PkgConfigError - -__version__ = "2.0.0" -__version_info__ = (2, 0, 0) - -# The verifier module file names are based on the CRC32 of a string that -# contains the following version number. It may be older than __version__ -# if nothing is clearly incompatible. -__version_verifier_modules__ = "0.8.6" diff --git a/backend/venv/lib/python3.12/site-packages/cffi/_cffi_errors.h b/backend/venv/lib/python3.12/site-packages/cffi/_cffi_errors.h deleted file mode 100644 index 158e059..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/_cffi_errors.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef CFFI_MESSAGEBOX -# ifdef _MSC_VER -# define CFFI_MESSAGEBOX 1 -# else -# define CFFI_MESSAGEBOX 0 -# endif -#endif - - -#if CFFI_MESSAGEBOX -/* Windows only: logic to take the Python-CFFI embedding logic - initialization errors and display them in a background thread - with MessageBox. The idea is that if the whole program closes - as a result of this problem, then likely it is already a console - program and you can read the stderr output in the console too. - If it is not a console program, then it will likely show its own - dialog to complain, or generally not abruptly close, and for this - case the background thread should stay alive. -*/ -static void *volatile _cffi_bootstrap_text; - -static PyObject *_cffi_start_error_capture(void) -{ - PyObject *result = NULL; - PyObject *x, *m, *bi; - - if (InterlockedCompareExchangePointer(&_cffi_bootstrap_text, - (void *)1, NULL) != NULL) - return (PyObject *)1; - - m = PyImport_AddModule("_cffi_error_capture"); - if (m == NULL) - goto error; - - result = PyModule_GetDict(m); - if (result == NULL) - goto error; - -#if PY_MAJOR_VERSION >= 3 - bi = PyImport_ImportModule("builtins"); -#else - bi = PyImport_ImportModule("__builtin__"); -#endif - if (bi == NULL) - goto error; - PyDict_SetItemString(result, "__builtins__", bi); - Py_DECREF(bi); - - x = PyRun_String( - "import sys\n" - "class FileLike:\n" - " def write(self, x):\n" - " try:\n" - " of.write(x)\n" - " except: pass\n" - " self.buf += x\n" - " def flush(self):\n" - " pass\n" - "fl = FileLike()\n" - "fl.buf = ''\n" - "of = sys.stderr\n" - "sys.stderr = fl\n" - "def done():\n" - " sys.stderr = of\n" - " return fl.buf\n", /* make sure the returned value stays alive */ - Py_file_input, - result, result); - Py_XDECREF(x); - - error: - if (PyErr_Occurred()) - { - PyErr_WriteUnraisable(Py_None); - PyErr_Clear(); - } - return result; -} - -#pragma comment(lib, "user32.lib") - -static DWORD WINAPI _cffi_bootstrap_dialog(LPVOID ignored) -{ - Sleep(666); /* may be interrupted if the whole process is closing */ -#if PY_MAJOR_VERSION >= 3 - MessageBoxW(NULL, (wchar_t *)_cffi_bootstrap_text, - L"Python-CFFI error", - MB_OK | MB_ICONERROR); -#else - MessageBoxA(NULL, (char *)_cffi_bootstrap_text, - "Python-CFFI error", - MB_OK | MB_ICONERROR); -#endif - _cffi_bootstrap_text = NULL; - return 0; -} - -static void _cffi_stop_error_capture(PyObject *ecap) -{ - PyObject *s; - void *text; - - if (ecap == (PyObject *)1) - return; - - if (ecap == NULL) - goto error; - - s = PyRun_String("done()", Py_eval_input, ecap, ecap); - if (s == NULL) - goto error; - - /* Show a dialog box, but in a background thread, and - never show multiple dialog boxes at once. */ -#if PY_MAJOR_VERSION >= 3 - text = PyUnicode_AsWideCharString(s, NULL); -#else - text = PyString_AsString(s); -#endif - - _cffi_bootstrap_text = text; - - if (text != NULL) - { - HANDLE h; - h = CreateThread(NULL, 0, _cffi_bootstrap_dialog, - NULL, 0, NULL); - if (h != NULL) - CloseHandle(h); - } - /* decref the string, but it should stay alive as 'fl.buf' - in the small module above. It will really be freed only if - we later get another similar error. So it's a leak of at - most one copy of the small module. That's fine for this - situation which is usually a "fatal error" anyway. */ - Py_DECREF(s); - PyErr_Clear(); - return; - - error: - _cffi_bootstrap_text = NULL; - PyErr_Clear(); -} - -#else - -static PyObject *_cffi_start_error_capture(void) { return NULL; } -static void _cffi_stop_error_capture(PyObject *ecap) { } - -#endif diff --git a/backend/venv/lib/python3.12/site-packages/cffi/_cffi_include.h b/backend/venv/lib/python3.12/site-packages/cffi/_cffi_include.h deleted file mode 100644 index 908a1d7..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/_cffi_include.h +++ /dev/null @@ -1,389 +0,0 @@ -#define _CFFI_ - -/* We try to define Py_LIMITED_API before including Python.h. - - Mess: we can only define it if Py_DEBUG, Py_TRACE_REFS and - Py_REF_DEBUG are not defined. This is a best-effort approximation: - we can learn about Py_DEBUG from pyconfig.h, but it is unclear if - the same works for the other two macros. Py_DEBUG implies them, - but not the other way around. - - The implementation is messy (issue #350): on Windows, with _MSC_VER, - we have to define Py_LIMITED_API even before including pyconfig.h. - In that case, we guess what pyconfig.h will do to the macros above, - and check our guess after the #include. - - Note that on Windows, with CPython 3.x, you need >= 3.5 and virtualenv - version >= 16.0.0. With older versions of either, you don't get a - copy of PYTHON3.DLL in the virtualenv. We can't check the version of - CPython *before* we even include pyconfig.h. ffi.set_source() puts - a ``#define _CFFI_NO_LIMITED_API'' at the start of this file if it is - running on Windows < 3.5, as an attempt at fixing it, but that's - arguably wrong because it may not be the target version of Python. - Still better than nothing I guess. As another workaround, you can - remove the definition of Py_LIMITED_API here. - - See also 'py_limited_api' in cffi/setuptools_ext.py. -*/ -#if !defined(_CFFI_USE_EMBEDDING) && !defined(Py_LIMITED_API) -# ifdef _MSC_VER -# if !defined(_DEBUG) && !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) && !defined(Py_REF_DEBUG) && !defined(_CFFI_NO_LIMITED_API) -# define Py_LIMITED_API -# endif -# include - /* sanity-check: Py_LIMITED_API will cause crashes if any of these - are also defined. Normally, the Python file PC/pyconfig.h does not - cause any of these to be defined, with the exception that _DEBUG - causes Py_DEBUG. Double-check that. */ -# ifdef Py_LIMITED_API -# if defined(Py_DEBUG) -# error "pyconfig.h unexpectedly defines Py_DEBUG, but Py_LIMITED_API is set" -# endif -# if defined(Py_TRACE_REFS) -# error "pyconfig.h unexpectedly defines Py_TRACE_REFS, but Py_LIMITED_API is set" -# endif -# if defined(Py_REF_DEBUG) -# error "pyconfig.h unexpectedly defines Py_REF_DEBUG, but Py_LIMITED_API is set" -# endif -# endif -# else -# include -# if !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) && !defined(Py_REF_DEBUG) && !defined(_CFFI_NO_LIMITED_API) -# define Py_LIMITED_API -# endif -# endif -#endif - -#include -#ifdef __cplusplus -extern "C" { -#endif -#include -#include "parse_c_type.h" - -/* this block of #ifs should be kept exactly identical between - c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py - and cffi/_cffi_include.h */ -#if defined(_MSC_VER) -# include /* for alloca() */ -# if _MSC_VER < 1600 /* MSVC < 2010 */ - typedef __int8 int8_t; - typedef __int16 int16_t; - typedef __int32 int32_t; - typedef __int64 int64_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; - typedef __int8 int_least8_t; - typedef __int16 int_least16_t; - typedef __int32 int_least32_t; - typedef __int64 int_least64_t; - typedef unsigned __int8 uint_least8_t; - typedef unsigned __int16 uint_least16_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int64 uint_least64_t; - typedef __int8 int_fast8_t; - typedef __int16 int_fast16_t; - typedef __int32 int_fast32_t; - typedef __int64 int_fast64_t; - typedef unsigned __int8 uint_fast8_t; - typedef unsigned __int16 uint_fast16_t; - typedef unsigned __int32 uint_fast32_t; - typedef unsigned __int64 uint_fast64_t; - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; -# else -# include -# endif -# if _MSC_VER < 1800 /* MSVC < 2013 */ -# ifndef __cplusplus - typedef unsigned char _Bool; -# endif -# endif -# define _cffi_float_complex_t _Fcomplex /* include for it */ -# define _cffi_double_complex_t _Dcomplex /* include for it */ -#else -# include -# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux) -# include -# endif -# define _cffi_float_complex_t float _Complex -# define _cffi_double_complex_t double _Complex -#endif - -#ifdef __GNUC__ -# define _CFFI_UNUSED_FN __attribute__((unused)) -#else -# define _CFFI_UNUSED_FN /* nothing */ -#endif - -#ifdef __cplusplus -# ifndef _Bool - typedef bool _Bool; /* semi-hackish: C++ has no _Bool; bool is builtin */ -# endif -#endif - -/********** CPython-specific section **********/ -#ifndef PYPY_VERSION - - -#if PY_MAJOR_VERSION >= 3 -# define PyInt_FromLong PyLong_FromLong -#endif - -#define _cffi_from_c_double PyFloat_FromDouble -#define _cffi_from_c_float PyFloat_FromDouble -#define _cffi_from_c_long PyInt_FromLong -#define _cffi_from_c_ulong PyLong_FromUnsignedLong -#define _cffi_from_c_longlong PyLong_FromLongLong -#define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong -#define _cffi_from_c__Bool PyBool_FromLong - -#define _cffi_to_c_double PyFloat_AsDouble -#define _cffi_to_c_float PyFloat_AsDouble - -#define _cffi_from_c_int(x, type) \ - (((type)-1) > 0 ? /* unsigned */ \ - (sizeof(type) < sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - sizeof(type) == sizeof(long) ? \ - PyLong_FromUnsignedLong((unsigned long)x) : \ - PyLong_FromUnsignedLongLong((unsigned long long)x)) : \ - (sizeof(type) <= sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - PyLong_FromLongLong((long long)x))) - -#define _cffi_to_c_int(o, type) \ - ((type)( \ - sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o) \ - : (type)_cffi_to_c_i8(o)) : \ - sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o) \ - : (type)_cffi_to_c_i16(o)) : \ - sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o) \ - : (type)_cffi_to_c_i32(o)) : \ - sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o) \ - : (type)_cffi_to_c_i64(o)) : \ - (Py_FatalError("unsupported size for type " #type), (type)0))) - -#define _cffi_to_c_i8 \ - ((int(*)(PyObject *))_cffi_exports[1]) -#define _cffi_to_c_u8 \ - ((int(*)(PyObject *))_cffi_exports[2]) -#define _cffi_to_c_i16 \ - ((int(*)(PyObject *))_cffi_exports[3]) -#define _cffi_to_c_u16 \ - ((int(*)(PyObject *))_cffi_exports[4]) -#define _cffi_to_c_i32 \ - ((int(*)(PyObject *))_cffi_exports[5]) -#define _cffi_to_c_u32 \ - ((unsigned int(*)(PyObject *))_cffi_exports[6]) -#define _cffi_to_c_i64 \ - ((long long(*)(PyObject *))_cffi_exports[7]) -#define _cffi_to_c_u64 \ - ((unsigned long long(*)(PyObject *))_cffi_exports[8]) -#define _cffi_to_c_char \ - ((int(*)(PyObject *))_cffi_exports[9]) -#define _cffi_from_c_pointer \ - ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[10]) -#define _cffi_to_c_pointer \ - ((char *(*)(PyObject *, struct _cffi_ctypedescr *))_cffi_exports[11]) -#define _cffi_get_struct_layout \ - not used any more -#define _cffi_restore_errno \ - ((void(*)(void))_cffi_exports[13]) -#define _cffi_save_errno \ - ((void(*)(void))_cffi_exports[14]) -#define _cffi_from_c_char \ - ((PyObject *(*)(char))_cffi_exports[15]) -#define _cffi_from_c_deref \ - ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[16]) -#define _cffi_to_c \ - ((int(*)(char *, struct _cffi_ctypedescr *, PyObject *))_cffi_exports[17]) -#define _cffi_from_c_struct \ - ((PyObject *(*)(char *, struct _cffi_ctypedescr *))_cffi_exports[18]) -#define _cffi_to_c_wchar_t \ - ((_cffi_wchar_t(*)(PyObject *))_cffi_exports[19]) -#define _cffi_from_c_wchar_t \ - ((PyObject *(*)(_cffi_wchar_t))_cffi_exports[20]) -#define _cffi_to_c_long_double \ - ((long double(*)(PyObject *))_cffi_exports[21]) -#define _cffi_to_c__Bool \ - ((_Bool(*)(PyObject *))_cffi_exports[22]) -#define _cffi_prepare_pointer_call_argument \ - ((Py_ssize_t(*)(struct _cffi_ctypedescr *, \ - PyObject *, char **))_cffi_exports[23]) -#define _cffi_convert_array_from_object \ - ((int(*)(char *, struct _cffi_ctypedescr *, PyObject *))_cffi_exports[24]) -#define _CFFI_CPIDX 25 -#define _cffi_call_python \ - ((void(*)(struct _cffi_externpy_s *, char *))_cffi_exports[_CFFI_CPIDX]) -#define _cffi_to_c_wchar3216_t \ - ((int(*)(PyObject *))_cffi_exports[26]) -#define _cffi_from_c_wchar3216_t \ - ((PyObject *(*)(int))_cffi_exports[27]) -#define _CFFI_NUM_EXPORTS 28 - -struct _cffi_ctypedescr; - -static void *_cffi_exports[_CFFI_NUM_EXPORTS]; - -#define _cffi_type(index) ( \ - assert((((uintptr_t)_cffi_types[index]) & 1) == 0), \ - (struct _cffi_ctypedescr *)_cffi_types[index]) - -static PyObject *_cffi_init(const char *module_name, Py_ssize_t version, - const struct _cffi_type_context_s *ctx) -{ - PyObject *module, *o_arg, *new_module; - void *raw[] = { - (void *)module_name, - (void *)version, - (void *)_cffi_exports, - (void *)ctx, - }; - - module = PyImport_ImportModule("_cffi_backend"); - if (module == NULL) - goto failure; - - o_arg = PyLong_FromVoidPtr((void *)raw); - if (o_arg == NULL) - goto failure; - - new_module = PyObject_CallMethod( - module, (char *)"_init_cffi_1_0_external_module", (char *)"O", o_arg); - - Py_DECREF(o_arg); - Py_DECREF(module); - return new_module; - - failure: - Py_XDECREF(module); - return NULL; -} - - -#ifdef HAVE_WCHAR_H -typedef wchar_t _cffi_wchar_t; -#else -typedef uint16_t _cffi_wchar_t; /* same random pick as _cffi_backend.c */ -#endif - -_CFFI_UNUSED_FN static uint16_t _cffi_to_c_char16_t(PyObject *o) -{ - if (sizeof(_cffi_wchar_t) == 2) - return (uint16_t)_cffi_to_c_wchar_t(o); - else - return (uint16_t)_cffi_to_c_wchar3216_t(o); -} - -_CFFI_UNUSED_FN static PyObject *_cffi_from_c_char16_t(uint16_t x) -{ - if (sizeof(_cffi_wchar_t) == 2) - return _cffi_from_c_wchar_t((_cffi_wchar_t)x); - else - return _cffi_from_c_wchar3216_t((int)x); -} - -_CFFI_UNUSED_FN static int _cffi_to_c_char32_t(PyObject *o) -{ - if (sizeof(_cffi_wchar_t) == 4) - return (int)_cffi_to_c_wchar_t(o); - else - return (int)_cffi_to_c_wchar3216_t(o); -} - -_CFFI_UNUSED_FN static PyObject *_cffi_from_c_char32_t(unsigned int x) -{ - if (sizeof(_cffi_wchar_t) == 4) - return _cffi_from_c_wchar_t((_cffi_wchar_t)x); - else - return _cffi_from_c_wchar3216_t((int)x); -} - -union _cffi_union_alignment_u { - unsigned char m_char; - unsigned short m_short; - unsigned int m_int; - unsigned long m_long; - unsigned long long m_longlong; - float m_float; - double m_double; - long double m_longdouble; -}; - -struct _cffi_freeme_s { - struct _cffi_freeme_s *next; - union _cffi_union_alignment_u alignment; -}; - -_CFFI_UNUSED_FN static int -_cffi_convert_array_argument(struct _cffi_ctypedescr *ctptr, PyObject *arg, - char **output_data, Py_ssize_t datasize, - struct _cffi_freeme_s **freeme) -{ - char *p; - if (datasize < 0) - return -1; - - p = *output_data; - if (p == NULL) { - struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc( - offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize); - if (fp == NULL) - return -1; - fp->next = *freeme; - *freeme = fp; - p = *output_data = (char *)&fp->alignment; - } - memset((void *)p, 0, (size_t)datasize); - return _cffi_convert_array_from_object(p, ctptr, arg); -} - -_CFFI_UNUSED_FN static void -_cffi_free_array_arguments(struct _cffi_freeme_s *freeme) -{ - do { - void *p = (void *)freeme; - freeme = freeme->next; - PyObject_Free(p); - } while (freeme != NULL); -} - -/********** end CPython-specific section **********/ -#else -_CFFI_UNUSED_FN -static void (*_cffi_call_python_org)(struct _cffi_externpy_s *, char *); -# define _cffi_call_python _cffi_call_python_org -#endif - - -#define _cffi_array_len(array) (sizeof(array) / sizeof((array)[0])) - -#define _cffi_prim_int(size, sign) \ - ((size) == 1 ? ((sign) ? _CFFI_PRIM_INT8 : _CFFI_PRIM_UINT8) : \ - (size) == 2 ? ((sign) ? _CFFI_PRIM_INT16 : _CFFI_PRIM_UINT16) : \ - (size) == 4 ? ((sign) ? _CFFI_PRIM_INT32 : _CFFI_PRIM_UINT32) : \ - (size) == 8 ? ((sign) ? _CFFI_PRIM_INT64 : _CFFI_PRIM_UINT64) : \ - _CFFI__UNKNOWN_PRIM) - -#define _cffi_prim_float(size) \ - ((size) == sizeof(float) ? _CFFI_PRIM_FLOAT : \ - (size) == sizeof(double) ? _CFFI_PRIM_DOUBLE : \ - (size) == sizeof(long double) ? _CFFI__UNKNOWN_LONG_DOUBLE : \ - _CFFI__UNKNOWN_FLOAT_PRIM) - -#define _cffi_check_int(got, got_nonpos, expected) \ - ((got_nonpos) == (expected <= 0) && \ - (got) == (unsigned long long)expected) - -#ifdef MS_WIN32 -# define _cffi_stdcall __stdcall -#else -# define _cffi_stdcall /* nothing */ -#endif - -#ifdef __cplusplus -} -#endif diff --git a/backend/venv/lib/python3.12/site-packages/cffi/_embedding.h b/backend/venv/lib/python3.12/site-packages/cffi/_embedding.h deleted file mode 100644 index 64c04f6..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/_embedding.h +++ /dev/null @@ -1,550 +0,0 @@ - -/***** Support code for embedding *****/ - -#ifdef __cplusplus -extern "C" { -#endif - - -#if defined(_WIN32) -# define CFFI_DLLEXPORT __declspec(dllexport) -#elif defined(__GNUC__) -# define CFFI_DLLEXPORT __attribute__((visibility("default"))) -#else -# define CFFI_DLLEXPORT /* nothing */ -#endif - - -/* There are two global variables of type _cffi_call_python_fnptr: - - * _cffi_call_python, which we declare just below, is the one called - by ``extern "Python"`` implementations. - - * _cffi_call_python_org, which on CPython is actually part of the - _cffi_exports[] array, is the function pointer copied from - _cffi_backend. If _cffi_start_python() fails, then this is set - to NULL; otherwise, it should never be NULL. - - After initialization is complete, both are equal. However, the - first one remains equal to &_cffi_start_and_call_python until the - very end of initialization, when we are (or should be) sure that - concurrent threads also see a completely initialized world, and - only then is it changed. -*/ -#undef _cffi_call_python -typedef void (*_cffi_call_python_fnptr)(struct _cffi_externpy_s *, char *); -static void _cffi_start_and_call_python(struct _cffi_externpy_s *, char *); -static _cffi_call_python_fnptr _cffi_call_python = &_cffi_start_and_call_python; - - -#ifndef _MSC_VER - /* --- Assuming a GCC not infinitely old --- */ -# define cffi_compare_and_swap(l,o,n) __sync_bool_compare_and_swap(l,o,n) -# define cffi_write_barrier() __sync_synchronize() -# if !defined(__amd64__) && !defined(__x86_64__) && \ - !defined(__i386__) && !defined(__i386) -# define cffi_read_barrier() __sync_synchronize() -# else -# define cffi_read_barrier() (void)0 -# endif -#else - /* --- Windows threads version --- */ -# include -# define cffi_compare_and_swap(l,o,n) \ - (InterlockedCompareExchangePointer(l,n,o) == (o)) -# define cffi_write_barrier() InterlockedCompareExchange(&_cffi_dummy,0,0) -# define cffi_read_barrier() (void)0 -static volatile LONG _cffi_dummy; -#endif - -#ifdef WITH_THREAD -# ifndef _MSC_VER -# include - static pthread_mutex_t _cffi_embed_startup_lock; -# else - static CRITICAL_SECTION _cffi_embed_startup_lock; -# endif - static char _cffi_embed_startup_lock_ready = 0; -#endif - -static void _cffi_acquire_reentrant_mutex(void) -{ - static void *volatile lock = NULL; - - while (!cffi_compare_and_swap(&lock, NULL, (void *)1)) { - /* should ideally do a spin loop instruction here, but - hard to do it portably and doesn't really matter I - think: pthread_mutex_init() should be very fast, and - this is only run at start-up anyway. */ - } - -#ifdef WITH_THREAD - if (!_cffi_embed_startup_lock_ready) { -# ifndef _MSC_VER - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init(&_cffi_embed_startup_lock, &attr); -# else - InitializeCriticalSection(&_cffi_embed_startup_lock); -# endif - _cffi_embed_startup_lock_ready = 1; - } -#endif - - while (!cffi_compare_and_swap(&lock, (void *)1, NULL)) - ; - -#ifndef _MSC_VER - pthread_mutex_lock(&_cffi_embed_startup_lock); -#else - EnterCriticalSection(&_cffi_embed_startup_lock); -#endif -} - -static void _cffi_release_reentrant_mutex(void) -{ -#ifndef _MSC_VER - pthread_mutex_unlock(&_cffi_embed_startup_lock); -#else - LeaveCriticalSection(&_cffi_embed_startup_lock); -#endif -} - - -/********** CPython-specific section **********/ -#ifndef PYPY_VERSION - -#include "_cffi_errors.h" - - -#define _cffi_call_python_org _cffi_exports[_CFFI_CPIDX] - -PyMODINIT_FUNC _CFFI_PYTHON_STARTUP_FUNC(void); /* forward */ - -static void _cffi_py_initialize(void) -{ - /* XXX use initsigs=0, which "skips initialization registration of - signal handlers, which might be useful when Python is - embedded" according to the Python docs. But review and think - if it should be a user-controllable setting. - - XXX we should also give a way to write errors to a buffer - instead of to stderr. - - XXX if importing 'site' fails, CPython (any version) calls - exit(). Should we try to work around this behavior here? - */ - Py_InitializeEx(0); -} - -static int _cffi_initialize_python(void) -{ - /* This initializes Python, imports _cffi_backend, and then the - present .dll/.so is set up as a CPython C extension module. - */ - int result; - PyGILState_STATE state; - PyObject *pycode=NULL, *global_dict=NULL, *x; - PyObject *builtins; - - state = PyGILState_Ensure(); - - /* Call the initxxx() function from the present module. It will - create and initialize us as a CPython extension module, instead - of letting the startup Python code do it---it might reimport - the same .dll/.so and get maybe confused on some platforms. - It might also have troubles locating the .dll/.so again for all - I know. - */ - (void)_CFFI_PYTHON_STARTUP_FUNC(); - if (PyErr_Occurred()) - goto error; - - /* Now run the Python code provided to ffi.embedding_init_code(). - */ - pycode = Py_CompileString(_CFFI_PYTHON_STARTUP_CODE, - "", - Py_file_input); - if (pycode == NULL) - goto error; - global_dict = PyDict_New(); - if (global_dict == NULL) - goto error; - builtins = PyEval_GetBuiltins(); - if (builtins == NULL) - goto error; - if (PyDict_SetItemString(global_dict, "__builtins__", builtins) < 0) - goto error; - x = PyEval_EvalCode( -#if PY_MAJOR_VERSION < 3 - (PyCodeObject *) -#endif - pycode, global_dict, global_dict); - if (x == NULL) - goto error; - Py_DECREF(x); - - /* Done! Now if we've been called from - _cffi_start_and_call_python() in an ``extern "Python"``, we can - only hope that the Python code did correctly set up the - corresponding @ffi.def_extern() function. Otherwise, the - general logic of ``extern "Python"`` functions (inside the - _cffi_backend module) will find that the reference is still - missing and print an error. - */ - result = 0; - done: - Py_XDECREF(pycode); - Py_XDECREF(global_dict); - PyGILState_Release(state); - return result; - - error:; - { - /* Print as much information as potentially useful. - Debugging load-time failures with embedding is not fun - */ - PyObject *ecap; - PyObject *exception, *v, *tb, *f, *modules, *mod; - PyErr_Fetch(&exception, &v, &tb); - ecap = _cffi_start_error_capture(); - f = PySys_GetObject((char *)"stderr"); - if (f != NULL && f != Py_None) { - PyFile_WriteString( - "Failed to initialize the Python-CFFI embedding logic:\n\n", f); - } - - if (exception != NULL) { - PyErr_NormalizeException(&exception, &v, &tb); - PyErr_Display(exception, v, tb); - } - Py_XDECREF(exception); - Py_XDECREF(v); - Py_XDECREF(tb); - - if (f != NULL && f != Py_None) { - PyFile_WriteString("\nFrom: " _CFFI_MODULE_NAME - "\ncompiled with cffi version: 2.0.0" - "\n_cffi_backend module: ", f); - modules = PyImport_GetModuleDict(); - mod = PyDict_GetItemString(modules, "_cffi_backend"); - if (mod == NULL) { - PyFile_WriteString("not loaded", f); - } - else { - v = PyObject_GetAttrString(mod, "__file__"); - PyFile_WriteObject(v, f, 0); - Py_XDECREF(v); - } - PyFile_WriteString("\nsys.path: ", f); - PyFile_WriteObject(PySys_GetObject((char *)"path"), f, 0); - PyFile_WriteString("\n\n", f); - } - _cffi_stop_error_capture(ecap); - } - result = -1; - goto done; -} - -#if PY_VERSION_HEX < 0x03080000 -PyAPI_DATA(char *) _PyParser_TokenNames[]; /* from CPython */ -#endif - -static int _cffi_carefully_make_gil(void) -{ - /* This does the basic initialization of Python. It can be called - completely concurrently from unrelated threads. It assumes - that we don't hold the GIL before (if it exists), and we don't - hold it afterwards. - - (What it really does used to be completely different in Python 2 - and Python 3, with the Python 2 solution avoiding the spin-lock - around the Py_InitializeEx() call. However, after recent changes - to CPython 2.7 (issue #358) it no longer works. So we use the - Python 3 solution everywhere.) - - This initializes Python by calling Py_InitializeEx(). - Important: this must not be called concurrently at all. - So we use a global variable as a simple spin lock. This global - variable must be from 'libpythonX.Y.so', not from this - cffi-based extension module, because it must be shared from - different cffi-based extension modules. - - In Python < 3.8, we choose - _PyParser_TokenNames[0] as a completely arbitrary pointer value - that is never written to. The default is to point to the - string "ENDMARKER". We change it temporarily to point to the - next character in that string. (Yes, I know it's REALLY - obscure.) - - In Python >= 3.8, this string array is no longer writable, so - instead we pick PyCapsuleType.tp_version_tag. We can't change - Python < 3.8 because someone might use a mixture of cffi - embedded modules, some of which were compiled before this file - changed. - - In Python >= 3.12, this stopped working because that particular - tp_version_tag gets modified during interpreter startup. It's - arguably a bad idea before 3.12 too, but again we can't change - that because someone might use a mixture of cffi embedded - modules, and no-one reported a bug so far. In Python >= 3.12 - we go instead for PyCapsuleType.tp_as_buffer, which is supposed - to always be NULL. We write to it temporarily a pointer to - a struct full of NULLs, which is semantically the same. - */ - -#ifdef WITH_THREAD -# if PY_VERSION_HEX < 0x03080000 - char *volatile *lock = (char *volatile *)_PyParser_TokenNames; - char *old_value, *locked_value; - - while (1) { /* spin loop */ - old_value = *lock; - locked_value = old_value + 1; - if (old_value[0] == 'E') { - assert(old_value[1] == 'N'); - if (cffi_compare_and_swap(lock, old_value, locked_value)) - break; - } - else { - assert(old_value[0] == 'N'); - /* should ideally do a spin loop instruction here, but - hard to do it portably and doesn't really matter I - think: PyEval_InitThreads() should be very fast, and - this is only run at start-up anyway. */ - } - } -# else -# if PY_VERSION_HEX < 0x030C0000 - int volatile *lock = (int volatile *)&PyCapsule_Type.tp_version_tag; - int old_value, locked_value = -42; - assert(!(PyCapsule_Type.tp_flags & Py_TPFLAGS_HAVE_VERSION_TAG)); -# else - static struct ebp_s { PyBufferProcs buf; int mark; } empty_buffer_procs; - empty_buffer_procs.mark = -42; - PyBufferProcs *volatile *lock = (PyBufferProcs *volatile *) - &PyCapsule_Type.tp_as_buffer; - PyBufferProcs *old_value, *locked_value = &empty_buffer_procs.buf; -# endif - - while (1) { /* spin loop */ - old_value = *lock; - if (old_value == 0) { - if (cffi_compare_and_swap(lock, old_value, locked_value)) - break; - } - else { -# if PY_VERSION_HEX < 0x030C0000 - assert(old_value == locked_value); -# else - /* The pointer should point to a possibly different - empty_buffer_procs from another C extension module */ - assert(((struct ebp_s *)old_value)->mark == -42); -# endif - /* should ideally do a spin loop instruction here, but - hard to do it portably and doesn't really matter I - think: PyEval_InitThreads() should be very fast, and - this is only run at start-up anyway. */ - } - } -# endif -#endif - - /* call Py_InitializeEx() */ - if (!Py_IsInitialized()) { - _cffi_py_initialize(); -#if PY_VERSION_HEX < 0x03070000 - PyEval_InitThreads(); -#endif - PyEval_SaveThread(); /* release the GIL */ - /* the returned tstate must be the one that has been stored into the - autoTLSkey by _PyGILState_Init() called from Py_Initialize(). */ - } - else { -#if PY_VERSION_HEX < 0x03070000 - /* PyEval_InitThreads() is always a no-op from CPython 3.7 */ - PyGILState_STATE state = PyGILState_Ensure(); - PyEval_InitThreads(); - PyGILState_Release(state); -#endif - } - -#ifdef WITH_THREAD - /* release the lock */ - while (!cffi_compare_and_swap(lock, locked_value, old_value)) - ; -#endif - - return 0; -} - -/********** end CPython-specific section **********/ - - -#else - - -/********** PyPy-specific section **********/ - -PyMODINIT_FUNC _CFFI_PYTHON_STARTUP_FUNC(const void *[]); /* forward */ - -static struct _cffi_pypy_init_s { - const char *name; - void *func; /* function pointer */ - const char *code; -} _cffi_pypy_init = { - _CFFI_MODULE_NAME, - _CFFI_PYTHON_STARTUP_FUNC, - _CFFI_PYTHON_STARTUP_CODE, -}; - -extern int pypy_carefully_make_gil(const char *); -extern int pypy_init_embedded_cffi_module(int, struct _cffi_pypy_init_s *); - -static int _cffi_carefully_make_gil(void) -{ - return pypy_carefully_make_gil(_CFFI_MODULE_NAME); -} - -static int _cffi_initialize_python(void) -{ - return pypy_init_embedded_cffi_module(0xB011, &_cffi_pypy_init); -} - -/********** end PyPy-specific section **********/ - - -#endif - - -#ifdef __GNUC__ -__attribute__((noinline)) -#endif -static _cffi_call_python_fnptr _cffi_start_python(void) -{ - /* Delicate logic to initialize Python. This function can be - called multiple times concurrently, e.g. when the process calls - its first ``extern "Python"`` functions in multiple threads at - once. It can also be called recursively, in which case we must - ignore it. We also have to consider what occurs if several - different cffi-based extensions reach this code in parallel - threads---it is a different copy of the code, then, and we - can't have any shared global variable unless it comes from - 'libpythonX.Y.so'. - - Idea: - - * _cffi_carefully_make_gil(): "carefully" call - PyEval_InitThreads() (possibly with Py_InitializeEx() first). - - * then we use a (local) custom lock to make sure that a call to this - cffi-based extension will wait if another call to the *same* - extension is running the initialization in another thread. - It is reentrant, so that a recursive call will not block, but - only one from a different thread. - - * then we grab the GIL and (Python 2) we call Py_InitializeEx(). - At this point, concurrent calls to Py_InitializeEx() are not - possible: we have the GIL. - - * do the rest of the specific initialization, which may - temporarily release the GIL but not the custom lock. - Only release the custom lock when we are done. - */ - static char called = 0; - - if (_cffi_carefully_make_gil() != 0) - return NULL; - - _cffi_acquire_reentrant_mutex(); - - /* Here the GIL exists, but we don't have it. We're only protected - from concurrency by the reentrant mutex. */ - - /* This file only initializes the embedded module once, the first - time this is called, even if there are subinterpreters. */ - if (!called) { - called = 1; /* invoke _cffi_initialize_python() only once, - but don't set '_cffi_call_python' right now, - otherwise concurrent threads won't call - this function at all (we need them to wait) */ - if (_cffi_initialize_python() == 0) { - /* now initialization is finished. Switch to the fast-path. */ - - /* We would like nobody to see the new value of - '_cffi_call_python' without also seeing the rest of the - data initialized. However, this is not possible. But - the new value of '_cffi_call_python' is the function - 'cffi_call_python()' from _cffi_backend. So: */ - cffi_write_barrier(); - /* ^^^ we put a write barrier here, and a corresponding - read barrier at the start of cffi_call_python(). This - ensures that after that read barrier, we see everything - done here before the write barrier. - */ - - assert(_cffi_call_python_org != NULL); - _cffi_call_python = (_cffi_call_python_fnptr)_cffi_call_python_org; - } - else { - /* initialization failed. Reset this to NULL, even if it was - already set to some other value. Future calls to - _cffi_start_python() are still forced to occur, and will - always return NULL from now on. */ - _cffi_call_python_org = NULL; - } - } - - _cffi_release_reentrant_mutex(); - - return (_cffi_call_python_fnptr)_cffi_call_python_org; -} - -static -void _cffi_start_and_call_python(struct _cffi_externpy_s *externpy, char *args) -{ - _cffi_call_python_fnptr fnptr; - int current_err = errno; -#ifdef _MSC_VER - int current_lasterr = GetLastError(); -#endif - fnptr = _cffi_start_python(); - if (fnptr == NULL) { - fprintf(stderr, "function %s() called, but initialization code " - "failed. Returning 0.\n", externpy->name); - memset(args, 0, externpy->size_of_result); - } -#ifdef _MSC_VER - SetLastError(current_lasterr); -#endif - errno = current_err; - - if (fnptr != NULL) - fnptr(externpy, args); -} - - -/* The cffi_start_python() function makes sure Python is initialized - and our cffi module is set up. It can be called manually from the - user C code. The same effect is obtained automatically from any - dll-exported ``extern "Python"`` function. This function returns - -1 if initialization failed, 0 if all is OK. */ -_CFFI_UNUSED_FN -static int cffi_start_python(void) -{ - if (_cffi_call_python == &_cffi_start_and_call_python) { - if (_cffi_start_python() == NULL) - return -1; - } - cffi_read_barrier(); - return 0; -} - -#undef cffi_compare_and_swap -#undef cffi_write_barrier -#undef cffi_read_barrier - -#ifdef __cplusplus -} -#endif diff --git a/backend/venv/lib/python3.12/site-packages/cffi/_imp_emulation.py b/backend/venv/lib/python3.12/site-packages/cffi/_imp_emulation.py deleted file mode 100644 index 136abdd..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/_imp_emulation.py +++ /dev/null @@ -1,83 +0,0 @@ - -try: - # this works on Python < 3.12 - from imp import * - -except ImportError: - # this is a limited emulation for Python >= 3.12. - # Note that this is used only for tests or for the old ffi.verify(). - # This is copied from the source code of Python 3.11. - - from _imp import (acquire_lock, release_lock, - is_builtin, is_frozen) - - from importlib._bootstrap import _load - - from importlib import machinery - import os - import sys - import tokenize - - SEARCH_ERROR = 0 - PY_SOURCE = 1 - PY_COMPILED = 2 - C_EXTENSION = 3 - PY_RESOURCE = 4 - PKG_DIRECTORY = 5 - C_BUILTIN = 6 - PY_FROZEN = 7 - PY_CODERESOURCE = 8 - IMP_HOOK = 9 - - def get_suffixes(): - extensions = [(s, 'rb', C_EXTENSION) - for s in machinery.EXTENSION_SUFFIXES] - source = [(s, 'r', PY_SOURCE) for s in machinery.SOURCE_SUFFIXES] - bytecode = [(s, 'rb', PY_COMPILED) for s in machinery.BYTECODE_SUFFIXES] - return extensions + source + bytecode - - def find_module(name, path=None): - if not isinstance(name, str): - raise TypeError("'name' must be a str, not {}".format(type(name))) - elif not isinstance(path, (type(None), list)): - # Backwards-compatibility - raise RuntimeError("'path' must be None or a list, " - "not {}".format(type(path))) - - if path is None: - if is_builtin(name): - return None, None, ('', '', C_BUILTIN) - elif is_frozen(name): - return None, None, ('', '', PY_FROZEN) - else: - path = sys.path - - for entry in path: - package_directory = os.path.join(entry, name) - for suffix in ['.py', machinery.BYTECODE_SUFFIXES[0]]: - package_file_name = '__init__' + suffix - file_path = os.path.join(package_directory, package_file_name) - if os.path.isfile(file_path): - return None, package_directory, ('', '', PKG_DIRECTORY) - for suffix, mode, type_ in get_suffixes(): - file_name = name + suffix - file_path = os.path.join(entry, file_name) - if os.path.isfile(file_path): - break - else: - continue - break # Break out of outer loop when breaking out of inner loop. - else: - raise ImportError(name, name=name) - - encoding = None - if 'b' not in mode: - with open(file_path, 'rb') as file: - encoding = tokenize.detect_encoding(file.readline)[0] - file = open(file_path, mode, encoding=encoding) - return file, file_path, (suffix, mode, type_) - - def load_dynamic(name, path, file=None): - loader = machinery.ExtensionFileLoader(name, path) - spec = machinery.ModuleSpec(name=name, loader=loader, origin=path) - return _load(spec) diff --git a/backend/venv/lib/python3.12/site-packages/cffi/_shimmed_dist_utils.py b/backend/venv/lib/python3.12/site-packages/cffi/_shimmed_dist_utils.py deleted file mode 100644 index c3d2312..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/_shimmed_dist_utils.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -Temporary shim module to indirect the bits of distutils we need from setuptools/distutils while providing useful -error messages beyond `No module named 'distutils' on Python >= 3.12, or when setuptools' vendored distutils is broken. - -This is a compromise to avoid a hard-dep on setuptools for Python >= 3.12, since many users don't need runtime compilation support from CFFI. -""" -import sys - -try: - # import setuptools first; this is the most robust way to ensure its embedded distutils is available - # (the .pth shim should usually work, but this is even more robust) - import setuptools -except Exception as ex: - if sys.version_info >= (3, 12): - # Python 3.12 has no built-in distutils to fall back on, so any import problem is fatal - raise Exception("This CFFI feature requires setuptools on Python >= 3.12. The setuptools module is missing or non-functional.") from ex - - # silently ignore on older Pythons (support fallback to stdlib distutils where available) -else: - del setuptools - -try: - # bring in just the bits of distutils we need, whether they really came from setuptools or stdlib-embedded distutils - from distutils import log, sysconfig - from distutils.ccompiler import CCompiler - from distutils.command.build_ext import build_ext - from distutils.core import Distribution, Extension - from distutils.dir_util import mkpath - from distutils.errors import DistutilsSetupError, CompileError, LinkError - from distutils.log import set_threshold, set_verbosity - - if sys.platform == 'win32': - try: - # FUTURE: msvc9compiler module was removed in setuptools 74; consider removing, as it's only used by an ancient patch in `recompiler` - from distutils.msvc9compiler import MSVCCompiler - except ImportError: - MSVCCompiler = None -except Exception as ex: - if sys.version_info >= (3, 12): - raise Exception("This CFFI feature requires setuptools on Python >= 3.12. Please install the setuptools package.") from ex - - # anything older, just let the underlying distutils import error fly - raise Exception("This CFFI feature requires distutils. Please install the distutils or setuptools package.") from ex - -del sys diff --git a/backend/venv/lib/python3.12/site-packages/cffi/api.py b/backend/venv/lib/python3.12/site-packages/cffi/api.py deleted file mode 100644 index 5a474f3..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/api.py +++ /dev/null @@ -1,967 +0,0 @@ -import sys, types -from .lock import allocate_lock -from .error import CDefError -from . import model - -try: - callable -except NameError: - # Python 3.1 - from collections import Callable - callable = lambda x: isinstance(x, Callable) - -try: - basestring -except NameError: - # Python 3.x - basestring = str - -_unspecified = object() - - - -class FFI(object): - r''' - The main top-level class that you instantiate once, or once per module. - - Example usage: - - ffi = FFI() - ffi.cdef(""" - int printf(const char *, ...); - """) - - C = ffi.dlopen(None) # standard library - -or- - C = ffi.verify() # use a C compiler: verify the decl above is right - - C.printf("hello, %s!\n", ffi.new("char[]", "world")) - ''' - - def __init__(self, backend=None): - """Create an FFI instance. The 'backend' argument is used to - select a non-default backend, mostly for tests. - """ - if backend is None: - # You need PyPy (>= 2.0 beta), or a CPython (>= 2.6) with - # _cffi_backend.so compiled. - import _cffi_backend as backend - from . import __version__ - if backend.__version__ != __version__: - # bad version! Try to be as explicit as possible. - if hasattr(backend, '__file__'): - # CPython - raise Exception("Version mismatch: this is the 'cffi' package version %s, located in %r. When we import the top-level '_cffi_backend' extension module, we get version %s, located in %r. The two versions should be equal; check your installation." % ( - __version__, __file__, - backend.__version__, backend.__file__)) - else: - # PyPy - raise Exception("Version mismatch: this is the 'cffi' package version %s, located in %r. This interpreter comes with a built-in '_cffi_backend' module, which is version %s. The two versions should be equal; check your installation." % ( - __version__, __file__, backend.__version__)) - # (If you insist you can also try to pass the option - # 'backend=backend_ctypes.CTypesBackend()', but don't - # rely on it! It's probably not going to work well.) - - from . import cparser - self._backend = backend - self._lock = allocate_lock() - self._parser = cparser.Parser() - self._cached_btypes = {} - self._parsed_types = types.ModuleType('parsed_types').__dict__ - self._new_types = types.ModuleType('new_types').__dict__ - self._function_caches = [] - self._libraries = [] - self._cdefsources = [] - self._included_ffis = [] - self._windows_unicode = None - self._init_once_cache = {} - self._cdef_version = None - self._embedding = None - self._typecache = model.get_typecache(backend) - if hasattr(backend, 'set_ffi'): - backend.set_ffi(self) - for name in list(backend.__dict__): - if name.startswith('RTLD_'): - setattr(self, name, getattr(backend, name)) - # - with self._lock: - self.BVoidP = self._get_cached_btype(model.voidp_type) - self.BCharA = self._get_cached_btype(model.char_array_type) - if isinstance(backend, types.ModuleType): - # _cffi_backend: attach these constants to the class - if not hasattr(FFI, 'NULL'): - FFI.NULL = self.cast(self.BVoidP, 0) - FFI.CData, FFI.CType = backend._get_types() - else: - # ctypes backend: attach these constants to the instance - self.NULL = self.cast(self.BVoidP, 0) - self.CData, self.CType = backend._get_types() - self.buffer = backend.buffer - - def cdef(self, csource, override=False, packed=False, pack=None): - """Parse the given C source. This registers all declared functions, - types, and global variables. The functions and global variables can - then be accessed via either 'ffi.dlopen()' or 'ffi.verify()'. - The types can be used in 'ffi.new()' and other functions. - If 'packed' is specified as True, all structs declared inside this - cdef are packed, i.e. laid out without any field alignment at all. - Alternatively, 'pack' can be a small integer, and requests for - alignment greater than that are ignored (pack=1 is equivalent to - packed=True). - """ - self._cdef(csource, override=override, packed=packed, pack=pack) - - def embedding_api(self, csource, packed=False, pack=None): - self._cdef(csource, packed=packed, pack=pack, dllexport=True) - if self._embedding is None: - self._embedding = '' - - def _cdef(self, csource, override=False, **options): - if not isinstance(csource, str): # unicode, on Python 2 - if not isinstance(csource, basestring): - raise TypeError("cdef() argument must be a string") - csource = csource.encode('ascii') - with self._lock: - self._cdef_version = object() - self._parser.parse(csource, override=override, **options) - self._cdefsources.append(csource) - if override: - for cache in self._function_caches: - cache.clear() - finishlist = self._parser._recomplete - if finishlist: - self._parser._recomplete = [] - for tp in finishlist: - tp.finish_backend_type(self, finishlist) - - def dlopen(self, name, flags=0): - """Load and return a dynamic library identified by 'name'. - The standard C library can be loaded by passing None. - Note that functions and types declared by 'ffi.cdef()' are not - linked to a particular library, just like C headers; in the - library we only look for the actual (untyped) symbols. - """ - if not (isinstance(name, basestring) or - name is None or - isinstance(name, self.CData)): - raise TypeError("dlopen(name): name must be a file name, None, " - "or an already-opened 'void *' handle") - with self._lock: - lib, function_cache = _make_ffi_library(self, name, flags) - self._function_caches.append(function_cache) - self._libraries.append(lib) - return lib - - def dlclose(self, lib): - """Close a library obtained with ffi.dlopen(). After this call, - access to functions or variables from the library will fail - (possibly with a segmentation fault). - """ - type(lib).__cffi_close__(lib) - - def _typeof_locked(self, cdecl): - # call me with the lock! - key = cdecl - if key in self._parsed_types: - return self._parsed_types[key] - # - if not isinstance(cdecl, str): # unicode, on Python 2 - cdecl = cdecl.encode('ascii') - # - type = self._parser.parse_type(cdecl) - really_a_function_type = type.is_raw_function - if really_a_function_type: - type = type.as_function_pointer() - btype = self._get_cached_btype(type) - result = btype, really_a_function_type - self._parsed_types[key] = result - return result - - def _typeof(self, cdecl, consider_function_as_funcptr=False): - # string -> ctype object - try: - result = self._parsed_types[cdecl] - except KeyError: - with self._lock: - result = self._typeof_locked(cdecl) - # - btype, really_a_function_type = result - if really_a_function_type and not consider_function_as_funcptr: - raise CDefError("the type %r is a function type, not a " - "pointer-to-function type" % (cdecl,)) - return btype - - def typeof(self, cdecl): - """Parse the C type given as a string and return the - corresponding object. - It can also be used on 'cdata' instance to get its C type. - """ - if isinstance(cdecl, basestring): - return self._typeof(cdecl) - if isinstance(cdecl, self.CData): - return self._backend.typeof(cdecl) - if isinstance(cdecl, types.BuiltinFunctionType): - res = _builtin_function_type(cdecl) - if res is not None: - return res - if (isinstance(cdecl, types.FunctionType) - and hasattr(cdecl, '_cffi_base_type')): - with self._lock: - return self._get_cached_btype(cdecl._cffi_base_type) - raise TypeError(type(cdecl)) - - def sizeof(self, cdecl): - """Return the size in bytes of the argument. It can be a - string naming a C type, or a 'cdata' instance. - """ - if isinstance(cdecl, basestring): - BType = self._typeof(cdecl) - return self._backend.sizeof(BType) - else: - return self._backend.sizeof(cdecl) - - def alignof(self, cdecl): - """Return the natural alignment size in bytes of the C type - given as a string. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.alignof(cdecl) - - def offsetof(self, cdecl, *fields_or_indexes): - """Return the offset of the named field inside the given - structure or array, which must be given as a C type name. - You can give several field names in case of nested structures. - You can also give numeric values which correspond to array - items, in case of an array type. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._typeoffsetof(cdecl, *fields_or_indexes)[1] - - def new(self, cdecl, init=None): - """Allocate an instance according to the specified C type and - return a pointer to it. The specified C type must be either a - pointer or an array: ``new('X *')`` allocates an X and returns - a pointer to it, whereas ``new('X[n]')`` allocates an array of - n X'es and returns an array referencing it (which works - mostly like a pointer, like in C). You can also use - ``new('X[]', n)`` to allocate an array of a non-constant - length n. - - The memory is initialized following the rules of declaring a - global variable in C: by default it is zero-initialized, but - an explicit initializer can be given which can be used to - fill all or part of the memory. - - When the returned object goes out of scope, the memory - is freed. In other words the returned object has - ownership of the value of type 'cdecl' that it points to. This - means that the raw data can be used as long as this object is - kept alive, but must not be used for a longer time. Be careful - about that when copying the pointer to the memory somewhere - else, e.g. into another structure. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.newp(cdecl, init) - - def new_allocator(self, alloc=None, free=None, - should_clear_after_alloc=True): - """Return a new allocator, i.e. a function that behaves like ffi.new() - but uses the provided low-level 'alloc' and 'free' functions. - - 'alloc' is called with the size as argument. If it returns NULL, a - MemoryError is raised. 'free' is called with the result of 'alloc' - as argument. Both can be either Python function or directly C - functions. If 'free' is None, then no free function is called. - If both 'alloc' and 'free' are None, the default is used. - - If 'should_clear_after_alloc' is set to False, then the memory - returned by 'alloc' is assumed to be already cleared (or you are - fine with garbage); otherwise CFFI will clear it. - """ - compiled_ffi = self._backend.FFI() - allocator = compiled_ffi.new_allocator(alloc, free, - should_clear_after_alloc) - def allocate(cdecl, init=None): - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return allocator(cdecl, init) - return allocate - - def cast(self, cdecl, source): - """Similar to a C cast: returns an instance of the named C - type initialized with the given 'source'. The source is - casted between integers or pointers of any type. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.cast(cdecl, source) - - def string(self, cdata, maxlen=-1): - """Return a Python string (or unicode string) from the 'cdata'. - If 'cdata' is a pointer or array of characters or bytes, returns - the null-terminated string. The returned string extends until - the first null character, or at most 'maxlen' characters. If - 'cdata' is an array then 'maxlen' defaults to its length. - - If 'cdata' is a pointer or array of wchar_t, returns a unicode - string following the same rules. - - If 'cdata' is a single character or byte or a wchar_t, returns - it as a string or unicode string. - - If 'cdata' is an enum, returns the value of the enumerator as a - string, or 'NUMBER' if the value is out of range. - """ - return self._backend.string(cdata, maxlen) - - def unpack(self, cdata, length): - """Unpack an array of C data of the given length, - returning a Python string/unicode/list. - - If 'cdata' is a pointer to 'char', returns a byte string. - It does not stop at the first null. This is equivalent to: - ffi.buffer(cdata, length)[:] - - If 'cdata' is a pointer to 'wchar_t', returns a unicode string. - 'length' is measured in wchar_t's; it is not the size in bytes. - - If 'cdata' is a pointer to anything else, returns a list of - 'length' items. This is a faster equivalent to: - [cdata[i] for i in range(length)] - """ - return self._backend.unpack(cdata, length) - - #def buffer(self, cdata, size=-1): - # """Return a read-write buffer object that references the raw C data - # pointed to by the given 'cdata'. The 'cdata' must be a pointer or - # an array. Can be passed to functions expecting a buffer, or directly - # manipulated with: - # - # buf[:] get a copy of it in a regular string, or - # buf[idx] as a single character - # buf[:] = ... - # buf[idx] = ... change the content - # """ - # note that 'buffer' is a type, set on this instance by __init__ - - def from_buffer(self, cdecl, python_buffer=_unspecified, - require_writable=False): - """Return a cdata of the given type pointing to the data of the - given Python object, which must support the buffer interface. - Note that this is not meant to be used on the built-in types - str or unicode (you can build 'char[]' arrays explicitly) - but only on objects containing large quantities of raw data - in some other format, like 'array.array' or numpy arrays. - - The first argument is optional and default to 'char[]'. - """ - if python_buffer is _unspecified: - cdecl, python_buffer = self.BCharA, cdecl - elif isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - return self._backend.from_buffer(cdecl, python_buffer, - require_writable) - - def memmove(self, dest, src, n): - """ffi.memmove(dest, src, n) copies n bytes of memory from src to dest. - - Like the C function memmove(), the memory areas may overlap; - apart from that it behaves like the C function memcpy(). - - 'src' can be any cdata ptr or array, or any Python buffer object. - 'dest' can be any cdata ptr or array, or a writable Python buffer - object. The size to copy, 'n', is always measured in bytes. - - Unlike other methods, this one supports all Python buffer including - byte strings and bytearrays---but it still does not support - non-contiguous buffers. - """ - return self._backend.memmove(dest, src, n) - - def callback(self, cdecl, python_callable=None, error=None, onerror=None): - """Return a callback object or a decorator making such a - callback object. 'cdecl' must name a C function pointer type. - The callback invokes the specified 'python_callable' (which may - be provided either directly or via a decorator). Important: the - callback object must be manually kept alive for as long as the - callback may be invoked from the C level. - """ - def callback_decorator_wrap(python_callable): - if not callable(python_callable): - raise TypeError("the 'python_callable' argument " - "is not callable") - return self._backend.callback(cdecl, python_callable, - error, onerror) - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl, consider_function_as_funcptr=True) - if python_callable is None: - return callback_decorator_wrap # decorator mode - else: - return callback_decorator_wrap(python_callable) # direct mode - - def getctype(self, cdecl, replace_with=''): - """Return a string giving the C type 'cdecl', which may be itself - a string or a object. If 'replace_with' is given, it gives - extra text to append (or insert for more complicated C types), like - a variable name, or '*' to get actually the C type 'pointer-to-cdecl'. - """ - if isinstance(cdecl, basestring): - cdecl = self._typeof(cdecl) - replace_with = replace_with.strip() - if (replace_with.startswith('*') - and '&[' in self._backend.getcname(cdecl, '&')): - replace_with = '(%s)' % replace_with - elif replace_with and not replace_with[0] in '[(': - replace_with = ' ' + replace_with - return self._backend.getcname(cdecl, replace_with) - - def gc(self, cdata, destructor, size=0): - """Return a new cdata object that points to the same - data. Later, when this new cdata object is garbage-collected, - 'destructor(old_cdata_object)' will be called. - - The optional 'size' gives an estimate of the size, used to - trigger the garbage collection more eagerly. So far only used - on PyPy. It tells the GC that the returned object keeps alive - roughly 'size' bytes of external memory. - """ - return self._backend.gcp(cdata, destructor, size) - - def _get_cached_btype(self, type): - assert self._lock.acquire(False) is False - # call me with the lock! - try: - BType = self._cached_btypes[type] - except KeyError: - finishlist = [] - BType = type.get_cached_btype(self, finishlist) - for type in finishlist: - type.finish_backend_type(self, finishlist) - return BType - - def verify(self, source='', tmpdir=None, **kwargs): - """Verify that the current ffi signatures compile on this - machine, and return a dynamic library object. The dynamic - library can be used to call functions and access global - variables declared in this 'ffi'. The library is compiled - by the C compiler: it gives you C-level API compatibility - (including calling macros). This is unlike 'ffi.dlopen()', - which requires binary compatibility in the signatures. - """ - from .verifier import Verifier, _caller_dir_pycache - # - # If set_unicode(True) was called, insert the UNICODE and - # _UNICODE macro declarations - if self._windows_unicode: - self._apply_windows_unicode(kwargs) - # - # Set the tmpdir here, and not in Verifier.__init__: it picks - # up the caller's directory, which we want to be the caller of - # ffi.verify(), as opposed to the caller of Veritier(). - tmpdir = tmpdir or _caller_dir_pycache() - # - # Make a Verifier() and use it to load the library. - self.verifier = Verifier(self, source, tmpdir, **kwargs) - lib = self.verifier.load_library() - # - # Save the loaded library for keep-alive purposes, even - # if the caller doesn't keep it alive itself (it should). - self._libraries.append(lib) - return lib - - def _get_errno(self): - return self._backend.get_errno() - def _set_errno(self, errno): - self._backend.set_errno(errno) - errno = property(_get_errno, _set_errno, None, - "the value of 'errno' from/to the C calls") - - def getwinerror(self, code=-1): - return self._backend.getwinerror(code) - - def _pointer_to(self, ctype): - with self._lock: - return model.pointer_cache(self, ctype) - - def addressof(self, cdata, *fields_or_indexes): - """Return the address of a . - If 'fields_or_indexes' are given, returns the address of that - field or array item in the structure or array, recursively in - case of nested structures. - """ - try: - ctype = self._backend.typeof(cdata) - except TypeError: - if '__addressof__' in type(cdata).__dict__: - return type(cdata).__addressof__(cdata, *fields_or_indexes) - raise - if fields_or_indexes: - ctype, offset = self._typeoffsetof(ctype, *fields_or_indexes) - else: - if ctype.kind == "pointer": - raise TypeError("addressof(pointer)") - offset = 0 - ctypeptr = self._pointer_to(ctype) - return self._backend.rawaddressof(ctypeptr, cdata, offset) - - def _typeoffsetof(self, ctype, field_or_index, *fields_or_indexes): - ctype, offset = self._backend.typeoffsetof(ctype, field_or_index) - for field1 in fields_or_indexes: - ctype, offset1 = self._backend.typeoffsetof(ctype, field1, 1) - offset += offset1 - return ctype, offset - - def include(self, ffi_to_include): - """Includes the typedefs, structs, unions and enums defined - in another FFI instance. Usage is similar to a #include in C, - where a part of the program might include types defined in - another part for its own usage. Note that the include() - method has no effect on functions, constants and global - variables, which must anyway be accessed directly from the - lib object returned by the original FFI instance. - """ - if not isinstance(ffi_to_include, FFI): - raise TypeError("ffi.include() expects an argument that is also of" - " type cffi.FFI, not %r" % ( - type(ffi_to_include).__name__,)) - if ffi_to_include is self: - raise ValueError("self.include(self)") - with ffi_to_include._lock: - with self._lock: - self._parser.include(ffi_to_include._parser) - self._cdefsources.append('[') - self._cdefsources.extend(ffi_to_include._cdefsources) - self._cdefsources.append(']') - self._included_ffis.append(ffi_to_include) - - def new_handle(self, x): - return self._backend.newp_handle(self.BVoidP, x) - - def from_handle(self, x): - return self._backend.from_handle(x) - - def release(self, x): - self._backend.release(x) - - def set_unicode(self, enabled_flag): - """Windows: if 'enabled_flag' is True, enable the UNICODE and - _UNICODE defines in C, and declare the types like TCHAR and LPTCSTR - to be (pointers to) wchar_t. If 'enabled_flag' is False, - declare these types to be (pointers to) plain 8-bit characters. - This is mostly for backward compatibility; you usually want True. - """ - if self._windows_unicode is not None: - raise ValueError("set_unicode() can only be called once") - enabled_flag = bool(enabled_flag) - if enabled_flag: - self.cdef("typedef wchar_t TBYTE;" - "typedef wchar_t TCHAR;" - "typedef const wchar_t *LPCTSTR;" - "typedef const wchar_t *PCTSTR;" - "typedef wchar_t *LPTSTR;" - "typedef wchar_t *PTSTR;" - "typedef TBYTE *PTBYTE;" - "typedef TCHAR *PTCHAR;") - else: - self.cdef("typedef char TBYTE;" - "typedef char TCHAR;" - "typedef const char *LPCTSTR;" - "typedef const char *PCTSTR;" - "typedef char *LPTSTR;" - "typedef char *PTSTR;" - "typedef TBYTE *PTBYTE;" - "typedef TCHAR *PTCHAR;") - self._windows_unicode = enabled_flag - - def _apply_windows_unicode(self, kwds): - defmacros = kwds.get('define_macros', ()) - if not isinstance(defmacros, (list, tuple)): - raise TypeError("'define_macros' must be a list or tuple") - defmacros = list(defmacros) + [('UNICODE', '1'), - ('_UNICODE', '1')] - kwds['define_macros'] = defmacros - - def _apply_embedding_fix(self, kwds): - # must include an argument like "-lpython2.7" for the compiler - def ensure(key, value): - lst = kwds.setdefault(key, []) - if value not in lst: - lst.append(value) - # - if '__pypy__' in sys.builtin_module_names: - import os - if sys.platform == "win32": - # we need 'libpypy-c.lib'. Current distributions of - # pypy (>= 4.1) contain it as 'libs/python27.lib'. - pythonlib = "python{0[0]}{0[1]}".format(sys.version_info) - if hasattr(sys, 'prefix'): - ensure('library_dirs', os.path.join(sys.prefix, 'libs')) - else: - # we need 'libpypy-c.{so,dylib}', which should be by - # default located in 'sys.prefix/bin' for installed - # systems. - if sys.version_info < (3,): - pythonlib = "pypy-c" - else: - pythonlib = "pypy3-c" - if hasattr(sys, 'prefix'): - ensure('library_dirs', os.path.join(sys.prefix, 'bin')) - # On uninstalled pypy's, the libpypy-c is typically found in - # .../pypy/goal/. - if hasattr(sys, 'prefix'): - ensure('library_dirs', os.path.join(sys.prefix, 'pypy', 'goal')) - else: - if sys.platform == "win32": - template = "python%d%d" - if hasattr(sys, 'gettotalrefcount'): - template += '_d' - else: - try: - import sysconfig - except ImportError: # 2.6 - from cffi._shimmed_dist_utils import sysconfig - template = "python%d.%d" - if sysconfig.get_config_var('DEBUG_EXT'): - template += sysconfig.get_config_var('DEBUG_EXT') - pythonlib = (template % - (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) - if hasattr(sys, 'abiflags'): - pythonlib += sys.abiflags - ensure('libraries', pythonlib) - if sys.platform == "win32": - ensure('extra_link_args', '/MANIFEST') - - def set_source(self, module_name, source, source_extension='.c', **kwds): - import os - if hasattr(self, '_assigned_source'): - raise ValueError("set_source() cannot be called several times " - "per ffi object") - if not isinstance(module_name, basestring): - raise TypeError("'module_name' must be a string") - if os.sep in module_name or (os.altsep and os.altsep in module_name): - raise ValueError("'module_name' must not contain '/': use a dotted " - "name to make a 'package.module' location") - self._assigned_source = (str(module_name), source, - source_extension, kwds) - - def set_source_pkgconfig(self, module_name, pkgconfig_libs, source, - source_extension='.c', **kwds): - from . import pkgconfig - if not isinstance(pkgconfig_libs, list): - raise TypeError("the pkgconfig_libs argument must be a list " - "of package names") - kwds2 = pkgconfig.flags_from_pkgconfig(pkgconfig_libs) - pkgconfig.merge_flags(kwds, kwds2) - self.set_source(module_name, source, source_extension, **kwds) - - def distutils_extension(self, tmpdir='build', verbose=True): - from cffi._shimmed_dist_utils import mkpath - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - if hasattr(self, 'verifier'): # fallback, 'tmpdir' ignored - return self.verifier.get_extension() - raise ValueError("set_source() must be called before" - " distutils_extension()") - module_name, source, source_extension, kwds = self._assigned_source - if source is None: - raise TypeError("distutils_extension() is only for C extension " - "modules, not for dlopen()-style pure Python " - "modules") - mkpath(tmpdir) - ext, updated = recompile(self, module_name, - source, tmpdir=tmpdir, extradir=tmpdir, - source_extension=source_extension, - call_c_compiler=False, **kwds) - if verbose: - if updated: - sys.stderr.write("regenerated: %r\n" % (ext.sources[0],)) - else: - sys.stderr.write("not modified: %r\n" % (ext.sources[0],)) - return ext - - def emit_c_code(self, filename): - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - raise ValueError("set_source() must be called before emit_c_code()") - module_name, source, source_extension, kwds = self._assigned_source - if source is None: - raise TypeError("emit_c_code() is only for C extension modules, " - "not for dlopen()-style pure Python modules") - recompile(self, module_name, source, - c_file=filename, call_c_compiler=False, - uses_ffiplatform=False, **kwds) - - def emit_python_code(self, filename): - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - raise ValueError("set_source() must be called before emit_c_code()") - module_name, source, source_extension, kwds = self._assigned_source - if source is not None: - raise TypeError("emit_python_code() is only for dlopen()-style " - "pure Python modules, not for C extension modules") - recompile(self, module_name, source, - c_file=filename, call_c_compiler=False, - uses_ffiplatform=False, **kwds) - - def compile(self, tmpdir='.', verbose=0, target=None, debug=None): - """The 'target' argument gives the final file name of the - compiled DLL. Use '*' to force distutils' choice, suitable for - regular CPython C API modules. Use a file name ending in '.*' - to ask for the system's default extension for dynamic libraries - (.so/.dll/.dylib). - - The default is '*' when building a non-embedded C API extension, - and (module_name + '.*') when building an embedded library. - """ - from .recompiler import recompile - # - if not hasattr(self, '_assigned_source'): - raise ValueError("set_source() must be called before compile()") - module_name, source, source_extension, kwds = self._assigned_source - return recompile(self, module_name, source, tmpdir=tmpdir, - target=target, source_extension=source_extension, - compiler_verbose=verbose, debug=debug, **kwds) - - def init_once(self, func, tag): - # Read _init_once_cache[tag], which is either (False, lock) if - # we're calling the function now in some thread, or (True, result). - # Don't call setdefault() in most cases, to avoid allocating and - # immediately freeing a lock; but still use setdefaut() to avoid - # races. - try: - x = self._init_once_cache[tag] - except KeyError: - x = self._init_once_cache.setdefault(tag, (False, allocate_lock())) - # Common case: we got (True, result), so we return the result. - if x[0]: - return x[1] - # Else, it's a lock. Acquire it to serialize the following tests. - with x[1]: - # Read again from _init_once_cache the current status. - x = self._init_once_cache[tag] - if x[0]: - return x[1] - # Call the function and store the result back. - result = func() - self._init_once_cache[tag] = (True, result) - return result - - def embedding_init_code(self, pysource): - if self._embedding: - raise ValueError("embedding_init_code() can only be called once") - # fix 'pysource' before it gets dumped into the C file: - # - remove empty lines at the beginning, so it starts at "line 1" - # - dedent, if all non-empty lines are indented - # - check for SyntaxErrors - import re - match = re.match(r'\s*\n', pysource) - if match: - pysource = pysource[match.end():] - lines = pysource.splitlines() or [''] - prefix = re.match(r'\s*', lines[0]).group() - for i in range(1, len(lines)): - line = lines[i] - if line.rstrip(): - while not line.startswith(prefix): - prefix = prefix[:-1] - i = len(prefix) - lines = [line[i:]+'\n' for line in lines] - pysource = ''.join(lines) - # - compile(pysource, "cffi_init", "exec") - # - self._embedding = pysource - - def def_extern(self, *args, **kwds): - raise ValueError("ffi.def_extern() is only available on API-mode FFI " - "objects") - - def list_types(self): - """Returns the user type names known to this FFI instance. - This returns a tuple containing three lists of names: - (typedef_names, names_of_structs, names_of_unions) - """ - typedefs = [] - structs = [] - unions = [] - for key in self._parser._declarations: - if key.startswith('typedef '): - typedefs.append(key[8:]) - elif key.startswith('struct '): - structs.append(key[7:]) - elif key.startswith('union '): - unions.append(key[6:]) - typedefs.sort() - structs.sort() - unions.sort() - return (typedefs, structs, unions) - - -def _load_backend_lib(backend, name, flags): - import os - if not isinstance(name, basestring): - if sys.platform != "win32" or name is not None: - return backend.load_library(name, flags) - name = "c" # Windows: load_library(None) fails, but this works - # on Python 2 (backward compatibility hack only) - first_error = None - if '.' in name or '/' in name or os.sep in name: - try: - return backend.load_library(name, flags) - except OSError as e: - first_error = e - import ctypes.util - path = ctypes.util.find_library(name) - if path is None: - if name == "c" and sys.platform == "win32" and sys.version_info >= (3,): - raise OSError("dlopen(None) cannot work on Windows for Python 3 " - "(see http://bugs.python.org/issue23606)") - msg = ("ctypes.util.find_library() did not manage " - "to locate a library called %r" % (name,)) - if first_error is not None: - msg = "%s. Additionally, %s" % (first_error, msg) - raise OSError(msg) - return backend.load_library(path, flags) - -def _make_ffi_library(ffi, libname, flags): - backend = ffi._backend - backendlib = _load_backend_lib(backend, libname, flags) - # - def accessor_function(name): - key = 'function ' + name - tp, _ = ffi._parser._declarations[key] - BType = ffi._get_cached_btype(tp) - value = backendlib.load_function(BType, name) - library.__dict__[name] = value - # - def accessor_variable(name): - key = 'variable ' + name - tp, _ = ffi._parser._declarations[key] - BType = ffi._get_cached_btype(tp) - read_variable = backendlib.read_variable - write_variable = backendlib.write_variable - setattr(FFILibrary, name, property( - lambda self: read_variable(BType, name), - lambda self, value: write_variable(BType, name, value))) - # - def addressof_var(name): - try: - return addr_variables[name] - except KeyError: - with ffi._lock: - if name not in addr_variables: - key = 'variable ' + name - tp, _ = ffi._parser._declarations[key] - BType = ffi._get_cached_btype(tp) - if BType.kind != 'array': - BType = model.pointer_cache(ffi, BType) - p = backendlib.load_function(BType, name) - addr_variables[name] = p - return addr_variables[name] - # - def accessor_constant(name): - raise NotImplementedError("non-integer constant '%s' cannot be " - "accessed from a dlopen() library" % (name,)) - # - def accessor_int_constant(name): - library.__dict__[name] = ffi._parser._int_constants[name] - # - accessors = {} - accessors_version = [False] - addr_variables = {} - # - def update_accessors(): - if accessors_version[0] is ffi._cdef_version: - return - # - for key, (tp, _) in ffi._parser._declarations.items(): - if not isinstance(tp, model.EnumType): - tag, name = key.split(' ', 1) - if tag == 'function': - accessors[name] = accessor_function - elif tag == 'variable': - accessors[name] = accessor_variable - elif tag == 'constant': - accessors[name] = accessor_constant - else: - for i, enumname in enumerate(tp.enumerators): - def accessor_enum(name, tp=tp, i=i): - tp.check_not_partial() - library.__dict__[name] = tp.enumvalues[i] - accessors[enumname] = accessor_enum - for name in ffi._parser._int_constants: - accessors.setdefault(name, accessor_int_constant) - accessors_version[0] = ffi._cdef_version - # - def make_accessor(name): - with ffi._lock: - if name in library.__dict__ or name in FFILibrary.__dict__: - return # added by another thread while waiting for the lock - if name not in accessors: - update_accessors() - if name not in accessors: - raise AttributeError(name) - accessors[name](name) - # - class FFILibrary(object): - def __getattr__(self, name): - make_accessor(name) - return getattr(self, name) - def __setattr__(self, name, value): - try: - property = getattr(self.__class__, name) - except AttributeError: - make_accessor(name) - setattr(self, name, value) - else: - property.__set__(self, value) - def __dir__(self): - with ffi._lock: - update_accessors() - return accessors.keys() - def __addressof__(self, name): - if name in library.__dict__: - return library.__dict__[name] - if name in FFILibrary.__dict__: - return addressof_var(name) - make_accessor(name) - if name in library.__dict__: - return library.__dict__[name] - if name in FFILibrary.__dict__: - return addressof_var(name) - raise AttributeError("cffi library has no function or " - "global variable named '%s'" % (name,)) - def __cffi_close__(self): - backendlib.close_lib() - self.__dict__.clear() - # - if isinstance(libname, basestring): - try: - if not isinstance(libname, str): # unicode, on Python 2 - libname = libname.encode('utf-8') - FFILibrary.__name__ = 'FFILibrary_%s' % libname - except UnicodeError: - pass - library = FFILibrary() - return library, library.__dict__ - -def _builtin_function_type(func): - # a hack to make at least ffi.typeof(builtin_function) work, - # if the builtin function was obtained by 'vengine_cpy'. - import sys - try: - module = sys.modules[func.__module__] - ffi = module._cffi_original_ffi - types_of_builtin_funcs = module._cffi_types_of_builtin_funcs - tp = types_of_builtin_funcs[func] - except (KeyError, AttributeError, TypeError): - return None - else: - with ffi._lock: - return ffi._get_cached_btype(tp) diff --git a/backend/venv/lib/python3.12/site-packages/cffi/backend_ctypes.py b/backend/venv/lib/python3.12/site-packages/cffi/backend_ctypes.py deleted file mode 100644 index e7956a7..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/backend_ctypes.py +++ /dev/null @@ -1,1121 +0,0 @@ -import ctypes, ctypes.util, operator, sys -from . import model - -if sys.version_info < (3,): - bytechr = chr -else: - unicode = str - long = int - xrange = range - bytechr = lambda num: bytes([num]) - -class CTypesType(type): - pass - -class CTypesData(object): - __metaclass__ = CTypesType - __slots__ = ['__weakref__'] - __name__ = '' - - def __init__(self, *args): - raise TypeError("cannot instantiate %r" % (self.__class__,)) - - @classmethod - def _newp(cls, init): - raise TypeError("expected a pointer or array ctype, got '%s'" - % (cls._get_c_name(),)) - - @staticmethod - def _to_ctypes(value): - raise TypeError - - @classmethod - def _arg_to_ctypes(cls, *value): - try: - ctype = cls._ctype - except AttributeError: - raise TypeError("cannot create an instance of %r" % (cls,)) - if value: - res = cls._to_ctypes(*value) - if not isinstance(res, ctype): - res = cls._ctype(res) - else: - res = cls._ctype() - return res - - @classmethod - def _create_ctype_obj(cls, init): - if init is None: - return cls._arg_to_ctypes() - else: - return cls._arg_to_ctypes(init) - - @staticmethod - def _from_ctypes(ctypes_value): - raise TypeError - - @classmethod - def _get_c_name(cls, replace_with=''): - return cls._reftypename.replace(' &', replace_with) - - @classmethod - def _fix_class(cls): - cls.__name__ = 'CData<%s>' % (cls._get_c_name(),) - cls.__qualname__ = 'CData<%s>' % (cls._get_c_name(),) - cls.__module__ = 'ffi' - - def _get_own_repr(self): - raise NotImplementedError - - def _addr_repr(self, address): - if address == 0: - return 'NULL' - else: - if address < 0: - address += 1 << (8*ctypes.sizeof(ctypes.c_void_p)) - return '0x%x' % address - - def __repr__(self, c_name=None): - own = self._get_own_repr() - return '' % (c_name or self._get_c_name(), own) - - def _convert_to_address(self, BClass): - if BClass is None: - raise TypeError("cannot convert %r to an address" % ( - self._get_c_name(),)) - else: - raise TypeError("cannot convert %r to %r" % ( - self._get_c_name(), BClass._get_c_name())) - - @classmethod - def _get_size(cls): - return ctypes.sizeof(cls._ctype) - - def _get_size_of_instance(self): - return ctypes.sizeof(self._ctype) - - @classmethod - def _cast_from(cls, source): - raise TypeError("cannot cast to %r" % (cls._get_c_name(),)) - - def _cast_to_integer(self): - return self._convert_to_address(None) - - @classmethod - def _alignment(cls): - return ctypes.alignment(cls._ctype) - - def __iter__(self): - raise TypeError("cdata %r does not support iteration" % ( - self._get_c_name()),) - - def _make_cmp(name): - cmpfunc = getattr(operator, name) - def cmp(self, other): - v_is_ptr = not isinstance(self, CTypesGenericPrimitive) - w_is_ptr = (isinstance(other, CTypesData) and - not isinstance(other, CTypesGenericPrimitive)) - if v_is_ptr and w_is_ptr: - return cmpfunc(self._convert_to_address(None), - other._convert_to_address(None)) - elif v_is_ptr or w_is_ptr: - return NotImplemented - else: - if isinstance(self, CTypesGenericPrimitive): - self = self._value - if isinstance(other, CTypesGenericPrimitive): - other = other._value - return cmpfunc(self, other) - cmp.func_name = name - return cmp - - __eq__ = _make_cmp('__eq__') - __ne__ = _make_cmp('__ne__') - __lt__ = _make_cmp('__lt__') - __le__ = _make_cmp('__le__') - __gt__ = _make_cmp('__gt__') - __ge__ = _make_cmp('__ge__') - - def __hash__(self): - return hash(self._convert_to_address(None)) - - def _to_string(self, maxlen): - raise TypeError("string(): %r" % (self,)) - - -class CTypesGenericPrimitive(CTypesData): - __slots__ = [] - - def __hash__(self): - return hash(self._value) - - def _get_own_repr(self): - return repr(self._from_ctypes(self._value)) - - -class CTypesGenericArray(CTypesData): - __slots__ = [] - - @classmethod - def _newp(cls, init): - return cls(init) - - def __iter__(self): - for i in xrange(len(self)): - yield self[i] - - def _get_own_repr(self): - return self._addr_repr(ctypes.addressof(self._blob)) - - -class CTypesGenericPtr(CTypesData): - __slots__ = ['_address', '_as_ctype_ptr'] - _automatic_casts = False - kind = "pointer" - - @classmethod - def _newp(cls, init): - return cls(init) - - @classmethod - def _cast_from(cls, source): - if source is None: - address = 0 - elif isinstance(source, CTypesData): - address = source._cast_to_integer() - elif isinstance(source, (int, long)): - address = source - else: - raise TypeError("bad type for cast to %r: %r" % - (cls, type(source).__name__)) - return cls._new_pointer_at(address) - - @classmethod - def _new_pointer_at(cls, address): - self = cls.__new__(cls) - self._address = address - self._as_ctype_ptr = ctypes.cast(address, cls._ctype) - return self - - def _get_own_repr(self): - try: - return self._addr_repr(self._address) - except AttributeError: - return '???' - - def _cast_to_integer(self): - return self._address - - def __nonzero__(self): - return bool(self._address) - __bool__ = __nonzero__ - - @classmethod - def _to_ctypes(cls, value): - if not isinstance(value, CTypesData): - raise TypeError("unexpected %s object" % type(value).__name__) - address = value._convert_to_address(cls) - return ctypes.cast(address, cls._ctype) - - @classmethod - def _from_ctypes(cls, ctypes_ptr): - address = ctypes.cast(ctypes_ptr, ctypes.c_void_p).value or 0 - return cls._new_pointer_at(address) - - @classmethod - def _initialize(cls, ctypes_ptr, value): - if value: - ctypes_ptr.contents = cls._to_ctypes(value).contents - - def _convert_to_address(self, BClass): - if (BClass in (self.__class__, None) or BClass._automatic_casts - or self._automatic_casts): - return self._address - else: - return CTypesData._convert_to_address(self, BClass) - - -class CTypesBaseStructOrUnion(CTypesData): - __slots__ = ['_blob'] - - @classmethod - def _create_ctype_obj(cls, init): - # may be overridden - raise TypeError("cannot instantiate opaque type %s" % (cls,)) - - def _get_own_repr(self): - return self._addr_repr(ctypes.addressof(self._blob)) - - @classmethod - def _offsetof(cls, fieldname): - return getattr(cls._ctype, fieldname).offset - - def _convert_to_address(self, BClass): - if getattr(BClass, '_BItem', None) is self.__class__: - return ctypes.addressof(self._blob) - else: - return CTypesData._convert_to_address(self, BClass) - - @classmethod - def _from_ctypes(cls, ctypes_struct_or_union): - self = cls.__new__(cls) - self._blob = ctypes_struct_or_union - return self - - @classmethod - def _to_ctypes(cls, value): - return value._blob - - def __repr__(self, c_name=None): - return CTypesData.__repr__(self, c_name or self._get_c_name(' &')) - - -class CTypesBackend(object): - - PRIMITIVE_TYPES = { - 'char': ctypes.c_char, - 'short': ctypes.c_short, - 'int': ctypes.c_int, - 'long': ctypes.c_long, - 'long long': ctypes.c_longlong, - 'signed char': ctypes.c_byte, - 'unsigned char': ctypes.c_ubyte, - 'unsigned short': ctypes.c_ushort, - 'unsigned int': ctypes.c_uint, - 'unsigned long': ctypes.c_ulong, - 'unsigned long long': ctypes.c_ulonglong, - 'float': ctypes.c_float, - 'double': ctypes.c_double, - '_Bool': ctypes.c_bool, - } - - for _name in ['unsigned long long', 'unsigned long', - 'unsigned int', 'unsigned short', 'unsigned char']: - _size = ctypes.sizeof(PRIMITIVE_TYPES[_name]) - PRIMITIVE_TYPES['uint%d_t' % (8*_size)] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_void_p): - PRIMITIVE_TYPES['uintptr_t'] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_size_t): - PRIMITIVE_TYPES['size_t'] = PRIMITIVE_TYPES[_name] - - for _name in ['long long', 'long', 'int', 'short', 'signed char']: - _size = ctypes.sizeof(PRIMITIVE_TYPES[_name]) - PRIMITIVE_TYPES['int%d_t' % (8*_size)] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_void_p): - PRIMITIVE_TYPES['intptr_t'] = PRIMITIVE_TYPES[_name] - PRIMITIVE_TYPES['ptrdiff_t'] = PRIMITIVE_TYPES[_name] - if _size == ctypes.sizeof(ctypes.c_size_t): - PRIMITIVE_TYPES['ssize_t'] = PRIMITIVE_TYPES[_name] - - - def __init__(self): - self.RTLD_LAZY = 0 # not supported anyway by ctypes - self.RTLD_NOW = 0 - self.RTLD_GLOBAL = ctypes.RTLD_GLOBAL - self.RTLD_LOCAL = ctypes.RTLD_LOCAL - - def set_ffi(self, ffi): - self.ffi = ffi - - def _get_types(self): - return CTypesData, CTypesType - - def load_library(self, path, flags=0): - cdll = ctypes.CDLL(path, flags) - return CTypesLibrary(self, cdll) - - def new_void_type(self): - class CTypesVoid(CTypesData): - __slots__ = [] - _reftypename = 'void &' - @staticmethod - def _from_ctypes(novalue): - return None - @staticmethod - def _to_ctypes(novalue): - if novalue is not None: - raise TypeError("None expected, got %s object" % - (type(novalue).__name__,)) - return None - CTypesVoid._fix_class() - return CTypesVoid - - def new_primitive_type(self, name): - if name == 'wchar_t': - raise NotImplementedError(name) - ctype = self.PRIMITIVE_TYPES[name] - if name == 'char': - kind = 'char' - elif name in ('float', 'double'): - kind = 'float' - else: - if name in ('signed char', 'unsigned char'): - kind = 'byte' - elif name == '_Bool': - kind = 'bool' - else: - kind = 'int' - is_signed = (ctype(-1).value == -1) - # - def _cast_source_to_int(source): - if isinstance(source, (int, long, float)): - source = int(source) - elif isinstance(source, CTypesData): - source = source._cast_to_integer() - elif isinstance(source, bytes): - source = ord(source) - elif source is None: - source = 0 - else: - raise TypeError("bad type for cast to %r: %r" % - (CTypesPrimitive, type(source).__name__)) - return source - # - kind1 = kind - class CTypesPrimitive(CTypesGenericPrimitive): - __slots__ = ['_value'] - _ctype = ctype - _reftypename = '%s &' % name - kind = kind1 - - def __init__(self, value): - self._value = value - - @staticmethod - def _create_ctype_obj(init): - if init is None: - return ctype() - return ctype(CTypesPrimitive._to_ctypes(init)) - - if kind == 'int' or kind == 'byte': - @classmethod - def _cast_from(cls, source): - source = _cast_source_to_int(source) - source = ctype(source).value # cast within range - return cls(source) - def __int__(self): - return self._value - - if kind == 'bool': - @classmethod - def _cast_from(cls, source): - if not isinstance(source, (int, long, float)): - source = _cast_source_to_int(source) - return cls(bool(source)) - def __int__(self): - return int(self._value) - - if kind == 'char': - @classmethod - def _cast_from(cls, source): - source = _cast_source_to_int(source) - source = bytechr(source & 0xFF) - return cls(source) - def __int__(self): - return ord(self._value) - - if kind == 'float': - @classmethod - def _cast_from(cls, source): - if isinstance(source, float): - pass - elif isinstance(source, CTypesGenericPrimitive): - if hasattr(source, '__float__'): - source = float(source) - else: - source = int(source) - else: - source = _cast_source_to_int(source) - source = ctype(source).value # fix precision - return cls(source) - def __int__(self): - return int(self._value) - def __float__(self): - return self._value - - _cast_to_integer = __int__ - - if kind == 'int' or kind == 'byte' or kind == 'bool': - @staticmethod - def _to_ctypes(x): - if not isinstance(x, (int, long)): - if isinstance(x, CTypesData): - x = int(x) - else: - raise TypeError("integer expected, got %s" % - type(x).__name__) - if ctype(x).value != x: - if not is_signed and x < 0: - raise OverflowError("%s: negative integer" % name) - else: - raise OverflowError("%s: integer out of bounds" - % name) - return x - - if kind == 'char': - @staticmethod - def _to_ctypes(x): - if isinstance(x, bytes) and len(x) == 1: - return x - if isinstance(x, CTypesPrimitive): # > - return x._value - raise TypeError("character expected, got %s" % - type(x).__name__) - def __nonzero__(self): - return ord(self._value) != 0 - else: - def __nonzero__(self): - return self._value != 0 - __bool__ = __nonzero__ - - if kind == 'float': - @staticmethod - def _to_ctypes(x): - if not isinstance(x, (int, long, float, CTypesData)): - raise TypeError("float expected, got %s" % - type(x).__name__) - return ctype(x).value - - @staticmethod - def _from_ctypes(value): - return getattr(value, 'value', value) - - @staticmethod - def _initialize(blob, init): - blob.value = CTypesPrimitive._to_ctypes(init) - - if kind == 'char': - def _to_string(self, maxlen): - return self._value - if kind == 'byte': - def _to_string(self, maxlen): - return chr(self._value & 0xff) - # - CTypesPrimitive._fix_class() - return CTypesPrimitive - - def new_pointer_type(self, BItem): - getbtype = self.ffi._get_cached_btype - if BItem is getbtype(model.PrimitiveType('char')): - kind = 'charp' - elif BItem in (getbtype(model.PrimitiveType('signed char')), - getbtype(model.PrimitiveType('unsigned char'))): - kind = 'bytep' - elif BItem is getbtype(model.void_type): - kind = 'voidp' - else: - kind = 'generic' - # - class CTypesPtr(CTypesGenericPtr): - __slots__ = ['_own'] - if kind == 'charp': - __slots__ += ['__as_strbuf'] - _BItem = BItem - if hasattr(BItem, '_ctype'): - _ctype = ctypes.POINTER(BItem._ctype) - _bitem_size = ctypes.sizeof(BItem._ctype) - else: - _ctype = ctypes.c_void_p - if issubclass(BItem, CTypesGenericArray): - _reftypename = BItem._get_c_name('(* &)') - else: - _reftypename = BItem._get_c_name(' * &') - - def __init__(self, init): - ctypeobj = BItem._create_ctype_obj(init) - if kind == 'charp': - self.__as_strbuf = ctypes.create_string_buffer( - ctypeobj.value + b'\x00') - self._as_ctype_ptr = ctypes.cast( - self.__as_strbuf, self._ctype) - else: - self._as_ctype_ptr = ctypes.pointer(ctypeobj) - self._address = ctypes.cast(self._as_ctype_ptr, - ctypes.c_void_p).value - self._own = True - - def __add__(self, other): - if isinstance(other, (int, long)): - return self._new_pointer_at(self._address + - other * self._bitem_size) - else: - return NotImplemented - - def __sub__(self, other): - if isinstance(other, (int, long)): - return self._new_pointer_at(self._address - - other * self._bitem_size) - elif type(self) is type(other): - return (self._address - other._address) // self._bitem_size - else: - return NotImplemented - - def __getitem__(self, index): - if getattr(self, '_own', False) and index != 0: - raise IndexError - return BItem._from_ctypes(self._as_ctype_ptr[index]) - - def __setitem__(self, index, value): - self._as_ctype_ptr[index] = BItem._to_ctypes(value) - - if kind == 'charp' or kind == 'voidp': - @classmethod - def _arg_to_ctypes(cls, *value): - if value and isinstance(value[0], bytes): - return ctypes.c_char_p(value[0]) - else: - return super(CTypesPtr, cls)._arg_to_ctypes(*value) - - if kind == 'charp' or kind == 'bytep': - def _to_string(self, maxlen): - if maxlen < 0: - maxlen = sys.maxsize - p = ctypes.cast(self._as_ctype_ptr, - ctypes.POINTER(ctypes.c_char)) - n = 0 - while n < maxlen and p[n] != b'\x00': - n += 1 - return b''.join([p[i] for i in range(n)]) - - def _get_own_repr(self): - if getattr(self, '_own', False): - return 'owning %d bytes' % ( - ctypes.sizeof(self._as_ctype_ptr.contents),) - return super(CTypesPtr, self)._get_own_repr() - # - if (BItem is self.ffi._get_cached_btype(model.void_type) or - BItem is self.ffi._get_cached_btype(model.PrimitiveType('char'))): - CTypesPtr._automatic_casts = True - # - CTypesPtr._fix_class() - return CTypesPtr - - def new_array_type(self, CTypesPtr, length): - if length is None: - brackets = ' &[]' - else: - brackets = ' &[%d]' % length - BItem = CTypesPtr._BItem - getbtype = self.ffi._get_cached_btype - if BItem is getbtype(model.PrimitiveType('char')): - kind = 'char' - elif BItem in (getbtype(model.PrimitiveType('signed char')), - getbtype(model.PrimitiveType('unsigned char'))): - kind = 'byte' - else: - kind = 'generic' - # - class CTypesArray(CTypesGenericArray): - __slots__ = ['_blob', '_own'] - if length is not None: - _ctype = BItem._ctype * length - else: - __slots__.append('_ctype') - _reftypename = BItem._get_c_name(brackets) - _declared_length = length - _CTPtr = CTypesPtr - - def __init__(self, init): - if length is None: - if isinstance(init, (int, long)): - len1 = init - init = None - elif kind == 'char' and isinstance(init, bytes): - len1 = len(init) + 1 # extra null - else: - init = tuple(init) - len1 = len(init) - self._ctype = BItem._ctype * len1 - self._blob = self._ctype() - self._own = True - if init is not None: - self._initialize(self._blob, init) - - @staticmethod - def _initialize(blob, init): - if isinstance(init, bytes): - init = [init[i:i+1] for i in range(len(init))] - else: - if isinstance(init, CTypesGenericArray): - if (len(init) != len(blob) or - not isinstance(init, CTypesArray)): - raise TypeError("length/type mismatch: %s" % (init,)) - init = tuple(init) - if len(init) > len(blob): - raise IndexError("too many initializers") - addr = ctypes.cast(blob, ctypes.c_void_p).value - PTR = ctypes.POINTER(BItem._ctype) - itemsize = ctypes.sizeof(BItem._ctype) - for i, value in enumerate(init): - p = ctypes.cast(addr + i * itemsize, PTR) - BItem._initialize(p.contents, value) - - def __len__(self): - return len(self._blob) - - def __getitem__(self, index): - if not (0 <= index < len(self._blob)): - raise IndexError - return BItem._from_ctypes(self._blob[index]) - - def __setitem__(self, index, value): - if not (0 <= index < len(self._blob)): - raise IndexError - self._blob[index] = BItem._to_ctypes(value) - - if kind == 'char' or kind == 'byte': - def _to_string(self, maxlen): - if maxlen < 0: - maxlen = len(self._blob) - p = ctypes.cast(self._blob, - ctypes.POINTER(ctypes.c_char)) - n = 0 - while n < maxlen and p[n] != b'\x00': - n += 1 - return b''.join([p[i] for i in range(n)]) - - def _get_own_repr(self): - if getattr(self, '_own', False): - return 'owning %d bytes' % (ctypes.sizeof(self._blob),) - return super(CTypesArray, self)._get_own_repr() - - def _convert_to_address(self, BClass): - if BClass in (CTypesPtr, None) or BClass._automatic_casts: - return ctypes.addressof(self._blob) - else: - return CTypesData._convert_to_address(self, BClass) - - @staticmethod - def _from_ctypes(ctypes_array): - self = CTypesArray.__new__(CTypesArray) - self._blob = ctypes_array - return self - - @staticmethod - def _arg_to_ctypes(value): - return CTypesPtr._arg_to_ctypes(value) - - def __add__(self, other): - if isinstance(other, (int, long)): - return CTypesPtr._new_pointer_at( - ctypes.addressof(self._blob) + - other * ctypes.sizeof(BItem._ctype)) - else: - return NotImplemented - - @classmethod - def _cast_from(cls, source): - raise NotImplementedError("casting to %r" % ( - cls._get_c_name(),)) - # - CTypesArray._fix_class() - return CTypesArray - - def _new_struct_or_union(self, kind, name, base_ctypes_class): - # - class struct_or_union(base_ctypes_class): - pass - struct_or_union.__name__ = '%s_%s' % (kind, name) - kind1 = kind - # - class CTypesStructOrUnion(CTypesBaseStructOrUnion): - __slots__ = ['_blob'] - _ctype = struct_or_union - _reftypename = '%s &' % (name,) - _kind = kind = kind1 - # - CTypesStructOrUnion._fix_class() - return CTypesStructOrUnion - - def new_struct_type(self, name): - return self._new_struct_or_union('struct', name, ctypes.Structure) - - def new_union_type(self, name): - return self._new_struct_or_union('union', name, ctypes.Union) - - def complete_struct_or_union(self, CTypesStructOrUnion, fields, tp, - totalsize=-1, totalalignment=-1, sflags=0, - pack=0): - if totalsize >= 0 or totalalignment >= 0: - raise NotImplementedError("the ctypes backend of CFFI does not support " - "structures completed by verify(); please " - "compile and install the _cffi_backend module.") - struct_or_union = CTypesStructOrUnion._ctype - fnames = [fname for (fname, BField, bitsize) in fields] - btypes = [BField for (fname, BField, bitsize) in fields] - bitfields = [bitsize for (fname, BField, bitsize) in fields] - # - bfield_types = {} - cfields = [] - for (fname, BField, bitsize) in fields: - if bitsize < 0: - cfields.append((fname, BField._ctype)) - bfield_types[fname] = BField - else: - cfields.append((fname, BField._ctype, bitsize)) - bfield_types[fname] = Ellipsis - if sflags & 8: - struct_or_union._pack_ = 1 - elif pack: - struct_or_union._pack_ = pack - struct_or_union._fields_ = cfields - CTypesStructOrUnion._bfield_types = bfield_types - # - @staticmethod - def _create_ctype_obj(init): - result = struct_or_union() - if init is not None: - initialize(result, init) - return result - CTypesStructOrUnion._create_ctype_obj = _create_ctype_obj - # - def initialize(blob, init): - if is_union: - if len(init) > 1: - raise ValueError("union initializer: %d items given, but " - "only one supported (use a dict if needed)" - % (len(init),)) - if not isinstance(init, dict): - if isinstance(init, (bytes, unicode)): - raise TypeError("union initializer: got a str") - init = tuple(init) - if len(init) > len(fnames): - raise ValueError("too many values for %s initializer" % - CTypesStructOrUnion._get_c_name()) - init = dict(zip(fnames, init)) - addr = ctypes.addressof(blob) - for fname, value in init.items(): - BField, bitsize = name2fieldtype[fname] - assert bitsize < 0, \ - "not implemented: initializer with bit fields" - offset = CTypesStructOrUnion._offsetof(fname) - PTR = ctypes.POINTER(BField._ctype) - p = ctypes.cast(addr + offset, PTR) - BField._initialize(p.contents, value) - is_union = CTypesStructOrUnion._kind == 'union' - name2fieldtype = dict(zip(fnames, zip(btypes, bitfields))) - # - for fname, BField, bitsize in fields: - if fname == '': - raise NotImplementedError("nested anonymous structs/unions") - if hasattr(CTypesStructOrUnion, fname): - raise ValueError("the field name %r conflicts in " - "the ctypes backend" % fname) - if bitsize < 0: - def getter(self, fname=fname, BField=BField, - offset=CTypesStructOrUnion._offsetof(fname), - PTR=ctypes.POINTER(BField._ctype)): - addr = ctypes.addressof(self._blob) - p = ctypes.cast(addr + offset, PTR) - return BField._from_ctypes(p.contents) - def setter(self, value, fname=fname, BField=BField): - setattr(self._blob, fname, BField._to_ctypes(value)) - # - if issubclass(BField, CTypesGenericArray): - setter = None - if BField._declared_length == 0: - def getter(self, fname=fname, BFieldPtr=BField._CTPtr, - offset=CTypesStructOrUnion._offsetof(fname), - PTR=ctypes.POINTER(BField._ctype)): - addr = ctypes.addressof(self._blob) - p = ctypes.cast(addr + offset, PTR) - return BFieldPtr._from_ctypes(p) - # - else: - def getter(self, fname=fname, BField=BField): - return BField._from_ctypes(getattr(self._blob, fname)) - def setter(self, value, fname=fname, BField=BField): - # xxx obscure workaround - value = BField._to_ctypes(value) - oldvalue = getattr(self._blob, fname) - setattr(self._blob, fname, value) - if value != getattr(self._blob, fname): - setattr(self._blob, fname, oldvalue) - raise OverflowError("value too large for bitfield") - setattr(CTypesStructOrUnion, fname, property(getter, setter)) - # - CTypesPtr = self.ffi._get_cached_btype(model.PointerType(tp)) - for fname in fnames: - if hasattr(CTypesPtr, fname): - raise ValueError("the field name %r conflicts in " - "the ctypes backend" % fname) - def getter(self, fname=fname): - return getattr(self[0], fname) - def setter(self, value, fname=fname): - setattr(self[0], fname, value) - setattr(CTypesPtr, fname, property(getter, setter)) - - def new_function_type(self, BArgs, BResult, has_varargs): - nameargs = [BArg._get_c_name() for BArg in BArgs] - if has_varargs: - nameargs.append('...') - nameargs = ', '.join(nameargs) - # - class CTypesFunctionPtr(CTypesGenericPtr): - __slots__ = ['_own_callback', '_name'] - _ctype = ctypes.CFUNCTYPE(getattr(BResult, '_ctype', None), - *[BArg._ctype for BArg in BArgs], - use_errno=True) - _reftypename = BResult._get_c_name('(* &)(%s)' % (nameargs,)) - - def __init__(self, init, error=None): - # create a callback to the Python callable init() - import traceback - assert not has_varargs, "varargs not supported for callbacks" - if getattr(BResult, '_ctype', None) is not None: - error = BResult._from_ctypes( - BResult._create_ctype_obj(error)) - else: - error = None - def callback(*args): - args2 = [] - for arg, BArg in zip(args, BArgs): - args2.append(BArg._from_ctypes(arg)) - try: - res2 = init(*args2) - res2 = BResult._to_ctypes(res2) - except: - traceback.print_exc() - res2 = error - if issubclass(BResult, CTypesGenericPtr): - if res2: - res2 = ctypes.cast(res2, ctypes.c_void_p).value - # .value: http://bugs.python.org/issue1574593 - else: - res2 = None - #print repr(res2) - return res2 - if issubclass(BResult, CTypesGenericPtr): - # The only pointers callbacks can return are void*s: - # http://bugs.python.org/issue5710 - callback_ctype = ctypes.CFUNCTYPE( - ctypes.c_void_p, - *[BArg._ctype for BArg in BArgs], - use_errno=True) - else: - callback_ctype = CTypesFunctionPtr._ctype - self._as_ctype_ptr = callback_ctype(callback) - self._address = ctypes.cast(self._as_ctype_ptr, - ctypes.c_void_p).value - self._own_callback = init - - @staticmethod - def _initialize(ctypes_ptr, value): - if value: - raise NotImplementedError("ctypes backend: not supported: " - "initializers for function pointers") - - def __repr__(self): - c_name = getattr(self, '_name', None) - if c_name: - i = self._reftypename.index('(* &)') - if self._reftypename[i-1] not in ' )*': - c_name = ' ' + c_name - c_name = self._reftypename.replace('(* &)', c_name) - return CTypesData.__repr__(self, c_name) - - def _get_own_repr(self): - if getattr(self, '_own_callback', None) is not None: - return 'calling %r' % (self._own_callback,) - return super(CTypesFunctionPtr, self)._get_own_repr() - - def __call__(self, *args): - if has_varargs: - assert len(args) >= len(BArgs) - extraargs = args[len(BArgs):] - args = args[:len(BArgs)] - else: - assert len(args) == len(BArgs) - ctypes_args = [] - for arg, BArg in zip(args, BArgs): - ctypes_args.append(BArg._arg_to_ctypes(arg)) - if has_varargs: - for i, arg in enumerate(extraargs): - if arg is None: - ctypes_args.append(ctypes.c_void_p(0)) # NULL - continue - if not isinstance(arg, CTypesData): - raise TypeError( - "argument %d passed in the variadic part " - "needs to be a cdata object (got %s)" % - (1 + len(BArgs) + i, type(arg).__name__)) - ctypes_args.append(arg._arg_to_ctypes(arg)) - result = self._as_ctype_ptr(*ctypes_args) - return BResult._from_ctypes(result) - # - CTypesFunctionPtr._fix_class() - return CTypesFunctionPtr - - def new_enum_type(self, name, enumerators, enumvalues, CTypesInt): - assert isinstance(name, str) - reverse_mapping = dict(zip(reversed(enumvalues), - reversed(enumerators))) - # - class CTypesEnum(CTypesInt): - __slots__ = [] - _reftypename = '%s &' % name - - def _get_own_repr(self): - value = self._value - try: - return '%d: %s' % (value, reverse_mapping[value]) - except KeyError: - return str(value) - - def _to_string(self, maxlen): - value = self._value - try: - return reverse_mapping[value] - except KeyError: - return str(value) - # - CTypesEnum._fix_class() - return CTypesEnum - - def get_errno(self): - return ctypes.get_errno() - - def set_errno(self, value): - ctypes.set_errno(value) - - def string(self, b, maxlen=-1): - return b._to_string(maxlen) - - def buffer(self, bptr, size=-1): - raise NotImplementedError("buffer() with ctypes backend") - - def sizeof(self, cdata_or_BType): - if isinstance(cdata_or_BType, CTypesData): - return cdata_or_BType._get_size_of_instance() - else: - assert issubclass(cdata_or_BType, CTypesData) - return cdata_or_BType._get_size() - - def alignof(self, BType): - assert issubclass(BType, CTypesData) - return BType._alignment() - - def newp(self, BType, source): - if not issubclass(BType, CTypesData): - raise TypeError - return BType._newp(source) - - def cast(self, BType, source): - return BType._cast_from(source) - - def callback(self, BType, source, error, onerror): - assert onerror is None # XXX not implemented - return BType(source, error) - - _weakref_cache_ref = None - - def gcp(self, cdata, destructor, size=0): - if self._weakref_cache_ref is None: - import weakref - class MyRef(weakref.ref): - def __eq__(self, other): - myref = self() - return self is other or ( - myref is not None and myref is other()) - def __ne__(self, other): - return not (self == other) - def __hash__(self): - try: - return self._hash - except AttributeError: - self._hash = hash(self()) - return self._hash - self._weakref_cache_ref = {}, MyRef - weak_cache, MyRef = self._weakref_cache_ref - - if destructor is None: - try: - del weak_cache[MyRef(cdata)] - except KeyError: - raise TypeError("Can remove destructor only on a object " - "previously returned by ffi.gc()") - return None - - def remove(k): - cdata, destructor = weak_cache.pop(k, (None, None)) - if destructor is not None: - destructor(cdata) - - new_cdata = self.cast(self.typeof(cdata), cdata) - assert new_cdata is not cdata - weak_cache[MyRef(new_cdata, remove)] = (cdata, destructor) - return new_cdata - - typeof = type - - def getcname(self, BType, replace_with): - return BType._get_c_name(replace_with) - - def typeoffsetof(self, BType, fieldname, num=0): - if isinstance(fieldname, str): - if num == 0 and issubclass(BType, CTypesGenericPtr): - BType = BType._BItem - if not issubclass(BType, CTypesBaseStructOrUnion): - raise TypeError("expected a struct or union ctype") - BField = BType._bfield_types[fieldname] - if BField is Ellipsis: - raise TypeError("not supported for bitfields") - return (BField, BType._offsetof(fieldname)) - elif isinstance(fieldname, (int, long)): - if issubclass(BType, CTypesGenericArray): - BType = BType._CTPtr - if not issubclass(BType, CTypesGenericPtr): - raise TypeError("expected an array or ptr ctype") - BItem = BType._BItem - offset = BItem._get_size() * fieldname - if offset > sys.maxsize: - raise OverflowError - return (BItem, offset) - else: - raise TypeError(type(fieldname)) - - def rawaddressof(self, BTypePtr, cdata, offset=None): - if isinstance(cdata, CTypesBaseStructOrUnion): - ptr = ctypes.pointer(type(cdata)._to_ctypes(cdata)) - elif isinstance(cdata, CTypesGenericPtr): - if offset is None or not issubclass(type(cdata)._BItem, - CTypesBaseStructOrUnion): - raise TypeError("unexpected cdata type") - ptr = type(cdata)._to_ctypes(cdata) - elif isinstance(cdata, CTypesGenericArray): - ptr = type(cdata)._to_ctypes(cdata) - else: - raise TypeError("expected a ") - if offset: - ptr = ctypes.cast( - ctypes.c_void_p( - ctypes.cast(ptr, ctypes.c_void_p).value + offset), - type(ptr)) - return BTypePtr._from_ctypes(ptr) - - -class CTypesLibrary(object): - - def __init__(self, backend, cdll): - self.backend = backend - self.cdll = cdll - - def load_function(self, BType, name): - c_func = getattr(self.cdll, name) - funcobj = BType._from_ctypes(c_func) - funcobj._name = name - return funcobj - - def read_variable(self, BType, name): - try: - ctypes_obj = BType._ctype.in_dll(self.cdll, name) - except AttributeError as e: - raise NotImplementedError(e) - return BType._from_ctypes(ctypes_obj) - - def write_variable(self, BType, name, value): - new_ctypes_obj = BType._to_ctypes(value) - ctypes_obj = BType._ctype.in_dll(self.cdll, name) - ctypes.memmove(ctypes.addressof(ctypes_obj), - ctypes.addressof(new_ctypes_obj), - ctypes.sizeof(BType._ctype)) diff --git a/backend/venv/lib/python3.12/site-packages/cffi/cffi_opcode.py b/backend/venv/lib/python3.12/site-packages/cffi/cffi_opcode.py deleted file mode 100644 index 6421df6..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/cffi_opcode.py +++ /dev/null @@ -1,187 +0,0 @@ -from .error import VerificationError - -class CffiOp(object): - def __init__(self, op, arg): - self.op = op - self.arg = arg - - def as_c_expr(self): - if self.op is None: - assert isinstance(self.arg, str) - return '(_cffi_opcode_t)(%s)' % (self.arg,) - classname = CLASS_NAME[self.op] - return '_CFFI_OP(_CFFI_OP_%s, %s)' % (classname, self.arg) - - def as_python_bytes(self): - if self.op is None and self.arg.isdigit(): - value = int(self.arg) # non-negative: '-' not in self.arg - if value >= 2**31: - raise OverflowError("cannot emit %r: limited to 2**31-1" - % (self.arg,)) - return format_four_bytes(value) - if isinstance(self.arg, str): - raise VerificationError("cannot emit to Python: %r" % (self.arg,)) - return format_four_bytes((self.arg << 8) | self.op) - - def __str__(self): - classname = CLASS_NAME.get(self.op, self.op) - return '(%s %s)' % (classname, self.arg) - -def format_four_bytes(num): - return '\\x%02X\\x%02X\\x%02X\\x%02X' % ( - (num >> 24) & 0xFF, - (num >> 16) & 0xFF, - (num >> 8) & 0xFF, - (num ) & 0xFF) - -OP_PRIMITIVE = 1 -OP_POINTER = 3 -OP_ARRAY = 5 -OP_OPEN_ARRAY = 7 -OP_STRUCT_UNION = 9 -OP_ENUM = 11 -OP_FUNCTION = 13 -OP_FUNCTION_END = 15 -OP_NOOP = 17 -OP_BITFIELD = 19 -OP_TYPENAME = 21 -OP_CPYTHON_BLTN_V = 23 # varargs -OP_CPYTHON_BLTN_N = 25 # noargs -OP_CPYTHON_BLTN_O = 27 # O (i.e. a single arg) -OP_CONSTANT = 29 -OP_CONSTANT_INT = 31 -OP_GLOBAL_VAR = 33 -OP_DLOPEN_FUNC = 35 -OP_DLOPEN_CONST = 37 -OP_GLOBAL_VAR_F = 39 -OP_EXTERN_PYTHON = 41 - -PRIM_VOID = 0 -PRIM_BOOL = 1 -PRIM_CHAR = 2 -PRIM_SCHAR = 3 -PRIM_UCHAR = 4 -PRIM_SHORT = 5 -PRIM_USHORT = 6 -PRIM_INT = 7 -PRIM_UINT = 8 -PRIM_LONG = 9 -PRIM_ULONG = 10 -PRIM_LONGLONG = 11 -PRIM_ULONGLONG = 12 -PRIM_FLOAT = 13 -PRIM_DOUBLE = 14 -PRIM_LONGDOUBLE = 15 - -PRIM_WCHAR = 16 -PRIM_INT8 = 17 -PRIM_UINT8 = 18 -PRIM_INT16 = 19 -PRIM_UINT16 = 20 -PRIM_INT32 = 21 -PRIM_UINT32 = 22 -PRIM_INT64 = 23 -PRIM_UINT64 = 24 -PRIM_INTPTR = 25 -PRIM_UINTPTR = 26 -PRIM_PTRDIFF = 27 -PRIM_SIZE = 28 -PRIM_SSIZE = 29 -PRIM_INT_LEAST8 = 30 -PRIM_UINT_LEAST8 = 31 -PRIM_INT_LEAST16 = 32 -PRIM_UINT_LEAST16 = 33 -PRIM_INT_LEAST32 = 34 -PRIM_UINT_LEAST32 = 35 -PRIM_INT_LEAST64 = 36 -PRIM_UINT_LEAST64 = 37 -PRIM_INT_FAST8 = 38 -PRIM_UINT_FAST8 = 39 -PRIM_INT_FAST16 = 40 -PRIM_UINT_FAST16 = 41 -PRIM_INT_FAST32 = 42 -PRIM_UINT_FAST32 = 43 -PRIM_INT_FAST64 = 44 -PRIM_UINT_FAST64 = 45 -PRIM_INTMAX = 46 -PRIM_UINTMAX = 47 -PRIM_FLOATCOMPLEX = 48 -PRIM_DOUBLECOMPLEX = 49 -PRIM_CHAR16 = 50 -PRIM_CHAR32 = 51 - -_NUM_PRIM = 52 -_UNKNOWN_PRIM = -1 -_UNKNOWN_FLOAT_PRIM = -2 -_UNKNOWN_LONG_DOUBLE = -3 - -_IO_FILE_STRUCT = -1 - -PRIMITIVE_TO_INDEX = { - 'char': PRIM_CHAR, - 'short': PRIM_SHORT, - 'int': PRIM_INT, - 'long': PRIM_LONG, - 'long long': PRIM_LONGLONG, - 'signed char': PRIM_SCHAR, - 'unsigned char': PRIM_UCHAR, - 'unsigned short': PRIM_USHORT, - 'unsigned int': PRIM_UINT, - 'unsigned long': PRIM_ULONG, - 'unsigned long long': PRIM_ULONGLONG, - 'float': PRIM_FLOAT, - 'double': PRIM_DOUBLE, - 'long double': PRIM_LONGDOUBLE, - '_cffi_float_complex_t': PRIM_FLOATCOMPLEX, - '_cffi_double_complex_t': PRIM_DOUBLECOMPLEX, - '_Bool': PRIM_BOOL, - 'wchar_t': PRIM_WCHAR, - 'char16_t': PRIM_CHAR16, - 'char32_t': PRIM_CHAR32, - 'int8_t': PRIM_INT8, - 'uint8_t': PRIM_UINT8, - 'int16_t': PRIM_INT16, - 'uint16_t': PRIM_UINT16, - 'int32_t': PRIM_INT32, - 'uint32_t': PRIM_UINT32, - 'int64_t': PRIM_INT64, - 'uint64_t': PRIM_UINT64, - 'intptr_t': PRIM_INTPTR, - 'uintptr_t': PRIM_UINTPTR, - 'ptrdiff_t': PRIM_PTRDIFF, - 'size_t': PRIM_SIZE, - 'ssize_t': PRIM_SSIZE, - 'int_least8_t': PRIM_INT_LEAST8, - 'uint_least8_t': PRIM_UINT_LEAST8, - 'int_least16_t': PRIM_INT_LEAST16, - 'uint_least16_t': PRIM_UINT_LEAST16, - 'int_least32_t': PRIM_INT_LEAST32, - 'uint_least32_t': PRIM_UINT_LEAST32, - 'int_least64_t': PRIM_INT_LEAST64, - 'uint_least64_t': PRIM_UINT_LEAST64, - 'int_fast8_t': PRIM_INT_FAST8, - 'uint_fast8_t': PRIM_UINT_FAST8, - 'int_fast16_t': PRIM_INT_FAST16, - 'uint_fast16_t': PRIM_UINT_FAST16, - 'int_fast32_t': PRIM_INT_FAST32, - 'uint_fast32_t': PRIM_UINT_FAST32, - 'int_fast64_t': PRIM_INT_FAST64, - 'uint_fast64_t': PRIM_UINT_FAST64, - 'intmax_t': PRIM_INTMAX, - 'uintmax_t': PRIM_UINTMAX, - } - -F_UNION = 0x01 -F_CHECK_FIELDS = 0x02 -F_PACKED = 0x04 -F_EXTERNAL = 0x08 -F_OPAQUE = 0x10 - -G_FLAGS = dict([('_CFFI_' + _key, globals()[_key]) - for _key in ['F_UNION', 'F_CHECK_FIELDS', 'F_PACKED', - 'F_EXTERNAL', 'F_OPAQUE']]) - -CLASS_NAME = {} -for _name, _value in list(globals().items()): - if _name.startswith('OP_') and isinstance(_value, int): - CLASS_NAME[_value] = _name[3:] diff --git a/backend/venv/lib/python3.12/site-packages/cffi/commontypes.py b/backend/venv/lib/python3.12/site-packages/cffi/commontypes.py deleted file mode 100644 index d4dae35..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/commontypes.py +++ /dev/null @@ -1,82 +0,0 @@ -import sys -from . import model -from .error import FFIError - - -COMMON_TYPES = {} - -try: - # fetch "bool" and all simple Windows types - from _cffi_backend import _get_common_types - _get_common_types(COMMON_TYPES) -except ImportError: - pass - -COMMON_TYPES['FILE'] = model.unknown_type('FILE', '_IO_FILE') -COMMON_TYPES['bool'] = '_Bool' # in case we got ImportError above -COMMON_TYPES['float _Complex'] = '_cffi_float_complex_t' -COMMON_TYPES['double _Complex'] = '_cffi_double_complex_t' - -for _type in model.PrimitiveType.ALL_PRIMITIVE_TYPES: - if _type.endswith('_t'): - COMMON_TYPES[_type] = _type -del _type - -_CACHE = {} - -def resolve_common_type(parser, commontype): - try: - return _CACHE[commontype] - except KeyError: - cdecl = COMMON_TYPES.get(commontype, commontype) - if not isinstance(cdecl, str): - result, quals = cdecl, 0 # cdecl is already a BaseType - elif cdecl in model.PrimitiveType.ALL_PRIMITIVE_TYPES: - result, quals = model.PrimitiveType(cdecl), 0 - elif cdecl == 'set-unicode-needed': - raise FFIError("The Windows type %r is only available after " - "you call ffi.set_unicode()" % (commontype,)) - else: - if commontype == cdecl: - raise FFIError( - "Unsupported type: %r. Please look at " - "http://cffi.readthedocs.io/en/latest/cdef.html#ffi-cdef-limitations " - "and file an issue if you think this type should really " - "be supported." % (commontype,)) - result, quals = parser.parse_type_and_quals(cdecl) # recursive - - assert isinstance(result, model.BaseTypeByIdentity) - _CACHE[commontype] = result, quals - return result, quals - - -# ____________________________________________________________ -# extra types for Windows (most of them are in commontypes.c) - - -def win_common_types(): - return { - "UNICODE_STRING": model.StructType( - "_UNICODE_STRING", - ["Length", - "MaximumLength", - "Buffer"], - [model.PrimitiveType("unsigned short"), - model.PrimitiveType("unsigned short"), - model.PointerType(model.PrimitiveType("wchar_t"))], - [-1, -1, -1]), - "PUNICODE_STRING": "UNICODE_STRING *", - "PCUNICODE_STRING": "const UNICODE_STRING *", - - "TBYTE": "set-unicode-needed", - "TCHAR": "set-unicode-needed", - "LPCTSTR": "set-unicode-needed", - "PCTSTR": "set-unicode-needed", - "LPTSTR": "set-unicode-needed", - "PTSTR": "set-unicode-needed", - "PTBYTE": "set-unicode-needed", - "PTCHAR": "set-unicode-needed", - } - -if sys.platform == 'win32': - COMMON_TYPES.update(win_common_types()) diff --git a/backend/venv/lib/python3.12/site-packages/cffi/cparser.py b/backend/venv/lib/python3.12/site-packages/cffi/cparser.py deleted file mode 100644 index dd590d8..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/cparser.py +++ /dev/null @@ -1,1015 +0,0 @@ -from . import model -from .commontypes import COMMON_TYPES, resolve_common_type -from .error import FFIError, CDefError -try: - from . import _pycparser as pycparser -except ImportError: - import pycparser -import weakref, re, sys - -try: - if sys.version_info < (3,): - import thread as _thread - else: - import _thread - lock = _thread.allocate_lock() -except ImportError: - lock = None - -def _workaround_for_static_import_finders(): - # Issue #392: packaging tools like cx_Freeze can not find these - # because pycparser uses exec dynamic import. This is an obscure - # workaround. This function is never called. - import pycparser.yacctab - import pycparser.lextab - -CDEF_SOURCE_STRING = "" -_r_comment = re.compile(r"/\*.*?\*/|//([^\n\\]|\\.)*?$", - re.DOTALL | re.MULTILINE) -_r_define = re.compile(r"^\s*#\s*define\s+([A-Za-z_][A-Za-z_0-9]*)" - r"\b((?:[^\n\\]|\\.)*?)$", - re.DOTALL | re.MULTILINE) -_r_line_directive = re.compile(r"^[ \t]*#[ \t]*(?:line|\d+)\b.*$", re.MULTILINE) -_r_partial_enum = re.compile(r"=\s*\.\.\.\s*[,}]|\.\.\.\s*\}") -_r_enum_dotdotdot = re.compile(r"__dotdotdot\d+__$") -_r_partial_array = re.compile(r"\[\s*\.\.\.\s*\]") -_r_words = re.compile(r"\w+|\S") -_parser_cache = None -_r_int_literal = re.compile(r"-?0?x?[0-9a-f]+[lu]*$", re.IGNORECASE) -_r_stdcall1 = re.compile(r"\b(__stdcall|WINAPI)\b") -_r_stdcall2 = re.compile(r"[(]\s*(__stdcall|WINAPI)\b") -_r_cdecl = re.compile(r"\b__cdecl\b") -_r_extern_python = re.compile(r'\bextern\s*"' - r'(Python|Python\s*\+\s*C|C\s*\+\s*Python)"\s*.') -_r_star_const_space = re.compile( # matches "* const " - r"[*]\s*((const|volatile|restrict)\b\s*)+") -_r_int_dotdotdot = re.compile(r"(\b(int|long|short|signed|unsigned|char)\s*)+" - r"\.\.\.") -_r_float_dotdotdot = re.compile(r"\b(double|float)\s*\.\.\.") - -def _get_parser(): - global _parser_cache - if _parser_cache is None: - _parser_cache = pycparser.CParser() - return _parser_cache - -def _workaround_for_old_pycparser(csource): - # Workaround for a pycparser issue (fixed between pycparser 2.10 and - # 2.14): "char*const***" gives us a wrong syntax tree, the same as - # for "char***(*const)". This means we can't tell the difference - # afterwards. But "char(*const(***))" gives us the right syntax - # tree. The issue only occurs if there are several stars in - # sequence with no parenthesis in between, just possibly qualifiers. - # Attempt to fix it by adding some parentheses in the source: each - # time we see "* const" or "* const *", we add an opening - # parenthesis before each star---the hard part is figuring out where - # to close them. - parts = [] - while True: - match = _r_star_const_space.search(csource) - if not match: - break - #print repr(''.join(parts)+csource), '=>', - parts.append(csource[:match.start()]) - parts.append('('); closing = ')' - parts.append(match.group()) # e.g. "* const " - endpos = match.end() - if csource.startswith('*', endpos): - parts.append('('); closing += ')' - level = 0 - i = endpos - while i < len(csource): - c = csource[i] - if c == '(': - level += 1 - elif c == ')': - if level == 0: - break - level -= 1 - elif c in ',;=': - if level == 0: - break - i += 1 - csource = csource[endpos:i] + closing + csource[i:] - #print repr(''.join(parts)+csource) - parts.append(csource) - return ''.join(parts) - -def _preprocess_extern_python(csource): - # input: `extern "Python" int foo(int);` or - # `extern "Python" { int foo(int); }` - # output: - # void __cffi_extern_python_start; - # int foo(int); - # void __cffi_extern_python_stop; - # - # input: `extern "Python+C" int foo(int);` - # output: - # void __cffi_extern_python_plus_c_start; - # int foo(int); - # void __cffi_extern_python_stop; - parts = [] - while True: - match = _r_extern_python.search(csource) - if not match: - break - endpos = match.end() - 1 - #print - #print ''.join(parts)+csource - #print '=>' - parts.append(csource[:match.start()]) - if 'C' in match.group(1): - parts.append('void __cffi_extern_python_plus_c_start; ') - else: - parts.append('void __cffi_extern_python_start; ') - if csource[endpos] == '{': - # grouping variant - closing = csource.find('}', endpos) - if closing < 0: - raise CDefError("'extern \"Python\" {': no '}' found") - if csource.find('{', endpos + 1, closing) >= 0: - raise NotImplementedError("cannot use { } inside a block " - "'extern \"Python\" { ... }'") - parts.append(csource[endpos+1:closing]) - csource = csource[closing+1:] - else: - # non-grouping variant - semicolon = csource.find(';', endpos) - if semicolon < 0: - raise CDefError("'extern \"Python\": no ';' found") - parts.append(csource[endpos:semicolon+1]) - csource = csource[semicolon+1:] - parts.append(' void __cffi_extern_python_stop;') - #print ''.join(parts)+csource - #print - parts.append(csource) - return ''.join(parts) - -def _warn_for_string_literal(csource): - if '"' not in csource: - return - for line in csource.splitlines(): - if '"' in line and not line.lstrip().startswith('#'): - import warnings - warnings.warn("String literal found in cdef() or type source. " - "String literals are ignored here, but you should " - "remove them anyway because some character sequences " - "confuse pre-parsing.") - break - -def _warn_for_non_extern_non_static_global_variable(decl): - if not decl.storage: - import warnings - warnings.warn("Global variable '%s' in cdef(): for consistency " - "with C it should have a storage class specifier " - "(usually 'extern')" % (decl.name,)) - -def _remove_line_directives(csource): - # _r_line_directive matches whole lines, without the final \n, if they - # start with '#line' with some spacing allowed, or '#NUMBER'. This - # function stores them away and replaces them with exactly the string - # '#line@N', where N is the index in the list 'line_directives'. - line_directives = [] - def replace(m): - i = len(line_directives) - line_directives.append(m.group()) - return '#line@%d' % i - csource = _r_line_directive.sub(replace, csource) - return csource, line_directives - -def _put_back_line_directives(csource, line_directives): - def replace(m): - s = m.group() - if not s.startswith('#line@'): - raise AssertionError("unexpected #line directive " - "(should have been processed and removed") - return line_directives[int(s[6:])] - return _r_line_directive.sub(replace, csource) - -def _preprocess(csource): - # First, remove the lines of the form '#line N "filename"' because - # the "filename" part could confuse the rest - csource, line_directives = _remove_line_directives(csource) - # Remove comments. NOTE: this only work because the cdef() section - # should not contain any string literals (except in line directives)! - def replace_keeping_newlines(m): - return ' ' + m.group().count('\n') * '\n' - csource = _r_comment.sub(replace_keeping_newlines, csource) - # Remove the "#define FOO x" lines - macros = {} - for match in _r_define.finditer(csource): - macroname, macrovalue = match.groups() - macrovalue = macrovalue.replace('\\\n', '').strip() - macros[macroname] = macrovalue - csource = _r_define.sub('', csource) - # - if pycparser.__version__ < '2.14': - csource = _workaround_for_old_pycparser(csource) - # - # BIG HACK: replace WINAPI or __stdcall with "volatile const". - # It doesn't make sense for the return type of a function to be - # "volatile volatile const", so we abuse it to detect __stdcall... - # Hack number 2 is that "int(volatile *fptr)();" is not valid C - # syntax, so we place the "volatile" before the opening parenthesis. - csource = _r_stdcall2.sub(' volatile volatile const(', csource) - csource = _r_stdcall1.sub(' volatile volatile const ', csource) - csource = _r_cdecl.sub(' ', csource) - # - # Replace `extern "Python"` with start/end markers - csource = _preprocess_extern_python(csource) - # - # Now there should not be any string literal left; warn if we get one - _warn_for_string_literal(csource) - # - # Replace "[...]" with "[__dotdotdotarray__]" - csource = _r_partial_array.sub('[__dotdotdotarray__]', csource) - # - # Replace "...}" with "__dotdotdotNUM__}". This construction should - # occur only at the end of enums; at the end of structs we have "...;}" - # and at the end of vararg functions "...);". Also replace "=...[,}]" - # with ",__dotdotdotNUM__[,}]": this occurs in the enums too, when - # giving an unknown value. - matches = list(_r_partial_enum.finditer(csource)) - for number, match in enumerate(reversed(matches)): - p = match.start() - if csource[p] == '=': - p2 = csource.find('...', p, match.end()) - assert p2 > p - csource = '%s,__dotdotdot%d__ %s' % (csource[:p], number, - csource[p2+3:]) - else: - assert csource[p:p+3] == '...' - csource = '%s __dotdotdot%d__ %s' % (csource[:p], number, - csource[p+3:]) - # Replace "int ..." or "unsigned long int..." with "__dotdotdotint__" - csource = _r_int_dotdotdot.sub(' __dotdotdotint__ ', csource) - # Replace "float ..." or "double..." with "__dotdotdotfloat__" - csource = _r_float_dotdotdot.sub(' __dotdotdotfloat__ ', csource) - # Replace all remaining "..." with the same name, "__dotdotdot__", - # which is declared with a typedef for the purpose of C parsing. - csource = csource.replace('...', ' __dotdotdot__ ') - # Finally, put back the line directives - csource = _put_back_line_directives(csource, line_directives) - return csource, macros - -def _common_type_names(csource): - # Look in the source for what looks like usages of types from the - # list of common types. A "usage" is approximated here as the - # appearance of the word, minus a "definition" of the type, which - # is the last word in a "typedef" statement. Approximative only - # but should be fine for all the common types. - look_for_words = set(COMMON_TYPES) - look_for_words.add(';') - look_for_words.add(',') - look_for_words.add('(') - look_for_words.add(')') - look_for_words.add('typedef') - words_used = set() - is_typedef = False - paren = 0 - previous_word = '' - for word in _r_words.findall(csource): - if word in look_for_words: - if word == ';': - if is_typedef: - words_used.discard(previous_word) - look_for_words.discard(previous_word) - is_typedef = False - elif word == 'typedef': - is_typedef = True - paren = 0 - elif word == '(': - paren += 1 - elif word == ')': - paren -= 1 - elif word == ',': - if is_typedef and paren == 0: - words_used.discard(previous_word) - look_for_words.discard(previous_word) - else: # word in COMMON_TYPES - words_used.add(word) - previous_word = word - return words_used - - -class Parser(object): - - def __init__(self): - self._declarations = {} - self._included_declarations = set() - self._anonymous_counter = 0 - self._structnode2type = weakref.WeakKeyDictionary() - self._options = {} - self._int_constants = {} - self._recomplete = [] - self._uses_new_feature = None - - def _parse(self, csource): - csource, macros = _preprocess(csource) - # XXX: for more efficiency we would need to poke into the - # internals of CParser... the following registers the - # typedefs, because their presence or absence influences the - # parsing itself (but what they are typedef'ed to plays no role) - ctn = _common_type_names(csource) - typenames = [] - for name in sorted(self._declarations): - if name.startswith('typedef '): - name = name[8:] - typenames.append(name) - ctn.discard(name) - typenames += sorted(ctn) - # - csourcelines = [] - csourcelines.append('# 1 ""') - for typename in typenames: - csourcelines.append('typedef int %s;' % typename) - csourcelines.append('typedef int __dotdotdotint__, __dotdotdotfloat__,' - ' __dotdotdot__;') - # this forces pycparser to consider the following in the file - # called from line 1 - csourcelines.append('# 1 "%s"' % (CDEF_SOURCE_STRING,)) - csourcelines.append(csource) - csourcelines.append('') # see test_missing_newline_bug - fullcsource = '\n'.join(csourcelines) - if lock is not None: - lock.acquire() # pycparser is not thread-safe... - try: - ast = _get_parser().parse(fullcsource) - except pycparser.c_parser.ParseError as e: - self.convert_pycparser_error(e, csource) - finally: - if lock is not None: - lock.release() - # csource will be used to find buggy source text - return ast, macros, csource - - def _convert_pycparser_error(self, e, csource): - # xxx look for ":NUM:" at the start of str(e) - # and interpret that as a line number. This will not work if - # the user gives explicit ``# NUM "FILE"`` directives. - line = None - msg = str(e) - match = re.match(r"%s:(\d+):" % (CDEF_SOURCE_STRING,), msg) - if match: - linenum = int(match.group(1), 10) - csourcelines = csource.splitlines() - if 1 <= linenum <= len(csourcelines): - line = csourcelines[linenum-1] - return line - - def convert_pycparser_error(self, e, csource): - line = self._convert_pycparser_error(e, csource) - - msg = str(e) - if line: - msg = 'cannot parse "%s"\n%s' % (line.strip(), msg) - else: - msg = 'parse error\n%s' % (msg,) - raise CDefError(msg) - - def parse(self, csource, override=False, packed=False, pack=None, - dllexport=False): - if packed: - if packed != True: - raise ValueError("'packed' should be False or True; use " - "'pack' to give another value") - if pack: - raise ValueError("cannot give both 'pack' and 'packed'") - pack = 1 - elif pack: - if pack & (pack - 1): - raise ValueError("'pack' must be a power of two, not %r" % - (pack,)) - else: - pack = 0 - prev_options = self._options - try: - self._options = {'override': override, - 'packed': pack, - 'dllexport': dllexport} - self._internal_parse(csource) - finally: - self._options = prev_options - - def _internal_parse(self, csource): - ast, macros, csource = self._parse(csource) - # add the macros - self._process_macros(macros) - # find the first "__dotdotdot__" and use that as a separator - # between the repeated typedefs and the real csource - iterator = iter(ast.ext) - for decl in iterator: - if decl.name == '__dotdotdot__': - break - else: - assert 0 - current_decl = None - # - try: - self._inside_extern_python = '__cffi_extern_python_stop' - for decl in iterator: - current_decl = decl - if isinstance(decl, pycparser.c_ast.Decl): - self._parse_decl(decl) - elif isinstance(decl, pycparser.c_ast.Typedef): - if not decl.name: - raise CDefError("typedef does not declare any name", - decl) - quals = 0 - if (isinstance(decl.type.type, pycparser.c_ast.IdentifierType) and - decl.type.type.names[-1].startswith('__dotdotdot')): - realtype = self._get_unknown_type(decl) - elif (isinstance(decl.type, pycparser.c_ast.PtrDecl) and - isinstance(decl.type.type, pycparser.c_ast.TypeDecl) and - isinstance(decl.type.type.type, - pycparser.c_ast.IdentifierType) and - decl.type.type.type.names[-1].startswith('__dotdotdot')): - realtype = self._get_unknown_ptr_type(decl) - else: - realtype, quals = self._get_type_and_quals( - decl.type, name=decl.name, partial_length_ok=True, - typedef_example="*(%s *)0" % (decl.name,)) - self._declare('typedef ' + decl.name, realtype, quals=quals) - elif decl.__class__.__name__ == 'Pragma': - # skip pragma, only in pycparser 2.15 - import warnings - warnings.warn( - "#pragma in cdef() are entirely ignored. " - "They should be removed for now, otherwise your " - "code might behave differently in a future version " - "of CFFI if #pragma support gets added. Note that " - "'#pragma pack' needs to be replaced with the " - "'packed' keyword argument to cdef().") - else: - raise CDefError("unexpected <%s>: this construct is valid " - "C but not valid in cdef()" % - decl.__class__.__name__, decl) - except CDefError as e: - if len(e.args) == 1: - e.args = e.args + (current_decl,) - raise - except FFIError as e: - msg = self._convert_pycparser_error(e, csource) - if msg: - e.args = (e.args[0] + "\n *** Err: %s" % msg,) - raise - - def _add_constants(self, key, val): - if key in self._int_constants: - if self._int_constants[key] == val: - return # ignore identical double declarations - raise FFIError( - "multiple declarations of constant: %s" % (key,)) - self._int_constants[key] = val - - def _add_integer_constant(self, name, int_str): - int_str = int_str.lower().rstrip("ul") - neg = int_str.startswith('-') - if neg: - int_str = int_str[1:] - # "010" is not valid oct in py3 - if (int_str.startswith("0") and int_str != '0' - and not int_str.startswith("0x")): - int_str = "0o" + int_str[1:] - pyvalue = int(int_str, 0) - if neg: - pyvalue = -pyvalue - self._add_constants(name, pyvalue) - self._declare('macro ' + name, pyvalue) - - def _process_macros(self, macros): - for key, value in macros.items(): - value = value.strip() - if _r_int_literal.match(value): - self._add_integer_constant(key, value) - elif value == '...': - self._declare('macro ' + key, value) - else: - raise CDefError( - 'only supports one of the following syntax:\n' - ' #define %s ... (literally dot-dot-dot)\n' - ' #define %s NUMBER (with NUMBER an integer' - ' constant, decimal/hex/octal)\n' - 'got:\n' - ' #define %s %s' - % (key, key, key, value)) - - def _declare_function(self, tp, quals, decl): - tp = self._get_type_pointer(tp, quals) - if self._options.get('dllexport'): - tag = 'dllexport_python ' - elif self._inside_extern_python == '__cffi_extern_python_start': - tag = 'extern_python ' - elif self._inside_extern_python == '__cffi_extern_python_plus_c_start': - tag = 'extern_python_plus_c ' - else: - tag = 'function ' - self._declare(tag + decl.name, tp) - - def _parse_decl(self, decl): - node = decl.type - if isinstance(node, pycparser.c_ast.FuncDecl): - tp, quals = self._get_type_and_quals(node, name=decl.name) - assert isinstance(tp, model.RawFunctionType) - self._declare_function(tp, quals, decl) - else: - if isinstance(node, pycparser.c_ast.Struct): - self._get_struct_union_enum_type('struct', node) - elif isinstance(node, pycparser.c_ast.Union): - self._get_struct_union_enum_type('union', node) - elif isinstance(node, pycparser.c_ast.Enum): - self._get_struct_union_enum_type('enum', node) - elif not decl.name: - raise CDefError("construct does not declare any variable", - decl) - # - if decl.name: - tp, quals = self._get_type_and_quals(node, - partial_length_ok=True) - if tp.is_raw_function: - self._declare_function(tp, quals, decl) - elif (tp.is_integer_type() and - hasattr(decl, 'init') and - hasattr(decl.init, 'value') and - _r_int_literal.match(decl.init.value)): - self._add_integer_constant(decl.name, decl.init.value) - elif (tp.is_integer_type() and - isinstance(decl.init, pycparser.c_ast.UnaryOp) and - decl.init.op == '-' and - hasattr(decl.init.expr, 'value') and - _r_int_literal.match(decl.init.expr.value)): - self._add_integer_constant(decl.name, - '-' + decl.init.expr.value) - elif (tp is model.void_type and - decl.name.startswith('__cffi_extern_python_')): - # hack: `extern "Python"` in the C source is replaced - # with "void __cffi_extern_python_start;" and - # "void __cffi_extern_python_stop;" - self._inside_extern_python = decl.name - else: - if self._inside_extern_python !='__cffi_extern_python_stop': - raise CDefError( - "cannot declare constants or " - "variables with 'extern \"Python\"'") - if (quals & model.Q_CONST) and not tp.is_array_type: - self._declare('constant ' + decl.name, tp, quals=quals) - else: - _warn_for_non_extern_non_static_global_variable(decl) - self._declare('variable ' + decl.name, tp, quals=quals) - - def parse_type(self, cdecl): - return self.parse_type_and_quals(cdecl)[0] - - def parse_type_and_quals(self, cdecl): - ast, macros = self._parse('void __dummy(\n%s\n);' % cdecl)[:2] - assert not macros - exprnode = ast.ext[-1].type.args.params[0] - if isinstance(exprnode, pycparser.c_ast.ID): - raise CDefError("unknown identifier '%s'" % (exprnode.name,)) - return self._get_type_and_quals(exprnode.type) - - def _declare(self, name, obj, included=False, quals=0): - if name in self._declarations: - prevobj, prevquals = self._declarations[name] - if prevobj is obj and prevquals == quals: - return - if not self._options.get('override'): - raise FFIError( - "multiple declarations of %s (for interactive usage, " - "try cdef(xx, override=True))" % (name,)) - assert '__dotdotdot__' not in name.split() - self._declarations[name] = (obj, quals) - if included: - self._included_declarations.add(obj) - - def _extract_quals(self, type): - quals = 0 - if isinstance(type, (pycparser.c_ast.TypeDecl, - pycparser.c_ast.PtrDecl)): - if 'const' in type.quals: - quals |= model.Q_CONST - if 'volatile' in type.quals: - quals |= model.Q_VOLATILE - if 'restrict' in type.quals: - quals |= model.Q_RESTRICT - return quals - - def _get_type_pointer(self, type, quals, declname=None): - if isinstance(type, model.RawFunctionType): - return type.as_function_pointer() - if (isinstance(type, model.StructOrUnionOrEnum) and - type.name.startswith('$') and type.name[1:].isdigit() and - type.forcename is None and declname is not None): - return model.NamedPointerType(type, declname, quals) - return model.PointerType(type, quals) - - def _get_type_and_quals(self, typenode, name=None, partial_length_ok=False, - typedef_example=None): - # first, dereference typedefs, if we have it already parsed, we're good - if (isinstance(typenode, pycparser.c_ast.TypeDecl) and - isinstance(typenode.type, pycparser.c_ast.IdentifierType) and - len(typenode.type.names) == 1 and - ('typedef ' + typenode.type.names[0]) in self._declarations): - tp, quals = self._declarations['typedef ' + typenode.type.names[0]] - quals |= self._extract_quals(typenode) - return tp, quals - # - if isinstance(typenode, pycparser.c_ast.ArrayDecl): - # array type - if typenode.dim is None: - length = None - else: - length = self._parse_constant( - typenode.dim, partial_length_ok=partial_length_ok) - # a hack: in 'typedef int foo_t[...][...];', don't use '...' as - # the length but use directly the C expression that would be - # generated by recompiler.py. This lets the typedef be used in - # many more places within recompiler.py - if typedef_example is not None: - if length == '...': - length = '_cffi_array_len(%s)' % (typedef_example,) - typedef_example = "*" + typedef_example - # - tp, quals = self._get_type_and_quals(typenode.type, - partial_length_ok=partial_length_ok, - typedef_example=typedef_example) - return model.ArrayType(tp, length), quals - # - if isinstance(typenode, pycparser.c_ast.PtrDecl): - # pointer type - itemtype, itemquals = self._get_type_and_quals(typenode.type) - tp = self._get_type_pointer(itemtype, itemquals, declname=name) - quals = self._extract_quals(typenode) - return tp, quals - # - if isinstance(typenode, pycparser.c_ast.TypeDecl): - quals = self._extract_quals(typenode) - type = typenode.type - if isinstance(type, pycparser.c_ast.IdentifierType): - # assume a primitive type. get it from .names, but reduce - # synonyms to a single chosen combination - names = list(type.names) - if names != ['signed', 'char']: # keep this unmodified - prefixes = {} - while names: - name = names[0] - if name in ('short', 'long', 'signed', 'unsigned'): - prefixes[name] = prefixes.get(name, 0) + 1 - del names[0] - else: - break - # ignore the 'signed' prefix below, and reorder the others - newnames = [] - for prefix in ('unsigned', 'short', 'long'): - for i in range(prefixes.get(prefix, 0)): - newnames.append(prefix) - if not names: - names = ['int'] # implicitly - if names == ['int']: # but kill it if 'short' or 'long' - if 'short' in prefixes or 'long' in prefixes: - names = [] - names = newnames + names - ident = ' '.join(names) - if ident == 'void': - return model.void_type, quals - if ident == '__dotdotdot__': - raise FFIError(':%d: bad usage of "..."' % - typenode.coord.line) - tp0, quals0 = resolve_common_type(self, ident) - return tp0, (quals | quals0) - # - if isinstance(type, pycparser.c_ast.Struct): - # 'struct foobar' - tp = self._get_struct_union_enum_type('struct', type, name) - return tp, quals - # - if isinstance(type, pycparser.c_ast.Union): - # 'union foobar' - tp = self._get_struct_union_enum_type('union', type, name) - return tp, quals - # - if isinstance(type, pycparser.c_ast.Enum): - # 'enum foobar' - tp = self._get_struct_union_enum_type('enum', type, name) - return tp, quals - # - if isinstance(typenode, pycparser.c_ast.FuncDecl): - # a function type - return self._parse_function_type(typenode, name), 0 - # - # nested anonymous structs or unions end up here - if isinstance(typenode, pycparser.c_ast.Struct): - return self._get_struct_union_enum_type('struct', typenode, name, - nested=True), 0 - if isinstance(typenode, pycparser.c_ast.Union): - return self._get_struct_union_enum_type('union', typenode, name, - nested=True), 0 - # - raise FFIError(":%d: bad or unsupported type declaration" % - typenode.coord.line) - - def _parse_function_type(self, typenode, funcname=None): - params = list(getattr(typenode.args, 'params', [])) - for i, arg in enumerate(params): - if not hasattr(arg, 'type'): - raise CDefError("%s arg %d: unknown type '%s'" - " (if you meant to use the old C syntax of giving" - " untyped arguments, it is not supported)" - % (funcname or 'in expression', i + 1, - getattr(arg, 'name', '?'))) - ellipsis = ( - len(params) > 0 and - isinstance(params[-1].type, pycparser.c_ast.TypeDecl) and - isinstance(params[-1].type.type, - pycparser.c_ast.IdentifierType) and - params[-1].type.type.names == ['__dotdotdot__']) - if ellipsis: - params.pop() - if not params: - raise CDefError( - "%s: a function with only '(...)' as argument" - " is not correct C" % (funcname or 'in expression')) - args = [self._as_func_arg(*self._get_type_and_quals(argdeclnode.type)) - for argdeclnode in params] - if not ellipsis and args == [model.void_type]: - args = [] - result, quals = self._get_type_and_quals(typenode.type) - # the 'quals' on the result type are ignored. HACK: we absure them - # to detect __stdcall functions: we textually replace "__stdcall" - # with "volatile volatile const" above. - abi = None - if hasattr(typenode.type, 'quals'): # else, probable syntax error anyway - if typenode.type.quals[-3:] == ['volatile', 'volatile', 'const']: - abi = '__stdcall' - return model.RawFunctionType(tuple(args), result, ellipsis, abi) - - def _as_func_arg(self, type, quals): - if isinstance(type, model.ArrayType): - return model.PointerType(type.item, quals) - elif isinstance(type, model.RawFunctionType): - return type.as_function_pointer() - else: - return type - - def _get_struct_union_enum_type(self, kind, type, name=None, nested=False): - # First, a level of caching on the exact 'type' node of the AST. - # This is obscure, but needed because pycparser "unrolls" declarations - # such as "typedef struct { } foo_t, *foo_p" and we end up with - # an AST that is not a tree, but a DAG, with the "type" node of the - # two branches foo_t and foo_p of the trees being the same node. - # It's a bit silly but detecting "DAG-ness" in the AST tree seems - # to be the only way to distinguish this case from two independent - # structs. See test_struct_with_two_usages. - try: - return self._structnode2type[type] - except KeyError: - pass - # - # Note that this must handle parsing "struct foo" any number of - # times and always return the same StructType object. Additionally, - # one of these times (not necessarily the first), the fields of - # the struct can be specified with "struct foo { ...fields... }". - # If no name is given, then we have to create a new anonymous struct - # with no caching; in this case, the fields are either specified - # right now or never. - # - force_name = name - name = type.name - # - # get the type or create it if needed - if name is None: - # 'force_name' is used to guess a more readable name for - # anonymous structs, for the common case "typedef struct { } foo". - if force_name is not None: - explicit_name = '$%s' % force_name - else: - self._anonymous_counter += 1 - explicit_name = '$%d' % self._anonymous_counter - tp = None - else: - explicit_name = name - key = '%s %s' % (kind, name) - tp, _ = self._declarations.get(key, (None, None)) - # - if tp is None: - if kind == 'struct': - tp = model.StructType(explicit_name, None, None, None) - elif kind == 'union': - tp = model.UnionType(explicit_name, None, None, None) - elif kind == 'enum': - if explicit_name == '__dotdotdot__': - raise CDefError("Enums cannot be declared with ...") - tp = self._build_enum_type(explicit_name, type.values) - else: - raise AssertionError("kind = %r" % (kind,)) - if name is not None: - self._declare(key, tp) - else: - if kind == 'enum' and type.values is not None: - raise NotImplementedError( - "enum %s: the '{}' declaration should appear on the first " - "time the enum is mentioned, not later" % explicit_name) - if not tp.forcename: - tp.force_the_name(force_name) - if tp.forcename and '$' in tp.name: - self._declare('anonymous %s' % tp.forcename, tp) - # - self._structnode2type[type] = tp - # - # enums: done here - if kind == 'enum': - return tp - # - # is there a 'type.decls'? If yes, then this is the place in the - # C sources that declare the fields. If no, then just return the - # existing type, possibly still incomplete. - if type.decls is None: - return tp - # - if tp.fldnames is not None: - raise CDefError("duplicate declaration of struct %s" % name) - fldnames = [] - fldtypes = [] - fldbitsize = [] - fldquals = [] - for decl in type.decls: - if (isinstance(decl.type, pycparser.c_ast.IdentifierType) and - ''.join(decl.type.names) == '__dotdotdot__'): - # XXX pycparser is inconsistent: 'names' should be a list - # of strings, but is sometimes just one string. Use - # str.join() as a way to cope with both. - self._make_partial(tp, nested) - continue - if decl.bitsize is None: - bitsize = -1 - else: - bitsize = self._parse_constant(decl.bitsize) - self._partial_length = False - type, fqual = self._get_type_and_quals(decl.type, - partial_length_ok=True) - if self._partial_length: - self._make_partial(tp, nested) - if isinstance(type, model.StructType) and type.partial: - self._make_partial(tp, nested) - fldnames.append(decl.name or '') - fldtypes.append(type) - fldbitsize.append(bitsize) - fldquals.append(fqual) - tp.fldnames = tuple(fldnames) - tp.fldtypes = tuple(fldtypes) - tp.fldbitsize = tuple(fldbitsize) - tp.fldquals = tuple(fldquals) - if fldbitsize != [-1] * len(fldbitsize): - if isinstance(tp, model.StructType) and tp.partial: - raise NotImplementedError("%s: using both bitfields and '...;'" - % (tp,)) - tp.packed = self._options.get('packed') - if tp.completed: # must be re-completed: it is not opaque any more - tp.completed = 0 - self._recomplete.append(tp) - return tp - - def _make_partial(self, tp, nested): - if not isinstance(tp, model.StructOrUnion): - raise CDefError("%s cannot be partial" % (tp,)) - if not tp.has_c_name() and not nested: - raise NotImplementedError("%s is partial but has no C name" %(tp,)) - tp.partial = True - - def _parse_constant(self, exprnode, partial_length_ok=False): - # for now, limited to expressions that are an immediate number - # or positive/negative number - if isinstance(exprnode, pycparser.c_ast.Constant): - s = exprnode.value - if '0' <= s[0] <= '9': - s = s.rstrip('uUlL') - try: - if s.startswith('0'): - return int(s, 8) - else: - return int(s, 10) - except ValueError: - if len(s) > 1: - if s.lower()[0:2] == '0x': - return int(s, 16) - elif s.lower()[0:2] == '0b': - return int(s, 2) - raise CDefError("invalid constant %r" % (s,)) - elif s[0] == "'" and s[-1] == "'" and ( - len(s) == 3 or (len(s) == 4 and s[1] == "\\")): - return ord(s[-2]) - else: - raise CDefError("invalid constant %r" % (s,)) - # - if (isinstance(exprnode, pycparser.c_ast.UnaryOp) and - exprnode.op == '+'): - return self._parse_constant(exprnode.expr) - # - if (isinstance(exprnode, pycparser.c_ast.UnaryOp) and - exprnode.op == '-'): - return -self._parse_constant(exprnode.expr) - # load previously defined int constant - if (isinstance(exprnode, pycparser.c_ast.ID) and - exprnode.name in self._int_constants): - return self._int_constants[exprnode.name] - # - if (isinstance(exprnode, pycparser.c_ast.ID) and - exprnode.name == '__dotdotdotarray__'): - if partial_length_ok: - self._partial_length = True - return '...' - raise FFIError(":%d: unsupported '[...]' here, cannot derive " - "the actual array length in this context" - % exprnode.coord.line) - # - if isinstance(exprnode, pycparser.c_ast.BinaryOp): - left = self._parse_constant(exprnode.left) - right = self._parse_constant(exprnode.right) - if exprnode.op == '+': - return left + right - elif exprnode.op == '-': - return left - right - elif exprnode.op == '*': - return left * right - elif exprnode.op == '/': - return self._c_div(left, right) - elif exprnode.op == '%': - return left - self._c_div(left, right) * right - elif exprnode.op == '<<': - return left << right - elif exprnode.op == '>>': - return left >> right - elif exprnode.op == '&': - return left & right - elif exprnode.op == '|': - return left | right - elif exprnode.op == '^': - return left ^ right - # - raise FFIError(":%d: unsupported expression: expected a " - "simple numeric constant" % exprnode.coord.line) - - def _c_div(self, a, b): - result = a // b - if ((a < 0) ^ (b < 0)) and (a % b) != 0: - result += 1 - return result - - def _build_enum_type(self, explicit_name, decls): - if decls is not None: - partial = False - enumerators = [] - enumvalues = [] - nextenumvalue = 0 - for enum in decls.enumerators: - if _r_enum_dotdotdot.match(enum.name): - partial = True - continue - if enum.value is not None: - nextenumvalue = self._parse_constant(enum.value) - enumerators.append(enum.name) - enumvalues.append(nextenumvalue) - self._add_constants(enum.name, nextenumvalue) - nextenumvalue += 1 - enumerators = tuple(enumerators) - enumvalues = tuple(enumvalues) - tp = model.EnumType(explicit_name, enumerators, enumvalues) - tp.partial = partial - else: # opaque enum - tp = model.EnumType(explicit_name, (), ()) - return tp - - def include(self, other): - for name, (tp, quals) in other._declarations.items(): - if name.startswith('anonymous $enum_$'): - continue # fix for test_anonymous_enum_include - kind = name.split(' ', 1)[0] - if kind in ('struct', 'union', 'enum', 'anonymous', 'typedef'): - self._declare(name, tp, included=True, quals=quals) - for k, v in other._int_constants.items(): - self._add_constants(k, v) - - def _get_unknown_type(self, decl): - typenames = decl.type.type.names - if typenames == ['__dotdotdot__']: - return model.unknown_type(decl.name) - - if typenames == ['__dotdotdotint__']: - if self._uses_new_feature is None: - self._uses_new_feature = "'typedef int... %s'" % decl.name - return model.UnknownIntegerType(decl.name) - - if typenames == ['__dotdotdotfloat__']: - # note: not for 'long double' so far - if self._uses_new_feature is None: - self._uses_new_feature = "'typedef float... %s'" % decl.name - return model.UnknownFloatType(decl.name) - - raise FFIError(':%d: unsupported usage of "..." in typedef' - % decl.coord.line) - - def _get_unknown_ptr_type(self, decl): - if decl.type.type.type.names == ['__dotdotdot__']: - return model.unknown_ptr_type(decl.name) - raise FFIError(':%d: unsupported usage of "..." in typedef' - % decl.coord.line) diff --git a/backend/venv/lib/python3.12/site-packages/cffi/error.py b/backend/venv/lib/python3.12/site-packages/cffi/error.py deleted file mode 100644 index 0a27247..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/error.py +++ /dev/null @@ -1,31 +0,0 @@ - -class FFIError(Exception): - __module__ = 'cffi' - -class CDefError(Exception): - __module__ = 'cffi' - def __str__(self): - try: - current_decl = self.args[1] - filename = current_decl.coord.file - linenum = current_decl.coord.line - prefix = '%s:%d: ' % (filename, linenum) - except (AttributeError, TypeError, IndexError): - prefix = '' - return '%s%s' % (prefix, self.args[0]) - -class VerificationError(Exception): - """ An error raised when verification fails - """ - __module__ = 'cffi' - -class VerificationMissing(Exception): - """ An error raised when incomplete structures are passed into - cdef, but no verification has been done - """ - __module__ = 'cffi' - -class PkgConfigError(Exception): - """ An error raised for missing modules in pkg-config - """ - __module__ = 'cffi' diff --git a/backend/venv/lib/python3.12/site-packages/cffi/ffiplatform.py b/backend/venv/lib/python3.12/site-packages/cffi/ffiplatform.py deleted file mode 100644 index adca28f..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/ffiplatform.py +++ /dev/null @@ -1,113 +0,0 @@ -import sys, os -from .error import VerificationError - - -LIST_OF_FILE_NAMES = ['sources', 'include_dirs', 'library_dirs', - 'extra_objects', 'depends'] - -def get_extension(srcfilename, modname, sources=(), **kwds): - from cffi._shimmed_dist_utils import Extension - allsources = [srcfilename] - for src in sources: - allsources.append(os.path.normpath(src)) - return Extension(name=modname, sources=allsources, **kwds) - -def compile(tmpdir, ext, compiler_verbose=0, debug=None): - """Compile a C extension module using distutils.""" - - saved_environ = os.environ.copy() - try: - outputfilename = _build(tmpdir, ext, compiler_verbose, debug) - outputfilename = os.path.abspath(outputfilename) - finally: - # workaround for a distutils bugs where some env vars can - # become longer and longer every time it is used - for key, value in saved_environ.items(): - if os.environ.get(key) != value: - os.environ[key] = value - return outputfilename - -def _build(tmpdir, ext, compiler_verbose=0, debug=None): - # XXX compact but horrible :-( - from cffi._shimmed_dist_utils import Distribution, CompileError, LinkError, set_threshold, set_verbosity - - dist = Distribution({'ext_modules': [ext]}) - dist.parse_config_files() - options = dist.get_option_dict('build_ext') - if debug is None: - debug = sys.flags.debug - options['debug'] = ('ffiplatform', debug) - options['force'] = ('ffiplatform', True) - options['build_lib'] = ('ffiplatform', tmpdir) - options['build_temp'] = ('ffiplatform', tmpdir) - # - try: - old_level = set_threshold(0) or 0 - try: - set_verbosity(compiler_verbose) - dist.run_command('build_ext') - cmd_obj = dist.get_command_obj('build_ext') - [soname] = cmd_obj.get_outputs() - finally: - set_threshold(old_level) - except (CompileError, LinkError) as e: - raise VerificationError('%s: %s' % (e.__class__.__name__, e)) - # - return soname - -try: - from os.path import samefile -except ImportError: - def samefile(f1, f2): - return os.path.abspath(f1) == os.path.abspath(f2) - -def maybe_relative_path(path): - if not os.path.isabs(path): - return path # already relative - dir = path - names = [] - while True: - prevdir = dir - dir, name = os.path.split(prevdir) - if dir == prevdir or not dir: - return path # failed to make it relative - names.append(name) - try: - if samefile(dir, os.curdir): - names.reverse() - return os.path.join(*names) - except OSError: - pass - -# ____________________________________________________________ - -try: - int_or_long = (int, long) - import cStringIO -except NameError: - int_or_long = int # Python 3 - import io as cStringIO - -def _flatten(x, f): - if isinstance(x, str): - f.write('%ds%s' % (len(x), x)) - elif isinstance(x, dict): - keys = sorted(x.keys()) - f.write('%dd' % len(keys)) - for key in keys: - _flatten(key, f) - _flatten(x[key], f) - elif isinstance(x, (list, tuple)): - f.write('%dl' % len(x)) - for value in x: - _flatten(value, f) - elif isinstance(x, int_or_long): - f.write('%di' % (x,)) - else: - raise TypeError( - "the keywords to verify() contains unsupported object %r" % (x,)) - -def flatten(x): - f = cStringIO.StringIO() - _flatten(x, f) - return f.getvalue() diff --git a/backend/venv/lib/python3.12/site-packages/cffi/lock.py b/backend/venv/lib/python3.12/site-packages/cffi/lock.py deleted file mode 100644 index db91b71..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/lock.py +++ /dev/null @@ -1,30 +0,0 @@ -import sys - -if sys.version_info < (3,): - try: - from thread import allocate_lock - except ImportError: - from dummy_thread import allocate_lock -else: - try: - from _thread import allocate_lock - except ImportError: - from _dummy_thread import allocate_lock - - -##import sys -##l1 = allocate_lock - -##class allocate_lock(object): -## def __init__(self): -## self._real = l1() -## def __enter__(self): -## for i in range(4, 0, -1): -## print sys._getframe(i).f_code -## print -## return self._real.__enter__() -## def __exit__(self, *args): -## return self._real.__exit__(*args) -## def acquire(self, f): -## assert f is False -## return self._real.acquire(f) diff --git a/backend/venv/lib/python3.12/site-packages/cffi/model.py b/backend/venv/lib/python3.12/site-packages/cffi/model.py deleted file mode 100644 index e5f4cae..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/model.py +++ /dev/null @@ -1,618 +0,0 @@ -import types -import weakref - -from .lock import allocate_lock -from .error import CDefError, VerificationError, VerificationMissing - -# type qualifiers -Q_CONST = 0x01 -Q_RESTRICT = 0x02 -Q_VOLATILE = 0x04 - -def qualify(quals, replace_with): - if quals & Q_CONST: - replace_with = ' const ' + replace_with.lstrip() - if quals & Q_VOLATILE: - replace_with = ' volatile ' + replace_with.lstrip() - if quals & Q_RESTRICT: - # It seems that __restrict is supported by gcc and msvc. - # If you hit some different compiler, add a #define in - # _cffi_include.h for it (and in its copies, documented there) - replace_with = ' __restrict ' + replace_with.lstrip() - return replace_with - - -class BaseTypeByIdentity(object): - is_array_type = False - is_raw_function = False - - def get_c_name(self, replace_with='', context='a C file', quals=0): - result = self.c_name_with_marker - assert result.count('&') == 1 - # some logic duplication with ffi.getctype()... :-( - replace_with = replace_with.strip() - if replace_with: - if replace_with.startswith('*') and '&[' in result: - replace_with = '(%s)' % replace_with - elif not replace_with[0] in '[(': - replace_with = ' ' + replace_with - replace_with = qualify(quals, replace_with) - result = result.replace('&', replace_with) - if '$' in result: - raise VerificationError( - "cannot generate '%s' in %s: unknown type name" - % (self._get_c_name(), context)) - return result - - def _get_c_name(self): - return self.c_name_with_marker.replace('&', '') - - def has_c_name(self): - return '$' not in self._get_c_name() - - def is_integer_type(self): - return False - - def get_cached_btype(self, ffi, finishlist, can_delay=False): - try: - BType = ffi._cached_btypes[self] - except KeyError: - BType = self.build_backend_type(ffi, finishlist) - BType2 = ffi._cached_btypes.setdefault(self, BType) - assert BType2 is BType - return BType - - def __repr__(self): - return '<%s>' % (self._get_c_name(),) - - def _get_items(self): - return [(name, getattr(self, name)) for name in self._attrs_] - - -class BaseType(BaseTypeByIdentity): - - def __eq__(self, other): - return (self.__class__ == other.__class__ and - self._get_items() == other._get_items()) - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash((self.__class__, tuple(self._get_items()))) - - -class VoidType(BaseType): - _attrs_ = () - - def __init__(self): - self.c_name_with_marker = 'void&' - - def build_backend_type(self, ffi, finishlist): - return global_cache(self, ffi, 'new_void_type') - -void_type = VoidType() - - -class BasePrimitiveType(BaseType): - def is_complex_type(self): - return False - - -class PrimitiveType(BasePrimitiveType): - _attrs_ = ('name',) - - ALL_PRIMITIVE_TYPES = { - 'char': 'c', - 'short': 'i', - 'int': 'i', - 'long': 'i', - 'long long': 'i', - 'signed char': 'i', - 'unsigned char': 'i', - 'unsigned short': 'i', - 'unsigned int': 'i', - 'unsigned long': 'i', - 'unsigned long long': 'i', - 'float': 'f', - 'double': 'f', - 'long double': 'f', - '_cffi_float_complex_t': 'j', - '_cffi_double_complex_t': 'j', - '_Bool': 'i', - # the following types are not primitive in the C sense - 'wchar_t': 'c', - 'char16_t': 'c', - 'char32_t': 'c', - 'int8_t': 'i', - 'uint8_t': 'i', - 'int16_t': 'i', - 'uint16_t': 'i', - 'int32_t': 'i', - 'uint32_t': 'i', - 'int64_t': 'i', - 'uint64_t': 'i', - 'int_least8_t': 'i', - 'uint_least8_t': 'i', - 'int_least16_t': 'i', - 'uint_least16_t': 'i', - 'int_least32_t': 'i', - 'uint_least32_t': 'i', - 'int_least64_t': 'i', - 'uint_least64_t': 'i', - 'int_fast8_t': 'i', - 'uint_fast8_t': 'i', - 'int_fast16_t': 'i', - 'uint_fast16_t': 'i', - 'int_fast32_t': 'i', - 'uint_fast32_t': 'i', - 'int_fast64_t': 'i', - 'uint_fast64_t': 'i', - 'intptr_t': 'i', - 'uintptr_t': 'i', - 'intmax_t': 'i', - 'uintmax_t': 'i', - 'ptrdiff_t': 'i', - 'size_t': 'i', - 'ssize_t': 'i', - } - - def __init__(self, name): - assert name in self.ALL_PRIMITIVE_TYPES - self.name = name - self.c_name_with_marker = name + '&' - - def is_char_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'c' - def is_integer_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'i' - def is_float_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'f' - def is_complex_type(self): - return self.ALL_PRIMITIVE_TYPES[self.name] == 'j' - - def build_backend_type(self, ffi, finishlist): - return global_cache(self, ffi, 'new_primitive_type', self.name) - - -class UnknownIntegerType(BasePrimitiveType): - _attrs_ = ('name',) - - def __init__(self, name): - self.name = name - self.c_name_with_marker = name + '&' - - def is_integer_type(self): - return True - - def build_backend_type(self, ffi, finishlist): - raise NotImplementedError("integer type '%s' can only be used after " - "compilation" % self.name) - -class UnknownFloatType(BasePrimitiveType): - _attrs_ = ('name', ) - - def __init__(self, name): - self.name = name - self.c_name_with_marker = name + '&' - - def build_backend_type(self, ffi, finishlist): - raise NotImplementedError("float type '%s' can only be used after " - "compilation" % self.name) - - -class BaseFunctionType(BaseType): - _attrs_ = ('args', 'result', 'ellipsis', 'abi') - - def __init__(self, args, result, ellipsis, abi=None): - self.args = args - self.result = result - self.ellipsis = ellipsis - self.abi = abi - # - reprargs = [arg._get_c_name() for arg in self.args] - if self.ellipsis: - reprargs.append('...') - reprargs = reprargs or ['void'] - replace_with = self._base_pattern % (', '.join(reprargs),) - if abi is not None: - replace_with = replace_with[:1] + abi + ' ' + replace_with[1:] - self.c_name_with_marker = ( - self.result.c_name_with_marker.replace('&', replace_with)) - - -class RawFunctionType(BaseFunctionType): - # Corresponds to a C type like 'int(int)', which is the C type of - # a function, but not a pointer-to-function. The backend has no - # notion of such a type; it's used temporarily by parsing. - _base_pattern = '(&)(%s)' - is_raw_function = True - - def build_backend_type(self, ffi, finishlist): - raise CDefError("cannot render the type %r: it is a function " - "type, not a pointer-to-function type" % (self,)) - - def as_function_pointer(self): - return FunctionPtrType(self.args, self.result, self.ellipsis, self.abi) - - -class FunctionPtrType(BaseFunctionType): - _base_pattern = '(*&)(%s)' - - def build_backend_type(self, ffi, finishlist): - result = self.result.get_cached_btype(ffi, finishlist) - args = [] - for tp in self.args: - args.append(tp.get_cached_btype(ffi, finishlist)) - abi_args = () - if self.abi == "__stdcall": - if not self.ellipsis: # __stdcall ignored for variadic funcs - try: - abi_args = (ffi._backend.FFI_STDCALL,) - except AttributeError: - pass - return global_cache(self, ffi, 'new_function_type', - tuple(args), result, self.ellipsis, *abi_args) - - def as_raw_function(self): - return RawFunctionType(self.args, self.result, self.ellipsis, self.abi) - - -class PointerType(BaseType): - _attrs_ = ('totype', 'quals') - - def __init__(self, totype, quals=0): - self.totype = totype - self.quals = quals - extra = " *&" - if totype.is_array_type: - extra = "(%s)" % (extra.lstrip(),) - extra = qualify(quals, extra) - self.c_name_with_marker = totype.c_name_with_marker.replace('&', extra) - - def build_backend_type(self, ffi, finishlist): - BItem = self.totype.get_cached_btype(ffi, finishlist, can_delay=True) - return global_cache(self, ffi, 'new_pointer_type', BItem) - -voidp_type = PointerType(void_type) - -def ConstPointerType(totype): - return PointerType(totype, Q_CONST) - -const_voidp_type = ConstPointerType(void_type) - - -class NamedPointerType(PointerType): - _attrs_ = ('totype', 'name') - - def __init__(self, totype, name, quals=0): - PointerType.__init__(self, totype, quals) - self.name = name - self.c_name_with_marker = name + '&' - - -class ArrayType(BaseType): - _attrs_ = ('item', 'length') - is_array_type = True - - def __init__(self, item, length): - self.item = item - self.length = length - # - if length is None: - brackets = '&[]' - elif length == '...': - brackets = '&[/*...*/]' - else: - brackets = '&[%s]' % length - self.c_name_with_marker = ( - self.item.c_name_with_marker.replace('&', brackets)) - - def length_is_unknown(self): - return isinstance(self.length, str) - - def resolve_length(self, newlength): - return ArrayType(self.item, newlength) - - def build_backend_type(self, ffi, finishlist): - if self.length_is_unknown(): - raise CDefError("cannot render the type %r: unknown length" % - (self,)) - self.item.get_cached_btype(ffi, finishlist) # force the item BType - BPtrItem = PointerType(self.item).get_cached_btype(ffi, finishlist) - return global_cache(self, ffi, 'new_array_type', BPtrItem, self.length) - -char_array_type = ArrayType(PrimitiveType('char'), None) - - -class StructOrUnionOrEnum(BaseTypeByIdentity): - _attrs_ = ('name',) - forcename = None - - def build_c_name_with_marker(self): - name = self.forcename or '%s %s' % (self.kind, self.name) - self.c_name_with_marker = name + '&' - - def force_the_name(self, forcename): - self.forcename = forcename - self.build_c_name_with_marker() - - def get_official_name(self): - assert self.c_name_with_marker.endswith('&') - return self.c_name_with_marker[:-1] - - -class StructOrUnion(StructOrUnionOrEnum): - fixedlayout = None - completed = 0 - partial = False - packed = 0 - - def __init__(self, name, fldnames, fldtypes, fldbitsize, fldquals=None): - self.name = name - self.fldnames = fldnames - self.fldtypes = fldtypes - self.fldbitsize = fldbitsize - self.fldquals = fldquals - self.build_c_name_with_marker() - - def anonymous_struct_fields(self): - if self.fldtypes is not None: - for name, type in zip(self.fldnames, self.fldtypes): - if name == '' and isinstance(type, StructOrUnion): - yield type - - def enumfields(self, expand_anonymous_struct_union=True): - fldquals = self.fldquals - if fldquals is None: - fldquals = (0,) * len(self.fldnames) - for name, type, bitsize, quals in zip(self.fldnames, self.fldtypes, - self.fldbitsize, fldquals): - if (name == '' and isinstance(type, StructOrUnion) - and expand_anonymous_struct_union): - # nested anonymous struct/union - for result in type.enumfields(): - yield result - else: - yield (name, type, bitsize, quals) - - def force_flatten(self): - # force the struct or union to have a declaration that lists - # directly all fields returned by enumfields(), flattening - # nested anonymous structs/unions. - names = [] - types = [] - bitsizes = [] - fldquals = [] - for name, type, bitsize, quals in self.enumfields(): - names.append(name) - types.append(type) - bitsizes.append(bitsize) - fldquals.append(quals) - self.fldnames = tuple(names) - self.fldtypes = tuple(types) - self.fldbitsize = tuple(bitsizes) - self.fldquals = tuple(fldquals) - - def get_cached_btype(self, ffi, finishlist, can_delay=False): - BType = StructOrUnionOrEnum.get_cached_btype(self, ffi, finishlist, - can_delay) - if not can_delay: - self.finish_backend_type(ffi, finishlist) - return BType - - def finish_backend_type(self, ffi, finishlist): - if self.completed: - if self.completed != 2: - raise NotImplementedError("recursive structure declaration " - "for '%s'" % (self.name,)) - return - BType = ffi._cached_btypes[self] - # - self.completed = 1 - # - if self.fldtypes is None: - pass # not completing it: it's an opaque struct - # - elif self.fixedlayout is None: - fldtypes = [tp.get_cached_btype(ffi, finishlist) - for tp in self.fldtypes] - lst = list(zip(self.fldnames, fldtypes, self.fldbitsize)) - extra_flags = () - if self.packed: - if self.packed == 1: - extra_flags = (8,) # SF_PACKED - else: - extra_flags = (0, self.packed) - ffi._backend.complete_struct_or_union(BType, lst, self, - -1, -1, *extra_flags) - # - else: - fldtypes = [] - fieldofs, fieldsize, totalsize, totalalignment = self.fixedlayout - for i in range(len(self.fldnames)): - fsize = fieldsize[i] - ftype = self.fldtypes[i] - # - if isinstance(ftype, ArrayType) and ftype.length_is_unknown(): - # fix the length to match the total size - BItemType = ftype.item.get_cached_btype(ffi, finishlist) - nlen, nrest = divmod(fsize, ffi.sizeof(BItemType)) - if nrest != 0: - self._verification_error( - "field '%s.%s' has a bogus size?" % ( - self.name, self.fldnames[i] or '{}')) - ftype = ftype.resolve_length(nlen) - self.fldtypes = (self.fldtypes[:i] + (ftype,) + - self.fldtypes[i+1:]) - # - BFieldType = ftype.get_cached_btype(ffi, finishlist) - if isinstance(ftype, ArrayType) and ftype.length is None: - assert fsize == 0 - else: - bitemsize = ffi.sizeof(BFieldType) - if bitemsize != fsize: - self._verification_error( - "field '%s.%s' is declared as %d bytes, but is " - "really %d bytes" % (self.name, - self.fldnames[i] or '{}', - bitemsize, fsize)) - fldtypes.append(BFieldType) - # - lst = list(zip(self.fldnames, fldtypes, self.fldbitsize, fieldofs)) - ffi._backend.complete_struct_or_union(BType, lst, self, - totalsize, totalalignment) - self.completed = 2 - - def _verification_error(self, msg): - raise VerificationError(msg) - - def check_not_partial(self): - if self.partial and self.fixedlayout is None: - raise VerificationMissing(self._get_c_name()) - - def build_backend_type(self, ffi, finishlist): - self.check_not_partial() - finishlist.append(self) - # - return global_cache(self, ffi, 'new_%s_type' % self.kind, - self.get_official_name(), key=self) - - -class StructType(StructOrUnion): - kind = 'struct' - - -class UnionType(StructOrUnion): - kind = 'union' - - -class EnumType(StructOrUnionOrEnum): - kind = 'enum' - partial = False - partial_resolved = False - - def __init__(self, name, enumerators, enumvalues, baseinttype=None): - self.name = name - self.enumerators = enumerators - self.enumvalues = enumvalues - self.baseinttype = baseinttype - self.build_c_name_with_marker() - - def force_the_name(self, forcename): - StructOrUnionOrEnum.force_the_name(self, forcename) - if self.forcename is None: - name = self.get_official_name() - self.forcename = '$' + name.replace(' ', '_') - - def check_not_partial(self): - if self.partial and not self.partial_resolved: - raise VerificationMissing(self._get_c_name()) - - def build_backend_type(self, ffi, finishlist): - self.check_not_partial() - base_btype = self.build_baseinttype(ffi, finishlist) - return global_cache(self, ffi, 'new_enum_type', - self.get_official_name(), - self.enumerators, self.enumvalues, - base_btype, key=self) - - def build_baseinttype(self, ffi, finishlist): - if self.baseinttype is not None: - return self.baseinttype.get_cached_btype(ffi, finishlist) - # - if self.enumvalues: - smallest_value = min(self.enumvalues) - largest_value = max(self.enumvalues) - else: - import warnings - try: - # XXX! The goal is to ensure that the warnings.warn() - # will not suppress the warning. We want to get it - # several times if we reach this point several times. - __warningregistry__.clear() - except NameError: - pass - warnings.warn("%r has no values explicitly defined; " - "guessing that it is equivalent to 'unsigned int'" - % self._get_c_name()) - smallest_value = largest_value = 0 - if smallest_value < 0: # needs a signed type - sign = 1 - candidate1 = PrimitiveType("int") - candidate2 = PrimitiveType("long") - else: - sign = 0 - candidate1 = PrimitiveType("unsigned int") - candidate2 = PrimitiveType("unsigned long") - btype1 = candidate1.get_cached_btype(ffi, finishlist) - btype2 = candidate2.get_cached_btype(ffi, finishlist) - size1 = ffi.sizeof(btype1) - size2 = ffi.sizeof(btype2) - if (smallest_value >= ((-1) << (8*size1-1)) and - largest_value < (1 << (8*size1-sign))): - return btype1 - if (smallest_value >= ((-1) << (8*size2-1)) and - largest_value < (1 << (8*size2-sign))): - return btype2 - raise CDefError("%s values don't all fit into either 'long' " - "or 'unsigned long'" % self._get_c_name()) - -def unknown_type(name, structname=None): - if structname is None: - structname = '$%s' % name - tp = StructType(structname, None, None, None) - tp.force_the_name(name) - tp.origin = "unknown_type" - return tp - -def unknown_ptr_type(name, structname=None): - if structname is None: - structname = '$$%s' % name - tp = StructType(structname, None, None, None) - return NamedPointerType(tp, name) - - -global_lock = allocate_lock() -_typecache_cffi_backend = weakref.WeakValueDictionary() - -def get_typecache(backend): - # returns _typecache_cffi_backend if backend is the _cffi_backend - # module, or type(backend).__typecache if backend is an instance of - # CTypesBackend (or some FakeBackend class during tests) - if isinstance(backend, types.ModuleType): - return _typecache_cffi_backend - with global_lock: - if not hasattr(type(backend), '__typecache'): - type(backend).__typecache = weakref.WeakValueDictionary() - return type(backend).__typecache - -def global_cache(srctype, ffi, funcname, *args, **kwds): - key = kwds.pop('key', (funcname, args)) - assert not kwds - try: - return ffi._typecache[key] - except KeyError: - pass - try: - res = getattr(ffi._backend, funcname)(*args) - except NotImplementedError as e: - raise NotImplementedError("%s: %r: %s" % (funcname, srctype, e)) - # note that setdefault() on WeakValueDictionary is not atomic - # and contains a rare bug (http://bugs.python.org/issue19542); - # we have to use a lock and do it ourselves - cache = ffi._typecache - with global_lock: - res1 = cache.get(key) - if res1 is None: - cache[key] = res - return res - else: - return res1 - -def pointer_cache(ffi, BType): - return global_cache('?', ffi, 'new_pointer_type', BType) - -def attach_exception_info(e, name): - if e.args and type(e.args[0]) is str: - e.args = ('%s: %s' % (name, e.args[0]),) + e.args[1:] diff --git a/backend/venv/lib/python3.12/site-packages/cffi/parse_c_type.h b/backend/venv/lib/python3.12/site-packages/cffi/parse_c_type.h deleted file mode 100644 index 84e4ef8..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/parse_c_type.h +++ /dev/null @@ -1,181 +0,0 @@ - -/* This part is from file 'cffi/parse_c_type.h'. It is copied at the - beginning of C sources generated by CFFI's ffi.set_source(). */ - -typedef void *_cffi_opcode_t; - -#define _CFFI_OP(opcode, arg) (_cffi_opcode_t)(opcode | (((uintptr_t)(arg)) << 8)) -#define _CFFI_GETOP(cffi_opcode) ((unsigned char)(uintptr_t)cffi_opcode) -#define _CFFI_GETARG(cffi_opcode) (((intptr_t)cffi_opcode) >> 8) - -#define _CFFI_OP_PRIMITIVE 1 -#define _CFFI_OP_POINTER 3 -#define _CFFI_OP_ARRAY 5 -#define _CFFI_OP_OPEN_ARRAY 7 -#define _CFFI_OP_STRUCT_UNION 9 -#define _CFFI_OP_ENUM 11 -#define _CFFI_OP_FUNCTION 13 -#define _CFFI_OP_FUNCTION_END 15 -#define _CFFI_OP_NOOP 17 -#define _CFFI_OP_BITFIELD 19 -#define _CFFI_OP_TYPENAME 21 -#define _CFFI_OP_CPYTHON_BLTN_V 23 // varargs -#define _CFFI_OP_CPYTHON_BLTN_N 25 // noargs -#define _CFFI_OP_CPYTHON_BLTN_O 27 // O (i.e. a single arg) -#define _CFFI_OP_CONSTANT 29 -#define _CFFI_OP_CONSTANT_INT 31 -#define _CFFI_OP_GLOBAL_VAR 33 -#define _CFFI_OP_DLOPEN_FUNC 35 -#define _CFFI_OP_DLOPEN_CONST 37 -#define _CFFI_OP_GLOBAL_VAR_F 39 -#define _CFFI_OP_EXTERN_PYTHON 41 - -#define _CFFI_PRIM_VOID 0 -#define _CFFI_PRIM_BOOL 1 -#define _CFFI_PRIM_CHAR 2 -#define _CFFI_PRIM_SCHAR 3 -#define _CFFI_PRIM_UCHAR 4 -#define _CFFI_PRIM_SHORT 5 -#define _CFFI_PRIM_USHORT 6 -#define _CFFI_PRIM_INT 7 -#define _CFFI_PRIM_UINT 8 -#define _CFFI_PRIM_LONG 9 -#define _CFFI_PRIM_ULONG 10 -#define _CFFI_PRIM_LONGLONG 11 -#define _CFFI_PRIM_ULONGLONG 12 -#define _CFFI_PRIM_FLOAT 13 -#define _CFFI_PRIM_DOUBLE 14 -#define _CFFI_PRIM_LONGDOUBLE 15 - -#define _CFFI_PRIM_WCHAR 16 -#define _CFFI_PRIM_INT8 17 -#define _CFFI_PRIM_UINT8 18 -#define _CFFI_PRIM_INT16 19 -#define _CFFI_PRIM_UINT16 20 -#define _CFFI_PRIM_INT32 21 -#define _CFFI_PRIM_UINT32 22 -#define _CFFI_PRIM_INT64 23 -#define _CFFI_PRIM_UINT64 24 -#define _CFFI_PRIM_INTPTR 25 -#define _CFFI_PRIM_UINTPTR 26 -#define _CFFI_PRIM_PTRDIFF 27 -#define _CFFI_PRIM_SIZE 28 -#define _CFFI_PRIM_SSIZE 29 -#define _CFFI_PRIM_INT_LEAST8 30 -#define _CFFI_PRIM_UINT_LEAST8 31 -#define _CFFI_PRIM_INT_LEAST16 32 -#define _CFFI_PRIM_UINT_LEAST16 33 -#define _CFFI_PRIM_INT_LEAST32 34 -#define _CFFI_PRIM_UINT_LEAST32 35 -#define _CFFI_PRIM_INT_LEAST64 36 -#define _CFFI_PRIM_UINT_LEAST64 37 -#define _CFFI_PRIM_INT_FAST8 38 -#define _CFFI_PRIM_UINT_FAST8 39 -#define _CFFI_PRIM_INT_FAST16 40 -#define _CFFI_PRIM_UINT_FAST16 41 -#define _CFFI_PRIM_INT_FAST32 42 -#define _CFFI_PRIM_UINT_FAST32 43 -#define _CFFI_PRIM_INT_FAST64 44 -#define _CFFI_PRIM_UINT_FAST64 45 -#define _CFFI_PRIM_INTMAX 46 -#define _CFFI_PRIM_UINTMAX 47 -#define _CFFI_PRIM_FLOATCOMPLEX 48 -#define _CFFI_PRIM_DOUBLECOMPLEX 49 -#define _CFFI_PRIM_CHAR16 50 -#define _CFFI_PRIM_CHAR32 51 - -#define _CFFI__NUM_PRIM 52 -#define _CFFI__UNKNOWN_PRIM (-1) -#define _CFFI__UNKNOWN_FLOAT_PRIM (-2) -#define _CFFI__UNKNOWN_LONG_DOUBLE (-3) - -#define _CFFI__IO_FILE_STRUCT (-1) - - -struct _cffi_global_s { - const char *name; - void *address; - _cffi_opcode_t type_op; - void *size_or_direct_fn; // OP_GLOBAL_VAR: size, or 0 if unknown - // OP_CPYTHON_BLTN_*: addr of direct function -}; - -struct _cffi_getconst_s { - unsigned long long value; - const struct _cffi_type_context_s *ctx; - int gindex; -}; - -struct _cffi_struct_union_s { - const char *name; - int type_index; // -> _cffi_types, on a OP_STRUCT_UNION - int flags; // _CFFI_F_* flags below - size_t size; - int alignment; - int first_field_index; // -> _cffi_fields array - int num_fields; -}; -#define _CFFI_F_UNION 0x01 // is a union, not a struct -#define _CFFI_F_CHECK_FIELDS 0x02 // complain if fields are not in the - // "standard layout" or if some are missing -#define _CFFI_F_PACKED 0x04 // for CHECK_FIELDS, assume a packed struct -#define _CFFI_F_EXTERNAL 0x08 // in some other ffi.include() -#define _CFFI_F_OPAQUE 0x10 // opaque - -struct _cffi_field_s { - const char *name; - size_t field_offset; - size_t field_size; - _cffi_opcode_t field_type_op; -}; - -struct _cffi_enum_s { - const char *name; - int type_index; // -> _cffi_types, on a OP_ENUM - int type_prim; // _CFFI_PRIM_xxx - const char *enumerators; // comma-delimited string -}; - -struct _cffi_typename_s { - const char *name; - int type_index; /* if opaque, points to a possibly artificial - OP_STRUCT which is itself opaque */ -}; - -struct _cffi_type_context_s { - _cffi_opcode_t *types; - const struct _cffi_global_s *globals; - const struct _cffi_field_s *fields; - const struct _cffi_struct_union_s *struct_unions; - const struct _cffi_enum_s *enums; - const struct _cffi_typename_s *typenames; - int num_globals; - int num_struct_unions; - int num_enums; - int num_typenames; - const char *const *includes; - int num_types; - int flags; /* future extension */ -}; - -struct _cffi_parse_info_s { - const struct _cffi_type_context_s *ctx; - _cffi_opcode_t *output; - unsigned int output_size; - size_t error_location; - const char *error_message; -}; - -struct _cffi_externpy_s { - const char *name; - size_t size_of_result; - void *reserved1, *reserved2; -}; - -#ifdef _CFFI_INTERNAL -static int parse_c_type(struct _cffi_parse_info_s *info, const char *input); -static int search_in_globals(const struct _cffi_type_context_s *ctx, - const char *search, size_t search_len); -static int search_in_struct_unions(const struct _cffi_type_context_s *ctx, - const char *search, size_t search_len); -#endif diff --git a/backend/venv/lib/python3.12/site-packages/cffi/pkgconfig.py b/backend/venv/lib/python3.12/site-packages/cffi/pkgconfig.py deleted file mode 100644 index 5c93f15..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/pkgconfig.py +++ /dev/null @@ -1,121 +0,0 @@ -# pkg-config, https://www.freedesktop.org/wiki/Software/pkg-config/ integration for cffi -import sys, os, subprocess - -from .error import PkgConfigError - - -def merge_flags(cfg1, cfg2): - """Merge values from cffi config flags cfg2 to cf1 - - Example: - merge_flags({"libraries": ["one"]}, {"libraries": ["two"]}) - {"libraries": ["one", "two"]} - """ - for key, value in cfg2.items(): - if key not in cfg1: - cfg1[key] = value - else: - if not isinstance(cfg1[key], list): - raise TypeError("cfg1[%r] should be a list of strings" % (key,)) - if not isinstance(value, list): - raise TypeError("cfg2[%r] should be a list of strings" % (key,)) - cfg1[key].extend(value) - return cfg1 - - -def call(libname, flag, encoding=sys.getfilesystemencoding()): - """Calls pkg-config and returns the output if found - """ - a = ["pkg-config", "--print-errors"] - a.append(flag) - a.append(libname) - try: - pc = subprocess.Popen(a, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - except EnvironmentError as e: - raise PkgConfigError("cannot run pkg-config: %s" % (str(e).strip(),)) - - bout, berr = pc.communicate() - if pc.returncode != 0: - try: - berr = berr.decode(encoding) - except Exception: - pass - raise PkgConfigError(berr.strip()) - - if sys.version_info >= (3,) and not isinstance(bout, str): # Python 3.x - try: - bout = bout.decode(encoding) - except UnicodeDecodeError: - raise PkgConfigError("pkg-config %s %s returned bytes that cannot " - "be decoded with encoding %r:\n%r" % - (flag, libname, encoding, bout)) - - if os.altsep != '\\' and '\\' in bout: - raise PkgConfigError("pkg-config %s %s returned an unsupported " - "backslash-escaped output:\n%r" % - (flag, libname, bout)) - return bout - - -def flags_from_pkgconfig(libs): - r"""Return compiler line flags for FFI.set_source based on pkg-config output - - Usage - ... - ffibuilder.set_source("_foo", pkgconfig = ["libfoo", "libbar >= 1.8.3"]) - - If pkg-config is installed on build machine, then arguments include_dirs, - library_dirs, libraries, define_macros, extra_compile_args and - extra_link_args are extended with an output of pkg-config for libfoo and - libbar. - - Raises PkgConfigError in case the pkg-config call fails. - """ - - def get_include_dirs(string): - return [x[2:] for x in string.split() if x.startswith("-I")] - - def get_library_dirs(string): - return [x[2:] for x in string.split() if x.startswith("-L")] - - def get_libraries(string): - return [x[2:] for x in string.split() if x.startswith("-l")] - - # convert -Dfoo=bar to list of tuples [("foo", "bar")] expected by distutils - def get_macros(string): - def _macro(x): - x = x[2:] # drop "-D" - if '=' in x: - return tuple(x.split("=", 1)) # "-Dfoo=bar" => ("foo", "bar") - else: - return (x, None) # "-Dfoo" => ("foo", None) - return [_macro(x) for x in string.split() if x.startswith("-D")] - - def get_other_cflags(string): - return [x for x in string.split() if not x.startswith("-I") and - not x.startswith("-D")] - - def get_other_libs(string): - return [x for x in string.split() if not x.startswith("-L") and - not x.startswith("-l")] - - # return kwargs for given libname - def kwargs(libname): - fse = sys.getfilesystemencoding() - all_cflags = call(libname, "--cflags") - all_libs = call(libname, "--libs") - return { - "include_dirs": get_include_dirs(all_cflags), - "library_dirs": get_library_dirs(all_libs), - "libraries": get_libraries(all_libs), - "define_macros": get_macros(all_cflags), - "extra_compile_args": get_other_cflags(all_cflags), - "extra_link_args": get_other_libs(all_libs), - } - - # merge all arguments together - ret = {} - for libname in libs: - lib_flags = kwargs(libname) - merge_flags(ret, lib_flags) - return ret diff --git a/backend/venv/lib/python3.12/site-packages/cffi/recompiler.py b/backend/venv/lib/python3.12/site-packages/cffi/recompiler.py deleted file mode 100644 index 7734a34..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/recompiler.py +++ /dev/null @@ -1,1598 +0,0 @@ -import io, os, sys, sysconfig -from . import ffiplatform, model -from .error import VerificationError -from .cffi_opcode import * - -VERSION_BASE = 0x2601 -VERSION_EMBEDDED = 0x2701 -VERSION_CHAR16CHAR32 = 0x2801 - -USE_LIMITED_API = ((sys.platform != 'win32' or sys.version_info < (3, 0) or - sys.version_info >= (3, 5)) and - not sysconfig.get_config_var("Py_GIL_DISABLED")) # free-threaded doesn't yet support limited API - -class GlobalExpr: - def __init__(self, name, address, type_op, size=0, check_value=0): - self.name = name - self.address = address - self.type_op = type_op - self.size = size - self.check_value = check_value - - def as_c_expr(self): - return ' { "%s", (void *)%s, %s, (void *)%s },' % ( - self.name, self.address, self.type_op.as_c_expr(), self.size) - - def as_python_expr(self): - return "b'%s%s',%d" % (self.type_op.as_python_bytes(), self.name, - self.check_value) - -class FieldExpr: - def __init__(self, name, field_offset, field_size, fbitsize, field_type_op): - self.name = name - self.field_offset = field_offset - self.field_size = field_size - self.fbitsize = fbitsize - self.field_type_op = field_type_op - - def as_c_expr(self): - spaces = " " * len(self.name) - return (' { "%s", %s,\n' % (self.name, self.field_offset) + - ' %s %s,\n' % (spaces, self.field_size) + - ' %s %s },' % (spaces, self.field_type_op.as_c_expr())) - - def as_python_expr(self): - raise NotImplementedError - - def as_field_python_expr(self): - if self.field_type_op.op == OP_NOOP: - size_expr = '' - elif self.field_type_op.op == OP_BITFIELD: - size_expr = format_four_bytes(self.fbitsize) - else: - raise NotImplementedError - return "b'%s%s%s'" % (self.field_type_op.as_python_bytes(), - size_expr, - self.name) - -class StructUnionExpr: - def __init__(self, name, type_index, flags, size, alignment, comment, - first_field_index, c_fields): - self.name = name - self.type_index = type_index - self.flags = flags - self.size = size - self.alignment = alignment - self.comment = comment - self.first_field_index = first_field_index - self.c_fields = c_fields - - def as_c_expr(self): - return (' { "%s", %d, %s,' % (self.name, self.type_index, self.flags) - + '\n %s, %s, ' % (self.size, self.alignment) - + '%d, %d ' % (self.first_field_index, len(self.c_fields)) - + ('/* %s */ ' % self.comment if self.comment else '') - + '},') - - def as_python_expr(self): - flags = eval(self.flags, G_FLAGS) - fields_expr = [c_field.as_field_python_expr() - for c_field in self.c_fields] - return "(b'%s%s%s',%s)" % ( - format_four_bytes(self.type_index), - format_four_bytes(flags), - self.name, - ','.join(fields_expr)) - -class EnumExpr: - def __init__(self, name, type_index, size, signed, allenums): - self.name = name - self.type_index = type_index - self.size = size - self.signed = signed - self.allenums = allenums - - def as_c_expr(self): - return (' { "%s", %d, _cffi_prim_int(%s, %s),\n' - ' "%s" },' % (self.name, self.type_index, - self.size, self.signed, self.allenums)) - - def as_python_expr(self): - prim_index = { - (1, 0): PRIM_UINT8, (1, 1): PRIM_INT8, - (2, 0): PRIM_UINT16, (2, 1): PRIM_INT16, - (4, 0): PRIM_UINT32, (4, 1): PRIM_INT32, - (8, 0): PRIM_UINT64, (8, 1): PRIM_INT64, - }[self.size, self.signed] - return "b'%s%s%s\\x00%s'" % (format_four_bytes(self.type_index), - format_four_bytes(prim_index), - self.name, self.allenums) - -class TypenameExpr: - def __init__(self, name, type_index): - self.name = name - self.type_index = type_index - - def as_c_expr(self): - return ' { "%s", %d },' % (self.name, self.type_index) - - def as_python_expr(self): - return "b'%s%s'" % (format_four_bytes(self.type_index), self.name) - - -# ____________________________________________________________ - - -class Recompiler: - _num_externpy = 0 - - def __init__(self, ffi, module_name, target_is_python=False): - self.ffi = ffi - self.module_name = module_name - self.target_is_python = target_is_python - self._version = VERSION_BASE - - def needs_version(self, ver): - self._version = max(self._version, ver) - - def collect_type_table(self): - self._typesdict = {} - self._generate("collecttype") - # - all_decls = sorted(self._typesdict, key=str) - # - # prepare all FUNCTION bytecode sequences first - self.cffi_types = [] - for tp in all_decls: - if tp.is_raw_function: - assert self._typesdict[tp] is None - self._typesdict[tp] = len(self.cffi_types) - self.cffi_types.append(tp) # placeholder - for tp1 in tp.args: - assert isinstance(tp1, (model.VoidType, - model.BasePrimitiveType, - model.PointerType, - model.StructOrUnionOrEnum, - model.FunctionPtrType)) - if self._typesdict[tp1] is None: - self._typesdict[tp1] = len(self.cffi_types) - self.cffi_types.append(tp1) # placeholder - self.cffi_types.append('END') # placeholder - # - # prepare all OTHER bytecode sequences - for tp in all_decls: - if not tp.is_raw_function and self._typesdict[tp] is None: - self._typesdict[tp] = len(self.cffi_types) - self.cffi_types.append(tp) # placeholder - if tp.is_array_type and tp.length is not None: - self.cffi_types.append('LEN') # placeholder - assert None not in self._typesdict.values() - # - # collect all structs and unions and enums - self._struct_unions = {} - self._enums = {} - for tp in all_decls: - if isinstance(tp, model.StructOrUnion): - self._struct_unions[tp] = None - elif isinstance(tp, model.EnumType): - self._enums[tp] = None - for i, tp in enumerate(sorted(self._struct_unions, - key=lambda tp: tp.name)): - self._struct_unions[tp] = i - for i, tp in enumerate(sorted(self._enums, - key=lambda tp: tp.name)): - self._enums[tp] = i - # - # emit all bytecode sequences now - for tp in all_decls: - method = getattr(self, '_emit_bytecode_' + tp.__class__.__name__) - method(tp, self._typesdict[tp]) - # - # consistency check - for op in self.cffi_types: - assert isinstance(op, CffiOp) - self.cffi_types = tuple(self.cffi_types) # don't change any more - - def _enum_fields(self, tp): - # When producing C, expand all anonymous struct/union fields. - # That's necessary to have C code checking the offsets of the - # individual fields contained in them. When producing Python, - # don't do it and instead write it like it is, with the - # corresponding fields having an empty name. Empty names are - # recognized at runtime when we import the generated Python - # file. - expand_anonymous_struct_union = not self.target_is_python - return tp.enumfields(expand_anonymous_struct_union) - - def _do_collect_type(self, tp): - if not isinstance(tp, model.BaseTypeByIdentity): - if isinstance(tp, tuple): - for x in tp: - self._do_collect_type(x) - return - if tp not in self._typesdict: - self._typesdict[tp] = None - if isinstance(tp, model.FunctionPtrType): - self._do_collect_type(tp.as_raw_function()) - elif isinstance(tp, model.StructOrUnion): - if tp.fldtypes is not None and ( - tp not in self.ffi._parser._included_declarations): - for name1, tp1, _, _ in self._enum_fields(tp): - self._do_collect_type(self._field_type(tp, name1, tp1)) - else: - for _, x in tp._get_items(): - self._do_collect_type(x) - - def _generate(self, step_name): - lst = self.ffi._parser._declarations.items() - for name, (tp, quals) in sorted(lst): - kind, realname = name.split(' ', 1) - try: - method = getattr(self, '_generate_cpy_%s_%s' % (kind, - step_name)) - except AttributeError: - raise VerificationError( - "not implemented in recompile(): %r" % name) - try: - self._current_quals = quals - method(tp, realname) - except Exception as e: - model.attach_exception_info(e, name) - raise - - # ---------- - - ALL_STEPS = ["global", "field", "struct_union", "enum", "typename"] - - def collect_step_tables(self): - # collect the declarations for '_cffi_globals', '_cffi_typenames', etc. - self._lsts = {} - for step_name in self.ALL_STEPS: - self._lsts[step_name] = [] - self._seen_struct_unions = set() - self._generate("ctx") - self._add_missing_struct_unions() - # - for step_name in self.ALL_STEPS: - lst = self._lsts[step_name] - if step_name != "field": - lst.sort(key=lambda entry: entry.name) - self._lsts[step_name] = tuple(lst) # don't change any more - # - # check for a possible internal inconsistency: _cffi_struct_unions - # should have been generated with exactly self._struct_unions - lst = self._lsts["struct_union"] - for tp, i in self._struct_unions.items(): - assert i < len(lst) - assert lst[i].name == tp.name - assert len(lst) == len(self._struct_unions) - # same with enums - lst = self._lsts["enum"] - for tp, i in self._enums.items(): - assert i < len(lst) - assert lst[i].name == tp.name - assert len(lst) == len(self._enums) - - # ---------- - - def _prnt(self, what=''): - self._f.write(what + '\n') - - def write_source_to_f(self, f, preamble): - if self.target_is_python: - assert preamble is None - self.write_py_source_to_f(f) - else: - assert preamble is not None - self.write_c_source_to_f(f, preamble) - - def _rel_readlines(self, filename): - g = open(os.path.join(os.path.dirname(__file__), filename), 'r') - lines = g.readlines() - g.close() - return lines - - def write_c_source_to_f(self, f, preamble): - self._f = f - prnt = self._prnt - if self.ffi._embedding is not None: - prnt('#define _CFFI_USE_EMBEDDING') - if not USE_LIMITED_API: - prnt('#define _CFFI_NO_LIMITED_API') - # - # first the '#include' (actually done by inlining the file's content) - lines = self._rel_readlines('_cffi_include.h') - i = lines.index('#include "parse_c_type.h"\n') - lines[i:i+1] = self._rel_readlines('parse_c_type.h') - prnt(''.join(lines)) - # - # if we have ffi._embedding != None, we give it here as a macro - # and include an extra file - base_module_name = self.module_name.split('.')[-1] - if self.ffi._embedding is not None: - prnt('#define _CFFI_MODULE_NAME "%s"' % (self.module_name,)) - prnt('static const char _CFFI_PYTHON_STARTUP_CODE[] = {') - self._print_string_literal_in_array(self.ffi._embedding) - prnt('0 };') - prnt('#ifdef PYPY_VERSION') - prnt('# define _CFFI_PYTHON_STARTUP_FUNC _cffi_pypyinit_%s' % ( - base_module_name,)) - prnt('#elif PY_MAJOR_VERSION >= 3') - prnt('# define _CFFI_PYTHON_STARTUP_FUNC PyInit_%s' % ( - base_module_name,)) - prnt('#else') - prnt('# define _CFFI_PYTHON_STARTUP_FUNC init%s' % ( - base_module_name,)) - prnt('#endif') - lines = self._rel_readlines('_embedding.h') - i = lines.index('#include "_cffi_errors.h"\n') - lines[i:i+1] = self._rel_readlines('_cffi_errors.h') - prnt(''.join(lines)) - self.needs_version(VERSION_EMBEDDED) - # - # then paste the C source given by the user, verbatim. - prnt('/************************************************************/') - prnt() - prnt(preamble) - prnt() - prnt('/************************************************************/') - prnt() - # - # the declaration of '_cffi_types' - prnt('static void *_cffi_types[] = {') - typeindex2type = dict([(i, tp) for (tp, i) in self._typesdict.items()]) - for i, op in enumerate(self.cffi_types): - comment = '' - if i in typeindex2type: - comment = ' // ' + typeindex2type[i]._get_c_name() - prnt('/* %2d */ %s,%s' % (i, op.as_c_expr(), comment)) - if not self.cffi_types: - prnt(' 0') - prnt('};') - prnt() - # - # call generate_cpy_xxx_decl(), for every xxx found from - # ffi._parser._declarations. This generates all the functions. - self._seen_constants = set() - self._generate("decl") - # - # the declaration of '_cffi_globals' and '_cffi_typenames' - nums = {} - for step_name in self.ALL_STEPS: - lst = self._lsts[step_name] - nums[step_name] = len(lst) - if nums[step_name] > 0: - prnt('static const struct _cffi_%s_s _cffi_%ss[] = {' % ( - step_name, step_name)) - for entry in lst: - prnt(entry.as_c_expr()) - prnt('};') - prnt() - # - # the declaration of '_cffi_includes' - if self.ffi._included_ffis: - prnt('static const char * const _cffi_includes[] = {') - for ffi_to_include in self.ffi._included_ffis: - try: - included_module_name, included_source = ( - ffi_to_include._assigned_source[:2]) - except AttributeError: - raise VerificationError( - "ffi object %r includes %r, but the latter has not " - "been prepared with set_source()" % ( - self.ffi, ffi_to_include,)) - if included_source is None: - raise VerificationError( - "not implemented yet: ffi.include() of a Python-based " - "ffi inside a C-based ffi") - prnt(' "%s",' % (included_module_name,)) - prnt(' NULL') - prnt('};') - prnt() - # - # the declaration of '_cffi_type_context' - prnt('static const struct _cffi_type_context_s _cffi_type_context = {') - prnt(' _cffi_types,') - for step_name in self.ALL_STEPS: - if nums[step_name] > 0: - prnt(' _cffi_%ss,' % step_name) - else: - prnt(' NULL, /* no %ss */' % step_name) - for step_name in self.ALL_STEPS: - if step_name != "field": - prnt(' %d, /* num_%ss */' % (nums[step_name], step_name)) - if self.ffi._included_ffis: - prnt(' _cffi_includes,') - else: - prnt(' NULL, /* no includes */') - prnt(' %d, /* num_types */' % (len(self.cffi_types),)) - flags = 0 - if self._num_externpy > 0 or self.ffi._embedding is not None: - flags |= 1 # set to mean that we use extern "Python" - prnt(' %d, /* flags */' % flags) - prnt('};') - prnt() - # - # the init function - prnt('#ifdef __GNUC__') - prnt('# pragma GCC visibility push(default) /* for -fvisibility= */') - prnt('#endif') - prnt() - prnt('#ifdef PYPY_VERSION') - prnt('PyMODINIT_FUNC') - prnt('_cffi_pypyinit_%s(const void *p[])' % (base_module_name,)) - prnt('{') - if flags & 1: - prnt(' if (((intptr_t)p[0]) >= 0x0A03) {') - prnt(' _cffi_call_python_org = ' - '(void(*)(struct _cffi_externpy_s *, char *))p[1];') - prnt(' }') - prnt(' p[0] = (const void *)0x%x;' % self._version) - prnt(' p[1] = &_cffi_type_context;') - prnt('#if PY_MAJOR_VERSION >= 3') - prnt(' return NULL;') - prnt('#endif') - prnt('}') - # on Windows, distutils insists on putting init_cffi_xyz in - # 'export_symbols', so instead of fighting it, just give up and - # give it one - prnt('# ifdef _MSC_VER') - prnt(' PyMODINIT_FUNC') - prnt('# if PY_MAJOR_VERSION >= 3') - prnt(' PyInit_%s(void) { return NULL; }' % (base_module_name,)) - prnt('# else') - prnt(' init%s(void) { }' % (base_module_name,)) - prnt('# endif') - prnt('# endif') - prnt('#elif PY_MAJOR_VERSION >= 3') - prnt('PyMODINIT_FUNC') - prnt('PyInit_%s(void)' % (base_module_name,)) - prnt('{') - prnt(' return _cffi_init("%s", 0x%x, &_cffi_type_context);' % ( - self.module_name, self._version)) - prnt('}') - prnt('#else') - prnt('PyMODINIT_FUNC') - prnt('init%s(void)' % (base_module_name,)) - prnt('{') - prnt(' _cffi_init("%s", 0x%x, &_cffi_type_context);' % ( - self.module_name, self._version)) - prnt('}') - prnt('#endif') - prnt() - prnt('#ifdef __GNUC__') - prnt('# pragma GCC visibility pop') - prnt('#endif') - self._version = None - - def _to_py(self, x): - if isinstance(x, str): - return "b'%s'" % (x,) - if isinstance(x, (list, tuple)): - rep = [self._to_py(item) for item in x] - if len(rep) == 1: - rep.append('') - return "(%s)" % (','.join(rep),) - return x.as_python_expr() # Py2: unicode unexpected; Py3: bytes unexp. - - def write_py_source_to_f(self, f): - self._f = f - prnt = self._prnt - # - # header - prnt("# auto-generated file") - prnt("import _cffi_backend") - # - # the 'import' of the included ffis - num_includes = len(self.ffi._included_ffis or ()) - for i in range(num_includes): - ffi_to_include = self.ffi._included_ffis[i] - try: - included_module_name, included_source = ( - ffi_to_include._assigned_source[:2]) - except AttributeError: - raise VerificationError( - "ffi object %r includes %r, but the latter has not " - "been prepared with set_source()" % ( - self.ffi, ffi_to_include,)) - if included_source is not None: - raise VerificationError( - "not implemented yet: ffi.include() of a C-based " - "ffi inside a Python-based ffi") - prnt('from %s import ffi as _ffi%d' % (included_module_name, i)) - prnt() - prnt("ffi = _cffi_backend.FFI('%s'," % (self.module_name,)) - prnt(" _version = 0x%x," % (self._version,)) - self._version = None - # - # the '_types' keyword argument - self.cffi_types = tuple(self.cffi_types) # don't change any more - types_lst = [op.as_python_bytes() for op in self.cffi_types] - prnt(' _types = %s,' % (self._to_py(''.join(types_lst)),)) - typeindex2type = dict([(i, tp) for (tp, i) in self._typesdict.items()]) - # - # the keyword arguments from ALL_STEPS - for step_name in self.ALL_STEPS: - lst = self._lsts[step_name] - if len(lst) > 0 and step_name != "field": - prnt(' _%ss = %s,' % (step_name, self._to_py(lst))) - # - # the '_includes' keyword argument - if num_includes > 0: - prnt(' _includes = (%s,),' % ( - ', '.join(['_ffi%d' % i for i in range(num_includes)]),)) - # - # the footer - prnt(')') - - # ---------- - - def _gettypenum(self, type): - # a KeyError here is a bug. please report it! :-) - return self._typesdict[type] - - def _convert_funcarg_to_c(self, tp, fromvar, tovar, errcode): - extraarg = '' - if isinstance(tp, model.BasePrimitiveType) and not tp.is_complex_type(): - if tp.is_integer_type() and tp.name != '_Bool': - converter = '_cffi_to_c_int' - extraarg = ', %s' % tp.name - elif isinstance(tp, model.UnknownFloatType): - # don't check with is_float_type(): it may be a 'long - # double' here, and _cffi_to_c_double would loose precision - converter = '(%s)_cffi_to_c_double' % (tp.get_c_name(''),) - else: - cname = tp.get_c_name('') - converter = '(%s)_cffi_to_c_%s' % (cname, - tp.name.replace(' ', '_')) - if cname in ('char16_t', 'char32_t'): - self.needs_version(VERSION_CHAR16CHAR32) - errvalue = '-1' - # - elif isinstance(tp, model.PointerType): - self._convert_funcarg_to_c_ptr_or_array(tp, fromvar, - tovar, errcode) - return - # - elif (isinstance(tp, model.StructOrUnionOrEnum) or - isinstance(tp, model.BasePrimitiveType)): - # a struct (not a struct pointer) as a function argument; - # or, a complex (the same code works) - self._prnt(' if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)' - % (tovar, self._gettypenum(tp), fromvar)) - self._prnt(' %s;' % errcode) - return - # - elif isinstance(tp, model.FunctionPtrType): - converter = '(%s)_cffi_to_c_pointer' % tp.get_c_name('') - extraarg = ', _cffi_type(%d)' % self._gettypenum(tp) - errvalue = 'NULL' - # - else: - raise NotImplementedError(tp) - # - self._prnt(' %s = %s(%s%s);' % (tovar, converter, fromvar, extraarg)) - self._prnt(' if (%s == (%s)%s && PyErr_Occurred())' % ( - tovar, tp.get_c_name(''), errvalue)) - self._prnt(' %s;' % errcode) - - def _extra_local_variables(self, tp, localvars, freelines): - if isinstance(tp, model.PointerType): - localvars.add('Py_ssize_t datasize') - localvars.add('struct _cffi_freeme_s *large_args_free = NULL') - freelines.add('if (large_args_free != NULL)' - ' _cffi_free_array_arguments(large_args_free);') - - def _convert_funcarg_to_c_ptr_or_array(self, tp, fromvar, tovar, errcode): - self._prnt(' datasize = _cffi_prepare_pointer_call_argument(') - self._prnt(' _cffi_type(%d), %s, (char **)&%s);' % ( - self._gettypenum(tp), fromvar, tovar)) - self._prnt(' if (datasize != 0) {') - self._prnt(' %s = ((size_t)datasize) <= 640 ? ' - '(%s)alloca((size_t)datasize) : NULL;' % ( - tovar, tp.get_c_name(''))) - self._prnt(' if (_cffi_convert_array_argument(_cffi_type(%d), %s, ' - '(char **)&%s,' % (self._gettypenum(tp), fromvar, tovar)) - self._prnt(' datasize, &large_args_free) < 0)') - self._prnt(' %s;' % errcode) - self._prnt(' }') - - def _convert_expr_from_c(self, tp, var, context): - if isinstance(tp, model.BasePrimitiveType): - if tp.is_integer_type() and tp.name != '_Bool': - return '_cffi_from_c_int(%s, %s)' % (var, tp.name) - elif isinstance(tp, model.UnknownFloatType): - return '_cffi_from_c_double(%s)' % (var,) - elif tp.name != 'long double' and not tp.is_complex_type(): - cname = tp.name.replace(' ', '_') - if cname in ('char16_t', 'char32_t'): - self.needs_version(VERSION_CHAR16CHAR32) - return '_cffi_from_c_%s(%s)' % (cname, var) - else: - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, (model.PointerType, model.FunctionPtrType)): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.ArrayType): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(model.PointerType(tp.item))) - elif isinstance(tp, model.StructOrUnion): - if tp.fldnames is None: - raise TypeError("'%s' is used as %s, but is opaque" % ( - tp._get_c_name(), context)) - return '_cffi_from_c_struct((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.EnumType): - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - else: - raise NotImplementedError(tp) - - # ---------- - # typedefs - - def _typedef_type(self, tp, name): - return self._global_type(tp, "(*(%s *)0)" % (name,)) - - def _generate_cpy_typedef_collecttype(self, tp, name): - self._do_collect_type(self._typedef_type(tp, name)) - - def _generate_cpy_typedef_decl(self, tp, name): - pass - - def _typedef_ctx(self, tp, name): - type_index = self._typesdict[tp] - self._lsts["typename"].append(TypenameExpr(name, type_index)) - - def _generate_cpy_typedef_ctx(self, tp, name): - tp = self._typedef_type(tp, name) - self._typedef_ctx(tp, name) - if getattr(tp, "origin", None) == "unknown_type": - self._struct_ctx(tp, tp.name, approxname=None) - elif isinstance(tp, model.NamedPointerType): - self._struct_ctx(tp.totype, tp.totype.name, approxname=tp.name, - named_ptr=tp) - - # ---------- - # function declarations - - def _generate_cpy_function_collecttype(self, tp, name): - self._do_collect_type(tp.as_raw_function()) - if tp.ellipsis and not self.target_is_python: - self._do_collect_type(tp) - - def _generate_cpy_function_decl(self, tp, name): - assert not self.target_is_python - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - # cannot support vararg functions better than this: check for its - # exact type (including the fixed arguments), and build it as a - # constant function pointer (no CPython wrapper) - self._generate_cpy_constant_decl(tp, name) - return - prnt = self._prnt - numargs = len(tp.args) - if numargs == 0: - argname = 'noarg' - elif numargs == 1: - argname = 'arg0' - else: - argname = 'args' - # - # ------------------------------ - # the 'd' version of the function, only for addressof(lib, 'func') - arguments = [] - call_arguments = [] - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - arguments.append(type.get_c_name(' x%d' % i, context)) - call_arguments.append('x%d' % i) - repr_arguments = ', '.join(arguments) - repr_arguments = repr_arguments or 'void' - if tp.abi: - abi = tp.abi + ' ' - else: - abi = '' - name_and_arguments = '%s_cffi_d_%s(%s)' % (abi, name, repr_arguments) - prnt('static %s' % (tp.result.get_c_name(name_and_arguments),)) - prnt('{') - call_arguments = ', '.join(call_arguments) - result_code = 'return ' - if isinstance(tp.result, model.VoidType): - result_code = '' - prnt(' %s%s(%s);' % (result_code, name, call_arguments)) - prnt('}') - # - prnt('#ifndef PYPY_VERSION') # ------------------------------ - # - prnt('static PyObject *') - prnt('_cffi_f_%s(PyObject *self, PyObject *%s)' % (name, argname)) - prnt('{') - # - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - arg = type.get_c_name(' x%d' % i, context) - prnt(' %s;' % arg) - # - localvars = set() - freelines = set() - for type in tp.args: - self._extra_local_variables(type, localvars, freelines) - for decl in sorted(localvars): - prnt(' %s;' % (decl,)) - # - if not isinstance(tp.result, model.VoidType): - result_code = 'result = ' - context = 'result of %s' % name - result_decl = ' %s;' % tp.result.get_c_name(' result', context) - prnt(result_decl) - prnt(' PyObject *pyresult;') - else: - result_decl = None - result_code = '' - # - if len(tp.args) > 1: - rng = range(len(tp.args)) - for i in rng: - prnt(' PyObject *arg%d;' % i) - prnt() - prnt(' if (!PyArg_UnpackTuple(args, "%s", %d, %d, %s))' % ( - name, len(rng), len(rng), - ', '.join(['&arg%d' % i for i in rng]))) - prnt(' return NULL;') - prnt() - # - for i, type in enumerate(tp.args): - self._convert_funcarg_to_c(type, 'arg%d' % i, 'x%d' % i, - 'return NULL') - prnt() - # - prnt(' Py_BEGIN_ALLOW_THREADS') - prnt(' _cffi_restore_errno();') - call_arguments = ['x%d' % i for i in range(len(tp.args))] - call_arguments = ', '.join(call_arguments) - prnt(' { %s%s(%s); }' % (result_code, name, call_arguments)) - prnt(' _cffi_save_errno();') - prnt(' Py_END_ALLOW_THREADS') - prnt() - # - prnt(' (void)self; /* unused */') - if numargs == 0: - prnt(' (void)noarg; /* unused */') - if result_code: - prnt(' pyresult = %s;' % - self._convert_expr_from_c(tp.result, 'result', 'result type')) - for freeline in freelines: - prnt(' ' + freeline) - prnt(' return pyresult;') - else: - for freeline in freelines: - prnt(' ' + freeline) - prnt(' Py_INCREF(Py_None);') - prnt(' return Py_None;') - prnt('}') - # - prnt('#else') # ------------------------------ - # - # the PyPy version: need to replace struct/union arguments with - # pointers, and if the result is a struct/union, insert a first - # arg that is a pointer to the result. We also do that for - # complex args and return type. - def need_indirection(type): - return (isinstance(type, model.StructOrUnion) or - (isinstance(type, model.PrimitiveType) and - type.is_complex_type())) - difference = False - arguments = [] - call_arguments = [] - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - indirection = '' - if need_indirection(type): - indirection = '*' - difference = True - arg = type.get_c_name(' %sx%d' % (indirection, i), context) - arguments.append(arg) - call_arguments.append('%sx%d' % (indirection, i)) - tp_result = tp.result - if need_indirection(tp_result): - context = 'result of %s' % name - arg = tp_result.get_c_name(' *result', context) - arguments.insert(0, arg) - tp_result = model.void_type - result_decl = None - result_code = '*result = ' - difference = True - if difference: - repr_arguments = ', '.join(arguments) - repr_arguments = repr_arguments or 'void' - name_and_arguments = '%s_cffi_f_%s(%s)' % (abi, name, - repr_arguments) - prnt('static %s' % (tp_result.get_c_name(name_and_arguments),)) - prnt('{') - if result_decl: - prnt(result_decl) - call_arguments = ', '.join(call_arguments) - prnt(' { %s%s(%s); }' % (result_code, name, call_arguments)) - if result_decl: - prnt(' return result;') - prnt('}') - else: - prnt('# define _cffi_f_%s _cffi_d_%s' % (name, name)) - # - prnt('#endif') # ------------------------------ - prnt() - - def _generate_cpy_function_ctx(self, tp, name): - if tp.ellipsis and not self.target_is_python: - self._generate_cpy_constant_ctx(tp, name) - return - type_index = self._typesdict[tp.as_raw_function()] - numargs = len(tp.args) - if self.target_is_python: - meth_kind = OP_DLOPEN_FUNC - elif numargs == 0: - meth_kind = OP_CPYTHON_BLTN_N # 'METH_NOARGS' - elif numargs == 1: - meth_kind = OP_CPYTHON_BLTN_O # 'METH_O' - else: - meth_kind = OP_CPYTHON_BLTN_V # 'METH_VARARGS' - self._lsts["global"].append( - GlobalExpr(name, '_cffi_f_%s' % name, - CffiOp(meth_kind, type_index), - size='_cffi_d_%s' % name)) - - # ---------- - # named structs or unions - - def _field_type(self, tp_struct, field_name, tp_field): - if isinstance(tp_field, model.ArrayType): - actual_length = tp_field.length - if actual_length == '...': - ptr_struct_name = tp_struct.get_c_name('*') - actual_length = '_cffi_array_len(((%s)0)->%s)' % ( - ptr_struct_name, field_name) - tp_item = self._field_type(tp_struct, '%s[0]' % field_name, - tp_field.item) - tp_field = model.ArrayType(tp_item, actual_length) - return tp_field - - def _struct_collecttype(self, tp): - self._do_collect_type(tp) - if self.target_is_python: - # also requires nested anon struct/unions in ABI mode, recursively - for fldtype in tp.anonymous_struct_fields(): - self._struct_collecttype(fldtype) - - def _struct_decl(self, tp, cname, approxname): - if tp.fldtypes is None: - return - prnt = self._prnt - checkfuncname = '_cffi_checkfld_%s' % (approxname,) - prnt('_CFFI_UNUSED_FN') - prnt('static void %s(%s *p)' % (checkfuncname, cname)) - prnt('{') - prnt(' /* only to generate compile-time warnings or errors */') - prnt(' (void)p;') - for fname, ftype, fbitsize, fqual in self._enum_fields(tp): - try: - if ftype.is_integer_type() or fbitsize >= 0: - # accept all integers, but complain on float or double - if fname != '': - prnt(" (void)((p->%s) | 0); /* check that '%s.%s' is " - "an integer */" % (fname, cname, fname)) - continue - # only accept exactly the type declared, except that '[]' - # is interpreted as a '*' and so will match any array length. - # (It would also match '*', but that's harder to detect...) - while (isinstance(ftype, model.ArrayType) - and (ftype.length is None or ftype.length == '...')): - ftype = ftype.item - fname = fname + '[0]' - prnt(' { %s = &p->%s; (void)tmp; }' % ( - ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual), - fname)) - except VerificationError as e: - prnt(' /* %s */' % str(e)) # cannot verify it, ignore - prnt('}') - prnt('struct _cffi_align_%s { char x; %s y; };' % (approxname, cname)) - prnt() - - def _struct_ctx(self, tp, cname, approxname, named_ptr=None): - type_index = self._typesdict[tp] - reason_for_not_expanding = None - flags = [] - if isinstance(tp, model.UnionType): - flags.append("_CFFI_F_UNION") - if tp.fldtypes is None: - flags.append("_CFFI_F_OPAQUE") - reason_for_not_expanding = "opaque" - if (tp not in self.ffi._parser._included_declarations and - (named_ptr is None or - named_ptr not in self.ffi._parser._included_declarations)): - if tp.fldtypes is None: - pass # opaque - elif tp.partial or any(tp.anonymous_struct_fields()): - pass # field layout obtained silently from the C compiler - else: - flags.append("_CFFI_F_CHECK_FIELDS") - if tp.packed: - if tp.packed > 1: - raise NotImplementedError( - "%r is declared with 'pack=%r'; only 0 or 1 are " - "supported in API mode (try to use \"...;\", which " - "does not require a 'pack' declaration)" % - (tp, tp.packed)) - flags.append("_CFFI_F_PACKED") - else: - flags.append("_CFFI_F_EXTERNAL") - reason_for_not_expanding = "external" - flags = '|'.join(flags) or '0' - c_fields = [] - if reason_for_not_expanding is None: - enumfields = list(self._enum_fields(tp)) - for fldname, fldtype, fbitsize, fqual in enumfields: - fldtype = self._field_type(tp, fldname, fldtype) - self._check_not_opaque(fldtype, - "field '%s.%s'" % (tp.name, fldname)) - # cname is None for _add_missing_struct_unions() only - op = OP_NOOP - if fbitsize >= 0: - op = OP_BITFIELD - size = '%d /* bits */' % fbitsize - elif cname is None or ( - isinstance(fldtype, model.ArrayType) and - fldtype.length is None): - size = '(size_t)-1' - else: - size = 'sizeof(((%s)0)->%s)' % ( - tp.get_c_name('*') if named_ptr is None - else named_ptr.name, - fldname) - if cname is None or fbitsize >= 0: - offset = '(size_t)-1' - elif named_ptr is not None: - offset = '(size_t)(((char *)&((%s)4096)->%s) - (char *)4096)' % ( - named_ptr.name, fldname) - else: - offset = 'offsetof(%s, %s)' % (tp.get_c_name(''), fldname) - c_fields.append( - FieldExpr(fldname, offset, size, fbitsize, - CffiOp(op, self._typesdict[fldtype]))) - first_field_index = len(self._lsts["field"]) - self._lsts["field"].extend(c_fields) - # - if cname is None: # unknown name, for _add_missing_struct_unions - size = '(size_t)-2' - align = -2 - comment = "unnamed" - else: - if named_ptr is not None: - size = 'sizeof(*(%s)0)' % (named_ptr.name,) - align = '-1 /* unknown alignment */' - else: - size = 'sizeof(%s)' % (cname,) - align = 'offsetof(struct _cffi_align_%s, y)' % (approxname,) - comment = None - else: - size = '(size_t)-1' - align = -1 - first_field_index = -1 - comment = reason_for_not_expanding - self._lsts["struct_union"].append( - StructUnionExpr(tp.name, type_index, flags, size, align, comment, - first_field_index, c_fields)) - self._seen_struct_unions.add(tp) - - def _check_not_opaque(self, tp, location): - while isinstance(tp, model.ArrayType): - tp = tp.item - if isinstance(tp, model.StructOrUnion) and tp.fldtypes is None: - raise TypeError( - "%s is of an opaque type (not declared in cdef())" % location) - - def _add_missing_struct_unions(self): - # not very nice, but some struct declarations might be missing - # because they don't have any known C name. Check that they are - # not partial (we can't complete or verify them!) and emit them - # anonymously. - lst = list(self._struct_unions.items()) - lst.sort(key=lambda tp_order: tp_order[1]) - for tp, order in lst: - if tp not in self._seen_struct_unions: - if tp.partial: - raise NotImplementedError("internal inconsistency: %r is " - "partial but was not seen at " - "this point" % (tp,)) - if tp.name.startswith('$') and tp.name[1:].isdigit(): - approxname = tp.name[1:] - elif tp.name == '_IO_FILE' and tp.forcename == 'FILE': - approxname = 'FILE' - self._typedef_ctx(tp, 'FILE') - else: - raise NotImplementedError("internal inconsistency: %r" % - (tp,)) - self._struct_ctx(tp, None, approxname) - - def _generate_cpy_struct_collecttype(self, tp, name): - self._struct_collecttype(tp) - _generate_cpy_union_collecttype = _generate_cpy_struct_collecttype - - def _struct_names(self, tp): - cname = tp.get_c_name('') - if ' ' in cname: - return cname, cname.replace(' ', '_') - else: - return cname, '_' + cname - - def _generate_cpy_struct_decl(self, tp, name): - self._struct_decl(tp, *self._struct_names(tp)) - _generate_cpy_union_decl = _generate_cpy_struct_decl - - def _generate_cpy_struct_ctx(self, tp, name): - self._struct_ctx(tp, *self._struct_names(tp)) - _generate_cpy_union_ctx = _generate_cpy_struct_ctx - - # ---------- - # 'anonymous' declarations. These are produced for anonymous structs - # or unions; the 'name' is obtained by a typedef. - - def _generate_cpy_anonymous_collecttype(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_cpy_enum_collecttype(tp, name) - else: - self._struct_collecttype(tp) - - def _generate_cpy_anonymous_decl(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_cpy_enum_decl(tp) - else: - self._struct_decl(tp, name, 'typedef_' + name) - - def _generate_cpy_anonymous_ctx(self, tp, name): - if isinstance(tp, model.EnumType): - self._enum_ctx(tp, name) - else: - self._struct_ctx(tp, name, 'typedef_' + name) - - # ---------- - # constants, declared with "static const ..." - - def _generate_cpy_const(self, is_int, name, tp=None, category='const', - check_value=None): - if (category, name) in self._seen_constants: - raise VerificationError( - "duplicate declaration of %s '%s'" % (category, name)) - self._seen_constants.add((category, name)) - # - prnt = self._prnt - funcname = '_cffi_%s_%s' % (category, name) - if is_int: - prnt('static int %s(unsigned long long *o)' % funcname) - prnt('{') - prnt(' int n = (%s) <= 0;' % (name,)) - prnt(' *o = (unsigned long long)((%s) | 0);' - ' /* check that %s is an integer */' % (name, name)) - if check_value is not None: - if check_value > 0: - check_value = '%dU' % (check_value,) - prnt(' if (!_cffi_check_int(*o, n, %s))' % (check_value,)) - prnt(' n |= 2;') - prnt(' return n;') - prnt('}') - else: - assert check_value is None - prnt('static void %s(char *o)' % funcname) - prnt('{') - prnt(' *(%s)o = %s;' % (tp.get_c_name('*'), name)) - prnt('}') - prnt() - - def _generate_cpy_constant_collecttype(self, tp, name): - is_int = tp.is_integer_type() - if not is_int or self.target_is_python: - self._do_collect_type(tp) - - def _generate_cpy_constant_decl(self, tp, name): - is_int = tp.is_integer_type() - self._generate_cpy_const(is_int, name, tp) - - def _generate_cpy_constant_ctx(self, tp, name): - if not self.target_is_python and tp.is_integer_type(): - type_op = CffiOp(OP_CONSTANT_INT, -1) - else: - if self.target_is_python: - const_kind = OP_DLOPEN_CONST - else: - const_kind = OP_CONSTANT - type_index = self._typesdict[tp] - type_op = CffiOp(const_kind, type_index) - self._lsts["global"].append( - GlobalExpr(name, '_cffi_const_%s' % name, type_op)) - - # ---------- - # enums - - def _generate_cpy_enum_collecttype(self, tp, name): - self._do_collect_type(tp) - - def _generate_cpy_enum_decl(self, tp, name=None): - for enumerator in tp.enumerators: - self._generate_cpy_const(True, enumerator) - - def _enum_ctx(self, tp, cname): - type_index = self._typesdict[tp] - type_op = CffiOp(OP_ENUM, -1) - if self.target_is_python: - tp.check_not_partial() - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - self._lsts["global"].append( - GlobalExpr(enumerator, '_cffi_const_%s' % enumerator, type_op, - check_value=enumvalue)) - # - if cname is not None and '$' not in cname and not self.target_is_python: - size = "sizeof(%s)" % cname - signed = "((%s)-1) <= 0" % cname - else: - basetp = tp.build_baseinttype(self.ffi, []) - size = self.ffi.sizeof(basetp) - signed = int(int(self.ffi.cast(basetp, -1)) < 0) - allenums = ",".join(tp.enumerators) - self._lsts["enum"].append( - EnumExpr(tp.name, type_index, size, signed, allenums)) - - def _generate_cpy_enum_ctx(self, tp, name): - self._enum_ctx(tp, tp._get_c_name()) - - # ---------- - # macros: for now only for integers - - def _generate_cpy_macro_collecttype(self, tp, name): - pass - - def _generate_cpy_macro_decl(self, tp, name): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - self._generate_cpy_const(True, name, check_value=check_value) - - def _generate_cpy_macro_ctx(self, tp, name): - if tp == '...': - if self.target_is_python: - raise VerificationError( - "cannot use the syntax '...' in '#define %s ...' when " - "using the ABI mode" % (name,)) - check_value = None - else: - check_value = tp # an integer - type_op = CffiOp(OP_CONSTANT_INT, -1) - self._lsts["global"].append( - GlobalExpr(name, '_cffi_const_%s' % name, type_op, - check_value=check_value)) - - # ---------- - # global variables - - def _global_type(self, tp, global_name): - if isinstance(tp, model.ArrayType): - actual_length = tp.length - if actual_length == '...': - actual_length = '_cffi_array_len(%s)' % (global_name,) - tp_item = self._global_type(tp.item, '%s[0]' % global_name) - tp = model.ArrayType(tp_item, actual_length) - return tp - - def _generate_cpy_variable_collecttype(self, tp, name): - self._do_collect_type(self._global_type(tp, name)) - - def _generate_cpy_variable_decl(self, tp, name): - prnt = self._prnt - tp = self._global_type(tp, name) - if isinstance(tp, model.ArrayType) and tp.length is None: - tp = tp.item - ampersand = '' - else: - ampersand = '&' - # This code assumes that casts from "tp *" to "void *" is a - # no-op, i.e. a function that returns a "tp *" can be called - # as if it returned a "void *". This should be generally true - # on any modern machine. The only exception to that rule (on - # uncommon architectures, and as far as I can tell) might be - # if 'tp' were a function type, but that is not possible here. - # (If 'tp' is a function _pointer_ type, then casts from "fn_t - # **" to "void *" are again no-ops, as far as I can tell.) - decl = '*_cffi_var_%s(void)' % (name,) - prnt('static ' + tp.get_c_name(decl, quals=self._current_quals)) - prnt('{') - prnt(' return %s(%s);' % (ampersand, name)) - prnt('}') - prnt() - - def _generate_cpy_variable_ctx(self, tp, name): - tp = self._global_type(tp, name) - type_index = self._typesdict[tp] - if self.target_is_python: - op = OP_GLOBAL_VAR - else: - op = OP_GLOBAL_VAR_F - self._lsts["global"].append( - GlobalExpr(name, '_cffi_var_%s' % name, CffiOp(op, type_index))) - - # ---------- - # extern "Python" - - def _generate_cpy_extern_python_collecttype(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - self._do_collect_type(tp) - _generate_cpy_dllexport_python_collecttype = \ - _generate_cpy_extern_python_plus_c_collecttype = \ - _generate_cpy_extern_python_collecttype - - def _extern_python_decl(self, tp, name, tag_and_space): - prnt = self._prnt - if isinstance(tp.result, model.VoidType): - size_of_result = '0' - else: - context = 'result of %s' % name - size_of_result = '(int)sizeof(%s)' % ( - tp.result.get_c_name('', context),) - prnt('static struct _cffi_externpy_s _cffi_externpy__%s =' % name) - prnt(' { "%s.%s", %s, 0, 0 };' % ( - self.module_name, name, size_of_result)) - prnt() - # - arguments = [] - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - arg = type.get_c_name(' a%d' % i, context) - arguments.append(arg) - # - repr_arguments = ', '.join(arguments) - repr_arguments = repr_arguments or 'void' - name_and_arguments = '%s(%s)' % (name, repr_arguments) - if tp.abi == "__stdcall": - name_and_arguments = '_cffi_stdcall ' + name_and_arguments - # - def may_need_128_bits(tp): - return (isinstance(tp, model.PrimitiveType) and - tp.name == 'long double') - # - size_of_a = max(len(tp.args)*8, 8) - if may_need_128_bits(tp.result): - size_of_a = max(size_of_a, 16) - if isinstance(tp.result, model.StructOrUnion): - size_of_a = 'sizeof(%s) > %d ? sizeof(%s) : %d' % ( - tp.result.get_c_name(''), size_of_a, - tp.result.get_c_name(''), size_of_a) - prnt('%s%s' % (tag_and_space, tp.result.get_c_name(name_and_arguments))) - prnt('{') - prnt(' char a[%s];' % size_of_a) - prnt(' char *p = a;') - for i, type in enumerate(tp.args): - arg = 'a%d' % i - if (isinstance(type, model.StructOrUnion) or - may_need_128_bits(type)): - arg = '&' + arg - type = model.PointerType(type) - prnt(' *(%s)(p + %d) = %s;' % (type.get_c_name('*'), i*8, arg)) - prnt(' _cffi_call_python(&_cffi_externpy__%s, p);' % name) - if not isinstance(tp.result, model.VoidType): - prnt(' return *(%s)p;' % (tp.result.get_c_name('*'),)) - prnt('}') - prnt() - self._num_externpy += 1 - - def _generate_cpy_extern_python_decl(self, tp, name): - self._extern_python_decl(tp, name, 'static ') - - def _generate_cpy_dllexport_python_decl(self, tp, name): - self._extern_python_decl(tp, name, 'CFFI_DLLEXPORT ') - - def _generate_cpy_extern_python_plus_c_decl(self, tp, name): - self._extern_python_decl(tp, name, '') - - def _generate_cpy_extern_python_ctx(self, tp, name): - if self.target_is_python: - raise VerificationError( - "cannot use 'extern \"Python\"' in the ABI mode") - if tp.ellipsis: - raise NotImplementedError("a vararg function is extern \"Python\"") - type_index = self._typesdict[tp] - type_op = CffiOp(OP_EXTERN_PYTHON, type_index) - self._lsts["global"].append( - GlobalExpr(name, '&_cffi_externpy__%s' % name, type_op, name)) - - _generate_cpy_dllexport_python_ctx = \ - _generate_cpy_extern_python_plus_c_ctx = \ - _generate_cpy_extern_python_ctx - - def _print_string_literal_in_array(self, s): - prnt = self._prnt - prnt('// # NB. this is not a string because of a size limit in MSVC') - if not isinstance(s, bytes): # unicode - s = s.encode('utf-8') # -> bytes - else: - s.decode('utf-8') # got bytes, check for valid utf-8 - try: - s.decode('ascii') - except UnicodeDecodeError: - s = b'# -*- encoding: utf8 -*-\n' + s - for line in s.splitlines(True): - comment = line - if type('//') is bytes: # python2 - line = map(ord, line) # make a list of integers - else: # python3 - # type(line) is bytes, which enumerates like a list of integers - comment = ascii(comment)[1:-1] - prnt(('// ' + comment).rstrip()) - printed_line = '' - for c in line: - if len(printed_line) >= 76: - prnt(printed_line) - printed_line = '' - printed_line += '%d,' % (c,) - prnt(printed_line) - - # ---------- - # emitting the opcodes for individual types - - def _emit_bytecode_VoidType(self, tp, index): - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, PRIM_VOID) - - def _emit_bytecode_PrimitiveType(self, tp, index): - prim_index = PRIMITIVE_TO_INDEX[tp.name] - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, prim_index) - - def _emit_bytecode_UnknownIntegerType(self, tp, index): - s = ('_cffi_prim_int(sizeof(%s), (\n' - ' ((%s)-1) | 0 /* check that %s is an integer type */\n' - ' ) <= 0)' % (tp.name, tp.name, tp.name)) - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, s) - - def _emit_bytecode_UnknownFloatType(self, tp, index): - s = ('_cffi_prim_float(sizeof(%s) *\n' - ' (((%s)1) / 2) * 2 /* integer => 0, float => 1 */\n' - ' )' % (tp.name, tp.name)) - self.cffi_types[index] = CffiOp(OP_PRIMITIVE, s) - - def _emit_bytecode_RawFunctionType(self, tp, index): - self.cffi_types[index] = CffiOp(OP_FUNCTION, self._typesdict[tp.result]) - index += 1 - for tp1 in tp.args: - realindex = self._typesdict[tp1] - if index != realindex: - if isinstance(tp1, model.PrimitiveType): - self._emit_bytecode_PrimitiveType(tp1, index) - else: - self.cffi_types[index] = CffiOp(OP_NOOP, realindex) - index += 1 - flags = int(tp.ellipsis) - if tp.abi is not None: - if tp.abi == '__stdcall': - flags |= 2 - else: - raise NotImplementedError("abi=%r" % (tp.abi,)) - self.cffi_types[index] = CffiOp(OP_FUNCTION_END, flags) - - def _emit_bytecode_PointerType(self, tp, index): - self.cffi_types[index] = CffiOp(OP_POINTER, self._typesdict[tp.totype]) - - _emit_bytecode_ConstPointerType = _emit_bytecode_PointerType - _emit_bytecode_NamedPointerType = _emit_bytecode_PointerType - - def _emit_bytecode_FunctionPtrType(self, tp, index): - raw = tp.as_raw_function() - self.cffi_types[index] = CffiOp(OP_POINTER, self._typesdict[raw]) - - def _emit_bytecode_ArrayType(self, tp, index): - item_index = self._typesdict[tp.item] - if tp.length is None: - self.cffi_types[index] = CffiOp(OP_OPEN_ARRAY, item_index) - elif tp.length == '...': - raise VerificationError( - "type %s badly placed: the '...' array length can only be " - "used on global arrays or on fields of structures" % ( - str(tp).replace('/*...*/', '...'),)) - else: - assert self.cffi_types[index + 1] == 'LEN' - self.cffi_types[index] = CffiOp(OP_ARRAY, item_index) - self.cffi_types[index + 1] = CffiOp(None, str(tp.length)) - - def _emit_bytecode_StructType(self, tp, index): - struct_index = self._struct_unions[tp] - self.cffi_types[index] = CffiOp(OP_STRUCT_UNION, struct_index) - _emit_bytecode_UnionType = _emit_bytecode_StructType - - def _emit_bytecode_EnumType(self, tp, index): - enum_index = self._enums[tp] - self.cffi_types[index] = CffiOp(OP_ENUM, enum_index) - - -if sys.version_info >= (3,): - NativeIO = io.StringIO -else: - class NativeIO(io.BytesIO): - def write(self, s): - if isinstance(s, unicode): - s = s.encode('ascii') - super(NativeIO, self).write(s) - -def _is_file_like(maybefile): - # compare to xml.etree.ElementTree._get_writer - return hasattr(maybefile, 'write') - -def _make_c_or_py_source(ffi, module_name, preamble, target_file, verbose): - if verbose: - print("generating %s" % (target_file,)) - recompiler = Recompiler(ffi, module_name, - target_is_python=(preamble is None)) - recompiler.collect_type_table() - recompiler.collect_step_tables() - if _is_file_like(target_file): - recompiler.write_source_to_f(target_file, preamble) - return True - f = NativeIO() - recompiler.write_source_to_f(f, preamble) - output = f.getvalue() - try: - with open(target_file, 'r') as f1: - if f1.read(len(output) + 1) != output: - raise IOError - if verbose: - print("(already up-to-date)") - return False # already up-to-date - except IOError: - tmp_file = '%s.~%d' % (target_file, os.getpid()) - with open(tmp_file, 'w') as f1: - f1.write(output) - try: - os.rename(tmp_file, target_file) - except OSError: - os.unlink(target_file) - os.rename(tmp_file, target_file) - return True - -def make_c_source(ffi, module_name, preamble, target_c_file, verbose=False): - assert preamble is not None - return _make_c_or_py_source(ffi, module_name, preamble, target_c_file, - verbose) - -def make_py_source(ffi, module_name, target_py_file, verbose=False): - return _make_c_or_py_source(ffi, module_name, None, target_py_file, - verbose) - -def _modname_to_file(outputdir, modname, extension): - parts = modname.split('.') - try: - os.makedirs(os.path.join(outputdir, *parts[:-1])) - except OSError: - pass - parts[-1] += extension - return os.path.join(outputdir, *parts), parts - - -# Aaargh. Distutils is not tested at all for the purpose of compiling -# DLLs that are not extension modules. Here are some hacks to work -# around that, in the _patch_for_*() functions... - -def _patch_meth(patchlist, cls, name, new_meth): - old = getattr(cls, name) - patchlist.append((cls, name, old)) - setattr(cls, name, new_meth) - return old - -def _unpatch_meths(patchlist): - for cls, name, old_meth in reversed(patchlist): - setattr(cls, name, old_meth) - -def _patch_for_embedding(patchlist): - if sys.platform == 'win32': - # we must not remove the manifest when building for embedding! - # FUTURE: this module was removed in setuptools 74; this is likely dead code and should be removed, - # since the toolchain it supports (VS2005-2008) is also long dead. - from cffi._shimmed_dist_utils import MSVCCompiler - if MSVCCompiler is not None: - _patch_meth(patchlist, MSVCCompiler, '_remove_visual_c_ref', - lambda self, manifest_file: manifest_file) - - if sys.platform == 'darwin': - # we must not make a '-bundle', but a '-dynamiclib' instead - from cffi._shimmed_dist_utils import CCompiler - def my_link_shared_object(self, *args, **kwds): - if '-bundle' in self.linker_so: - self.linker_so = list(self.linker_so) - i = self.linker_so.index('-bundle') - self.linker_so[i] = '-dynamiclib' - return old_link_shared_object(self, *args, **kwds) - old_link_shared_object = _patch_meth(patchlist, CCompiler, - 'link_shared_object', - my_link_shared_object) - -def _patch_for_target(patchlist, target): - from cffi._shimmed_dist_utils import build_ext - # if 'target' is different from '*', we need to patch some internal - # method to just return this 'target' value, instead of having it - # built from module_name - if target.endswith('.*'): - target = target[:-2] - if sys.platform == 'win32': - target += '.dll' - elif sys.platform == 'darwin': - target += '.dylib' - else: - target += '.so' - _patch_meth(patchlist, build_ext, 'get_ext_filename', - lambda self, ext_name: target) - - -def recompile(ffi, module_name, preamble, tmpdir='.', call_c_compiler=True, - c_file=None, source_extension='.c', extradir=None, - compiler_verbose=1, target=None, debug=None, - uses_ffiplatform=True, **kwds): - if not isinstance(module_name, str): - module_name = module_name.encode('ascii') - if ffi._windows_unicode: - ffi._apply_windows_unicode(kwds) - if preamble is not None: - if call_c_compiler and _is_file_like(c_file): - raise TypeError("Writing to file-like objects is not supported " - "with call_c_compiler=True") - embedding = (ffi._embedding is not None) - if embedding: - ffi._apply_embedding_fix(kwds) - if c_file is None: - c_file, parts = _modname_to_file(tmpdir, module_name, - source_extension) - if extradir: - parts = [extradir] + parts - ext_c_file = os.path.join(*parts) - else: - ext_c_file = c_file - # - if target is None: - if embedding: - target = '%s.*' % module_name - else: - target = '*' - # - if uses_ffiplatform: - ext = ffiplatform.get_extension(ext_c_file, module_name, **kwds) - else: - ext = None - updated = make_c_source(ffi, module_name, preamble, c_file, - verbose=compiler_verbose) - if call_c_compiler: - patchlist = [] - cwd = os.getcwd() - try: - if embedding: - _patch_for_embedding(patchlist) - if target != '*': - _patch_for_target(patchlist, target) - if compiler_verbose: - if tmpdir == '.': - msg = 'the current directory is' - else: - msg = 'setting the current directory to' - print('%s %r' % (msg, os.path.abspath(tmpdir))) - os.chdir(tmpdir) - outputfilename = ffiplatform.compile('.', ext, - compiler_verbose, debug) - finally: - os.chdir(cwd) - _unpatch_meths(patchlist) - return outputfilename - else: - return ext, updated - else: - if c_file is None: - c_file, _ = _modname_to_file(tmpdir, module_name, '.py') - updated = make_py_source(ffi, module_name, c_file, - verbose=compiler_verbose) - if call_c_compiler: - return c_file - else: - return None, updated - diff --git a/backend/venv/lib/python3.12/site-packages/cffi/setuptools_ext.py b/backend/venv/lib/python3.12/site-packages/cffi/setuptools_ext.py deleted file mode 100644 index 5cdd246..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/setuptools_ext.py +++ /dev/null @@ -1,229 +0,0 @@ -import os -import sys -import sysconfig - -try: - basestring -except NameError: - # Python 3.x - basestring = str - -def error(msg): - from cffi._shimmed_dist_utils import DistutilsSetupError - raise DistutilsSetupError(msg) - - -def execfile(filename, glob): - # We use execfile() (here rewritten for Python 3) instead of - # __import__() to load the build script. The problem with - # a normal import is that in some packages, the intermediate - # __init__.py files may already try to import the file that - # we are generating. - with open(filename) as f: - src = f.read() - src += '\n' # Python 2.6 compatibility - code = compile(src, filename, 'exec') - exec(code, glob, glob) - - -def add_cffi_module(dist, mod_spec): - from cffi.api import FFI - - if not isinstance(mod_spec, basestring): - error("argument to 'cffi_modules=...' must be a str or a list of str," - " not %r" % (type(mod_spec).__name__,)) - mod_spec = str(mod_spec) - try: - build_file_name, ffi_var_name = mod_spec.split(':') - except ValueError: - error("%r must be of the form 'path/build.py:ffi_variable'" % - (mod_spec,)) - if not os.path.exists(build_file_name): - ext = '' - rewritten = build_file_name.replace('.', '/') + '.py' - if os.path.exists(rewritten): - ext = ' (rewrite cffi_modules to [%r])' % ( - rewritten + ':' + ffi_var_name,) - error("%r does not name an existing file%s" % (build_file_name, ext)) - - mod_vars = {'__name__': '__cffi__', '__file__': build_file_name} - execfile(build_file_name, mod_vars) - - try: - ffi = mod_vars[ffi_var_name] - except KeyError: - error("%r: object %r not found in module" % (mod_spec, - ffi_var_name)) - if not isinstance(ffi, FFI): - ffi = ffi() # maybe it's a function instead of directly an ffi - if not isinstance(ffi, FFI): - error("%r is not an FFI instance (got %r)" % (mod_spec, - type(ffi).__name__)) - if not hasattr(ffi, '_assigned_source'): - error("%r: the set_source() method was not called" % (mod_spec,)) - module_name, source, source_extension, kwds = ffi._assigned_source - if ffi._windows_unicode: - kwds = kwds.copy() - ffi._apply_windows_unicode(kwds) - - if source is None: - _add_py_module(dist, ffi, module_name) - else: - _add_c_module(dist, ffi, module_name, source, source_extension, kwds) - -def _set_py_limited_api(Extension, kwds): - """ - Add py_limited_api to kwds if setuptools >= 26 is in use. - Do not alter the setting if it already exists. - Setuptools takes care of ignoring the flag on Python 2 and PyPy. - - CPython itself should ignore the flag in a debugging version - (by not listing .abi3.so in the extensions it supports), but - it doesn't so far, creating troubles. That's why we check - for "not hasattr(sys, 'gettotalrefcount')" (the 2.7 compatible equivalent - of 'd' not in sys.abiflags). (http://bugs.python.org/issue28401) - - On Windows, with CPython <= 3.4, it's better not to use py_limited_api - because virtualenv *still* doesn't copy PYTHON3.DLL on these versions. - Recently (2020) we started shipping only >= 3.5 wheels, though. So - we'll give it another try and set py_limited_api on Windows >= 3.5. - """ - from cffi._shimmed_dist_utils import log - from cffi import recompiler - - if ('py_limited_api' not in kwds and not hasattr(sys, 'gettotalrefcount') - and recompiler.USE_LIMITED_API): - import setuptools - try: - setuptools_major_version = int(setuptools.__version__.partition('.')[0]) - if setuptools_major_version >= 26: - kwds['py_limited_api'] = True - except ValueError: # certain development versions of setuptools - # If we don't know the version number of setuptools, we - # try to set 'py_limited_api' anyway. At worst, we get a - # warning. - kwds['py_limited_api'] = True - - if sysconfig.get_config_var("Py_GIL_DISABLED"): - if kwds.get('py_limited_api'): - log.info("Ignoring py_limited_api=True for free-threaded build.") - - kwds['py_limited_api'] = False - - if kwds.get('py_limited_api') is False: - # avoid setting Py_LIMITED_API if py_limited_api=False - # which _cffi_include.h does unless _CFFI_NO_LIMITED_API is defined - kwds.setdefault("define_macros", []).append(("_CFFI_NO_LIMITED_API", None)) - return kwds - -def _add_c_module(dist, ffi, module_name, source, source_extension, kwds): - # We are a setuptools extension. Need this build_ext for py_limited_api. - from setuptools.command.build_ext import build_ext - from cffi._shimmed_dist_utils import Extension, log, mkpath - from cffi import recompiler - - allsources = ['$PLACEHOLDER'] - allsources.extend(kwds.pop('sources', [])) - kwds = _set_py_limited_api(Extension, kwds) - ext = Extension(name=module_name, sources=allsources, **kwds) - - def make_mod(tmpdir, pre_run=None): - c_file = os.path.join(tmpdir, module_name + source_extension) - log.info("generating cffi module %r" % c_file) - mkpath(tmpdir) - # a setuptools-only, API-only hook: called with the "ext" and "ffi" - # arguments just before we turn the ffi into C code. To use it, - # subclass the 'distutils.command.build_ext.build_ext' class and - # add a method 'def pre_run(self, ext, ffi)'. - if pre_run is not None: - pre_run(ext, ffi) - updated = recompiler.make_c_source(ffi, module_name, source, c_file) - if not updated: - log.info("already up-to-date") - return c_file - - if dist.ext_modules is None: - dist.ext_modules = [] - dist.ext_modules.append(ext) - - base_class = dist.cmdclass.get('build_ext', build_ext) - class build_ext_make_mod(base_class): - def run(self): - if ext.sources[0] == '$PLACEHOLDER': - pre_run = getattr(self, 'pre_run', None) - ext.sources[0] = make_mod(self.build_temp, pre_run) - base_class.run(self) - dist.cmdclass['build_ext'] = build_ext_make_mod - # NB. multiple runs here will create multiple 'build_ext_make_mod' - # classes. Even in this case the 'build_ext' command should be - # run once; but just in case, the logic above does nothing if - # called again. - - -def _add_py_module(dist, ffi, module_name): - from setuptools.command.build_py import build_py - from setuptools.command.build_ext import build_ext - from cffi._shimmed_dist_utils import log, mkpath - from cffi import recompiler - - def generate_mod(py_file): - log.info("generating cffi module %r" % py_file) - mkpath(os.path.dirname(py_file)) - updated = recompiler.make_py_source(ffi, module_name, py_file) - if not updated: - log.info("already up-to-date") - - base_class = dist.cmdclass.get('build_py', build_py) - class build_py_make_mod(base_class): - def run(self): - base_class.run(self) - module_path = module_name.split('.') - module_path[-1] += '.py' - generate_mod(os.path.join(self.build_lib, *module_path)) - def get_source_files(self): - # This is called from 'setup.py sdist' only. Exclude - # the generate .py module in this case. - saved_py_modules = self.py_modules - try: - if saved_py_modules: - self.py_modules = [m for m in saved_py_modules - if m != module_name] - return base_class.get_source_files(self) - finally: - self.py_modules = saved_py_modules - dist.cmdclass['build_py'] = build_py_make_mod - - # distutils and setuptools have no notion I could find of a - # generated python module. If we don't add module_name to - # dist.py_modules, then things mostly work but there are some - # combination of options (--root and --record) that will miss - # the module. So we add it here, which gives a few apparently - # harmless warnings about not finding the file outside the - # build directory. - # Then we need to hack more in get_source_files(); see above. - if dist.py_modules is None: - dist.py_modules = [] - dist.py_modules.append(module_name) - - # the following is only for "build_ext -i" - base_class_2 = dist.cmdclass.get('build_ext', build_ext) - class build_ext_make_mod(base_class_2): - def run(self): - base_class_2.run(self) - if self.inplace: - # from get_ext_fullpath() in distutils/command/build_ext.py - module_path = module_name.split('.') - package = '.'.join(module_path[:-1]) - build_py = self.get_finalized_command('build_py') - package_dir = build_py.get_package_dir(package) - file_name = module_path[-1] + '.py' - generate_mod(os.path.join(package_dir, file_name)) - dist.cmdclass['build_ext'] = build_ext_make_mod - -def cffi_modules(dist, attr, value): - assert attr == 'cffi_modules' - if isinstance(value, basestring): - value = [value] - - for cffi_module in value: - add_cffi_module(dist, cffi_module) diff --git a/backend/venv/lib/python3.12/site-packages/cffi/vengine_cpy.py b/backend/venv/lib/python3.12/site-packages/cffi/vengine_cpy.py deleted file mode 100644 index 02e6a47..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/vengine_cpy.py +++ /dev/null @@ -1,1087 +0,0 @@ -# -# DEPRECATED: implementation for ffi.verify() -# -import sys -from . import model -from .error import VerificationError -from . import _imp_emulation as imp - - -class VCPythonEngine(object): - _class_key = 'x' - _gen_python_module = True - - def __init__(self, verifier): - self.verifier = verifier - self.ffi = verifier.ffi - self._struct_pending_verification = {} - self._types_of_builtin_functions = {} - - def patch_extension_kwds(self, kwds): - pass - - def find_module(self, module_name, path, so_suffixes): - try: - f, filename, descr = imp.find_module(module_name, path) - except ImportError: - return None - if f is not None: - f.close() - # Note that after a setuptools installation, there are both .py - # and .so files with the same basename. The code here relies on - # imp.find_module() locating the .so in priority. - if descr[0] not in so_suffixes: - return None - return filename - - def collect_types(self): - self._typesdict = {} - self._generate("collecttype") - - def _prnt(self, what=''): - self._f.write(what + '\n') - - def _gettypenum(self, type): - # a KeyError here is a bug. please report it! :-) - return self._typesdict[type] - - def _do_collect_type(self, tp): - if ((not isinstance(tp, model.PrimitiveType) - or tp.name == 'long double') - and tp not in self._typesdict): - num = len(self._typesdict) - self._typesdict[tp] = num - - def write_source_to_f(self): - self.collect_types() - # - # The new module will have a _cffi_setup() function that receives - # objects from the ffi world, and that calls some setup code in - # the module. This setup code is split in several independent - # functions, e.g. one per constant. The functions are "chained" - # by ending in a tail call to each other. - # - # This is further split in two chained lists, depending on if we - # can do it at import-time or if we must wait for _cffi_setup() to - # provide us with the objects. This is needed because we - # need the values of the enum constants in order to build the - # that we may have to pass to _cffi_setup(). - # - # The following two 'chained_list_constants' items contains - # the head of these two chained lists, as a string that gives the - # call to do, if any. - self._chained_list_constants = ['((void)lib,0)', '((void)lib,0)'] - # - prnt = self._prnt - # first paste some standard set of lines that are mostly '#define' - prnt(cffimod_header) - prnt() - # then paste the C source given by the user, verbatim. - prnt(self.verifier.preamble) - prnt() - # - # call generate_cpy_xxx_decl(), for every xxx found from - # ffi._parser._declarations. This generates all the functions. - self._generate("decl") - # - # implement the function _cffi_setup_custom() as calling the - # head of the chained list. - self._generate_setup_custom() - prnt() - # - # produce the method table, including the entries for the - # generated Python->C function wrappers, which are done - # by generate_cpy_function_method(). - prnt('static PyMethodDef _cffi_methods[] = {') - self._generate("method") - prnt(' {"_cffi_setup", _cffi_setup, METH_VARARGS, NULL},') - prnt(' {NULL, NULL, 0, NULL} /* Sentinel */') - prnt('};') - prnt() - # - # standard init. - modname = self.verifier.get_module_name() - constants = self._chained_list_constants[False] - prnt('#if PY_MAJOR_VERSION >= 3') - prnt() - prnt('static struct PyModuleDef _cffi_module_def = {') - prnt(' PyModuleDef_HEAD_INIT,') - prnt(' "%s",' % modname) - prnt(' NULL,') - prnt(' -1,') - prnt(' _cffi_methods,') - prnt(' NULL, NULL, NULL, NULL') - prnt('};') - prnt() - prnt('PyMODINIT_FUNC') - prnt('PyInit_%s(void)' % modname) - prnt('{') - prnt(' PyObject *lib;') - prnt(' lib = PyModule_Create(&_cffi_module_def);') - prnt(' if (lib == NULL)') - prnt(' return NULL;') - prnt(' if (%s < 0 || _cffi_init() < 0) {' % (constants,)) - prnt(' Py_DECREF(lib);') - prnt(' return NULL;') - prnt(' }') - prnt('#if Py_GIL_DISABLED') - prnt(' PyUnstable_Module_SetGIL(lib, Py_MOD_GIL_NOT_USED);') - prnt('#endif') - prnt(' return lib;') - prnt('}') - prnt() - prnt('#else') - prnt() - prnt('PyMODINIT_FUNC') - prnt('init%s(void)' % modname) - prnt('{') - prnt(' PyObject *lib;') - prnt(' lib = Py_InitModule("%s", _cffi_methods);' % modname) - prnt(' if (lib == NULL)') - prnt(' return;') - prnt(' if (%s < 0 || _cffi_init() < 0)' % (constants,)) - prnt(' return;') - prnt(' return;') - prnt('}') - prnt() - prnt('#endif') - - def load_library(self, flags=None): - # XXX review all usages of 'self' here! - # import it as a new extension module - imp.acquire_lock() - try: - if hasattr(sys, "getdlopenflags"): - previous_flags = sys.getdlopenflags() - try: - if hasattr(sys, "setdlopenflags") and flags is not None: - sys.setdlopenflags(flags) - module = imp.load_dynamic(self.verifier.get_module_name(), - self.verifier.modulefilename) - except ImportError as e: - error = "importing %r: %s" % (self.verifier.modulefilename, e) - raise VerificationError(error) - finally: - if hasattr(sys, "setdlopenflags"): - sys.setdlopenflags(previous_flags) - finally: - imp.release_lock() - # - # call loading_cpy_struct() to get the struct layout inferred by - # the C compiler - self._load(module, 'loading') - # - # the C code will need the objects. Collect them in - # order in a list. - revmapping = dict([(value, key) - for (key, value) in self._typesdict.items()]) - lst = [revmapping[i] for i in range(len(revmapping))] - lst = list(map(self.ffi._get_cached_btype, lst)) - # - # build the FFILibrary class and instance and call _cffi_setup(). - # this will set up some fields like '_cffi_types', and only then - # it will invoke the chained list of functions that will really - # build (notably) the constant objects, as if they are - # pointers, and store them as attributes on the 'library' object. - class FFILibrary(object): - _cffi_python_module = module - _cffi_ffi = self.ffi - _cffi_dir = [] - def __dir__(self): - return FFILibrary._cffi_dir + list(self.__dict__) - library = FFILibrary() - if module._cffi_setup(lst, VerificationError, library): - import warnings - warnings.warn("reimporting %r might overwrite older definitions" - % (self.verifier.get_module_name())) - # - # finally, call the loaded_cpy_xxx() functions. This will perform - # the final adjustments, like copying the Python->C wrapper - # functions from the module to the 'library' object, and setting - # up the FFILibrary class with properties for the global C variables. - self._load(module, 'loaded', library=library) - module._cffi_original_ffi = self.ffi - module._cffi_types_of_builtin_funcs = self._types_of_builtin_functions - return library - - def _get_declarations(self): - lst = [(key, tp) for (key, (tp, qual)) in - self.ffi._parser._declarations.items()] - lst.sort() - return lst - - def _generate(self, step_name): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - try: - method = getattr(self, '_generate_cpy_%s_%s' % (kind, - step_name)) - except AttributeError: - raise VerificationError( - "not implemented in verify(): %r" % name) - try: - method(tp, realname) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _load(self, module, step_name, **kwds): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - method = getattr(self, '_%s_cpy_%s' % (step_name, kind)) - try: - method(tp, realname, module, **kwds) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _generate_nothing(self, tp, name): - pass - - def _loaded_noop(self, tp, name, module, **kwds): - pass - - # ---------- - - def _convert_funcarg_to_c(self, tp, fromvar, tovar, errcode): - extraarg = '' - if isinstance(tp, model.PrimitiveType): - if tp.is_integer_type() and tp.name != '_Bool': - converter = '_cffi_to_c_int' - extraarg = ', %s' % tp.name - elif tp.is_complex_type(): - raise VerificationError( - "not implemented in verify(): complex types") - else: - converter = '(%s)_cffi_to_c_%s' % (tp.get_c_name(''), - tp.name.replace(' ', '_')) - errvalue = '-1' - # - elif isinstance(tp, model.PointerType): - self._convert_funcarg_to_c_ptr_or_array(tp, fromvar, - tovar, errcode) - return - # - elif isinstance(tp, (model.StructOrUnion, model.EnumType)): - # a struct (not a struct pointer) as a function argument - self._prnt(' if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)' - % (tovar, self._gettypenum(tp), fromvar)) - self._prnt(' %s;' % errcode) - return - # - elif isinstance(tp, model.FunctionPtrType): - converter = '(%s)_cffi_to_c_pointer' % tp.get_c_name('') - extraarg = ', _cffi_type(%d)' % self._gettypenum(tp) - errvalue = 'NULL' - # - else: - raise NotImplementedError(tp) - # - self._prnt(' %s = %s(%s%s);' % (tovar, converter, fromvar, extraarg)) - self._prnt(' if (%s == (%s)%s && PyErr_Occurred())' % ( - tovar, tp.get_c_name(''), errvalue)) - self._prnt(' %s;' % errcode) - - def _extra_local_variables(self, tp, localvars, freelines): - if isinstance(tp, model.PointerType): - localvars.add('Py_ssize_t datasize') - localvars.add('struct _cffi_freeme_s *large_args_free = NULL') - freelines.add('if (large_args_free != NULL)' - ' _cffi_free_array_arguments(large_args_free);') - - def _convert_funcarg_to_c_ptr_or_array(self, tp, fromvar, tovar, errcode): - self._prnt(' datasize = _cffi_prepare_pointer_call_argument(') - self._prnt(' _cffi_type(%d), %s, (char **)&%s);' % ( - self._gettypenum(tp), fromvar, tovar)) - self._prnt(' if (datasize != 0) {') - self._prnt(' %s = ((size_t)datasize) <= 640 ? ' - 'alloca((size_t)datasize) : NULL;' % (tovar,)) - self._prnt(' if (_cffi_convert_array_argument(_cffi_type(%d), %s, ' - '(char **)&%s,' % (self._gettypenum(tp), fromvar, tovar)) - self._prnt(' datasize, &large_args_free) < 0)') - self._prnt(' %s;' % errcode) - self._prnt(' }') - - def _convert_expr_from_c(self, tp, var, context): - if isinstance(tp, model.PrimitiveType): - if tp.is_integer_type() and tp.name != '_Bool': - return '_cffi_from_c_int(%s, %s)' % (var, tp.name) - elif tp.name != 'long double': - return '_cffi_from_c_%s(%s)' % (tp.name.replace(' ', '_'), var) - else: - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, (model.PointerType, model.FunctionPtrType)): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.ArrayType): - return '_cffi_from_c_pointer((char *)%s, _cffi_type(%d))' % ( - var, self._gettypenum(model.PointerType(tp.item))) - elif isinstance(tp, model.StructOrUnion): - if tp.fldnames is None: - raise TypeError("'%s' is used as %s, but is opaque" % ( - tp._get_c_name(), context)) - return '_cffi_from_c_struct((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - elif isinstance(tp, model.EnumType): - return '_cffi_from_c_deref((char *)&%s, _cffi_type(%d))' % ( - var, self._gettypenum(tp)) - else: - raise NotImplementedError(tp) - - # ---------- - # typedefs: generates no code so far - - _generate_cpy_typedef_collecttype = _generate_nothing - _generate_cpy_typedef_decl = _generate_nothing - _generate_cpy_typedef_method = _generate_nothing - _loading_cpy_typedef = _loaded_noop - _loaded_cpy_typedef = _loaded_noop - - # ---------- - # function declarations - - def _generate_cpy_function_collecttype(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - self._do_collect_type(tp) - else: - # don't call _do_collect_type(tp) in this common case, - # otherwise test_autofilled_struct_as_argument fails - for type in tp.args: - self._do_collect_type(type) - self._do_collect_type(tp.result) - - def _generate_cpy_function_decl(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - # cannot support vararg functions better than this: check for its - # exact type (including the fixed arguments), and build it as a - # constant function pointer (no CPython wrapper) - self._generate_cpy_const(False, name, tp) - return - prnt = self._prnt - numargs = len(tp.args) - if numargs == 0: - argname = 'noarg' - elif numargs == 1: - argname = 'arg0' - else: - argname = 'args' - prnt('static PyObject *') - prnt('_cffi_f_%s(PyObject *self, PyObject *%s)' % (name, argname)) - prnt('{') - # - context = 'argument of %s' % name - for i, type in enumerate(tp.args): - prnt(' %s;' % type.get_c_name(' x%d' % i, context)) - # - localvars = set() - freelines = set() - for type in tp.args: - self._extra_local_variables(type, localvars, freelines) - for decl in sorted(localvars): - prnt(' %s;' % (decl,)) - # - if not isinstance(tp.result, model.VoidType): - result_code = 'result = ' - context = 'result of %s' % name - prnt(' %s;' % tp.result.get_c_name(' result', context)) - prnt(' PyObject *pyresult;') - else: - result_code = '' - # - if len(tp.args) > 1: - rng = range(len(tp.args)) - for i in rng: - prnt(' PyObject *arg%d;' % i) - prnt() - prnt(' if (!PyArg_ParseTuple(args, "%s:%s", %s))' % ( - 'O' * numargs, name, ', '.join(['&arg%d' % i for i in rng]))) - prnt(' return NULL;') - prnt() - # - for i, type in enumerate(tp.args): - self._convert_funcarg_to_c(type, 'arg%d' % i, 'x%d' % i, - 'return NULL') - prnt() - # - prnt(' Py_BEGIN_ALLOW_THREADS') - prnt(' _cffi_restore_errno();') - prnt(' { %s%s(%s); }' % ( - result_code, name, - ', '.join(['x%d' % i for i in range(len(tp.args))]))) - prnt(' _cffi_save_errno();') - prnt(' Py_END_ALLOW_THREADS') - prnt() - # - prnt(' (void)self; /* unused */') - if numargs == 0: - prnt(' (void)noarg; /* unused */') - if result_code: - prnt(' pyresult = %s;' % - self._convert_expr_from_c(tp.result, 'result', 'result type')) - for freeline in freelines: - prnt(' ' + freeline) - prnt(' return pyresult;') - else: - for freeline in freelines: - prnt(' ' + freeline) - prnt(' Py_INCREF(Py_None);') - prnt(' return Py_None;') - prnt('}') - prnt() - - def _generate_cpy_function_method(self, tp, name): - if tp.ellipsis: - return - numargs = len(tp.args) - if numargs == 0: - meth = 'METH_NOARGS' - elif numargs == 1: - meth = 'METH_O' - else: - meth = 'METH_VARARGS' - self._prnt(' {"%s", _cffi_f_%s, %s, NULL},' % (name, name, meth)) - - _loading_cpy_function = _loaded_noop - - def _loaded_cpy_function(self, tp, name, module, library): - if tp.ellipsis: - return - func = getattr(module, name) - setattr(library, name, func) - self._types_of_builtin_functions[func] = tp - - # ---------- - # named structs - - _generate_cpy_struct_collecttype = _generate_nothing - def _generate_cpy_struct_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'struct', name) - def _generate_cpy_struct_method(self, tp, name): - self._generate_struct_or_union_method(tp, 'struct', name) - def _loading_cpy_struct(self, tp, name, module): - self._loading_struct_or_union(tp, 'struct', name, module) - def _loaded_cpy_struct(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - _generate_cpy_union_collecttype = _generate_nothing - def _generate_cpy_union_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'union', name) - def _generate_cpy_union_method(self, tp, name): - self._generate_struct_or_union_method(tp, 'union', name) - def _loading_cpy_union(self, tp, name, module): - self._loading_struct_or_union(tp, 'union', name, module) - def _loaded_cpy_union(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - def _generate_struct_or_union_decl(self, tp, prefix, name): - if tp.fldnames is None: - return # nothing to do with opaque structs - checkfuncname = '_cffi_check_%s_%s' % (prefix, name) - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - cname = ('%s %s' % (prefix, name)).strip() - # - prnt = self._prnt - prnt('static void %s(%s *p)' % (checkfuncname, cname)) - prnt('{') - prnt(' /* only to generate compile-time warnings or errors */') - prnt(' (void)p;') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if (isinstance(ftype, model.PrimitiveType) - and ftype.is_integer_type()) or fbitsize >= 0: - # accept all integers, but complain on float or double - prnt(' (void)((p->%s) << 1);' % fname) - else: - # only accept exactly the type declared. - try: - prnt(' { %s = &p->%s; (void)tmp; }' % ( - ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual), - fname)) - except VerificationError as e: - prnt(' /* %s */' % str(e)) # cannot verify it, ignore - prnt('}') - prnt('static PyObject *') - prnt('%s(PyObject *self, PyObject *noarg)' % (layoutfuncname,)) - prnt('{') - prnt(' struct _cffi_aligncheck { char x; %s y; };' % cname) - prnt(' static Py_ssize_t nums[] = {') - prnt(' sizeof(%s),' % cname) - prnt(' offsetof(struct _cffi_aligncheck, y),') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - prnt(' offsetof(%s, %s),' % (cname, fname)) - if isinstance(ftype, model.ArrayType) and ftype.length is None: - prnt(' 0, /* %s */' % ftype._get_c_name()) - else: - prnt(' sizeof(((%s *)0)->%s),' % (cname, fname)) - prnt(' -1') - prnt(' };') - prnt(' (void)self; /* unused */') - prnt(' (void)noarg; /* unused */') - prnt(' return _cffi_get_struct_layout(nums);') - prnt(' /* the next line is not executed, but compiled */') - prnt(' %s(0);' % (checkfuncname,)) - prnt('}') - prnt() - - def _generate_struct_or_union_method(self, tp, prefix, name): - if tp.fldnames is None: - return # nothing to do with opaque structs - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - self._prnt(' {"%s", %s, METH_NOARGS, NULL},' % (layoutfuncname, - layoutfuncname)) - - def _loading_struct_or_union(self, tp, prefix, name, module): - if tp.fldnames is None: - return # nothing to do with opaque structs - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - # - function = getattr(module, layoutfuncname) - layout = function() - if isinstance(tp, model.StructOrUnion) and tp.partial: - # use the function()'s sizes and offsets to guide the - # layout of the struct - totalsize = layout[0] - totalalignment = layout[1] - fieldofs = layout[2::2] - fieldsize = layout[3::2] - tp.force_flatten() - assert len(fieldofs) == len(fieldsize) == len(tp.fldnames) - tp.fixedlayout = fieldofs, fieldsize, totalsize, totalalignment - else: - cname = ('%s %s' % (prefix, name)).strip() - self._struct_pending_verification[tp] = layout, cname - - def _loaded_struct_or_union(self, tp): - if tp.fldnames is None: - return # nothing to do with opaque structs - self.ffi._get_cached_btype(tp) # force 'fixedlayout' to be considered - - if tp in self._struct_pending_verification: - # check that the layout sizes and offsets match the real ones - def check(realvalue, expectedvalue, msg): - if realvalue != expectedvalue: - raise VerificationError( - "%s (we have %d, but C compiler says %d)" - % (msg, expectedvalue, realvalue)) - ffi = self.ffi - BStruct = ffi._get_cached_btype(tp) - layout, cname = self._struct_pending_verification.pop(tp) - check(layout[0], ffi.sizeof(BStruct), "wrong total size") - check(layout[1], ffi.alignof(BStruct), "wrong total alignment") - i = 2 - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - check(layout[i], ffi.offsetof(BStruct, fname), - "wrong offset for field %r" % (fname,)) - if layout[i+1] != 0: - BField = ffi._get_cached_btype(ftype) - check(layout[i+1], ffi.sizeof(BField), - "wrong size for field %r" % (fname,)) - i += 2 - assert i == len(layout) - - # ---------- - # 'anonymous' declarations. These are produced for anonymous structs - # or unions; the 'name' is obtained by a typedef. - - _generate_cpy_anonymous_collecttype = _generate_nothing - - def _generate_cpy_anonymous_decl(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_cpy_enum_decl(tp, name, '') - else: - self._generate_struct_or_union_decl(tp, '', name) - - def _generate_cpy_anonymous_method(self, tp, name): - if not isinstance(tp, model.EnumType): - self._generate_struct_or_union_method(tp, '', name) - - def _loading_cpy_anonymous(self, tp, name, module): - if isinstance(tp, model.EnumType): - self._loading_cpy_enum(tp, name, module) - else: - self._loading_struct_or_union(tp, '', name, module) - - def _loaded_cpy_anonymous(self, tp, name, module, **kwds): - if isinstance(tp, model.EnumType): - self._loaded_cpy_enum(tp, name, module, **kwds) - else: - self._loaded_struct_or_union(tp) - - # ---------- - # constants, likely declared with '#define' - - def _generate_cpy_const(self, is_int, name, tp=None, category='const', - vartp=None, delayed=True, size_too=False, - check_value=None): - prnt = self._prnt - funcname = '_cffi_%s_%s' % (category, name) - prnt('static int %s(PyObject *lib)' % funcname) - prnt('{') - prnt(' PyObject *o;') - prnt(' int res;') - if not is_int: - prnt(' %s;' % (vartp or tp).get_c_name(' i', name)) - else: - assert category == 'const' - # - if check_value is not None: - self._check_int_constant_value(name, check_value) - # - if not is_int: - if category == 'var': - realexpr = '&' + name - else: - realexpr = name - prnt(' i = (%s);' % (realexpr,)) - prnt(' o = %s;' % (self._convert_expr_from_c(tp, 'i', - 'variable type'),)) - assert delayed - else: - prnt(' o = _cffi_from_c_int_const(%s);' % name) - prnt(' if (o == NULL)') - prnt(' return -1;') - if size_too: - prnt(' {') - prnt(' PyObject *o1 = o;') - prnt(' o = Py_BuildValue("On", o1, (Py_ssize_t)sizeof(%s));' - % (name,)) - prnt(' Py_DECREF(o1);') - prnt(' if (o == NULL)') - prnt(' return -1;') - prnt(' }') - prnt(' res = PyObject_SetAttrString(lib, "%s", o);' % name) - prnt(' Py_DECREF(o);') - prnt(' if (res < 0)') - prnt(' return -1;') - prnt(' return %s;' % self._chained_list_constants[delayed]) - self._chained_list_constants[delayed] = funcname + '(lib)' - prnt('}') - prnt() - - def _generate_cpy_constant_collecttype(self, tp, name): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - if not is_int: - self._do_collect_type(tp) - - def _generate_cpy_constant_decl(self, tp, name): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - self._generate_cpy_const(is_int, name, tp) - - _generate_cpy_constant_method = _generate_nothing - _loading_cpy_constant = _loaded_noop - _loaded_cpy_constant = _loaded_noop - - # ---------- - # enums - - def _check_int_constant_value(self, name, value, err_prefix=''): - prnt = self._prnt - if value <= 0: - prnt(' if ((%s) > 0 || (long)(%s) != %dL) {' % ( - name, name, value)) - else: - prnt(' if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {' % ( - name, name, value)) - prnt(' char buf[64];') - prnt(' if ((%s) <= 0)' % name) - prnt(' snprintf(buf, 63, "%%ld", (long)(%s));' % name) - prnt(' else') - prnt(' snprintf(buf, 63, "%%lu", (unsigned long)(%s));' % - name) - prnt(' PyErr_Format(_cffi_VerificationError,') - prnt(' "%s%s has the real value %s, not %s",') - prnt(' "%s", "%s", buf, "%d");' % ( - err_prefix, name, value)) - prnt(' return -1;') - prnt(' }') - - def _enum_funcname(self, prefix, name): - # "$enum_$1" => "___D_enum____D_1" - name = name.replace('$', '___D_') - return '_cffi_e_%s_%s' % (prefix, name) - - def _generate_cpy_enum_decl(self, tp, name, prefix='enum'): - if tp.partial: - for enumerator in tp.enumerators: - self._generate_cpy_const(True, enumerator, delayed=False) - return - # - funcname = self._enum_funcname(prefix, name) - prnt = self._prnt - prnt('static int %s(PyObject *lib)' % funcname) - prnt('{') - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - self._check_int_constant_value(enumerator, enumvalue, - "enum %s: " % name) - prnt(' return %s;' % self._chained_list_constants[True]) - self._chained_list_constants[True] = funcname + '(lib)' - prnt('}') - prnt() - - _generate_cpy_enum_collecttype = _generate_nothing - _generate_cpy_enum_method = _generate_nothing - - def _loading_cpy_enum(self, tp, name, module): - if tp.partial: - enumvalues = [getattr(module, enumerator) - for enumerator in tp.enumerators] - tp.enumvalues = tuple(enumvalues) - tp.partial_resolved = True - - def _loaded_cpy_enum(self, tp, name, module, library): - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - setattr(library, enumerator, enumvalue) - - # ---------- - # macros: for now only for integers - - def _generate_cpy_macro_decl(self, tp, name): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - self._generate_cpy_const(True, name, check_value=check_value) - - _generate_cpy_macro_collecttype = _generate_nothing - _generate_cpy_macro_method = _generate_nothing - _loading_cpy_macro = _loaded_noop - _loaded_cpy_macro = _loaded_noop - - # ---------- - # global variables - - def _generate_cpy_variable_collecttype(self, tp, name): - if isinstance(tp, model.ArrayType): - tp_ptr = model.PointerType(tp.item) - else: - tp_ptr = model.PointerType(tp) - self._do_collect_type(tp_ptr) - - def _generate_cpy_variable_decl(self, tp, name): - if isinstance(tp, model.ArrayType): - tp_ptr = model.PointerType(tp.item) - self._generate_cpy_const(False, name, tp, vartp=tp_ptr, - size_too = tp.length_is_unknown()) - else: - tp_ptr = model.PointerType(tp) - self._generate_cpy_const(False, name, tp_ptr, category='var') - - _generate_cpy_variable_method = _generate_nothing - _loading_cpy_variable = _loaded_noop - - def _loaded_cpy_variable(self, tp, name, module, library): - value = getattr(library, name) - if isinstance(tp, model.ArrayType): # int a[5] is "constant" in the - # sense that "a=..." is forbidden - if tp.length_is_unknown(): - assert isinstance(value, tuple) - (value, size) = value - BItemType = self.ffi._get_cached_btype(tp.item) - length, rest = divmod(size, self.ffi.sizeof(BItemType)) - if rest != 0: - raise VerificationError( - "bad size: %r does not seem to be an array of %s" % - (name, tp.item)) - tp = tp.resolve_length(length) - # 'value' is a which we have to replace with - # a if the N is actually known - if tp.length is not None: - BArray = self.ffi._get_cached_btype(tp) - value = self.ffi.cast(BArray, value) - setattr(library, name, value) - return - # remove ptr= from the library instance, and replace - # it by a property on the class, which reads/writes into ptr[0]. - ptr = value - delattr(library, name) - def getter(library): - return ptr[0] - def setter(library, value): - ptr[0] = value - setattr(type(library), name, property(getter, setter)) - type(library)._cffi_dir.append(name) - - # ---------- - - def _generate_setup_custom(self): - prnt = self._prnt - prnt('static int _cffi_setup_custom(PyObject *lib)') - prnt('{') - prnt(' return %s;' % self._chained_list_constants[True]) - prnt('}') - -cffimod_header = r''' -#include -#include - -/* this block of #ifs should be kept exactly identical between - c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py - and cffi/_cffi_include.h */ -#if defined(_MSC_VER) -# include /* for alloca() */ -# if _MSC_VER < 1600 /* MSVC < 2010 */ - typedef __int8 int8_t; - typedef __int16 int16_t; - typedef __int32 int32_t; - typedef __int64 int64_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; - typedef __int8 int_least8_t; - typedef __int16 int_least16_t; - typedef __int32 int_least32_t; - typedef __int64 int_least64_t; - typedef unsigned __int8 uint_least8_t; - typedef unsigned __int16 uint_least16_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int64 uint_least64_t; - typedef __int8 int_fast8_t; - typedef __int16 int_fast16_t; - typedef __int32 int_fast32_t; - typedef __int64 int_fast64_t; - typedef unsigned __int8 uint_fast8_t; - typedef unsigned __int16 uint_fast16_t; - typedef unsigned __int32 uint_fast32_t; - typedef unsigned __int64 uint_fast64_t; - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; -# else -# include -# endif -# if _MSC_VER < 1800 /* MSVC < 2013 */ -# ifndef __cplusplus - typedef unsigned char _Bool; -# endif -# endif -# define _cffi_float_complex_t _Fcomplex /* include for it */ -# define _cffi_double_complex_t _Dcomplex /* include for it */ -#else -# include -# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux) -# include -# endif -# define _cffi_float_complex_t float _Complex -# define _cffi_double_complex_t double _Complex -#endif - -#if PY_MAJOR_VERSION < 3 -# undef PyCapsule_CheckExact -# undef PyCapsule_GetPointer -# define PyCapsule_CheckExact(capsule) (PyCObject_Check(capsule)) -# define PyCapsule_GetPointer(capsule, name) \ - (PyCObject_AsVoidPtr(capsule)) -#endif - -#if PY_MAJOR_VERSION >= 3 -# define PyInt_FromLong PyLong_FromLong -#endif - -#define _cffi_from_c_double PyFloat_FromDouble -#define _cffi_from_c_float PyFloat_FromDouble -#define _cffi_from_c_long PyInt_FromLong -#define _cffi_from_c_ulong PyLong_FromUnsignedLong -#define _cffi_from_c_longlong PyLong_FromLongLong -#define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong -#define _cffi_from_c__Bool PyBool_FromLong - -#define _cffi_to_c_double PyFloat_AsDouble -#define _cffi_to_c_float PyFloat_AsDouble - -#define _cffi_from_c_int_const(x) \ - (((x) > 0) ? \ - ((unsigned long long)(x) <= (unsigned long long)LONG_MAX) ? \ - PyInt_FromLong((long)(x)) : \ - PyLong_FromUnsignedLongLong((unsigned long long)(x)) : \ - ((long long)(x) >= (long long)LONG_MIN) ? \ - PyInt_FromLong((long)(x)) : \ - PyLong_FromLongLong((long long)(x))) - -#define _cffi_from_c_int(x, type) \ - (((type)-1) > 0 ? /* unsigned */ \ - (sizeof(type) < sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - sizeof(type) == sizeof(long) ? \ - PyLong_FromUnsignedLong((unsigned long)x) : \ - PyLong_FromUnsignedLongLong((unsigned long long)x)) : \ - (sizeof(type) <= sizeof(long) ? \ - PyInt_FromLong((long)x) : \ - PyLong_FromLongLong((long long)x))) - -#define _cffi_to_c_int(o, type) \ - ((type)( \ - sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o) \ - : (type)_cffi_to_c_i8(o)) : \ - sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o) \ - : (type)_cffi_to_c_i16(o)) : \ - sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o) \ - : (type)_cffi_to_c_i32(o)) : \ - sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o) \ - : (type)_cffi_to_c_i64(o)) : \ - (Py_FatalError("unsupported size for type " #type), (type)0))) - -#define _cffi_to_c_i8 \ - ((int(*)(PyObject *))_cffi_exports[1]) -#define _cffi_to_c_u8 \ - ((int(*)(PyObject *))_cffi_exports[2]) -#define _cffi_to_c_i16 \ - ((int(*)(PyObject *))_cffi_exports[3]) -#define _cffi_to_c_u16 \ - ((int(*)(PyObject *))_cffi_exports[4]) -#define _cffi_to_c_i32 \ - ((int(*)(PyObject *))_cffi_exports[5]) -#define _cffi_to_c_u32 \ - ((unsigned int(*)(PyObject *))_cffi_exports[6]) -#define _cffi_to_c_i64 \ - ((long long(*)(PyObject *))_cffi_exports[7]) -#define _cffi_to_c_u64 \ - ((unsigned long long(*)(PyObject *))_cffi_exports[8]) -#define _cffi_to_c_char \ - ((int(*)(PyObject *))_cffi_exports[9]) -#define _cffi_from_c_pointer \ - ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[10]) -#define _cffi_to_c_pointer \ - ((char *(*)(PyObject *, CTypeDescrObject *))_cffi_exports[11]) -#define _cffi_get_struct_layout \ - ((PyObject *(*)(Py_ssize_t[]))_cffi_exports[12]) -#define _cffi_restore_errno \ - ((void(*)(void))_cffi_exports[13]) -#define _cffi_save_errno \ - ((void(*)(void))_cffi_exports[14]) -#define _cffi_from_c_char \ - ((PyObject *(*)(char))_cffi_exports[15]) -#define _cffi_from_c_deref \ - ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[16]) -#define _cffi_to_c \ - ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[17]) -#define _cffi_from_c_struct \ - ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[18]) -#define _cffi_to_c_wchar_t \ - ((wchar_t(*)(PyObject *))_cffi_exports[19]) -#define _cffi_from_c_wchar_t \ - ((PyObject *(*)(wchar_t))_cffi_exports[20]) -#define _cffi_to_c_long_double \ - ((long double(*)(PyObject *))_cffi_exports[21]) -#define _cffi_to_c__Bool \ - ((_Bool(*)(PyObject *))_cffi_exports[22]) -#define _cffi_prepare_pointer_call_argument \ - ((Py_ssize_t(*)(CTypeDescrObject *, PyObject *, char **))_cffi_exports[23]) -#define _cffi_convert_array_from_object \ - ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[24]) -#define _CFFI_NUM_EXPORTS 25 - -typedef struct _ctypedescr CTypeDescrObject; - -static void *_cffi_exports[_CFFI_NUM_EXPORTS]; -static PyObject *_cffi_types, *_cffi_VerificationError; - -static int _cffi_setup_custom(PyObject *lib); /* forward */ - -static PyObject *_cffi_setup(PyObject *self, PyObject *args) -{ - PyObject *library; - int was_alive = (_cffi_types != NULL); - (void)self; /* unused */ - if (!PyArg_ParseTuple(args, "OOO", &_cffi_types, &_cffi_VerificationError, - &library)) - return NULL; - Py_INCREF(_cffi_types); - Py_INCREF(_cffi_VerificationError); - if (_cffi_setup_custom(library) < 0) - return NULL; - return PyBool_FromLong(was_alive); -} - -union _cffi_union_alignment_u { - unsigned char m_char; - unsigned short m_short; - unsigned int m_int; - unsigned long m_long; - unsigned long long m_longlong; - float m_float; - double m_double; - long double m_longdouble; -}; - -struct _cffi_freeme_s { - struct _cffi_freeme_s *next; - union _cffi_union_alignment_u alignment; -}; - -#ifdef __GNUC__ - __attribute__((unused)) -#endif -static int _cffi_convert_array_argument(CTypeDescrObject *ctptr, PyObject *arg, - char **output_data, Py_ssize_t datasize, - struct _cffi_freeme_s **freeme) -{ - char *p; - if (datasize < 0) - return -1; - - p = *output_data; - if (p == NULL) { - struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc( - offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize); - if (fp == NULL) - return -1; - fp->next = *freeme; - *freeme = fp; - p = *output_data = (char *)&fp->alignment; - } - memset((void *)p, 0, (size_t)datasize); - return _cffi_convert_array_from_object(p, ctptr, arg); -} - -#ifdef __GNUC__ - __attribute__((unused)) -#endif -static void _cffi_free_array_arguments(struct _cffi_freeme_s *freeme) -{ - do { - void *p = (void *)freeme; - freeme = freeme->next; - PyObject_Free(p); - } while (freeme != NULL); -} - -static int _cffi_init(void) -{ - PyObject *module, *c_api_object = NULL; - - module = PyImport_ImportModule("_cffi_backend"); - if (module == NULL) - goto failure; - - c_api_object = PyObject_GetAttrString(module, "_C_API"); - if (c_api_object == NULL) - goto failure; - if (!PyCapsule_CheckExact(c_api_object)) { - PyErr_SetNone(PyExc_ImportError); - goto failure; - } - memcpy(_cffi_exports, PyCapsule_GetPointer(c_api_object, "cffi"), - _CFFI_NUM_EXPORTS * sizeof(void *)); - - Py_DECREF(module); - Py_DECREF(c_api_object); - return 0; - - failure: - Py_XDECREF(module); - Py_XDECREF(c_api_object); - return -1; -} - -#define _cffi_type(num) ((CTypeDescrObject *)PyList_GET_ITEM(_cffi_types, num)) - -/**********/ -''' diff --git a/backend/venv/lib/python3.12/site-packages/cffi/vengine_gen.py b/backend/venv/lib/python3.12/site-packages/cffi/vengine_gen.py deleted file mode 100644 index bffc821..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/vengine_gen.py +++ /dev/null @@ -1,679 +0,0 @@ -# -# DEPRECATED: implementation for ffi.verify() -# -import sys, os -import types - -from . import model -from .error import VerificationError - - -class VGenericEngine(object): - _class_key = 'g' - _gen_python_module = False - - def __init__(self, verifier): - self.verifier = verifier - self.ffi = verifier.ffi - self.export_symbols = [] - self._struct_pending_verification = {} - - def patch_extension_kwds(self, kwds): - # add 'export_symbols' to the dictionary. Note that we add the - # list before filling it. When we fill it, it will thus also show - # up in kwds['export_symbols']. - kwds.setdefault('export_symbols', self.export_symbols) - - def find_module(self, module_name, path, so_suffixes): - for so_suffix in so_suffixes: - basename = module_name + so_suffix - if path is None: - path = sys.path - for dirname in path: - filename = os.path.join(dirname, basename) - if os.path.isfile(filename): - return filename - - def collect_types(self): - pass # not needed in the generic engine - - def _prnt(self, what=''): - self._f.write(what + '\n') - - def write_source_to_f(self): - prnt = self._prnt - # first paste some standard set of lines that are mostly '#include' - prnt(cffimod_header) - # then paste the C source given by the user, verbatim. - prnt(self.verifier.preamble) - # - # call generate_gen_xxx_decl(), for every xxx found from - # ffi._parser._declarations. This generates all the functions. - self._generate('decl') - # - # on Windows, distutils insists on putting init_cffi_xyz in - # 'export_symbols', so instead of fighting it, just give up and - # give it one - if sys.platform == 'win32': - if sys.version_info >= (3,): - prefix = 'PyInit_' - else: - prefix = 'init' - modname = self.verifier.get_module_name() - prnt("void %s%s(void) { }\n" % (prefix, modname)) - - def load_library(self, flags=0): - # import it with the CFFI backend - backend = self.ffi._backend - # needs to make a path that contains '/', on Posix - filename = os.path.join(os.curdir, self.verifier.modulefilename) - module = backend.load_library(filename, flags) - # - # call loading_gen_struct() to get the struct layout inferred by - # the C compiler - self._load(module, 'loading') - - # build the FFILibrary class and instance, this is a module subclass - # because modules are expected to have usually-constant-attributes and - # in PyPy this means the JIT is able to treat attributes as constant, - # which we want. - class FFILibrary(types.ModuleType): - _cffi_generic_module = module - _cffi_ffi = self.ffi - _cffi_dir = [] - def __dir__(self): - return FFILibrary._cffi_dir - library = FFILibrary("") - # - # finally, call the loaded_gen_xxx() functions. This will set - # up the 'library' object. - self._load(module, 'loaded', library=library) - return library - - def _get_declarations(self): - lst = [(key, tp) for (key, (tp, qual)) in - self.ffi._parser._declarations.items()] - lst.sort() - return lst - - def _generate(self, step_name): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - try: - method = getattr(self, '_generate_gen_%s_%s' % (kind, - step_name)) - except AttributeError: - raise VerificationError( - "not implemented in verify(): %r" % name) - try: - method(tp, realname) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _load(self, module, step_name, **kwds): - for name, tp in self._get_declarations(): - kind, realname = name.split(' ', 1) - method = getattr(self, '_%s_gen_%s' % (step_name, kind)) - try: - method(tp, realname, module, **kwds) - except Exception as e: - model.attach_exception_info(e, name) - raise - - def _generate_nothing(self, tp, name): - pass - - def _loaded_noop(self, tp, name, module, **kwds): - pass - - # ---------- - # typedefs: generates no code so far - - _generate_gen_typedef_decl = _generate_nothing - _loading_gen_typedef = _loaded_noop - _loaded_gen_typedef = _loaded_noop - - # ---------- - # function declarations - - def _generate_gen_function_decl(self, tp, name): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - # cannot support vararg functions better than this: check for its - # exact type (including the fixed arguments), and build it as a - # constant function pointer (no _cffi_f_%s wrapper) - self._generate_gen_const(False, name, tp) - return - prnt = self._prnt - numargs = len(tp.args) - argnames = [] - for i, type in enumerate(tp.args): - indirection = '' - if isinstance(type, model.StructOrUnion): - indirection = '*' - argnames.append('%sx%d' % (indirection, i)) - context = 'argument of %s' % name - arglist = [type.get_c_name(' %s' % arg, context) - for type, arg in zip(tp.args, argnames)] - tpresult = tp.result - if isinstance(tpresult, model.StructOrUnion): - arglist.insert(0, tpresult.get_c_name(' *r', context)) - tpresult = model.void_type - arglist = ', '.join(arglist) or 'void' - wrappername = '_cffi_f_%s' % name - self.export_symbols.append(wrappername) - if tp.abi: - abi = tp.abi + ' ' - else: - abi = '' - funcdecl = ' %s%s(%s)' % (abi, wrappername, arglist) - context = 'result of %s' % name - prnt(tpresult.get_c_name(funcdecl, context)) - prnt('{') - # - if isinstance(tp.result, model.StructOrUnion): - result_code = '*r = ' - elif not isinstance(tp.result, model.VoidType): - result_code = 'return ' - else: - result_code = '' - prnt(' %s%s(%s);' % (result_code, name, ', '.join(argnames))) - prnt('}') - prnt() - - _loading_gen_function = _loaded_noop - - def _loaded_gen_function(self, tp, name, module, library): - assert isinstance(tp, model.FunctionPtrType) - if tp.ellipsis: - newfunction = self._load_constant(False, tp, name, module) - else: - indirections = [] - base_tp = tp - if (any(isinstance(typ, model.StructOrUnion) for typ in tp.args) - or isinstance(tp.result, model.StructOrUnion)): - indirect_args = [] - for i, typ in enumerate(tp.args): - if isinstance(typ, model.StructOrUnion): - typ = model.PointerType(typ) - indirections.append((i, typ)) - indirect_args.append(typ) - indirect_result = tp.result - if isinstance(indirect_result, model.StructOrUnion): - if indirect_result.fldtypes is None: - raise TypeError("'%s' is used as result type, " - "but is opaque" % ( - indirect_result._get_c_name(),)) - indirect_result = model.PointerType(indirect_result) - indirect_args.insert(0, indirect_result) - indirections.insert(0, ("result", indirect_result)) - indirect_result = model.void_type - tp = model.FunctionPtrType(tuple(indirect_args), - indirect_result, tp.ellipsis) - BFunc = self.ffi._get_cached_btype(tp) - wrappername = '_cffi_f_%s' % name - newfunction = module.load_function(BFunc, wrappername) - for i, typ in indirections: - newfunction = self._make_struct_wrapper(newfunction, i, typ, - base_tp) - setattr(library, name, newfunction) - type(library)._cffi_dir.append(name) - - def _make_struct_wrapper(self, oldfunc, i, tp, base_tp): - backend = self.ffi._backend - BType = self.ffi._get_cached_btype(tp) - if i == "result": - ffi = self.ffi - def newfunc(*args): - res = ffi.new(BType) - oldfunc(res, *args) - return res[0] - else: - def newfunc(*args): - args = args[:i] + (backend.newp(BType, args[i]),) + args[i+1:] - return oldfunc(*args) - newfunc._cffi_base_type = base_tp - return newfunc - - # ---------- - # named structs - - def _generate_gen_struct_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'struct', name) - - def _loading_gen_struct(self, tp, name, module): - self._loading_struct_or_union(tp, 'struct', name, module) - - def _loaded_gen_struct(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - def _generate_gen_union_decl(self, tp, name): - assert name == tp.name - self._generate_struct_or_union_decl(tp, 'union', name) - - def _loading_gen_union(self, tp, name, module): - self._loading_struct_or_union(tp, 'union', name, module) - - def _loaded_gen_union(self, tp, name, module, **kwds): - self._loaded_struct_or_union(tp) - - def _generate_struct_or_union_decl(self, tp, prefix, name): - if tp.fldnames is None: - return # nothing to do with opaque structs - checkfuncname = '_cffi_check_%s_%s' % (prefix, name) - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - cname = ('%s %s' % (prefix, name)).strip() - # - prnt = self._prnt - prnt('static void %s(%s *p)' % (checkfuncname, cname)) - prnt('{') - prnt(' /* only to generate compile-time warnings or errors */') - prnt(' (void)p;') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if (isinstance(ftype, model.PrimitiveType) - and ftype.is_integer_type()) or fbitsize >= 0: - # accept all integers, but complain on float or double - prnt(' (void)((p->%s) << 1);' % fname) - else: - # only accept exactly the type declared. - try: - prnt(' { %s = &p->%s; (void)tmp; }' % ( - ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual), - fname)) - except VerificationError as e: - prnt(' /* %s */' % str(e)) # cannot verify it, ignore - prnt('}') - self.export_symbols.append(layoutfuncname) - prnt('intptr_t %s(intptr_t i)' % (layoutfuncname,)) - prnt('{') - prnt(' struct _cffi_aligncheck { char x; %s y; };' % cname) - prnt(' static intptr_t nums[] = {') - prnt(' sizeof(%s),' % cname) - prnt(' offsetof(struct _cffi_aligncheck, y),') - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - prnt(' offsetof(%s, %s),' % (cname, fname)) - if isinstance(ftype, model.ArrayType) and ftype.length is None: - prnt(' 0, /* %s */' % ftype._get_c_name()) - else: - prnt(' sizeof(((%s *)0)->%s),' % (cname, fname)) - prnt(' -1') - prnt(' };') - prnt(' return nums[i];') - prnt(' /* the next line is not executed, but compiled */') - prnt(' %s(0);' % (checkfuncname,)) - prnt('}') - prnt() - - def _loading_struct_or_union(self, tp, prefix, name, module): - if tp.fldnames is None: - return # nothing to do with opaque structs - layoutfuncname = '_cffi_layout_%s_%s' % (prefix, name) - # - BFunc = self.ffi._typeof_locked("intptr_t(*)(intptr_t)")[0] - function = module.load_function(BFunc, layoutfuncname) - layout = [] - num = 0 - while True: - x = function(num) - if x < 0: break - layout.append(x) - num += 1 - if isinstance(tp, model.StructOrUnion) and tp.partial: - # use the function()'s sizes and offsets to guide the - # layout of the struct - totalsize = layout[0] - totalalignment = layout[1] - fieldofs = layout[2::2] - fieldsize = layout[3::2] - tp.force_flatten() - assert len(fieldofs) == len(fieldsize) == len(tp.fldnames) - tp.fixedlayout = fieldofs, fieldsize, totalsize, totalalignment - else: - cname = ('%s %s' % (prefix, name)).strip() - self._struct_pending_verification[tp] = layout, cname - - def _loaded_struct_or_union(self, tp): - if tp.fldnames is None: - return # nothing to do with opaque structs - self.ffi._get_cached_btype(tp) # force 'fixedlayout' to be considered - - if tp in self._struct_pending_verification: - # check that the layout sizes and offsets match the real ones - def check(realvalue, expectedvalue, msg): - if realvalue != expectedvalue: - raise VerificationError( - "%s (we have %d, but C compiler says %d)" - % (msg, expectedvalue, realvalue)) - ffi = self.ffi - BStruct = ffi._get_cached_btype(tp) - layout, cname = self._struct_pending_verification.pop(tp) - check(layout[0], ffi.sizeof(BStruct), "wrong total size") - check(layout[1], ffi.alignof(BStruct), "wrong total alignment") - i = 2 - for fname, ftype, fbitsize, fqual in tp.enumfields(): - if fbitsize >= 0: - continue # xxx ignore fbitsize for now - check(layout[i], ffi.offsetof(BStruct, fname), - "wrong offset for field %r" % (fname,)) - if layout[i+1] != 0: - BField = ffi._get_cached_btype(ftype) - check(layout[i+1], ffi.sizeof(BField), - "wrong size for field %r" % (fname,)) - i += 2 - assert i == len(layout) - - # ---------- - # 'anonymous' declarations. These are produced for anonymous structs - # or unions; the 'name' is obtained by a typedef. - - def _generate_gen_anonymous_decl(self, tp, name): - if isinstance(tp, model.EnumType): - self._generate_gen_enum_decl(tp, name, '') - else: - self._generate_struct_or_union_decl(tp, '', name) - - def _loading_gen_anonymous(self, tp, name, module): - if isinstance(tp, model.EnumType): - self._loading_gen_enum(tp, name, module, '') - else: - self._loading_struct_or_union(tp, '', name, module) - - def _loaded_gen_anonymous(self, tp, name, module, **kwds): - if isinstance(tp, model.EnumType): - self._loaded_gen_enum(tp, name, module, **kwds) - else: - self._loaded_struct_or_union(tp) - - # ---------- - # constants, likely declared with '#define' - - def _generate_gen_const(self, is_int, name, tp=None, category='const', - check_value=None): - prnt = self._prnt - funcname = '_cffi_%s_%s' % (category, name) - self.export_symbols.append(funcname) - if check_value is not None: - assert is_int - assert category == 'const' - prnt('int %s(char *out_error)' % funcname) - prnt('{') - self._check_int_constant_value(name, check_value) - prnt(' return 0;') - prnt('}') - elif is_int: - assert category == 'const' - prnt('int %s(long long *out_value)' % funcname) - prnt('{') - prnt(' *out_value = (long long)(%s);' % (name,)) - prnt(' return (%s) <= 0;' % (name,)) - prnt('}') - else: - assert tp is not None - assert check_value is None - if category == 'var': - ampersand = '&' - else: - ampersand = '' - extra = '' - if category == 'const' and isinstance(tp, model.StructOrUnion): - extra = 'const *' - ampersand = '&' - prnt(tp.get_c_name(' %s%s(void)' % (extra, funcname), name)) - prnt('{') - prnt(' return (%s%s);' % (ampersand, name)) - prnt('}') - prnt() - - def _generate_gen_constant_decl(self, tp, name): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - self._generate_gen_const(is_int, name, tp) - - _loading_gen_constant = _loaded_noop - - def _load_constant(self, is_int, tp, name, module, check_value=None): - funcname = '_cffi_const_%s' % name - if check_value is not None: - assert is_int - self._load_known_int_constant(module, funcname) - value = check_value - elif is_int: - BType = self.ffi._typeof_locked("long long*")[0] - BFunc = self.ffi._typeof_locked("int(*)(long long*)")[0] - function = module.load_function(BFunc, funcname) - p = self.ffi.new(BType) - negative = function(p) - value = int(p[0]) - if value < 0 and not negative: - BLongLong = self.ffi._typeof_locked("long long")[0] - value += (1 << (8*self.ffi.sizeof(BLongLong))) - else: - assert check_value is None - fntypeextra = '(*)(void)' - if isinstance(tp, model.StructOrUnion): - fntypeextra = '*' + fntypeextra - BFunc = self.ffi._typeof_locked(tp.get_c_name(fntypeextra, name))[0] - function = module.load_function(BFunc, funcname) - value = function() - if isinstance(tp, model.StructOrUnion): - value = value[0] - return value - - def _loaded_gen_constant(self, tp, name, module, library): - is_int = isinstance(tp, model.PrimitiveType) and tp.is_integer_type() - value = self._load_constant(is_int, tp, name, module) - setattr(library, name, value) - type(library)._cffi_dir.append(name) - - # ---------- - # enums - - def _check_int_constant_value(self, name, value): - prnt = self._prnt - if value <= 0: - prnt(' if ((%s) > 0 || (long)(%s) != %dL) {' % ( - name, name, value)) - else: - prnt(' if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {' % ( - name, name, value)) - prnt(' char buf[64];') - prnt(' if ((%s) <= 0)' % name) - prnt(' sprintf(buf, "%%ld", (long)(%s));' % name) - prnt(' else') - prnt(' sprintf(buf, "%%lu", (unsigned long)(%s));' % - name) - prnt(' sprintf(out_error, "%s has the real value %s, not %s",') - prnt(' "%s", buf, "%d");' % (name[:100], value)) - prnt(' return -1;') - prnt(' }') - - def _load_known_int_constant(self, module, funcname): - BType = self.ffi._typeof_locked("char[]")[0] - BFunc = self.ffi._typeof_locked("int(*)(char*)")[0] - function = module.load_function(BFunc, funcname) - p = self.ffi.new(BType, 256) - if function(p) < 0: - error = self.ffi.string(p) - if sys.version_info >= (3,): - error = str(error, 'utf-8') - raise VerificationError(error) - - def _enum_funcname(self, prefix, name): - # "$enum_$1" => "___D_enum____D_1" - name = name.replace('$', '___D_') - return '_cffi_e_%s_%s' % (prefix, name) - - def _generate_gen_enum_decl(self, tp, name, prefix='enum'): - if tp.partial: - for enumerator in tp.enumerators: - self._generate_gen_const(True, enumerator) - return - # - funcname = self._enum_funcname(prefix, name) - self.export_symbols.append(funcname) - prnt = self._prnt - prnt('int %s(char *out_error)' % funcname) - prnt('{') - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - self._check_int_constant_value(enumerator, enumvalue) - prnt(' return 0;') - prnt('}') - prnt() - - def _loading_gen_enum(self, tp, name, module, prefix='enum'): - if tp.partial: - enumvalues = [self._load_constant(True, tp, enumerator, module) - for enumerator in tp.enumerators] - tp.enumvalues = tuple(enumvalues) - tp.partial_resolved = True - else: - funcname = self._enum_funcname(prefix, name) - self._load_known_int_constant(module, funcname) - - def _loaded_gen_enum(self, tp, name, module, library): - for enumerator, enumvalue in zip(tp.enumerators, tp.enumvalues): - setattr(library, enumerator, enumvalue) - type(library)._cffi_dir.append(enumerator) - - # ---------- - # macros: for now only for integers - - def _generate_gen_macro_decl(self, tp, name): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - self._generate_gen_const(True, name, check_value=check_value) - - _loading_gen_macro = _loaded_noop - - def _loaded_gen_macro(self, tp, name, module, library): - if tp == '...': - check_value = None - else: - check_value = tp # an integer - value = self._load_constant(True, tp, name, module, - check_value=check_value) - setattr(library, name, value) - type(library)._cffi_dir.append(name) - - # ---------- - # global variables - - def _generate_gen_variable_decl(self, tp, name): - if isinstance(tp, model.ArrayType): - if tp.length_is_unknown(): - prnt = self._prnt - funcname = '_cffi_sizeof_%s' % (name,) - self.export_symbols.append(funcname) - prnt("size_t %s(void)" % funcname) - prnt("{") - prnt(" return sizeof(%s);" % (name,)) - prnt("}") - tp_ptr = model.PointerType(tp.item) - self._generate_gen_const(False, name, tp_ptr) - else: - tp_ptr = model.PointerType(tp) - self._generate_gen_const(False, name, tp_ptr, category='var') - - _loading_gen_variable = _loaded_noop - - def _loaded_gen_variable(self, tp, name, module, library): - if isinstance(tp, model.ArrayType): # int a[5] is "constant" in the - # sense that "a=..." is forbidden - if tp.length_is_unknown(): - funcname = '_cffi_sizeof_%s' % (name,) - BFunc = self.ffi._typeof_locked('size_t(*)(void)')[0] - function = module.load_function(BFunc, funcname) - size = function() - BItemType = self.ffi._get_cached_btype(tp.item) - length, rest = divmod(size, self.ffi.sizeof(BItemType)) - if rest != 0: - raise VerificationError( - "bad size: %r does not seem to be an array of %s" % - (name, tp.item)) - tp = tp.resolve_length(length) - tp_ptr = model.PointerType(tp.item) - value = self._load_constant(False, tp_ptr, name, module) - # 'value' is a which we have to replace with - # a if the N is actually known - if tp.length is not None: - BArray = self.ffi._get_cached_btype(tp) - value = self.ffi.cast(BArray, value) - setattr(library, name, value) - type(library)._cffi_dir.append(name) - return - # remove ptr= from the library instance, and replace - # it by a property on the class, which reads/writes into ptr[0]. - funcname = '_cffi_var_%s' % name - BFunc = self.ffi._typeof_locked(tp.get_c_name('*(*)(void)', name))[0] - function = module.load_function(BFunc, funcname) - ptr = function() - def getter(library): - return ptr[0] - def setter(library, value): - ptr[0] = value - setattr(type(library), name, property(getter, setter)) - type(library)._cffi_dir.append(name) - -cffimod_header = r''' -#include -#include -#include -#include -#include /* XXX for ssize_t on some platforms */ - -/* this block of #ifs should be kept exactly identical between - c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py - and cffi/_cffi_include.h */ -#if defined(_MSC_VER) -# include /* for alloca() */ -# if _MSC_VER < 1600 /* MSVC < 2010 */ - typedef __int8 int8_t; - typedef __int16 int16_t; - typedef __int32 int32_t; - typedef __int64 int64_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int64 uint64_t; - typedef __int8 int_least8_t; - typedef __int16 int_least16_t; - typedef __int32 int_least32_t; - typedef __int64 int_least64_t; - typedef unsigned __int8 uint_least8_t; - typedef unsigned __int16 uint_least16_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int64 uint_least64_t; - typedef __int8 int_fast8_t; - typedef __int16 int_fast16_t; - typedef __int32 int_fast32_t; - typedef __int64 int_fast64_t; - typedef unsigned __int8 uint_fast8_t; - typedef unsigned __int16 uint_fast16_t; - typedef unsigned __int32 uint_fast32_t; - typedef unsigned __int64 uint_fast64_t; - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; -# else -# include -# endif -# if _MSC_VER < 1800 /* MSVC < 2013 */ -# ifndef __cplusplus - typedef unsigned char _Bool; -# endif -# endif -# define _cffi_float_complex_t _Fcomplex /* include for it */ -# define _cffi_double_complex_t _Dcomplex /* include for it */ -#else -# include -# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux) -# include -# endif -# define _cffi_float_complex_t float _Complex -# define _cffi_double_complex_t double _Complex -#endif -''' diff --git a/backend/venv/lib/python3.12/site-packages/cffi/verifier.py b/backend/venv/lib/python3.12/site-packages/cffi/verifier.py deleted file mode 100644 index e392a2b..0000000 --- a/backend/venv/lib/python3.12/site-packages/cffi/verifier.py +++ /dev/null @@ -1,306 +0,0 @@ -# -# DEPRECATED: implementation for ffi.verify() -# -import sys, os, binascii, shutil, io -from . import __version_verifier_modules__ -from . import ffiplatform -from .error import VerificationError - -if sys.version_info >= (3, 3): - import importlib.machinery - def _extension_suffixes(): - return importlib.machinery.EXTENSION_SUFFIXES[:] -else: - import imp - def _extension_suffixes(): - return [suffix for suffix, _, type in imp.get_suffixes() - if type == imp.C_EXTENSION] - - -if sys.version_info >= (3,): - NativeIO = io.StringIO -else: - class NativeIO(io.BytesIO): - def write(self, s): - if isinstance(s, unicode): - s = s.encode('ascii') - super(NativeIO, self).write(s) - - -class Verifier(object): - - def __init__(self, ffi, preamble, tmpdir=None, modulename=None, - ext_package=None, tag='', force_generic_engine=False, - source_extension='.c', flags=None, relative_to=None, **kwds): - if ffi._parser._uses_new_feature: - raise VerificationError( - "feature not supported with ffi.verify(), but only " - "with ffi.set_source(): %s" % (ffi._parser._uses_new_feature,)) - self.ffi = ffi - self.preamble = preamble - if not modulename: - flattened_kwds = ffiplatform.flatten(kwds) - vengine_class = _locate_engine_class(ffi, force_generic_engine) - self._vengine = vengine_class(self) - self._vengine.patch_extension_kwds(kwds) - self.flags = flags - self.kwds = self.make_relative_to(kwds, relative_to) - # - if modulename: - if tag: - raise TypeError("can't specify both 'modulename' and 'tag'") - else: - key = '\x00'.join(['%d.%d' % sys.version_info[:2], - __version_verifier_modules__, - preamble, flattened_kwds] + - ffi._cdefsources) - if sys.version_info >= (3,): - key = key.encode('utf-8') - k1 = hex(binascii.crc32(key[0::2]) & 0xffffffff) - k1 = k1.lstrip('0x').rstrip('L') - k2 = hex(binascii.crc32(key[1::2]) & 0xffffffff) - k2 = k2.lstrip('0').rstrip('L') - modulename = '_cffi_%s_%s%s%s' % (tag, self._vengine._class_key, - k1, k2) - suffix = _get_so_suffixes()[0] - self.tmpdir = tmpdir or _caller_dir_pycache() - self.sourcefilename = os.path.join(self.tmpdir, modulename + source_extension) - self.modulefilename = os.path.join(self.tmpdir, modulename + suffix) - self.ext_package = ext_package - self._has_source = False - self._has_module = False - - def write_source(self, file=None): - """Write the C source code. It is produced in 'self.sourcefilename', - which can be tweaked beforehand.""" - with self.ffi._lock: - if self._has_source and file is None: - raise VerificationError( - "source code already written") - self._write_source(file) - - def compile_module(self): - """Write the C source code (if not done already) and compile it. - This produces a dynamic link library in 'self.modulefilename'.""" - with self.ffi._lock: - if self._has_module: - raise VerificationError("module already compiled") - if not self._has_source: - self._write_source() - self._compile_module() - - def load_library(self): - """Get a C module from this Verifier instance. - Returns an instance of a FFILibrary class that behaves like the - objects returned by ffi.dlopen(), but that delegates all - operations to the C module. If necessary, the C code is written - and compiled first. - """ - with self.ffi._lock: - if not self._has_module: - self._locate_module() - if not self._has_module: - if not self._has_source: - self._write_source() - self._compile_module() - return self._load_library() - - def get_module_name(self): - basename = os.path.basename(self.modulefilename) - # kill both the .so extension and the other .'s, as introduced - # by Python 3: 'basename.cpython-33m.so' - basename = basename.split('.', 1)[0] - # and the _d added in Python 2 debug builds --- but try to be - # conservative and not kill a legitimate _d - if basename.endswith('_d') and hasattr(sys, 'gettotalrefcount'): - basename = basename[:-2] - return basename - - def get_extension(self): - if not self._has_source: - with self.ffi._lock: - if not self._has_source: - self._write_source() - sourcename = ffiplatform.maybe_relative_path(self.sourcefilename) - modname = self.get_module_name() - return ffiplatform.get_extension(sourcename, modname, **self.kwds) - - def generates_python_module(self): - return self._vengine._gen_python_module - - def make_relative_to(self, kwds, relative_to): - if relative_to and os.path.dirname(relative_to): - dirname = os.path.dirname(relative_to) - kwds = kwds.copy() - for key in ffiplatform.LIST_OF_FILE_NAMES: - if key in kwds: - lst = kwds[key] - if not isinstance(lst, (list, tuple)): - raise TypeError("keyword '%s' should be a list or tuple" - % (key,)) - lst = [os.path.join(dirname, fn) for fn in lst] - kwds[key] = lst - return kwds - - # ---------- - - def _locate_module(self): - if not os.path.isfile(self.modulefilename): - if self.ext_package: - try: - pkg = __import__(self.ext_package, None, None, ['__doc__']) - except ImportError: - return # cannot import the package itself, give up - # (e.g. it might be called differently before installation) - path = pkg.__path__ - else: - path = None - filename = self._vengine.find_module(self.get_module_name(), path, - _get_so_suffixes()) - if filename is None: - return - self.modulefilename = filename - self._vengine.collect_types() - self._has_module = True - - def _write_source_to(self, file): - self._vengine._f = file - try: - self._vengine.write_source_to_f() - finally: - del self._vengine._f - - def _write_source(self, file=None): - if file is not None: - self._write_source_to(file) - else: - # Write our source file to an in memory file. - f = NativeIO() - self._write_source_to(f) - source_data = f.getvalue() - - # Determine if this matches the current file - if os.path.exists(self.sourcefilename): - with open(self.sourcefilename, "r") as fp: - needs_written = not (fp.read() == source_data) - else: - needs_written = True - - # Actually write the file out if it doesn't match - if needs_written: - _ensure_dir(self.sourcefilename) - with open(self.sourcefilename, "w") as fp: - fp.write(source_data) - - # Set this flag - self._has_source = True - - def _compile_module(self): - # compile this C source - tmpdir = os.path.dirname(self.sourcefilename) - outputfilename = ffiplatform.compile(tmpdir, self.get_extension()) - try: - same = ffiplatform.samefile(outputfilename, self.modulefilename) - except OSError: - same = False - if not same: - _ensure_dir(self.modulefilename) - shutil.move(outputfilename, self.modulefilename) - self._has_module = True - - def _load_library(self): - assert self._has_module - if self.flags is not None: - return self._vengine.load_library(self.flags) - else: - return self._vengine.load_library() - -# ____________________________________________________________ - -_FORCE_GENERIC_ENGINE = False # for tests - -def _locate_engine_class(ffi, force_generic_engine): - if _FORCE_GENERIC_ENGINE: - force_generic_engine = True - if not force_generic_engine: - if '__pypy__' in sys.builtin_module_names: - force_generic_engine = True - else: - try: - import _cffi_backend - except ImportError: - _cffi_backend = '?' - if ffi._backend is not _cffi_backend: - force_generic_engine = True - if force_generic_engine: - from . import vengine_gen - return vengine_gen.VGenericEngine - else: - from . import vengine_cpy - return vengine_cpy.VCPythonEngine - -# ____________________________________________________________ - -_TMPDIR = None - -def _caller_dir_pycache(): - if _TMPDIR: - return _TMPDIR - result = os.environ.get('CFFI_TMPDIR') - if result: - return result - filename = sys._getframe(2).f_code.co_filename - return os.path.abspath(os.path.join(os.path.dirname(filename), - '__pycache__')) - -def set_tmpdir(dirname): - """Set the temporary directory to use instead of __pycache__.""" - global _TMPDIR - _TMPDIR = dirname - -def cleanup_tmpdir(tmpdir=None, keep_so=False): - """Clean up the temporary directory by removing all files in it - called `_cffi_*.{c,so}` as well as the `build` subdirectory.""" - tmpdir = tmpdir or _caller_dir_pycache() - try: - filelist = os.listdir(tmpdir) - except OSError: - return - if keep_so: - suffix = '.c' # only remove .c files - else: - suffix = _get_so_suffixes()[0].lower() - for fn in filelist: - if fn.lower().startswith('_cffi_') and ( - fn.lower().endswith(suffix) or fn.lower().endswith('.c')): - try: - os.unlink(os.path.join(tmpdir, fn)) - except OSError: - pass - clean_dir = [os.path.join(tmpdir, 'build')] - for dir in clean_dir: - try: - for fn in os.listdir(dir): - fn = os.path.join(dir, fn) - if os.path.isdir(fn): - clean_dir.append(fn) - else: - os.unlink(fn) - except OSError: - pass - -def _get_so_suffixes(): - suffixes = _extension_suffixes() - if not suffixes: - # bah, no C_EXTENSION available. Occurs on pypy without cpyext - if sys.platform == 'win32': - suffixes = [".pyd"] - else: - suffixes = [".so"] - - return suffixes - -def _ensure_dir(filename): - dirname = os.path.dirname(filename) - if dirname and not os.path.isdir(dirname): - os.makedirs(dirname) diff --git a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA deleted file mode 100644 index 3f433af..0000000 --- a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/METADATA +++ /dev/null @@ -1,84 +0,0 @@ -Metadata-Version: 2.4 -Name: click -Version: 8.3.1 -Summary: Composable command line interface toolkit -Maintainer-email: Pallets -Requires-Python: >=3.10 -Description-Content-Type: text/markdown -License-Expression: BSD-3-Clause -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Typing :: Typed -License-File: LICENSE.txt -Requires-Dist: colorama; platform_system == 'Windows' -Project-URL: Changes, https://click.palletsprojects.com/page/changes/ -Project-URL: Chat, https://discord.gg/pallets -Project-URL: Documentation, https://click.palletsprojects.com/ -Project-URL: Donate, https://palletsprojects.com/donate -Project-URL: Source, https://github.com/pallets/click/ - -

- -# Click - -Click is a Python package for creating beautiful command line interfaces -in a composable way with as little code as necessary. It's the "Command -Line Interface Creation Kit". It's highly configurable but comes with -sensible defaults out of the box. - -It aims to make the process of writing command line tools quick and fun -while also preventing any frustration caused by the inability to -implement an intended CLI API. - -Click in three points: - -- Arbitrary nesting of commands -- Automatic help page generation -- Supports lazy loading of subcommands at runtime - - -## A Simple Example - -```python -import click - -@click.command() -@click.option("--count", default=1, help="Number of greetings.") -@click.option("--name", prompt="Your name", help="The person to greet.") -def hello(count, name): - """Simple program that greets NAME for a total of COUNT times.""" - for _ in range(count): - click.echo(f"Hello, {name}!") - -if __name__ == '__main__': - hello() -``` - -``` -$ python hello.py --count=3 -Your name: Click -Hello, Click! -Hello, Click! -Hello, Click! -``` - - -## Donate - -The Pallets organization develops and supports Click and other popular -packages. In order to grow the community of contributors and users, and -allow the maintainers to devote more time to the projects, [please -donate today][]. - -[please donate today]: https://palletsprojects.com/donate - -## Contributing - -See our [detailed contributing documentation][contrib] for many ways to -contribute, including reporting issues, requesting features, asking or answering -questions, and making PRs. - -[contrib]: https://palletsprojects.com/contributing/ - diff --git a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/RECORD deleted file mode 100644 index 77e5c98..0000000 --- a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/RECORD +++ /dev/null @@ -1,40 +0,0 @@ -click-8.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -click-8.3.1.dist-info/METADATA,sha256=XZeBrMAE0ghTE88SjfrSDuSyNCpBPplxJR1tbwD9oZg,2621 -click-8.3.1.dist-info/RECORD,, -click-8.3.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82 -click-8.3.1.dist-info/licenses/LICENSE.txt,sha256=morRBqOU6FO_4h9C9OctWSgZoigF2ZG18ydQKSkrZY0,1475 -click/__init__.py,sha256=6YyS1aeyknZ0LYweWozNZy0A9nZ_11wmYIhv3cbQrYo,4473 -click/__pycache__/__init__.cpython-312.pyc,, -click/__pycache__/_compat.cpython-312.pyc,, -click/__pycache__/_termui_impl.cpython-312.pyc,, -click/__pycache__/_textwrap.cpython-312.pyc,, -click/__pycache__/_utils.cpython-312.pyc,, -click/__pycache__/_winconsole.cpython-312.pyc,, -click/__pycache__/core.cpython-312.pyc,, -click/__pycache__/decorators.cpython-312.pyc,, -click/__pycache__/exceptions.cpython-312.pyc,, -click/__pycache__/formatting.cpython-312.pyc,, -click/__pycache__/globals.cpython-312.pyc,, -click/__pycache__/parser.cpython-312.pyc,, -click/__pycache__/shell_completion.cpython-312.pyc,, -click/__pycache__/termui.cpython-312.pyc,, -click/__pycache__/testing.cpython-312.pyc,, -click/__pycache__/types.cpython-312.pyc,, -click/__pycache__/utils.cpython-312.pyc,, -click/_compat.py,sha256=v3xBZkFbvA1BXPRkFfBJc6-pIwPI7345m-kQEnpVAs4,18693 -click/_termui_impl.py,sha256=rgCb3On8X5A4200rA5L6i13u5iapmFer7sru57Jy6zA,27093 -click/_textwrap.py,sha256=BOae0RQ6vg3FkNgSJyOoGzG1meGMxJ_ukWVZKx_v-0o,1400 -click/_utils.py,sha256=kZwtTf5gMuCilJJceS2iTCvRvCY-0aN5rJq8gKw7p8g,943 -click/_winconsole.py,sha256=_vxUuUaxwBhoR0vUWCNuHY8VUefiMdCIyU2SXPqoF-A,8465 -click/core.py,sha256=U6Bfxt8GkjNDqyJ0HqXvluJHtyZ4sY5USAvM1Cdq7mQ,132105 -click/decorators.py,sha256=5P7abhJtAQYp_KHgjUvhMv464ERwOzrv2enNknlwHyQ,18461 -click/exceptions.py,sha256=8utf8w6V5hJXMnO_ic1FNrtbwuEn1NUu1aDwV8UqnG4,9954 -click/formatting.py,sha256=RVfwwr0rwWNpgGr8NaHodPzkIr7_tUyVh_nDdanLMNc,9730 -click/globals.py,sha256=gM-Nh6A4M0HB_SgkaF5M4ncGGMDHc_flHXu9_oh4GEU,1923 -click/parser.py,sha256=Q31pH0FlQZEq-UXE_ABRzlygEfvxPTuZbWNh4xfXmzw,19010 -click/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -click/shell_completion.py,sha256=Cc4GQUFuWpfQBa9sF5qXeeYI7n3tI_1k6ZdSn4BZbT0,20994 -click/termui.py,sha256=hqCEjNndU-nzW08nRAkBaVgfZp_FdCA9KxfIWlKYaMc,31037 -click/testing.py,sha256=EERbzcl1br0mW0qBS9EqkknfNfXB9WQEW0ELIpkvuSs,19102 -click/types.py,sha256=ek54BNSFwPKsqtfT7jsqcc4WHui8AIFVMKM4oVZIXhc,39927 -click/utils.py,sha256=gCUoewdAhA-QLBUUHxrLh4uj6m7T1WjZZMNPvR0I7YA,20257 diff --git a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/WHEEL deleted file mode 100644 index d8b9936..0000000 --- a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/WHEEL +++ /dev/null @@ -1,4 +0,0 @@ -Wheel-Version: 1.0 -Generator: flit 3.12.0 -Root-Is-Purelib: true -Tag: py3-none-any diff --git a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt b/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt deleted file mode 100644 index d12a849..0000000 --- a/backend/venv/lib/python3.12/site-packages/click-8.3.1.dist-info/licenses/LICENSE.txt +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2014 Pallets - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/venv/lib/python3.12/site-packages/click/__init__.py b/backend/venv/lib/python3.12/site-packages/click/__init__.py deleted file mode 100644 index 1aa547c..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/__init__.py +++ /dev/null @@ -1,123 +0,0 @@ -""" -Click is a simple Python module inspired by the stdlib optparse to make -writing command line scripts fun. Unlike other modules, it's based -around a simple API that does not come with too much magic and is -composable. -""" - -from __future__ import annotations - -from .core import Argument as Argument -from .core import Command as Command -from .core import CommandCollection as CommandCollection -from .core import Context as Context -from .core import Group as Group -from .core import Option as Option -from .core import Parameter as Parameter -from .decorators import argument as argument -from .decorators import command as command -from .decorators import confirmation_option as confirmation_option -from .decorators import group as group -from .decorators import help_option as help_option -from .decorators import make_pass_decorator as make_pass_decorator -from .decorators import option as option -from .decorators import pass_context as pass_context -from .decorators import pass_obj as pass_obj -from .decorators import password_option as password_option -from .decorators import version_option as version_option -from .exceptions import Abort as Abort -from .exceptions import BadArgumentUsage as BadArgumentUsage -from .exceptions import BadOptionUsage as BadOptionUsage -from .exceptions import BadParameter as BadParameter -from .exceptions import ClickException as ClickException -from .exceptions import FileError as FileError -from .exceptions import MissingParameter as MissingParameter -from .exceptions import NoSuchOption as NoSuchOption -from .exceptions import UsageError as UsageError -from .formatting import HelpFormatter as HelpFormatter -from .formatting import wrap_text as wrap_text -from .globals import get_current_context as get_current_context -from .termui import clear as clear -from .termui import confirm as confirm -from .termui import echo_via_pager as echo_via_pager -from .termui import edit as edit -from .termui import getchar as getchar -from .termui import launch as launch -from .termui import pause as pause -from .termui import progressbar as progressbar -from .termui import prompt as prompt -from .termui import secho as secho -from .termui import style as style -from .termui import unstyle as unstyle -from .types import BOOL as BOOL -from .types import Choice as Choice -from .types import DateTime as DateTime -from .types import File as File -from .types import FLOAT as FLOAT -from .types import FloatRange as FloatRange -from .types import INT as INT -from .types import IntRange as IntRange -from .types import ParamType as ParamType -from .types import Path as Path -from .types import STRING as STRING -from .types import Tuple as Tuple -from .types import UNPROCESSED as UNPROCESSED -from .types import UUID as UUID -from .utils import echo as echo -from .utils import format_filename as format_filename -from .utils import get_app_dir as get_app_dir -from .utils import get_binary_stream as get_binary_stream -from .utils import get_text_stream as get_text_stream -from .utils import open_file as open_file - - -def __getattr__(name: str) -> object: - import warnings - - if name == "BaseCommand": - from .core import _BaseCommand - - warnings.warn( - "'BaseCommand' is deprecated and will be removed in Click 9.0. Use" - " 'Command' instead.", - DeprecationWarning, - stacklevel=2, - ) - return _BaseCommand - - if name == "MultiCommand": - from .core import _MultiCommand - - warnings.warn( - "'MultiCommand' is deprecated and will be removed in Click 9.0. Use" - " 'Group' instead.", - DeprecationWarning, - stacklevel=2, - ) - return _MultiCommand - - if name == "OptionParser": - from .parser import _OptionParser - - warnings.warn( - "'OptionParser' is deprecated and will be removed in Click 9.0. The" - " old parser is available in 'optparse'.", - DeprecationWarning, - stacklevel=2, - ) - return _OptionParser - - if name == "__version__": - import importlib.metadata - import warnings - - warnings.warn( - "The '__version__' attribute is deprecated and will be removed in" - " Click 9.1. Use feature detection or" - " 'importlib.metadata.version(\"click\")' instead.", - DeprecationWarning, - stacklevel=2, - ) - return importlib.metadata.version("click") - - raise AttributeError(name) diff --git a/backend/venv/lib/python3.12/site-packages/click/_compat.py b/backend/venv/lib/python3.12/site-packages/click/_compat.py deleted file mode 100644 index f2726b9..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/_compat.py +++ /dev/null @@ -1,622 +0,0 @@ -from __future__ import annotations - -import codecs -import collections.abc as cabc -import io -import os -import re -import sys -import typing as t -from types import TracebackType -from weakref import WeakKeyDictionary - -CYGWIN = sys.platform.startswith("cygwin") -WIN = sys.platform.startswith("win") -auto_wrap_for_ansi: t.Callable[[t.TextIO], t.TextIO] | None = None -_ansi_re = re.compile(r"\033\[[;?0-9]*[a-zA-Z]") - - -def _make_text_stream( - stream: t.BinaryIO, - encoding: str | None, - errors: str | None, - force_readable: bool = False, - force_writable: bool = False, -) -> t.TextIO: - if encoding is None: - encoding = get_best_encoding(stream) - if errors is None: - errors = "replace" - return _NonClosingTextIOWrapper( - stream, - encoding, - errors, - line_buffering=True, - force_readable=force_readable, - force_writable=force_writable, - ) - - -def is_ascii_encoding(encoding: str) -> bool: - """Checks if a given encoding is ascii.""" - try: - return codecs.lookup(encoding).name == "ascii" - except LookupError: - return False - - -def get_best_encoding(stream: t.IO[t.Any]) -> str: - """Returns the default stream encoding if not found.""" - rv = getattr(stream, "encoding", None) or sys.getdefaultencoding() - if is_ascii_encoding(rv): - return "utf-8" - return rv - - -class _NonClosingTextIOWrapper(io.TextIOWrapper): - def __init__( - self, - stream: t.BinaryIO, - encoding: str | None, - errors: str | None, - force_readable: bool = False, - force_writable: bool = False, - **extra: t.Any, - ) -> None: - self._stream = stream = t.cast( - t.BinaryIO, _FixupStream(stream, force_readable, force_writable) - ) - super().__init__(stream, encoding, errors, **extra) - - def __del__(self) -> None: - try: - self.detach() - except Exception: - pass - - def isatty(self) -> bool: - # https://bitbucket.org/pypy/pypy/issue/1803 - return self._stream.isatty() - - -class _FixupStream: - """The new io interface needs more from streams than streams - traditionally implement. As such, this fix-up code is necessary in - some circumstances. - - The forcing of readable and writable flags are there because some tools - put badly patched objects on sys (one such offender are certain version - of jupyter notebook). - """ - - def __init__( - self, - stream: t.BinaryIO, - force_readable: bool = False, - force_writable: bool = False, - ): - self._stream = stream - self._force_readable = force_readable - self._force_writable = force_writable - - def __getattr__(self, name: str) -> t.Any: - return getattr(self._stream, name) - - def read1(self, size: int) -> bytes: - f = getattr(self._stream, "read1", None) - - if f is not None: - return t.cast(bytes, f(size)) - - return self._stream.read(size) - - def readable(self) -> bool: - if self._force_readable: - return True - x = getattr(self._stream, "readable", None) - if x is not None: - return t.cast(bool, x()) - try: - self._stream.read(0) - except Exception: - return False - return True - - def writable(self) -> bool: - if self._force_writable: - return True - x = getattr(self._stream, "writable", None) - if x is not None: - return t.cast(bool, x()) - try: - self._stream.write(b"") - except Exception: - try: - self._stream.write(b"") - except Exception: - return False - return True - - def seekable(self) -> bool: - x = getattr(self._stream, "seekable", None) - if x is not None: - return t.cast(bool, x()) - try: - self._stream.seek(self._stream.tell()) - except Exception: - return False - return True - - -def _is_binary_reader(stream: t.IO[t.Any], default: bool = False) -> bool: - try: - return isinstance(stream.read(0), bytes) - except Exception: - return default - # This happens in some cases where the stream was already - # closed. In this case, we assume the default. - - -def _is_binary_writer(stream: t.IO[t.Any], default: bool = False) -> bool: - try: - stream.write(b"") - except Exception: - try: - stream.write("") - return False - except Exception: - pass - return default - return True - - -def _find_binary_reader(stream: t.IO[t.Any]) -> t.BinaryIO | None: - # We need to figure out if the given stream is already binary. - # This can happen because the official docs recommend detaching - # the streams to get binary streams. Some code might do this, so - # we need to deal with this case explicitly. - if _is_binary_reader(stream, False): - return t.cast(t.BinaryIO, stream) - - buf = getattr(stream, "buffer", None) - - # Same situation here; this time we assume that the buffer is - # actually binary in case it's closed. - if buf is not None and _is_binary_reader(buf, True): - return t.cast(t.BinaryIO, buf) - - return None - - -def _find_binary_writer(stream: t.IO[t.Any]) -> t.BinaryIO | None: - # We need to figure out if the given stream is already binary. - # This can happen because the official docs recommend detaching - # the streams to get binary streams. Some code might do this, so - # we need to deal with this case explicitly. - if _is_binary_writer(stream, False): - return t.cast(t.BinaryIO, stream) - - buf = getattr(stream, "buffer", None) - - # Same situation here; this time we assume that the buffer is - # actually binary in case it's closed. - if buf is not None and _is_binary_writer(buf, True): - return t.cast(t.BinaryIO, buf) - - return None - - -def _stream_is_misconfigured(stream: t.TextIO) -> bool: - """A stream is misconfigured if its encoding is ASCII.""" - # If the stream does not have an encoding set, we assume it's set - # to ASCII. This appears to happen in certain unittest - # environments. It's not quite clear what the correct behavior is - # but this at least will force Click to recover somehow. - return is_ascii_encoding(getattr(stream, "encoding", None) or "ascii") - - -def _is_compat_stream_attr(stream: t.TextIO, attr: str, value: str | None) -> bool: - """A stream attribute is compatible if it is equal to the - desired value or the desired value is unset and the attribute - has a value. - """ - stream_value = getattr(stream, attr, None) - return stream_value == value or (value is None and stream_value is not None) - - -def _is_compatible_text_stream( - stream: t.TextIO, encoding: str | None, errors: str | None -) -> bool: - """Check if a stream's encoding and errors attributes are - compatible with the desired values. - """ - return _is_compat_stream_attr( - stream, "encoding", encoding - ) and _is_compat_stream_attr(stream, "errors", errors) - - -def _force_correct_text_stream( - text_stream: t.IO[t.Any], - encoding: str | None, - errors: str | None, - is_binary: t.Callable[[t.IO[t.Any], bool], bool], - find_binary: t.Callable[[t.IO[t.Any]], t.BinaryIO | None], - force_readable: bool = False, - force_writable: bool = False, -) -> t.TextIO: - if is_binary(text_stream, False): - binary_reader = t.cast(t.BinaryIO, text_stream) - else: - text_stream = t.cast(t.TextIO, text_stream) - # If the stream looks compatible, and won't default to a - # misconfigured ascii encoding, return it as-is. - if _is_compatible_text_stream(text_stream, encoding, errors) and not ( - encoding is None and _stream_is_misconfigured(text_stream) - ): - return text_stream - - # Otherwise, get the underlying binary reader. - possible_binary_reader = find_binary(text_stream) - - # If that's not possible, silently use the original reader - # and get mojibake instead of exceptions. - if possible_binary_reader is None: - return text_stream - - binary_reader = possible_binary_reader - - # Default errors to replace instead of strict in order to get - # something that works. - if errors is None: - errors = "replace" - - # Wrap the binary stream in a text stream with the correct - # encoding parameters. - return _make_text_stream( - binary_reader, - encoding, - errors, - force_readable=force_readable, - force_writable=force_writable, - ) - - -def _force_correct_text_reader( - text_reader: t.IO[t.Any], - encoding: str | None, - errors: str | None, - force_readable: bool = False, -) -> t.TextIO: - return _force_correct_text_stream( - text_reader, - encoding, - errors, - _is_binary_reader, - _find_binary_reader, - force_readable=force_readable, - ) - - -def _force_correct_text_writer( - text_writer: t.IO[t.Any], - encoding: str | None, - errors: str | None, - force_writable: bool = False, -) -> t.TextIO: - return _force_correct_text_stream( - text_writer, - encoding, - errors, - _is_binary_writer, - _find_binary_writer, - force_writable=force_writable, - ) - - -def get_binary_stdin() -> t.BinaryIO: - reader = _find_binary_reader(sys.stdin) - if reader is None: - raise RuntimeError("Was not able to determine binary stream for sys.stdin.") - return reader - - -def get_binary_stdout() -> t.BinaryIO: - writer = _find_binary_writer(sys.stdout) - if writer is None: - raise RuntimeError("Was not able to determine binary stream for sys.stdout.") - return writer - - -def get_binary_stderr() -> t.BinaryIO: - writer = _find_binary_writer(sys.stderr) - if writer is None: - raise RuntimeError("Was not able to determine binary stream for sys.stderr.") - return writer - - -def get_text_stdin(encoding: str | None = None, errors: str | None = None) -> t.TextIO: - rv = _get_windows_console_stream(sys.stdin, encoding, errors) - if rv is not None: - return rv - return _force_correct_text_reader(sys.stdin, encoding, errors, force_readable=True) - - -def get_text_stdout(encoding: str | None = None, errors: str | None = None) -> t.TextIO: - rv = _get_windows_console_stream(sys.stdout, encoding, errors) - if rv is not None: - return rv - return _force_correct_text_writer(sys.stdout, encoding, errors, force_writable=True) - - -def get_text_stderr(encoding: str | None = None, errors: str | None = None) -> t.TextIO: - rv = _get_windows_console_stream(sys.stderr, encoding, errors) - if rv is not None: - return rv - return _force_correct_text_writer(sys.stderr, encoding, errors, force_writable=True) - - -def _wrap_io_open( - file: str | os.PathLike[str] | int, - mode: str, - encoding: str | None, - errors: str | None, -) -> t.IO[t.Any]: - """Handles not passing ``encoding`` and ``errors`` in binary mode.""" - if "b" in mode: - return open(file, mode) - - return open(file, mode, encoding=encoding, errors=errors) - - -def open_stream( - filename: str | os.PathLike[str], - mode: str = "r", - encoding: str | None = None, - errors: str | None = "strict", - atomic: bool = False, -) -> tuple[t.IO[t.Any], bool]: - binary = "b" in mode - filename = os.fspath(filename) - - # Standard streams first. These are simple because they ignore the - # atomic flag. Use fsdecode to handle Path("-"). - if os.fsdecode(filename) == "-": - if any(m in mode for m in ["w", "a", "x"]): - if binary: - return get_binary_stdout(), False - return get_text_stdout(encoding=encoding, errors=errors), False - if binary: - return get_binary_stdin(), False - return get_text_stdin(encoding=encoding, errors=errors), False - - # Non-atomic writes directly go out through the regular open functions. - if not atomic: - return _wrap_io_open(filename, mode, encoding, errors), True - - # Some usability stuff for atomic writes - if "a" in mode: - raise ValueError( - "Appending to an existing file is not supported, because that" - " would involve an expensive `copy`-operation to a temporary" - " file. Open the file in normal `w`-mode and copy explicitly" - " if that's what you're after." - ) - if "x" in mode: - raise ValueError("Use the `overwrite`-parameter instead.") - if "w" not in mode: - raise ValueError("Atomic writes only make sense with `w`-mode.") - - # Atomic writes are more complicated. They work by opening a file - # as a proxy in the same folder and then using the fdopen - # functionality to wrap it in a Python file. Then we wrap it in an - # atomic file that moves the file over on close. - import errno - import random - - try: - perm: int | None = os.stat(filename).st_mode - except OSError: - perm = None - - flags = os.O_RDWR | os.O_CREAT | os.O_EXCL - - if binary: - flags |= getattr(os, "O_BINARY", 0) - - while True: - tmp_filename = os.path.join( - os.path.dirname(filename), - f".__atomic-write{random.randrange(1 << 32):08x}", - ) - try: - fd = os.open(tmp_filename, flags, 0o666 if perm is None else perm) - break - except OSError as e: - if e.errno == errno.EEXIST or ( - os.name == "nt" - and e.errno == errno.EACCES - and os.path.isdir(e.filename) - and os.access(e.filename, os.W_OK) - ): - continue - raise - - if perm is not None: - os.chmod(tmp_filename, perm) # in case perm includes bits in umask - - f = _wrap_io_open(fd, mode, encoding, errors) - af = _AtomicFile(f, tmp_filename, os.path.realpath(filename)) - return t.cast(t.IO[t.Any], af), True - - -class _AtomicFile: - def __init__(self, f: t.IO[t.Any], tmp_filename: str, real_filename: str) -> None: - self._f = f - self._tmp_filename = tmp_filename - self._real_filename = real_filename - self.closed = False - - @property - def name(self) -> str: - return self._real_filename - - def close(self, delete: bool = False) -> None: - if self.closed: - return - self._f.close() - os.replace(self._tmp_filename, self._real_filename) - self.closed = True - - def __getattr__(self, name: str) -> t.Any: - return getattr(self._f, name) - - def __enter__(self) -> _AtomicFile: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - tb: TracebackType | None, - ) -> None: - self.close(delete=exc_type is not None) - - def __repr__(self) -> str: - return repr(self._f) - - -def strip_ansi(value: str) -> str: - return _ansi_re.sub("", value) - - -def _is_jupyter_kernel_output(stream: t.IO[t.Any]) -> bool: - while isinstance(stream, (_FixupStream, _NonClosingTextIOWrapper)): - stream = stream._stream - - return stream.__class__.__module__.startswith("ipykernel.") - - -def should_strip_ansi( - stream: t.IO[t.Any] | None = None, color: bool | None = None -) -> bool: - if color is None: - if stream is None: - stream = sys.stdin - return not isatty(stream) and not _is_jupyter_kernel_output(stream) - return not color - - -# On Windows, wrap the output streams with colorama to support ANSI -# color codes. -# NOTE: double check is needed so mypy does not analyze this on Linux -if sys.platform.startswith("win") and WIN: - from ._winconsole import _get_windows_console_stream - - def _get_argv_encoding() -> str: - import locale - - return locale.getpreferredencoding() - - _ansi_stream_wrappers: cabc.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() - - def auto_wrap_for_ansi(stream: t.TextIO, color: bool | None = None) -> t.TextIO: - """Support ANSI color and style codes on Windows by wrapping a - stream with colorama. - """ - try: - cached = _ansi_stream_wrappers.get(stream) - except Exception: - cached = None - - if cached is not None: - return cached - - import colorama - - strip = should_strip_ansi(stream, color) - ansi_wrapper = colorama.AnsiToWin32(stream, strip=strip) - rv = t.cast(t.TextIO, ansi_wrapper.stream) - _write = rv.write - - def _safe_write(s: str) -> int: - try: - return _write(s) - except BaseException: - ansi_wrapper.reset_all() - raise - - rv.write = _safe_write # type: ignore[method-assign] - - try: - _ansi_stream_wrappers[stream] = rv - except Exception: - pass - - return rv - -else: - - def _get_argv_encoding() -> str: - return getattr(sys.stdin, "encoding", None) or sys.getfilesystemencoding() - - def _get_windows_console_stream( - f: t.TextIO, encoding: str | None, errors: str | None - ) -> t.TextIO | None: - return None - - -def term_len(x: str) -> int: - return len(strip_ansi(x)) - - -def isatty(stream: t.IO[t.Any]) -> bool: - try: - return stream.isatty() - except Exception: - return False - - -def _make_cached_stream_func( - src_func: t.Callable[[], t.TextIO | None], - wrapper_func: t.Callable[[], t.TextIO], -) -> t.Callable[[], t.TextIO | None]: - cache: cabc.MutableMapping[t.TextIO, t.TextIO] = WeakKeyDictionary() - - def func() -> t.TextIO | None: - stream = src_func() - - if stream is None: - return None - - try: - rv = cache.get(stream) - except Exception: - rv = None - if rv is not None: - return rv - rv = wrapper_func() - try: - cache[stream] = rv - except Exception: - pass - return rv - - return func - - -_default_text_stdin = _make_cached_stream_func(lambda: sys.stdin, get_text_stdin) -_default_text_stdout = _make_cached_stream_func(lambda: sys.stdout, get_text_stdout) -_default_text_stderr = _make_cached_stream_func(lambda: sys.stderr, get_text_stderr) - - -binary_streams: cabc.Mapping[str, t.Callable[[], t.BinaryIO]] = { - "stdin": get_binary_stdin, - "stdout": get_binary_stdout, - "stderr": get_binary_stderr, -} - -text_streams: cabc.Mapping[str, t.Callable[[str | None, str | None], t.TextIO]] = { - "stdin": get_text_stdin, - "stdout": get_text_stdout, - "stderr": get_text_stderr, -} diff --git a/backend/venv/lib/python3.12/site-packages/click/_termui_impl.py b/backend/venv/lib/python3.12/site-packages/click/_termui_impl.py deleted file mode 100644 index ee8225c..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/_termui_impl.py +++ /dev/null @@ -1,852 +0,0 @@ -""" -This module contains implementations for the termui module. To keep the -import time of Click down, some infrequently used functionality is -placed in this module and only imported as needed. -""" - -from __future__ import annotations - -import collections.abc as cabc -import contextlib -import math -import os -import shlex -import sys -import time -import typing as t -from gettext import gettext as _ -from io import StringIO -from pathlib import Path -from types import TracebackType - -from ._compat import _default_text_stdout -from ._compat import CYGWIN -from ._compat import get_best_encoding -from ._compat import isatty -from ._compat import open_stream -from ._compat import strip_ansi -from ._compat import term_len -from ._compat import WIN -from .exceptions import ClickException -from .utils import echo - -V = t.TypeVar("V") - -if os.name == "nt": - BEFORE_BAR = "\r" - AFTER_BAR = "\n" -else: - BEFORE_BAR = "\r\033[?25l" - AFTER_BAR = "\033[?25h\n" - - -class ProgressBar(t.Generic[V]): - def __init__( - self, - iterable: cabc.Iterable[V] | None, - length: int | None = None, - fill_char: str = "#", - empty_char: str = " ", - bar_template: str = "%(bar)s", - info_sep: str = " ", - hidden: bool = False, - show_eta: bool = True, - show_percent: bool | None = None, - show_pos: bool = False, - item_show_func: t.Callable[[V | None], str | None] | None = None, - label: str | None = None, - file: t.TextIO | None = None, - color: bool | None = None, - update_min_steps: int = 1, - width: int = 30, - ) -> None: - self.fill_char = fill_char - self.empty_char = empty_char - self.bar_template = bar_template - self.info_sep = info_sep - self.hidden = hidden - self.show_eta = show_eta - self.show_percent = show_percent - self.show_pos = show_pos - self.item_show_func = item_show_func - self.label: str = label or "" - - if file is None: - file = _default_text_stdout() - - # There are no standard streams attached to write to. For example, - # pythonw on Windows. - if file is None: - file = StringIO() - - self.file = file - self.color = color - self.update_min_steps = update_min_steps - self._completed_intervals = 0 - self.width: int = width - self.autowidth: bool = width == 0 - - if length is None: - from operator import length_hint - - length = length_hint(iterable, -1) - - if length == -1: - length = None - if iterable is None: - if length is None: - raise TypeError("iterable or length is required") - iterable = t.cast("cabc.Iterable[V]", range(length)) - self.iter: cabc.Iterable[V] = iter(iterable) - self.length = length - self.pos: int = 0 - self.avg: list[float] = [] - self.last_eta: float - self.start: float - self.start = self.last_eta = time.time() - self.eta_known: bool = False - self.finished: bool = False - self.max_width: int | None = None - self.entered: bool = False - self.current_item: V | None = None - self._is_atty = isatty(self.file) - self._last_line: str | None = None - - def __enter__(self) -> ProgressBar[V]: - self.entered = True - self.render_progress() - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - tb: TracebackType | None, - ) -> None: - self.render_finish() - - def __iter__(self) -> cabc.Iterator[V]: - if not self.entered: - raise RuntimeError("You need to use progress bars in a with block.") - self.render_progress() - return self.generator() - - def __next__(self) -> V: - # Iteration is defined in terms of a generator function, - # returned by iter(self); use that to define next(). This works - # because `self.iter` is an iterable consumed by that generator, - # so it is re-entry safe. Calling `next(self.generator())` - # twice works and does "what you want". - return next(iter(self)) - - def render_finish(self) -> None: - if self.hidden or not self._is_atty: - return - self.file.write(AFTER_BAR) - self.file.flush() - - @property - def pct(self) -> float: - if self.finished: - return 1.0 - return min(self.pos / (float(self.length or 1) or 1), 1.0) - - @property - def time_per_iteration(self) -> float: - if not self.avg: - return 0.0 - return sum(self.avg) / float(len(self.avg)) - - @property - def eta(self) -> float: - if self.length is not None and not self.finished: - return self.time_per_iteration * (self.length - self.pos) - return 0.0 - - def format_eta(self) -> str: - if self.eta_known: - t = int(self.eta) - seconds = t % 60 - t //= 60 - minutes = t % 60 - t //= 60 - hours = t % 24 - t //= 24 - if t > 0: - return f"{t}d {hours:02}:{minutes:02}:{seconds:02}" - else: - return f"{hours:02}:{minutes:02}:{seconds:02}" - return "" - - def format_pos(self) -> str: - pos = str(self.pos) - if self.length is not None: - pos += f"/{self.length}" - return pos - - def format_pct(self) -> str: - return f"{int(self.pct * 100): 4}%"[1:] - - def format_bar(self) -> str: - if self.length is not None: - bar_length = int(self.pct * self.width) - bar = self.fill_char * bar_length - bar += self.empty_char * (self.width - bar_length) - elif self.finished: - bar = self.fill_char * self.width - else: - chars = list(self.empty_char * (self.width or 1)) - if self.time_per_iteration != 0: - chars[ - int( - (math.cos(self.pos * self.time_per_iteration) / 2.0 + 0.5) - * self.width - ) - ] = self.fill_char - bar = "".join(chars) - return bar - - def format_progress_line(self) -> str: - show_percent = self.show_percent - - info_bits = [] - if self.length is not None and show_percent is None: - show_percent = not self.show_pos - - if self.show_pos: - info_bits.append(self.format_pos()) - if show_percent: - info_bits.append(self.format_pct()) - if self.show_eta and self.eta_known and not self.finished: - info_bits.append(self.format_eta()) - if self.item_show_func is not None: - item_info = self.item_show_func(self.current_item) - if item_info is not None: - info_bits.append(item_info) - - return ( - self.bar_template - % { - "label": self.label, - "bar": self.format_bar(), - "info": self.info_sep.join(info_bits), - } - ).rstrip() - - def render_progress(self) -> None: - if self.hidden: - return - - if not self._is_atty: - # Only output the label once if the output is not a TTY. - if self._last_line != self.label: - self._last_line = self.label - echo(self.label, file=self.file, color=self.color) - return - - buf = [] - # Update width in case the terminal has been resized - if self.autowidth: - import shutil - - old_width = self.width - self.width = 0 - clutter_length = term_len(self.format_progress_line()) - new_width = max(0, shutil.get_terminal_size().columns - clutter_length) - if new_width < old_width and self.max_width is not None: - buf.append(BEFORE_BAR) - buf.append(" " * self.max_width) - self.max_width = new_width - self.width = new_width - - clear_width = self.width - if self.max_width is not None: - clear_width = self.max_width - - buf.append(BEFORE_BAR) - line = self.format_progress_line() - line_len = term_len(line) - if self.max_width is None or self.max_width < line_len: - self.max_width = line_len - - buf.append(line) - buf.append(" " * (clear_width - line_len)) - line = "".join(buf) - # Render the line only if it changed. - - if line != self._last_line: - self._last_line = line - echo(line, file=self.file, color=self.color, nl=False) - self.file.flush() - - def make_step(self, n_steps: int) -> None: - self.pos += n_steps - if self.length is not None and self.pos >= self.length: - self.finished = True - - if (time.time() - self.last_eta) < 1.0: - return - - self.last_eta = time.time() - - # self.avg is a rolling list of length <= 7 of steps where steps are - # defined as time elapsed divided by the total progress through - # self.length. - if self.pos: - step = (time.time() - self.start) / self.pos - else: - step = time.time() - self.start - - self.avg = self.avg[-6:] + [step] - - self.eta_known = self.length is not None - - def update(self, n_steps: int, current_item: V | None = None) -> None: - """Update the progress bar by advancing a specified number of - steps, and optionally set the ``current_item`` for this new - position. - - :param n_steps: Number of steps to advance. - :param current_item: Optional item to set as ``current_item`` - for the updated position. - - .. versionchanged:: 8.0 - Added the ``current_item`` optional parameter. - - .. versionchanged:: 8.0 - Only render when the number of steps meets the - ``update_min_steps`` threshold. - """ - if current_item is not None: - self.current_item = current_item - - self._completed_intervals += n_steps - - if self._completed_intervals >= self.update_min_steps: - self.make_step(self._completed_intervals) - self.render_progress() - self._completed_intervals = 0 - - def finish(self) -> None: - self.eta_known = False - self.current_item = None - self.finished = True - - def generator(self) -> cabc.Iterator[V]: - """Return a generator which yields the items added to the bar - during construction, and updates the progress bar *after* the - yielded block returns. - """ - # WARNING: the iterator interface for `ProgressBar` relies on - # this and only works because this is a simple generator which - # doesn't create or manage additional state. If this function - # changes, the impact should be evaluated both against - # `iter(bar)` and `next(bar)`. `next()` in particular may call - # `self.generator()` repeatedly, and this must remain safe in - # order for that interface to work. - if not self.entered: - raise RuntimeError("You need to use progress bars in a with block.") - - if not self._is_atty: - yield from self.iter - else: - for rv in self.iter: - self.current_item = rv - - # This allows show_item_func to be updated before the - # item is processed. Only trigger at the beginning of - # the update interval. - if self._completed_intervals == 0: - self.render_progress() - - yield rv - self.update(1) - - self.finish() - self.render_progress() - - -def pager(generator: cabc.Iterable[str], color: bool | None = None) -> None: - """Decide what method to use for paging through text.""" - stdout = _default_text_stdout() - - # There are no standard streams attached to write to. For example, - # pythonw on Windows. - if stdout is None: - stdout = StringIO() - - if not isatty(sys.stdin) or not isatty(stdout): - return _nullpager(stdout, generator, color) - - # Split and normalize the pager command into parts. - pager_cmd_parts = shlex.split(os.environ.get("PAGER", ""), posix=False) - if pager_cmd_parts: - if WIN: - if _tempfilepager(generator, pager_cmd_parts, color): - return - elif _pipepager(generator, pager_cmd_parts, color): - return - - if os.environ.get("TERM") in ("dumb", "emacs"): - return _nullpager(stdout, generator, color) - if (WIN or sys.platform.startswith("os2")) and _tempfilepager( - generator, ["more"], color - ): - return - if _pipepager(generator, ["less"], color): - return - - import tempfile - - fd, filename = tempfile.mkstemp() - os.close(fd) - try: - if _pipepager(generator, ["more"], color): - return - return _nullpager(stdout, generator, color) - finally: - os.unlink(filename) - - -def _pipepager( - generator: cabc.Iterable[str], cmd_parts: list[str], color: bool | None -) -> bool: - """Page through text by feeding it to another program. Invoking a - pager through this might support colors. - - Returns `True` if the command was found, `False` otherwise and thus another - pager should be attempted. - """ - # Split the command into the invoked CLI and its parameters. - if not cmd_parts: - return False - - import shutil - - cmd = cmd_parts[0] - cmd_params = cmd_parts[1:] - - cmd_filepath = shutil.which(cmd) - if not cmd_filepath: - return False - - # Produces a normalized absolute path string. - # multi-call binaries such as busybox derive their identity from the symlink - # less -> busybox. resolve() causes them to misbehave. (eg. less becomes busybox) - cmd_path = Path(cmd_filepath).absolute() - cmd_name = cmd_path.name - - import subprocess - - # Make a local copy of the environment to not affect the global one. - env = dict(os.environ) - - # If we're piping to less and the user hasn't decided on colors, we enable - # them by default we find the -R flag in the command line arguments. - if color is None and cmd_name == "less": - less_flags = f"{os.environ.get('LESS', '')}{' '.join(cmd_params)}" - if not less_flags: - env["LESS"] = "-R" - color = True - elif "r" in less_flags or "R" in less_flags: - color = True - - c = subprocess.Popen( - [str(cmd_path)] + cmd_params, - shell=False, - stdin=subprocess.PIPE, - env=env, - errors="replace", - text=True, - ) - assert c.stdin is not None - try: - for text in generator: - if not color: - text = strip_ansi(text) - - c.stdin.write(text) - except BrokenPipeError: - # In case the pager exited unexpectedly, ignore the broken pipe error. - pass - except Exception as e: - # In case there is an exception we want to close the pager immediately - # and let the caller handle it. - # Otherwise the pager will keep running, and the user may not notice - # the error message, or worse yet it may leave the terminal in a broken state. - c.terminate() - raise e - finally: - # We must close stdin and wait for the pager to exit before we continue - try: - c.stdin.close() - # Close implies flush, so it might throw a BrokenPipeError if the pager - # process exited already. - except BrokenPipeError: - pass - - # Less doesn't respect ^C, but catches it for its own UI purposes (aborting - # search or other commands inside less). - # - # That means when the user hits ^C, the parent process (click) terminates, - # but less is still alive, paging the output and messing up the terminal. - # - # If the user wants to make the pager exit on ^C, they should set - # `LESS='-K'`. It's not our decision to make. - while True: - try: - c.wait() - except KeyboardInterrupt: - pass - else: - break - - return True - - -def _tempfilepager( - generator: cabc.Iterable[str], cmd_parts: list[str], color: bool | None -) -> bool: - """Page through text by invoking a program on a temporary file. - - Returns `True` if the command was found, `False` otherwise and thus another - pager should be attempted. - """ - # Split the command into the invoked CLI and its parameters. - if not cmd_parts: - return False - - import shutil - - cmd = cmd_parts[0] - - cmd_filepath = shutil.which(cmd) - if not cmd_filepath: - return False - # Produces a normalized absolute path string. - # multi-call binaries such as busybox derive their identity from the symlink - # less -> busybox. resolve() causes them to misbehave. (eg. less becomes busybox) - cmd_path = Path(cmd_filepath).absolute() - - import subprocess - import tempfile - - fd, filename = tempfile.mkstemp() - # TODO: This never terminates if the passed generator never terminates. - text = "".join(generator) - if not color: - text = strip_ansi(text) - encoding = get_best_encoding(sys.stdout) - with open_stream(filename, "wb")[0] as f: - f.write(text.encode(encoding)) - try: - subprocess.call([str(cmd_path), filename]) - except OSError: - # Command not found - pass - finally: - os.close(fd) - os.unlink(filename) - - return True - - -def _nullpager( - stream: t.TextIO, generator: cabc.Iterable[str], color: bool | None -) -> None: - """Simply print unformatted text. This is the ultimate fallback.""" - for text in generator: - if not color: - text = strip_ansi(text) - stream.write(text) - - -class Editor: - def __init__( - self, - editor: str | None = None, - env: cabc.Mapping[str, str] | None = None, - require_save: bool = True, - extension: str = ".txt", - ) -> None: - self.editor = editor - self.env = env - self.require_save = require_save - self.extension = extension - - def get_editor(self) -> str: - if self.editor is not None: - return self.editor - for key in "VISUAL", "EDITOR": - rv = os.environ.get(key) - if rv: - return rv - if WIN: - return "notepad" - - from shutil import which - - for editor in "sensible-editor", "vim", "nano": - if which(editor) is not None: - return editor - return "vi" - - def edit_files(self, filenames: cabc.Iterable[str]) -> None: - import subprocess - - editor = self.get_editor() - environ: dict[str, str] | None = None - - if self.env: - environ = os.environ.copy() - environ.update(self.env) - - exc_filename = " ".join(f'"{filename}"' for filename in filenames) - - try: - c = subprocess.Popen( - args=f"{editor} {exc_filename}", env=environ, shell=True - ) - exit_code = c.wait() - if exit_code != 0: - raise ClickException( - _("{editor}: Editing failed").format(editor=editor) - ) - except OSError as e: - raise ClickException( - _("{editor}: Editing failed: {e}").format(editor=editor, e=e) - ) from e - - @t.overload - def edit(self, text: bytes | bytearray) -> bytes | None: ... - - # We cannot know whether or not the type expected is str or bytes when None - # is passed, so str is returned as that was what was done before. - @t.overload - def edit(self, text: str | None) -> str | None: ... - - def edit(self, text: str | bytes | bytearray | None) -> str | bytes | None: - import tempfile - - if text is None: - data: bytes | bytearray = b"" - elif isinstance(text, (bytes, bytearray)): - data = text - else: - if text and not text.endswith("\n"): - text += "\n" - - if WIN: - data = text.replace("\n", "\r\n").encode("utf-8-sig") - else: - data = text.encode("utf-8") - - fd, name = tempfile.mkstemp(prefix="editor-", suffix=self.extension) - f: t.BinaryIO - - try: - with os.fdopen(fd, "wb") as f: - f.write(data) - - # If the filesystem resolution is 1 second, like Mac OS - # 10.12 Extended, or 2 seconds, like FAT32, and the editor - # closes very fast, require_save can fail. Set the modified - # time to be 2 seconds in the past to work around this. - os.utime(name, (os.path.getatime(name), os.path.getmtime(name) - 2)) - # Depending on the resolution, the exact value might not be - # recorded, so get the new recorded value. - timestamp = os.path.getmtime(name) - - self.edit_files((name,)) - - if self.require_save and os.path.getmtime(name) == timestamp: - return None - - with open(name, "rb") as f: - rv = f.read() - - if isinstance(text, (bytes, bytearray)): - return rv - - return rv.decode("utf-8-sig").replace("\r\n", "\n") - finally: - os.unlink(name) - - -def open_url(url: str, wait: bool = False, locate: bool = False) -> int: - import subprocess - - def _unquote_file(url: str) -> str: - from urllib.parse import unquote - - if url.startswith("file://"): - url = unquote(url[7:]) - - return url - - if sys.platform == "darwin": - args = ["open"] - if wait: - args.append("-W") - if locate: - args.append("-R") - args.append(_unquote_file(url)) - null = open("/dev/null", "w") - try: - return subprocess.Popen(args, stderr=null).wait() - finally: - null.close() - elif WIN: - if locate: - url = _unquote_file(url) - args = ["explorer", f"/select,{url}"] - else: - args = ["start"] - if wait: - args.append("/WAIT") - args.append("") - args.append(url) - try: - return subprocess.call(args) - except OSError: - # Command not found - return 127 - elif CYGWIN: - if locate: - url = _unquote_file(url) - args = ["cygstart", os.path.dirname(url)] - else: - args = ["cygstart"] - if wait: - args.append("-w") - args.append(url) - try: - return subprocess.call(args) - except OSError: - # Command not found - return 127 - - try: - if locate: - url = os.path.dirname(_unquote_file(url)) or "." - else: - url = _unquote_file(url) - c = subprocess.Popen(["xdg-open", url]) - if wait: - return c.wait() - return 0 - except OSError: - if url.startswith(("http://", "https://")) and not locate and not wait: - import webbrowser - - webbrowser.open(url) - return 0 - return 1 - - -def _translate_ch_to_exc(ch: str) -> None: - if ch == "\x03": - raise KeyboardInterrupt() - - if ch == "\x04" and not WIN: # Unix-like, Ctrl+D - raise EOFError() - - if ch == "\x1a" and WIN: # Windows, Ctrl+Z - raise EOFError() - - return None - - -if sys.platform == "win32": - import msvcrt - - @contextlib.contextmanager - def raw_terminal() -> cabc.Iterator[int]: - yield -1 - - def getchar(echo: bool) -> str: - # The function `getch` will return a bytes object corresponding to - # the pressed character. Since Windows 10 build 1803, it will also - # return \x00 when called a second time after pressing a regular key. - # - # `getwch` does not share this probably-bugged behavior. Moreover, it - # returns a Unicode object by default, which is what we want. - # - # Either of these functions will return \x00 or \xe0 to indicate - # a special key, and you need to call the same function again to get - # the "rest" of the code. The fun part is that \u00e0 is - # "latin small letter a with grave", so if you type that on a French - # keyboard, you _also_ get a \xe0. - # E.g., consider the Up arrow. This returns \xe0 and then \x48. The - # resulting Unicode string reads as "a with grave" + "capital H". - # This is indistinguishable from when the user actually types - # "a with grave" and then "capital H". - # - # When \xe0 is returned, we assume it's part of a special-key sequence - # and call `getwch` again, but that means that when the user types - # the \u00e0 character, `getchar` doesn't return until a second - # character is typed. - # The alternative is returning immediately, but that would mess up - # cross-platform handling of arrow keys and others that start with - # \xe0. Another option is using `getch`, but then we can't reliably - # read non-ASCII characters, because return values of `getch` are - # limited to the current 8-bit codepage. - # - # Anyway, Click doesn't claim to do this Right(tm), and using `getwch` - # is doing the right thing in more situations than with `getch`. - - if echo: - func = t.cast(t.Callable[[], str], msvcrt.getwche) - else: - func = t.cast(t.Callable[[], str], msvcrt.getwch) - - rv = func() - - if rv in ("\x00", "\xe0"): - # \x00 and \xe0 are control characters that indicate special key, - # see above. - rv += func() - - _translate_ch_to_exc(rv) - return rv - -else: - import termios - import tty - - @contextlib.contextmanager - def raw_terminal() -> cabc.Iterator[int]: - f: t.TextIO | None - fd: int - - if not isatty(sys.stdin): - f = open("/dev/tty") - fd = f.fileno() - else: - fd = sys.stdin.fileno() - f = None - - try: - old_settings = termios.tcgetattr(fd) - - try: - tty.setraw(fd) - yield fd - finally: - termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) - sys.stdout.flush() - - if f is not None: - f.close() - except termios.error: - pass - - def getchar(echo: bool) -> str: - with raw_terminal() as fd: - ch = os.read(fd, 32).decode(get_best_encoding(sys.stdin), "replace") - - if echo and isatty(sys.stdout): - sys.stdout.write(ch) - - _translate_ch_to_exc(ch) - return ch diff --git a/backend/venv/lib/python3.12/site-packages/click/_textwrap.py b/backend/venv/lib/python3.12/site-packages/click/_textwrap.py deleted file mode 100644 index 97fbee3..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/_textwrap.py +++ /dev/null @@ -1,51 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import textwrap -from contextlib import contextmanager - - -class TextWrapper(textwrap.TextWrapper): - def _handle_long_word( - self, - reversed_chunks: list[str], - cur_line: list[str], - cur_len: int, - width: int, - ) -> None: - space_left = max(width - cur_len, 1) - - if self.break_long_words: - last = reversed_chunks[-1] - cut = last[:space_left] - res = last[space_left:] - cur_line.append(cut) - reversed_chunks[-1] = res - elif not cur_line: - cur_line.append(reversed_chunks.pop()) - - @contextmanager - def extra_indent(self, indent: str) -> cabc.Iterator[None]: - old_initial_indent = self.initial_indent - old_subsequent_indent = self.subsequent_indent - self.initial_indent += indent - self.subsequent_indent += indent - - try: - yield - finally: - self.initial_indent = old_initial_indent - self.subsequent_indent = old_subsequent_indent - - def indent_only(self, text: str) -> str: - rv = [] - - for idx, line in enumerate(text.splitlines()): - indent = self.initial_indent - - if idx > 0: - indent = self.subsequent_indent - - rv.append(f"{indent}{line}") - - return "\n".join(rv) diff --git a/backend/venv/lib/python3.12/site-packages/click/_utils.py b/backend/venv/lib/python3.12/site-packages/click/_utils.py deleted file mode 100644 index 09fb008..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/_utils.py +++ /dev/null @@ -1,36 +0,0 @@ -from __future__ import annotations - -import enum -import typing as t - - -class Sentinel(enum.Enum): - """Enum used to define sentinel values. - - .. seealso:: - - `PEP 661 - Sentinel Values `_. - """ - - UNSET = object() - FLAG_NEEDS_VALUE = object() - - def __repr__(self) -> str: - return f"{self.__class__.__name__}.{self.name}" - - -UNSET = Sentinel.UNSET -"""Sentinel used to indicate that a value is not set.""" - -FLAG_NEEDS_VALUE = Sentinel.FLAG_NEEDS_VALUE -"""Sentinel used to indicate an option was passed as a flag without a -value but is not a flag option. - -``Option.consume_value`` uses this to prompt or use the ``flag_value``. -""" - -T_UNSET = t.Literal[UNSET] # type: ignore[valid-type] -"""Type hint for the :data:`UNSET` sentinel value.""" - -T_FLAG_NEEDS_VALUE = t.Literal[FLAG_NEEDS_VALUE] # type: ignore[valid-type] -"""Type hint for the :data:`FLAG_NEEDS_VALUE` sentinel value.""" diff --git a/backend/venv/lib/python3.12/site-packages/click/_winconsole.py b/backend/venv/lib/python3.12/site-packages/click/_winconsole.py deleted file mode 100644 index e56c7c6..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/_winconsole.py +++ /dev/null @@ -1,296 +0,0 @@ -# This module is based on the excellent work by Adam Bartoš who -# provided a lot of what went into the implementation here in -# the discussion to issue1602 in the Python bug tracker. -# -# There are some general differences in regards to how this works -# compared to the original patches as we do not need to patch -# the entire interpreter but just work in our little world of -# echo and prompt. -from __future__ import annotations - -import collections.abc as cabc -import io -import sys -import time -import typing as t -from ctypes import Array -from ctypes import byref -from ctypes import c_char -from ctypes import c_char_p -from ctypes import c_int -from ctypes import c_ssize_t -from ctypes import c_ulong -from ctypes import c_void_p -from ctypes import POINTER -from ctypes import py_object -from ctypes import Structure -from ctypes.wintypes import DWORD -from ctypes.wintypes import HANDLE -from ctypes.wintypes import LPCWSTR -from ctypes.wintypes import LPWSTR - -from ._compat import _NonClosingTextIOWrapper - -assert sys.platform == "win32" -import msvcrt # noqa: E402 -from ctypes import windll # noqa: E402 -from ctypes import WINFUNCTYPE # noqa: E402 - -c_ssize_p = POINTER(c_ssize_t) - -kernel32 = windll.kernel32 -GetStdHandle = kernel32.GetStdHandle -ReadConsoleW = kernel32.ReadConsoleW -WriteConsoleW = kernel32.WriteConsoleW -GetConsoleMode = kernel32.GetConsoleMode -GetLastError = kernel32.GetLastError -GetCommandLineW = WINFUNCTYPE(LPWSTR)(("GetCommandLineW", windll.kernel32)) -CommandLineToArgvW = WINFUNCTYPE(POINTER(LPWSTR), LPCWSTR, POINTER(c_int))( - ("CommandLineToArgvW", windll.shell32) -) -LocalFree = WINFUNCTYPE(c_void_p, c_void_p)(("LocalFree", windll.kernel32)) - -STDIN_HANDLE = GetStdHandle(-10) -STDOUT_HANDLE = GetStdHandle(-11) -STDERR_HANDLE = GetStdHandle(-12) - -PyBUF_SIMPLE = 0 -PyBUF_WRITABLE = 1 - -ERROR_SUCCESS = 0 -ERROR_NOT_ENOUGH_MEMORY = 8 -ERROR_OPERATION_ABORTED = 995 - -STDIN_FILENO = 0 -STDOUT_FILENO = 1 -STDERR_FILENO = 2 - -EOF = b"\x1a" -MAX_BYTES_WRITTEN = 32767 - -if t.TYPE_CHECKING: - try: - # Using `typing_extensions.Buffer` instead of `collections.abc` - # on Windows for some reason does not have `Sized` implemented. - from collections.abc import Buffer # type: ignore - except ImportError: - from typing_extensions import Buffer - -try: - from ctypes import pythonapi -except ImportError: - # On PyPy we cannot get buffers so our ability to operate here is - # severely limited. - get_buffer = None -else: - - class Py_buffer(Structure): - _fields_ = [ # noqa: RUF012 - ("buf", c_void_p), - ("obj", py_object), - ("len", c_ssize_t), - ("itemsize", c_ssize_t), - ("readonly", c_int), - ("ndim", c_int), - ("format", c_char_p), - ("shape", c_ssize_p), - ("strides", c_ssize_p), - ("suboffsets", c_ssize_p), - ("internal", c_void_p), - ] - - PyObject_GetBuffer = pythonapi.PyObject_GetBuffer - PyBuffer_Release = pythonapi.PyBuffer_Release - - def get_buffer(obj: Buffer, writable: bool = False) -> Array[c_char]: - buf = Py_buffer() - flags: int = PyBUF_WRITABLE if writable else PyBUF_SIMPLE - PyObject_GetBuffer(py_object(obj), byref(buf), flags) - - try: - buffer_type = c_char * buf.len - out: Array[c_char] = buffer_type.from_address(buf.buf) - return out - finally: - PyBuffer_Release(byref(buf)) - - -class _WindowsConsoleRawIOBase(io.RawIOBase): - def __init__(self, handle: int | None) -> None: - self.handle = handle - - def isatty(self) -> t.Literal[True]: - super().isatty() - return True - - -class _WindowsConsoleReader(_WindowsConsoleRawIOBase): - def readable(self) -> t.Literal[True]: - return True - - def readinto(self, b: Buffer) -> int: - bytes_to_be_read = len(b) - if not bytes_to_be_read: - return 0 - elif bytes_to_be_read % 2: - raise ValueError( - "cannot read odd number of bytes from UTF-16-LE encoded console" - ) - - buffer = get_buffer(b, writable=True) - code_units_to_be_read = bytes_to_be_read // 2 - code_units_read = c_ulong() - - rv = ReadConsoleW( - HANDLE(self.handle), - buffer, - code_units_to_be_read, - byref(code_units_read), - None, - ) - if GetLastError() == ERROR_OPERATION_ABORTED: - # wait for KeyboardInterrupt - time.sleep(0.1) - if not rv: - raise OSError(f"Windows error: {GetLastError()}") - - if buffer[0] == EOF: - return 0 - return 2 * code_units_read.value - - -class _WindowsConsoleWriter(_WindowsConsoleRawIOBase): - def writable(self) -> t.Literal[True]: - return True - - @staticmethod - def _get_error_message(errno: int) -> str: - if errno == ERROR_SUCCESS: - return "ERROR_SUCCESS" - elif errno == ERROR_NOT_ENOUGH_MEMORY: - return "ERROR_NOT_ENOUGH_MEMORY" - return f"Windows error {errno}" - - def write(self, b: Buffer) -> int: - bytes_to_be_written = len(b) - buf = get_buffer(b) - code_units_to_be_written = min(bytes_to_be_written, MAX_BYTES_WRITTEN) // 2 - code_units_written = c_ulong() - - WriteConsoleW( - HANDLE(self.handle), - buf, - code_units_to_be_written, - byref(code_units_written), - None, - ) - bytes_written = 2 * code_units_written.value - - if bytes_written == 0 and bytes_to_be_written > 0: - raise OSError(self._get_error_message(GetLastError())) - return bytes_written - - -class ConsoleStream: - def __init__(self, text_stream: t.TextIO, byte_stream: t.BinaryIO) -> None: - self._text_stream = text_stream - self.buffer = byte_stream - - @property - def name(self) -> str: - return self.buffer.name - - def write(self, x: t.AnyStr) -> int: - if isinstance(x, str): - return self._text_stream.write(x) - try: - self.flush() - except Exception: - pass - return self.buffer.write(x) - - def writelines(self, lines: cabc.Iterable[t.AnyStr]) -> None: - for line in lines: - self.write(line) - - def __getattr__(self, name: str) -> t.Any: - return getattr(self._text_stream, name) - - def isatty(self) -> bool: - return self.buffer.isatty() - - def __repr__(self) -> str: - return f"" - - -def _get_text_stdin(buffer_stream: t.BinaryIO) -> t.TextIO: - text_stream = _NonClosingTextIOWrapper( - io.BufferedReader(_WindowsConsoleReader(STDIN_HANDLE)), - "utf-16-le", - "strict", - line_buffering=True, - ) - return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) - - -def _get_text_stdout(buffer_stream: t.BinaryIO) -> t.TextIO: - text_stream = _NonClosingTextIOWrapper( - io.BufferedWriter(_WindowsConsoleWriter(STDOUT_HANDLE)), - "utf-16-le", - "strict", - line_buffering=True, - ) - return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) - - -def _get_text_stderr(buffer_stream: t.BinaryIO) -> t.TextIO: - text_stream = _NonClosingTextIOWrapper( - io.BufferedWriter(_WindowsConsoleWriter(STDERR_HANDLE)), - "utf-16-le", - "strict", - line_buffering=True, - ) - return t.cast(t.TextIO, ConsoleStream(text_stream, buffer_stream)) - - -_stream_factories: cabc.Mapping[int, t.Callable[[t.BinaryIO], t.TextIO]] = { - 0: _get_text_stdin, - 1: _get_text_stdout, - 2: _get_text_stderr, -} - - -def _is_console(f: t.TextIO) -> bool: - if not hasattr(f, "fileno"): - return False - - try: - fileno = f.fileno() - except (OSError, io.UnsupportedOperation): - return False - - handle = msvcrt.get_osfhandle(fileno) - return bool(GetConsoleMode(handle, byref(DWORD()))) - - -def _get_windows_console_stream( - f: t.TextIO, encoding: str | None, errors: str | None -) -> t.TextIO | None: - if ( - get_buffer is None - or encoding not in {"utf-16-le", None} - or errors not in {"strict", None} - or not _is_console(f) - ): - return None - - func = _stream_factories.get(f.fileno()) - if func is None: - return None - - b = getattr(f, "buffer", None) - - if b is None: - return None - - return func(b) diff --git a/backend/venv/lib/python3.12/site-packages/click/core.py b/backend/venv/lib/python3.12/site-packages/click/core.py deleted file mode 100644 index 57f549c..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/core.py +++ /dev/null @@ -1,3415 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import enum -import errno -import inspect -import os -import sys -import typing as t -from collections import abc -from collections import Counter -from contextlib import AbstractContextManager -from contextlib import contextmanager -from contextlib import ExitStack -from functools import update_wrapper -from gettext import gettext as _ -from gettext import ngettext -from itertools import repeat -from types import TracebackType - -from . import types -from ._utils import FLAG_NEEDS_VALUE -from ._utils import UNSET -from .exceptions import Abort -from .exceptions import BadParameter -from .exceptions import ClickException -from .exceptions import Exit -from .exceptions import MissingParameter -from .exceptions import NoArgsIsHelpError -from .exceptions import UsageError -from .formatting import HelpFormatter -from .formatting import join_options -from .globals import pop_context -from .globals import push_context -from .parser import _OptionParser -from .parser import _split_opt -from .termui import confirm -from .termui import prompt -from .termui import style -from .utils import _detect_program_name -from .utils import _expand_args -from .utils import echo -from .utils import make_default_short_help -from .utils import make_str -from .utils import PacifyFlushWrapper - -if t.TYPE_CHECKING: - from .shell_completion import CompletionItem - -F = t.TypeVar("F", bound="t.Callable[..., t.Any]") -V = t.TypeVar("V") - - -def _complete_visible_commands( - ctx: Context, incomplete: str -) -> cabc.Iterator[tuple[str, Command]]: - """List all the subcommands of a group that start with the - incomplete value and aren't hidden. - - :param ctx: Invocation context for the group. - :param incomplete: Value being completed. May be empty. - """ - multi = t.cast(Group, ctx.command) - - for name in multi.list_commands(ctx): - if name.startswith(incomplete): - command = multi.get_command(ctx, name) - - if command is not None and not command.hidden: - yield name, command - - -def _check_nested_chain( - base_command: Group, cmd_name: str, cmd: Command, register: bool = False -) -> None: - if not base_command.chain or not isinstance(cmd, Group): - return - - if register: - message = ( - f"It is not possible to add the group {cmd_name!r} to another" - f" group {base_command.name!r} that is in chain mode." - ) - else: - message = ( - f"Found the group {cmd_name!r} as subcommand to another group " - f" {base_command.name!r} that is in chain mode. This is not supported." - ) - - raise RuntimeError(message) - - -def batch(iterable: cabc.Iterable[V], batch_size: int) -> list[tuple[V, ...]]: - return list(zip(*repeat(iter(iterable), batch_size), strict=False)) - - -@contextmanager -def augment_usage_errors( - ctx: Context, param: Parameter | None = None -) -> cabc.Iterator[None]: - """Context manager that attaches extra information to exceptions.""" - try: - yield - except BadParameter as e: - if e.ctx is None: - e.ctx = ctx - if param is not None and e.param is None: - e.param = param - raise - except UsageError as e: - if e.ctx is None: - e.ctx = ctx - raise - - -def iter_params_for_processing( - invocation_order: cabc.Sequence[Parameter], - declaration_order: cabc.Sequence[Parameter], -) -> list[Parameter]: - """Returns all declared parameters in the order they should be processed. - - The declared parameters are re-shuffled depending on the order in which - they were invoked, as well as the eagerness of each parameters. - - The invocation order takes precedence over the declaration order. I.e. the - order in which the user provided them to the CLI is respected. - - This behavior and its effect on callback evaluation is detailed at: - https://click.palletsprojects.com/en/stable/advanced/#callback-evaluation-order - """ - - def sort_key(item: Parameter) -> tuple[bool, float]: - try: - idx: float = invocation_order.index(item) - except ValueError: - idx = float("inf") - - return not item.is_eager, idx - - return sorted(declaration_order, key=sort_key) - - -class ParameterSource(enum.Enum): - """This is an :class:`~enum.Enum` that indicates the source of a - parameter's value. - - Use :meth:`click.Context.get_parameter_source` to get the - source for a parameter by name. - - .. versionchanged:: 8.0 - Use :class:`~enum.Enum` and drop the ``validate`` method. - - .. versionchanged:: 8.0 - Added the ``PROMPT`` value. - """ - - COMMANDLINE = enum.auto() - """The value was provided by the command line args.""" - ENVIRONMENT = enum.auto() - """The value was provided with an environment variable.""" - DEFAULT = enum.auto() - """Used the default specified by the parameter.""" - DEFAULT_MAP = enum.auto() - """Used a default provided by :attr:`Context.default_map`.""" - PROMPT = enum.auto() - """Used a prompt to confirm a default or provide a value.""" - - -class Context: - """The context is a special internal object that holds state relevant - for the script execution at every single level. It's normally invisible - to commands unless they opt-in to getting access to it. - - The context is useful as it can pass internal objects around and can - control special execution features such as reading data from - environment variables. - - A context can be used as context manager in which case it will call - :meth:`close` on teardown. - - :param command: the command class for this context. - :param parent: the parent context. - :param info_name: the info name for this invocation. Generally this - is the most descriptive name for the script or - command. For the toplevel script it is usually - the name of the script, for commands below it it's - the name of the script. - :param obj: an arbitrary object of user data. - :param auto_envvar_prefix: the prefix to use for automatic environment - variables. If this is `None` then reading - from environment variables is disabled. This - does not affect manually set environment - variables which are always read. - :param default_map: a dictionary (like object) with default values - for parameters. - :param terminal_width: the width of the terminal. The default is - inherit from parent context. If no context - defines the terminal width then auto - detection will be applied. - :param max_content_width: the maximum width for content rendered by - Click (this currently only affects help - pages). This defaults to 80 characters if - not overridden. In other words: even if the - terminal is larger than that, Click will not - format things wider than 80 characters by - default. In addition to that, formatters might - add some safety mapping on the right. - :param resilient_parsing: if this flag is enabled then Click will - parse without any interactivity or callback - invocation. Default values will also be - ignored. This is useful for implementing - things such as completion support. - :param allow_extra_args: if this is set to `True` then extra arguments - at the end will not raise an error and will be - kept on the context. The default is to inherit - from the command. - :param allow_interspersed_args: if this is set to `False` then options - and arguments cannot be mixed. The - default is to inherit from the command. - :param ignore_unknown_options: instructs click to ignore options it does - not know and keeps them for later - processing. - :param help_option_names: optionally a list of strings that define how - the default help parameter is named. The - default is ``['--help']``. - :param token_normalize_func: an optional function that is used to - normalize tokens (options, choices, - etc.). This for instance can be used to - implement case insensitive behavior. - :param color: controls if the terminal supports ANSI colors or not. The - default is autodetection. This is only needed if ANSI - codes are used in texts that Click prints which is by - default not the case. This for instance would affect - help output. - :param show_default: Show the default value for commands. If this - value is not set, it defaults to the value from the parent - context. ``Command.show_default`` overrides this default for the - specific command. - - .. versionchanged:: 8.2 - The ``protected_args`` attribute is deprecated and will be removed in - Click 9.0. ``args`` will contain remaining unparsed tokens. - - .. versionchanged:: 8.1 - The ``show_default`` parameter is overridden by - ``Command.show_default``, instead of the other way around. - - .. versionchanged:: 8.0 - The ``show_default`` parameter defaults to the value from the - parent context. - - .. versionchanged:: 7.1 - Added the ``show_default`` parameter. - - .. versionchanged:: 4.0 - Added the ``color``, ``ignore_unknown_options``, and - ``max_content_width`` parameters. - - .. versionchanged:: 3.0 - Added the ``allow_extra_args`` and ``allow_interspersed_args`` - parameters. - - .. versionchanged:: 2.0 - Added the ``resilient_parsing``, ``help_option_names``, and - ``token_normalize_func`` parameters. - """ - - #: The formatter class to create with :meth:`make_formatter`. - #: - #: .. versionadded:: 8.0 - formatter_class: type[HelpFormatter] = HelpFormatter - - def __init__( - self, - command: Command, - parent: Context | None = None, - info_name: str | None = None, - obj: t.Any | None = None, - auto_envvar_prefix: str | None = None, - default_map: cabc.MutableMapping[str, t.Any] | None = None, - terminal_width: int | None = None, - max_content_width: int | None = None, - resilient_parsing: bool = False, - allow_extra_args: bool | None = None, - allow_interspersed_args: bool | None = None, - ignore_unknown_options: bool | None = None, - help_option_names: list[str] | None = None, - token_normalize_func: t.Callable[[str], str] | None = None, - color: bool | None = None, - show_default: bool | None = None, - ) -> None: - #: the parent context or `None` if none exists. - self.parent = parent - #: the :class:`Command` for this context. - self.command = command - #: the descriptive information name - self.info_name = info_name - #: Map of parameter names to their parsed values. Parameters - #: with ``expose_value=False`` are not stored. - self.params: dict[str, t.Any] = {} - #: the leftover arguments. - self.args: list[str] = [] - #: protected arguments. These are arguments that are prepended - #: to `args` when certain parsing scenarios are encountered but - #: must be never propagated to another arguments. This is used - #: to implement nested parsing. - self._protected_args: list[str] = [] - #: the collected prefixes of the command's options. - self._opt_prefixes: set[str] = set(parent._opt_prefixes) if parent else set() - - if obj is None and parent is not None: - obj = parent.obj - - #: the user object stored. - self.obj: t.Any = obj - self._meta: dict[str, t.Any] = getattr(parent, "meta", {}) - - #: A dictionary (-like object) with defaults for parameters. - if ( - default_map is None - and info_name is not None - and parent is not None - and parent.default_map is not None - ): - default_map = parent.default_map.get(info_name) - - self.default_map: cabc.MutableMapping[str, t.Any] | None = default_map - - #: This flag indicates if a subcommand is going to be executed. A - #: group callback can use this information to figure out if it's - #: being executed directly or because the execution flow passes - #: onwards to a subcommand. By default it's None, but it can be - #: the name of the subcommand to execute. - #: - #: If chaining is enabled this will be set to ``'*'`` in case - #: any commands are executed. It is however not possible to - #: figure out which ones. If you require this knowledge you - #: should use a :func:`result_callback`. - self.invoked_subcommand: str | None = None - - if terminal_width is None and parent is not None: - terminal_width = parent.terminal_width - - #: The width of the terminal (None is autodetection). - self.terminal_width: int | None = terminal_width - - if max_content_width is None and parent is not None: - max_content_width = parent.max_content_width - - #: The maximum width of formatted content (None implies a sensible - #: default which is 80 for most things). - self.max_content_width: int | None = max_content_width - - if allow_extra_args is None: - allow_extra_args = command.allow_extra_args - - #: Indicates if the context allows extra args or if it should - #: fail on parsing. - #: - #: .. versionadded:: 3.0 - self.allow_extra_args = allow_extra_args - - if allow_interspersed_args is None: - allow_interspersed_args = command.allow_interspersed_args - - #: Indicates if the context allows mixing of arguments and - #: options or not. - #: - #: .. versionadded:: 3.0 - self.allow_interspersed_args: bool = allow_interspersed_args - - if ignore_unknown_options is None: - ignore_unknown_options = command.ignore_unknown_options - - #: Instructs click to ignore options that a command does not - #: understand and will store it on the context for later - #: processing. This is primarily useful for situations where you - #: want to call into external programs. Generally this pattern is - #: strongly discouraged because it's not possibly to losslessly - #: forward all arguments. - #: - #: .. versionadded:: 4.0 - self.ignore_unknown_options: bool = ignore_unknown_options - - if help_option_names is None: - if parent is not None: - help_option_names = parent.help_option_names - else: - help_option_names = ["--help"] - - #: The names for the help options. - self.help_option_names: list[str] = help_option_names - - if token_normalize_func is None and parent is not None: - token_normalize_func = parent.token_normalize_func - - #: An optional normalization function for tokens. This is - #: options, choices, commands etc. - self.token_normalize_func: t.Callable[[str], str] | None = token_normalize_func - - #: Indicates if resilient parsing is enabled. In that case Click - #: will do its best to not cause any failures and default values - #: will be ignored. Useful for completion. - self.resilient_parsing: bool = resilient_parsing - - # If there is no envvar prefix yet, but the parent has one and - # the command on this level has a name, we can expand the envvar - # prefix automatically. - if auto_envvar_prefix is None: - if ( - parent is not None - and parent.auto_envvar_prefix is not None - and self.info_name is not None - ): - auto_envvar_prefix = ( - f"{parent.auto_envvar_prefix}_{self.info_name.upper()}" - ) - else: - auto_envvar_prefix = auto_envvar_prefix.upper() - - if auto_envvar_prefix is not None: - auto_envvar_prefix = auto_envvar_prefix.replace("-", "_") - - self.auto_envvar_prefix: str | None = auto_envvar_prefix - - if color is None and parent is not None: - color = parent.color - - #: Controls if styling output is wanted or not. - self.color: bool | None = color - - if show_default is None and parent is not None: - show_default = parent.show_default - - #: Show option default values when formatting help text. - self.show_default: bool | None = show_default - - self._close_callbacks: list[t.Callable[[], t.Any]] = [] - self._depth = 0 - self._parameter_source: dict[str, ParameterSource] = {} - self._exit_stack = ExitStack() - - @property - def protected_args(self) -> list[str]: - import warnings - - warnings.warn( - "'protected_args' is deprecated and will be removed in Click 9.0." - " 'args' will contain remaining unparsed tokens.", - DeprecationWarning, - stacklevel=2, - ) - return self._protected_args - - def to_info_dict(self) -> dict[str, t.Any]: - """Gather information that could be useful for a tool generating - user-facing documentation. This traverses the entire CLI - structure. - - .. code-block:: python - - with Context(cli) as ctx: - info = ctx.to_info_dict() - - .. versionadded:: 8.0 - """ - return { - "command": self.command.to_info_dict(self), - "info_name": self.info_name, - "allow_extra_args": self.allow_extra_args, - "allow_interspersed_args": self.allow_interspersed_args, - "ignore_unknown_options": self.ignore_unknown_options, - "auto_envvar_prefix": self.auto_envvar_prefix, - } - - def __enter__(self) -> Context: - self._depth += 1 - push_context(self) - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - tb: TracebackType | None, - ) -> bool | None: - self._depth -= 1 - exit_result: bool | None = None - if self._depth == 0: - exit_result = self._close_with_exception_info(exc_type, exc_value, tb) - pop_context() - - return exit_result - - @contextmanager - def scope(self, cleanup: bool = True) -> cabc.Iterator[Context]: - """This helper method can be used with the context object to promote - it to the current thread local (see :func:`get_current_context`). - The default behavior of this is to invoke the cleanup functions which - can be disabled by setting `cleanup` to `False`. The cleanup - functions are typically used for things such as closing file handles. - - If the cleanup is intended the context object can also be directly - used as a context manager. - - Example usage:: - - with ctx.scope(): - assert get_current_context() is ctx - - This is equivalent:: - - with ctx: - assert get_current_context() is ctx - - .. versionadded:: 5.0 - - :param cleanup: controls if the cleanup functions should be run or - not. The default is to run these functions. In - some situations the context only wants to be - temporarily pushed in which case this can be disabled. - Nested pushes automatically defer the cleanup. - """ - if not cleanup: - self._depth += 1 - try: - with self as rv: - yield rv - finally: - if not cleanup: - self._depth -= 1 - - @property - def meta(self) -> dict[str, t.Any]: - """This is a dictionary which is shared with all the contexts - that are nested. It exists so that click utilities can store some - state here if they need to. It is however the responsibility of - that code to manage this dictionary well. - - The keys are supposed to be unique dotted strings. For instance - module paths are a good choice for it. What is stored in there is - irrelevant for the operation of click. However what is important is - that code that places data here adheres to the general semantics of - the system. - - Example usage:: - - LANG_KEY = f'{__name__}.lang' - - def set_language(value): - ctx = get_current_context() - ctx.meta[LANG_KEY] = value - - def get_language(): - return get_current_context().meta.get(LANG_KEY, 'en_US') - - .. versionadded:: 5.0 - """ - return self._meta - - def make_formatter(self) -> HelpFormatter: - """Creates the :class:`~click.HelpFormatter` for the help and - usage output. - - To quickly customize the formatter class used without overriding - this method, set the :attr:`formatter_class` attribute. - - .. versionchanged:: 8.0 - Added the :attr:`formatter_class` attribute. - """ - return self.formatter_class( - width=self.terminal_width, max_width=self.max_content_width - ) - - def with_resource(self, context_manager: AbstractContextManager[V]) -> V: - """Register a resource as if it were used in a ``with`` - statement. The resource will be cleaned up when the context is - popped. - - Uses :meth:`contextlib.ExitStack.enter_context`. It calls the - resource's ``__enter__()`` method and returns the result. When - the context is popped, it closes the stack, which calls the - resource's ``__exit__()`` method. - - To register a cleanup function for something that isn't a - context manager, use :meth:`call_on_close`. Or use something - from :mod:`contextlib` to turn it into a context manager first. - - .. code-block:: python - - @click.group() - @click.option("--name") - @click.pass_context - def cli(ctx): - ctx.obj = ctx.with_resource(connect_db(name)) - - :param context_manager: The context manager to enter. - :return: Whatever ``context_manager.__enter__()`` returns. - - .. versionadded:: 8.0 - """ - return self._exit_stack.enter_context(context_manager) - - def call_on_close(self, f: t.Callable[..., t.Any]) -> t.Callable[..., t.Any]: - """Register a function to be called when the context tears down. - - This can be used to close resources opened during the script - execution. Resources that support Python's context manager - protocol which would be used in a ``with`` statement should be - registered with :meth:`with_resource` instead. - - :param f: The function to execute on teardown. - """ - return self._exit_stack.callback(f) - - def close(self) -> None: - """Invoke all close callbacks registered with - :meth:`call_on_close`, and exit all context managers entered - with :meth:`with_resource`. - """ - self._close_with_exception_info(None, None, None) - - def _close_with_exception_info( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - tb: TracebackType | None, - ) -> bool | None: - """Unwind the exit stack by calling its :meth:`__exit__` providing the exception - information to allow for exception handling by the various resources registered - using :meth;`with_resource` - - :return: Whatever ``exit_stack.__exit__()`` returns. - """ - exit_result = self._exit_stack.__exit__(exc_type, exc_value, tb) - # In case the context is reused, create a new exit stack. - self._exit_stack = ExitStack() - - return exit_result - - @property - def command_path(self) -> str: - """The computed command path. This is used for the ``usage`` - information on the help page. It's automatically created by - combining the info names of the chain of contexts to the root. - """ - rv = "" - if self.info_name is not None: - rv = self.info_name - if self.parent is not None: - parent_command_path = [self.parent.command_path] - - if isinstance(self.parent.command, Command): - for param in self.parent.command.get_params(self): - parent_command_path.extend(param.get_usage_pieces(self)) - - rv = f"{' '.join(parent_command_path)} {rv}" - return rv.lstrip() - - def find_root(self) -> Context: - """Finds the outermost context.""" - node = self - while node.parent is not None: - node = node.parent - return node - - def find_object(self, object_type: type[V]) -> V | None: - """Finds the closest object of a given type.""" - node: Context | None = self - - while node is not None: - if isinstance(node.obj, object_type): - return node.obj - - node = node.parent - - return None - - def ensure_object(self, object_type: type[V]) -> V: - """Like :meth:`find_object` but sets the innermost object to a - new instance of `object_type` if it does not exist. - """ - rv = self.find_object(object_type) - if rv is None: - self.obj = rv = object_type() - return rv - - @t.overload - def lookup_default( - self, name: str, call: t.Literal[True] = True - ) -> t.Any | None: ... - - @t.overload - def lookup_default( - self, name: str, call: t.Literal[False] = ... - ) -> t.Any | t.Callable[[], t.Any] | None: ... - - def lookup_default(self, name: str, call: bool = True) -> t.Any | None: - """Get the default for a parameter from :attr:`default_map`. - - :param name: Name of the parameter. - :param call: If the default is a callable, call it. Disable to - return the callable instead. - - .. versionchanged:: 8.0 - Added the ``call`` parameter. - """ - if self.default_map is not None: - value = self.default_map.get(name, UNSET) - - if call and callable(value): - return value() - - return value - - return UNSET - - def fail(self, message: str) -> t.NoReturn: - """Aborts the execution of the program with a specific error - message. - - :param message: the error message to fail with. - """ - raise UsageError(message, self) - - def abort(self) -> t.NoReturn: - """Aborts the script.""" - raise Abort() - - def exit(self, code: int = 0) -> t.NoReturn: - """Exits the application with a given exit code. - - .. versionchanged:: 8.2 - Callbacks and context managers registered with :meth:`call_on_close` - and :meth:`with_resource` are closed before exiting. - """ - self.close() - raise Exit(code) - - def get_usage(self) -> str: - """Helper method to get formatted usage string for the current - context and command. - """ - return self.command.get_usage(self) - - def get_help(self) -> str: - """Helper method to get formatted help page for the current - context and command. - """ - return self.command.get_help(self) - - def _make_sub_context(self, command: Command) -> Context: - """Create a new context of the same type as this context, but - for a new command. - - :meta private: - """ - return type(self)(command, info_name=command.name, parent=self) - - @t.overload - def invoke( - self, callback: t.Callable[..., V], /, *args: t.Any, **kwargs: t.Any - ) -> V: ... - - @t.overload - def invoke(self, callback: Command, /, *args: t.Any, **kwargs: t.Any) -> t.Any: ... - - def invoke( - self, callback: Command | t.Callable[..., V], /, *args: t.Any, **kwargs: t.Any - ) -> t.Any | V: - """Invokes a command callback in exactly the way it expects. There - are two ways to invoke this method: - - 1. the first argument can be a callback and all other arguments and - keyword arguments are forwarded directly to the function. - 2. the first argument is a click command object. In that case all - arguments are forwarded as well but proper click parameters - (options and click arguments) must be keyword arguments and Click - will fill in defaults. - - .. versionchanged:: 8.0 - All ``kwargs`` are tracked in :attr:`params` so they will be - passed if :meth:`forward` is called at multiple levels. - - .. versionchanged:: 3.2 - A new context is created, and missing arguments use default values. - """ - if isinstance(callback, Command): - other_cmd = callback - - if other_cmd.callback is None: - raise TypeError( - "The given command does not have a callback that can be invoked." - ) - else: - callback = t.cast("t.Callable[..., V]", other_cmd.callback) - - ctx = self._make_sub_context(other_cmd) - - for param in other_cmd.params: - if param.name not in kwargs and param.expose_value: - default_value = param.get_default(ctx) - # We explicitly hide the :attr:`UNSET` value to the user, as we - # choose to make it an implementation detail. And because ``invoke`` - # has been designed as part of Click public API, we return ``None`` - # instead. Refs: - # https://github.com/pallets/click/issues/3066 - # https://github.com/pallets/click/issues/3065 - # https://github.com/pallets/click/pull/3068 - if default_value is UNSET: - default_value = None - kwargs[param.name] = param.type_cast_value( # type: ignore - ctx, default_value - ) - - # Track all kwargs as params, so that forward() will pass - # them on in subsequent calls. - ctx.params.update(kwargs) - else: - ctx = self - - with augment_usage_errors(self): - with ctx: - return callback(*args, **kwargs) - - def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.Any: - """Similar to :meth:`invoke` but fills in default keyword - arguments from the current context if the other command expects - it. This cannot invoke callbacks directly, only other commands. - - .. versionchanged:: 8.0 - All ``kwargs`` are tracked in :attr:`params` so they will be - passed if ``forward`` is called at multiple levels. - """ - # Can only forward to other commands, not direct callbacks. - if not isinstance(cmd, Command): - raise TypeError("Callback is not a command.") - - for param in self.params: - if param not in kwargs: - kwargs[param] = self.params[param] - - return self.invoke(cmd, *args, **kwargs) - - def set_parameter_source(self, name: str, source: ParameterSource) -> None: - """Set the source of a parameter. This indicates the location - from which the value of the parameter was obtained. - - :param name: The name of the parameter. - :param source: A member of :class:`~click.core.ParameterSource`. - """ - self._parameter_source[name] = source - - def get_parameter_source(self, name: str) -> ParameterSource | None: - """Get the source of a parameter. This indicates the location - from which the value of the parameter was obtained. - - This can be useful for determining when a user specified a value - on the command line that is the same as the default value. It - will be :attr:`~click.core.ParameterSource.DEFAULT` only if the - value was actually taken from the default. - - :param name: The name of the parameter. - :rtype: ParameterSource - - .. versionchanged:: 8.0 - Returns ``None`` if the parameter was not provided from any - source. - """ - return self._parameter_source.get(name) - - -class Command: - """Commands are the basic building block of command line interfaces in - Click. A basic command handles command line parsing and might dispatch - more parsing to commands nested below it. - - :param name: the name of the command to use unless a group overrides it. - :param context_settings: an optional dictionary with defaults that are - passed to the context object. - :param callback: the callback to invoke. This is optional. - :param params: the parameters to register with this command. This can - be either :class:`Option` or :class:`Argument` objects. - :param help: the help string to use for this command. - :param epilog: like the help string but it's printed at the end of the - help page after everything else. - :param short_help: the short help to use for this command. This is - shown on the command listing of the parent command. - :param add_help_option: by default each command registers a ``--help`` - option. This can be disabled by this parameter. - :param no_args_is_help: this controls what happens if no arguments are - provided. This option is disabled by default. - If enabled this will add ``--help`` as argument - if no arguments are passed - :param hidden: hide this command from help outputs. - :param deprecated: If ``True`` or non-empty string, issues a message - indicating that the command is deprecated and highlights - its deprecation in --help. The message can be customized - by using a string as the value. - - .. versionchanged:: 8.2 - This is the base class for all commands, not ``BaseCommand``. - ``deprecated`` can be set to a string as well to customize the - deprecation message. - - .. versionchanged:: 8.1 - ``help``, ``epilog``, and ``short_help`` are stored unprocessed, - all formatting is done when outputting help text, not at init, - and is done even if not using the ``@command`` decorator. - - .. versionchanged:: 8.0 - Added a ``repr`` showing the command name. - - .. versionchanged:: 7.1 - Added the ``no_args_is_help`` parameter. - - .. versionchanged:: 2.0 - Added the ``context_settings`` parameter. - """ - - #: The context class to create with :meth:`make_context`. - #: - #: .. versionadded:: 8.0 - context_class: type[Context] = Context - - #: the default for the :attr:`Context.allow_extra_args` flag. - allow_extra_args = False - - #: the default for the :attr:`Context.allow_interspersed_args` flag. - allow_interspersed_args = True - - #: the default for the :attr:`Context.ignore_unknown_options` flag. - ignore_unknown_options = False - - def __init__( - self, - name: str | None, - context_settings: cabc.MutableMapping[str, t.Any] | None = None, - callback: t.Callable[..., t.Any] | None = None, - params: list[Parameter] | None = None, - help: str | None = None, - epilog: str | None = None, - short_help: str | None = None, - options_metavar: str | None = "[OPTIONS]", - add_help_option: bool = True, - no_args_is_help: bool = False, - hidden: bool = False, - deprecated: bool | str = False, - ) -> None: - #: the name the command thinks it has. Upon registering a command - #: on a :class:`Group` the group will default the command name - #: with this information. You should instead use the - #: :class:`Context`\'s :attr:`~Context.info_name` attribute. - self.name = name - - if context_settings is None: - context_settings = {} - - #: an optional dictionary with defaults passed to the context. - self.context_settings: cabc.MutableMapping[str, t.Any] = context_settings - - #: the callback to execute when the command fires. This might be - #: `None` in which case nothing happens. - self.callback = callback - #: the list of parameters for this command in the order they - #: should show up in the help page and execute. Eager parameters - #: will automatically be handled before non eager ones. - self.params: list[Parameter] = params or [] - self.help = help - self.epilog = epilog - self.options_metavar = options_metavar - self.short_help = short_help - self.add_help_option = add_help_option - self._help_option = None - self.no_args_is_help = no_args_is_help - self.hidden = hidden - self.deprecated = deprecated - - def to_info_dict(self, ctx: Context) -> dict[str, t.Any]: - return { - "name": self.name, - "params": [param.to_info_dict() for param in self.get_params(ctx)], - "help": self.help, - "epilog": self.epilog, - "short_help": self.short_help, - "hidden": self.hidden, - "deprecated": self.deprecated, - } - - def __repr__(self) -> str: - return f"<{self.__class__.__name__} {self.name}>" - - def get_usage(self, ctx: Context) -> str: - """Formats the usage line into a string and returns it. - - Calls :meth:`format_usage` internally. - """ - formatter = ctx.make_formatter() - self.format_usage(ctx, formatter) - return formatter.getvalue().rstrip("\n") - - def get_params(self, ctx: Context) -> list[Parameter]: - params = self.params - help_option = self.get_help_option(ctx) - - if help_option is not None: - params = [*params, help_option] - - if __debug__: - import warnings - - opts = [opt for param in params for opt in param.opts] - opts_counter = Counter(opts) - duplicate_opts = (opt for opt, count in opts_counter.items() if count > 1) - - for duplicate_opt in duplicate_opts: - warnings.warn( - ( - f"The parameter {duplicate_opt} is used more than once. " - "Remove its duplicate as parameters should be unique." - ), - stacklevel=3, - ) - - return params - - def format_usage(self, ctx: Context, formatter: HelpFormatter) -> None: - """Writes the usage line into the formatter. - - This is a low-level method called by :meth:`get_usage`. - """ - pieces = self.collect_usage_pieces(ctx) - formatter.write_usage(ctx.command_path, " ".join(pieces)) - - def collect_usage_pieces(self, ctx: Context) -> list[str]: - """Returns all the pieces that go into the usage line and returns - it as a list of strings. - """ - rv = [self.options_metavar] if self.options_metavar else [] - - for param in self.get_params(ctx): - rv.extend(param.get_usage_pieces(ctx)) - - return rv - - def get_help_option_names(self, ctx: Context) -> list[str]: - """Returns the names for the help option.""" - all_names = set(ctx.help_option_names) - for param in self.params: - all_names.difference_update(param.opts) - all_names.difference_update(param.secondary_opts) - return list(all_names) - - def get_help_option(self, ctx: Context) -> Option | None: - """Returns the help option object. - - Skipped if :attr:`add_help_option` is ``False``. - - .. versionchanged:: 8.1.8 - The help option is now cached to avoid creating it multiple times. - """ - help_option_names = self.get_help_option_names(ctx) - - if not help_option_names or not self.add_help_option: - return None - - # Cache the help option object in private _help_option attribute to - # avoid creating it multiple times. Not doing this will break the - # callback odering by iter_params_for_processing(), which relies on - # object comparison. - if self._help_option is None: - # Avoid circular import. - from .decorators import help_option - - # Apply help_option decorator and pop resulting option - help_option(*help_option_names)(self) - self._help_option = self.params.pop() # type: ignore[assignment] - - return self._help_option - - def make_parser(self, ctx: Context) -> _OptionParser: - """Creates the underlying option parser for this command.""" - parser = _OptionParser(ctx) - for param in self.get_params(ctx): - param.add_to_parser(parser, ctx) - return parser - - def get_help(self, ctx: Context) -> str: - """Formats the help into a string and returns it. - - Calls :meth:`format_help` internally. - """ - formatter = ctx.make_formatter() - self.format_help(ctx, formatter) - return formatter.getvalue().rstrip("\n") - - def get_short_help_str(self, limit: int = 45) -> str: - """Gets short help for the command or makes it by shortening the - long help string. - """ - if self.short_help: - text = inspect.cleandoc(self.short_help) - elif self.help: - text = make_default_short_help(self.help, limit) - else: - text = "" - - if self.deprecated: - deprecated_message = ( - f"(DEPRECATED: {self.deprecated})" - if isinstance(self.deprecated, str) - else "(DEPRECATED)" - ) - text = _("{text} {deprecated_message}").format( - text=text, deprecated_message=deprecated_message - ) - - return text.strip() - - def format_help(self, ctx: Context, formatter: HelpFormatter) -> None: - """Writes the help into the formatter if it exists. - - This is a low-level method called by :meth:`get_help`. - - This calls the following methods: - - - :meth:`format_usage` - - :meth:`format_help_text` - - :meth:`format_options` - - :meth:`format_epilog` - """ - self.format_usage(ctx, formatter) - self.format_help_text(ctx, formatter) - self.format_options(ctx, formatter) - self.format_epilog(ctx, formatter) - - def format_help_text(self, ctx: Context, formatter: HelpFormatter) -> None: - """Writes the help text to the formatter if it exists.""" - if self.help is not None: - # truncate the help text to the first form feed - text = inspect.cleandoc(self.help).partition("\f")[0] - else: - text = "" - - if self.deprecated: - deprecated_message = ( - f"(DEPRECATED: {self.deprecated})" - if isinstance(self.deprecated, str) - else "(DEPRECATED)" - ) - text = _("{text} {deprecated_message}").format( - text=text, deprecated_message=deprecated_message - ) - - if text: - formatter.write_paragraph() - - with formatter.indentation(): - formatter.write_text(text) - - def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: - """Writes all the options into the formatter if they exist.""" - opts = [] - for param in self.get_params(ctx): - rv = param.get_help_record(ctx) - if rv is not None: - opts.append(rv) - - if opts: - with formatter.section(_("Options")): - formatter.write_dl(opts) - - def format_epilog(self, ctx: Context, formatter: HelpFormatter) -> None: - """Writes the epilog into the formatter if it exists.""" - if self.epilog: - epilog = inspect.cleandoc(self.epilog) - formatter.write_paragraph() - - with formatter.indentation(): - formatter.write_text(epilog) - - def make_context( - self, - info_name: str | None, - args: list[str], - parent: Context | None = None, - **extra: t.Any, - ) -> Context: - """This function when given an info name and arguments will kick - off the parsing and create a new :class:`Context`. It does not - invoke the actual command callback though. - - To quickly customize the context class used without overriding - this method, set the :attr:`context_class` attribute. - - :param info_name: the info name for this invocation. Generally this - is the most descriptive name for the script or - command. For the toplevel script it's usually - the name of the script, for commands below it's - the name of the command. - :param args: the arguments to parse as list of strings. - :param parent: the parent context if available. - :param extra: extra keyword arguments forwarded to the context - constructor. - - .. versionchanged:: 8.0 - Added the :attr:`context_class` attribute. - """ - for key, value in self.context_settings.items(): - if key not in extra: - extra[key] = value - - ctx = self.context_class(self, info_name=info_name, parent=parent, **extra) - - with ctx.scope(cleanup=False): - self.parse_args(ctx, args) - return ctx - - def parse_args(self, ctx: Context, args: list[str]) -> list[str]: - if not args and self.no_args_is_help and not ctx.resilient_parsing: - raise NoArgsIsHelpError(ctx) - - parser = self.make_parser(ctx) - opts, args, param_order = parser.parse_args(args=args) - - for param in iter_params_for_processing(param_order, self.get_params(ctx)): - _, args = param.handle_parse_result(ctx, opts, args) - - # We now have all parameters' values into `ctx.params`, but the data may contain - # the `UNSET` sentinel. - # Convert `UNSET` to `None` to ensure that the user doesn't see `UNSET`. - # - # Waiting until after the initial parse to convert allows us to treat `UNSET` - # more like a missing value when multiple params use the same name. - # Refs: - # https://github.com/pallets/click/issues/3071 - # https://github.com/pallets/click/pull/3079 - for name, value in ctx.params.items(): - if value is UNSET: - ctx.params[name] = None - - if args and not ctx.allow_extra_args and not ctx.resilient_parsing: - ctx.fail( - ngettext( - "Got unexpected extra argument ({args})", - "Got unexpected extra arguments ({args})", - len(args), - ).format(args=" ".join(map(str, args))) - ) - - ctx.args = args - ctx._opt_prefixes.update(parser._opt_prefixes) - return args - - def invoke(self, ctx: Context) -> t.Any: - """Given a context, this invokes the attached callback (if it exists) - in the right way. - """ - if self.deprecated: - extra_message = ( - f" {self.deprecated}" if isinstance(self.deprecated, str) else "" - ) - message = _( - "DeprecationWarning: The command {name!r} is deprecated.{extra_message}" - ).format(name=self.name, extra_message=extra_message) - echo(style(message, fg="red"), err=True) - - if self.callback is not None: - return ctx.invoke(self.callback, **ctx.params) - - def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]: - """Return a list of completions for the incomplete value. Looks - at the names of options and chained multi-commands. - - Any command could be part of a chained multi-command, so sibling - commands are valid at any point during command completion. - - :param ctx: Invocation context for this command. - :param incomplete: Value being completed. May be empty. - - .. versionadded:: 8.0 - """ - from click.shell_completion import CompletionItem - - results: list[CompletionItem] = [] - - if incomplete and not incomplete[0].isalnum(): - for param in self.get_params(ctx): - if ( - not isinstance(param, Option) - or param.hidden - or ( - not param.multiple - and ctx.get_parameter_source(param.name) # type: ignore - is ParameterSource.COMMANDLINE - ) - ): - continue - - results.extend( - CompletionItem(name, help=param.help) - for name in [*param.opts, *param.secondary_opts] - if name.startswith(incomplete) - ) - - while ctx.parent is not None: - ctx = ctx.parent - - if isinstance(ctx.command, Group) and ctx.command.chain: - results.extend( - CompletionItem(name, help=command.get_short_help_str()) - for name, command in _complete_visible_commands(ctx, incomplete) - if name not in ctx._protected_args - ) - - return results - - @t.overload - def main( - self, - args: cabc.Sequence[str] | None = None, - prog_name: str | None = None, - complete_var: str | None = None, - standalone_mode: t.Literal[True] = True, - **extra: t.Any, - ) -> t.NoReturn: ... - - @t.overload - def main( - self, - args: cabc.Sequence[str] | None = None, - prog_name: str | None = None, - complete_var: str | None = None, - standalone_mode: bool = ..., - **extra: t.Any, - ) -> t.Any: ... - - def main( - self, - args: cabc.Sequence[str] | None = None, - prog_name: str | None = None, - complete_var: str | None = None, - standalone_mode: bool = True, - windows_expand_args: bool = True, - **extra: t.Any, - ) -> t.Any: - """This is the way to invoke a script with all the bells and - whistles as a command line application. This will always terminate - the application after a call. If this is not wanted, ``SystemExit`` - needs to be caught. - - This method is also available by directly calling the instance of - a :class:`Command`. - - :param args: the arguments that should be used for parsing. If not - provided, ``sys.argv[1:]`` is used. - :param prog_name: the program name that should be used. By default - the program name is constructed by taking the file - name from ``sys.argv[0]``. - :param complete_var: the environment variable that controls the - bash completion support. The default is - ``"__COMPLETE"`` with prog_name in - uppercase. - :param standalone_mode: the default behavior is to invoke the script - in standalone mode. Click will then - handle exceptions and convert them into - error messages and the function will never - return but shut down the interpreter. If - this is set to `False` they will be - propagated to the caller and the return - value of this function is the return value - of :meth:`invoke`. - :param windows_expand_args: Expand glob patterns, user dir, and - env vars in command line args on Windows. - :param extra: extra keyword arguments are forwarded to the context - constructor. See :class:`Context` for more information. - - .. versionchanged:: 8.0.1 - Added the ``windows_expand_args`` parameter to allow - disabling command line arg expansion on Windows. - - .. versionchanged:: 8.0 - When taking arguments from ``sys.argv`` on Windows, glob - patterns, user dir, and env vars are expanded. - - .. versionchanged:: 3.0 - Added the ``standalone_mode`` parameter. - """ - if args is None: - args = sys.argv[1:] - - if os.name == "nt" and windows_expand_args: - args = _expand_args(args) - else: - args = list(args) - - if prog_name is None: - prog_name = _detect_program_name() - - # Process shell completion requests and exit early. - self._main_shell_completion(extra, prog_name, complete_var) - - try: - try: - with self.make_context(prog_name, args, **extra) as ctx: - rv = self.invoke(ctx) - if not standalone_mode: - return rv - # it's not safe to `ctx.exit(rv)` here! - # note that `rv` may actually contain data like "1" which - # has obvious effects - # more subtle case: `rv=[None, None]` can come out of - # chained commands which all returned `None` -- so it's not - # even always obvious that `rv` indicates success/failure - # by its truthiness/falsiness - ctx.exit() - except (EOFError, KeyboardInterrupt) as e: - echo(file=sys.stderr) - raise Abort() from e - except ClickException as e: - if not standalone_mode: - raise - e.show() - sys.exit(e.exit_code) - except OSError as e: - if e.errno == errno.EPIPE: - sys.stdout = t.cast(t.TextIO, PacifyFlushWrapper(sys.stdout)) - sys.stderr = t.cast(t.TextIO, PacifyFlushWrapper(sys.stderr)) - sys.exit(1) - else: - raise - except Exit as e: - if standalone_mode: - sys.exit(e.exit_code) - else: - # in non-standalone mode, return the exit code - # note that this is only reached if `self.invoke` above raises - # an Exit explicitly -- thus bypassing the check there which - # would return its result - # the results of non-standalone execution may therefore be - # somewhat ambiguous: if there are codepaths which lead to - # `ctx.exit(1)` and to `return 1`, the caller won't be able to - # tell the difference between the two - return e.exit_code - except Abort: - if not standalone_mode: - raise - echo(_("Aborted!"), file=sys.stderr) - sys.exit(1) - - def _main_shell_completion( - self, - ctx_args: cabc.MutableMapping[str, t.Any], - prog_name: str, - complete_var: str | None = None, - ) -> None: - """Check if the shell is asking for tab completion, process - that, then exit early. Called from :meth:`main` before the - program is invoked. - - :param prog_name: Name of the executable in the shell. - :param complete_var: Name of the environment variable that holds - the completion instruction. Defaults to - ``_{PROG_NAME}_COMPLETE``. - - .. versionchanged:: 8.2.0 - Dots (``.``) in ``prog_name`` are replaced with underscores (``_``). - """ - if complete_var is None: - complete_name = prog_name.replace("-", "_").replace(".", "_") - complete_var = f"_{complete_name}_COMPLETE".upper() - - instruction = os.environ.get(complete_var) - - if not instruction: - return - - from .shell_completion import shell_complete - - rv = shell_complete(self, ctx_args, prog_name, complete_var, instruction) - sys.exit(rv) - - def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any: - """Alias for :meth:`main`.""" - return self.main(*args, **kwargs) - - -class _FakeSubclassCheck(type): - def __subclasscheck__(cls, subclass: type) -> bool: - return issubclass(subclass, cls.__bases__[0]) - - def __instancecheck__(cls, instance: t.Any) -> bool: - return isinstance(instance, cls.__bases__[0]) - - -class _BaseCommand(Command, metaclass=_FakeSubclassCheck): - """ - .. deprecated:: 8.2 - Will be removed in Click 9.0. Use ``Command`` instead. - """ - - -class Group(Command): - """A group is a command that nests other commands (or more groups). - - :param name: The name of the group command. - :param commands: Map names to :class:`Command` objects. Can be a list, which - will use :attr:`Command.name` as the keys. - :param invoke_without_command: Invoke the group's callback even if a - subcommand is not given. - :param no_args_is_help: If no arguments are given, show the group's help and - exit. Defaults to the opposite of ``invoke_without_command``. - :param subcommand_metavar: How to represent the subcommand argument in help. - The default will represent whether ``chain`` is set or not. - :param chain: Allow passing more than one subcommand argument. After parsing - a command's arguments, if any arguments remain another command will be - matched, and so on. - :param result_callback: A function to call after the group's and - subcommand's callbacks. The value returned by the subcommand is passed. - If ``chain`` is enabled, the value will be a list of values returned by - all the commands. If ``invoke_without_command`` is enabled, the value - will be the value returned by the group's callback, or an empty list if - ``chain`` is enabled. - :param kwargs: Other arguments passed to :class:`Command`. - - .. versionchanged:: 8.0 - The ``commands`` argument can be a list of command objects. - - .. versionchanged:: 8.2 - Merged with and replaces the ``MultiCommand`` base class. - """ - - allow_extra_args = True - allow_interspersed_args = False - - #: If set, this is used by the group's :meth:`command` decorator - #: as the default :class:`Command` class. This is useful to make all - #: subcommands use a custom command class. - #: - #: .. versionadded:: 8.0 - command_class: type[Command] | None = None - - #: If set, this is used by the group's :meth:`group` decorator - #: as the default :class:`Group` class. This is useful to make all - #: subgroups use a custom group class. - #: - #: If set to the special value :class:`type` (literally - #: ``group_class = type``), this group's class will be used as the - #: default class. This makes a custom group class continue to make - #: custom groups. - #: - #: .. versionadded:: 8.0 - group_class: type[Group] | type[type] | None = None - # Literal[type] isn't valid, so use Type[type] - - def __init__( - self, - name: str | None = None, - commands: cabc.MutableMapping[str, Command] - | cabc.Sequence[Command] - | None = None, - invoke_without_command: bool = False, - no_args_is_help: bool | None = None, - subcommand_metavar: str | None = None, - chain: bool = False, - result_callback: t.Callable[..., t.Any] | None = None, - **kwargs: t.Any, - ) -> None: - super().__init__(name, **kwargs) - - if commands is None: - commands = {} - elif isinstance(commands, abc.Sequence): - commands = {c.name: c for c in commands if c.name is not None} - - #: The registered subcommands by their exported names. - self.commands: cabc.MutableMapping[str, Command] = commands - - if no_args_is_help is None: - no_args_is_help = not invoke_without_command - - self.no_args_is_help = no_args_is_help - self.invoke_without_command = invoke_without_command - - if subcommand_metavar is None: - if chain: - subcommand_metavar = "COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]..." - else: - subcommand_metavar = "COMMAND [ARGS]..." - - self.subcommand_metavar = subcommand_metavar - self.chain = chain - # The result callback that is stored. This can be set or - # overridden with the :func:`result_callback` decorator. - self._result_callback = result_callback - - if self.chain: - for param in self.params: - if isinstance(param, Argument) and not param.required: - raise RuntimeError( - "A group in chain mode cannot have optional arguments." - ) - - def to_info_dict(self, ctx: Context) -> dict[str, t.Any]: - info_dict = super().to_info_dict(ctx) - commands = {} - - for name in self.list_commands(ctx): - command = self.get_command(ctx, name) - - if command is None: - continue - - sub_ctx = ctx._make_sub_context(command) - - with sub_ctx.scope(cleanup=False): - commands[name] = command.to_info_dict(sub_ctx) - - info_dict.update(commands=commands, chain=self.chain) - return info_dict - - def add_command(self, cmd: Command, name: str | None = None) -> None: - """Registers another :class:`Command` with this group. If the name - is not provided, the name of the command is used. - """ - name = name or cmd.name - if name is None: - raise TypeError("Command has no name.") - _check_nested_chain(self, name, cmd, register=True) - self.commands[name] = cmd - - @t.overload - def command(self, __func: t.Callable[..., t.Any]) -> Command: ... - - @t.overload - def command( - self, *args: t.Any, **kwargs: t.Any - ) -> t.Callable[[t.Callable[..., t.Any]], Command]: ... - - def command( - self, *args: t.Any, **kwargs: t.Any - ) -> t.Callable[[t.Callable[..., t.Any]], Command] | Command: - """A shortcut decorator for declaring and attaching a command to - the group. This takes the same arguments as :func:`command` and - immediately registers the created command with this group by - calling :meth:`add_command`. - - To customize the command class used, set the - :attr:`command_class` attribute. - - .. versionchanged:: 8.1 - This decorator can be applied without parentheses. - - .. versionchanged:: 8.0 - Added the :attr:`command_class` attribute. - """ - from .decorators import command - - func: t.Callable[..., t.Any] | None = None - - if args and callable(args[0]): - assert len(args) == 1 and not kwargs, ( - "Use 'command(**kwargs)(callable)' to provide arguments." - ) - (func,) = args - args = () - - if self.command_class and kwargs.get("cls") is None: - kwargs["cls"] = self.command_class - - def decorator(f: t.Callable[..., t.Any]) -> Command: - cmd: Command = command(*args, **kwargs)(f) - self.add_command(cmd) - return cmd - - if func is not None: - return decorator(func) - - return decorator - - @t.overload - def group(self, __func: t.Callable[..., t.Any]) -> Group: ... - - @t.overload - def group( - self, *args: t.Any, **kwargs: t.Any - ) -> t.Callable[[t.Callable[..., t.Any]], Group]: ... - - def group( - self, *args: t.Any, **kwargs: t.Any - ) -> t.Callable[[t.Callable[..., t.Any]], Group] | Group: - """A shortcut decorator for declaring and attaching a group to - the group. This takes the same arguments as :func:`group` and - immediately registers the created group with this group by - calling :meth:`add_command`. - - To customize the group class used, set the :attr:`group_class` - attribute. - - .. versionchanged:: 8.1 - This decorator can be applied without parentheses. - - .. versionchanged:: 8.0 - Added the :attr:`group_class` attribute. - """ - from .decorators import group - - func: t.Callable[..., t.Any] | None = None - - if args and callable(args[0]): - assert len(args) == 1 and not kwargs, ( - "Use 'group(**kwargs)(callable)' to provide arguments." - ) - (func,) = args - args = () - - if self.group_class is not None and kwargs.get("cls") is None: - if self.group_class is type: - kwargs["cls"] = type(self) - else: - kwargs["cls"] = self.group_class - - def decorator(f: t.Callable[..., t.Any]) -> Group: - cmd: Group = group(*args, **kwargs)(f) - self.add_command(cmd) - return cmd - - if func is not None: - return decorator(func) - - return decorator - - def result_callback(self, replace: bool = False) -> t.Callable[[F], F]: - """Adds a result callback to the command. By default if a - result callback is already registered this will chain them but - this can be disabled with the `replace` parameter. The result - callback is invoked with the return value of the subcommand - (or the list of return values from all subcommands if chaining - is enabled) as well as the parameters as they would be passed - to the main callback. - - Example:: - - @click.group() - @click.option('-i', '--input', default=23) - def cli(input): - return 42 - - @cli.result_callback() - def process_result(result, input): - return result + input - - :param replace: if set to `True` an already existing result - callback will be removed. - - .. versionchanged:: 8.0 - Renamed from ``resultcallback``. - - .. versionadded:: 3.0 - """ - - def decorator(f: F) -> F: - old_callback = self._result_callback - - if old_callback is None or replace: - self._result_callback = f - return f - - def function(value: t.Any, /, *args: t.Any, **kwargs: t.Any) -> t.Any: - inner = old_callback(value, *args, **kwargs) - return f(inner, *args, **kwargs) - - self._result_callback = rv = update_wrapper(t.cast(F, function), f) - return rv # type: ignore[return-value] - - return decorator - - def get_command(self, ctx: Context, cmd_name: str) -> Command | None: - """Given a context and a command name, this returns a :class:`Command` - object if it exists or returns ``None``. - """ - return self.commands.get(cmd_name) - - def list_commands(self, ctx: Context) -> list[str]: - """Returns a list of subcommand names in the order they should appear.""" - return sorted(self.commands) - - def collect_usage_pieces(self, ctx: Context) -> list[str]: - rv = super().collect_usage_pieces(ctx) - rv.append(self.subcommand_metavar) - return rv - - def format_options(self, ctx: Context, formatter: HelpFormatter) -> None: - super().format_options(ctx, formatter) - self.format_commands(ctx, formatter) - - def format_commands(self, ctx: Context, formatter: HelpFormatter) -> None: - """Extra format methods for multi methods that adds all the commands - after the options. - """ - commands = [] - for subcommand in self.list_commands(ctx): - cmd = self.get_command(ctx, subcommand) - # What is this, the tool lied about a command. Ignore it - if cmd is None: - continue - if cmd.hidden: - continue - - commands.append((subcommand, cmd)) - - # allow for 3 times the default spacing - if len(commands): - limit = formatter.width - 6 - max(len(cmd[0]) for cmd in commands) - - rows = [] - for subcommand, cmd in commands: - help = cmd.get_short_help_str(limit) - rows.append((subcommand, help)) - - if rows: - with formatter.section(_("Commands")): - formatter.write_dl(rows) - - def parse_args(self, ctx: Context, args: list[str]) -> list[str]: - if not args and self.no_args_is_help and not ctx.resilient_parsing: - raise NoArgsIsHelpError(ctx) - - rest = super().parse_args(ctx, args) - - if self.chain: - ctx._protected_args = rest - ctx.args = [] - elif rest: - ctx._protected_args, ctx.args = rest[:1], rest[1:] - - return ctx.args - - def invoke(self, ctx: Context) -> t.Any: - def _process_result(value: t.Any) -> t.Any: - if self._result_callback is not None: - value = ctx.invoke(self._result_callback, value, **ctx.params) - return value - - if not ctx._protected_args: - if self.invoke_without_command: - # No subcommand was invoked, so the result callback is - # invoked with the group return value for regular - # groups, or an empty list for chained groups. - with ctx: - rv = super().invoke(ctx) - return _process_result([] if self.chain else rv) - ctx.fail(_("Missing command.")) - - # Fetch args back out - args = [*ctx._protected_args, *ctx.args] - ctx.args = [] - ctx._protected_args = [] - - # If we're not in chain mode, we only allow the invocation of a - # single command but we also inform the current context about the - # name of the command to invoke. - if not self.chain: - # Make sure the context is entered so we do not clean up - # resources until the result processor has worked. - with ctx: - cmd_name, cmd, args = self.resolve_command(ctx, args) - assert cmd is not None - ctx.invoked_subcommand = cmd_name - super().invoke(ctx) - sub_ctx = cmd.make_context(cmd_name, args, parent=ctx) - with sub_ctx: - return _process_result(sub_ctx.command.invoke(sub_ctx)) - - # In chain mode we create the contexts step by step, but after the - # base command has been invoked. Because at that point we do not - # know the subcommands yet, the invoked subcommand attribute is - # set to ``*`` to inform the command that subcommands are executed - # but nothing else. - with ctx: - ctx.invoked_subcommand = "*" if args else None - super().invoke(ctx) - - # Otherwise we make every single context and invoke them in a - # chain. In that case the return value to the result processor - # is the list of all invoked subcommand's results. - contexts = [] - while args: - cmd_name, cmd, args = self.resolve_command(ctx, args) - assert cmd is not None - sub_ctx = cmd.make_context( - cmd_name, - args, - parent=ctx, - allow_extra_args=True, - allow_interspersed_args=False, - ) - contexts.append(sub_ctx) - args, sub_ctx.args = sub_ctx.args, [] - - rv = [] - for sub_ctx in contexts: - with sub_ctx: - rv.append(sub_ctx.command.invoke(sub_ctx)) - return _process_result(rv) - - def resolve_command( - self, ctx: Context, args: list[str] - ) -> tuple[str | None, Command | None, list[str]]: - cmd_name = make_str(args[0]) - original_cmd_name = cmd_name - - # Get the command - cmd = self.get_command(ctx, cmd_name) - - # If we can't find the command but there is a normalization - # function available, we try with that one. - if cmd is None and ctx.token_normalize_func is not None: - cmd_name = ctx.token_normalize_func(cmd_name) - cmd = self.get_command(ctx, cmd_name) - - # If we don't find the command we want to show an error message - # to the user that it was not provided. However, there is - # something else we should do: if the first argument looks like - # an option we want to kick off parsing again for arguments to - # resolve things like --help which now should go to the main - # place. - if cmd is None and not ctx.resilient_parsing: - if _split_opt(cmd_name)[0]: - self.parse_args(ctx, args) - ctx.fail(_("No such command {name!r}.").format(name=original_cmd_name)) - return cmd_name if cmd else None, cmd, args[1:] - - def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]: - """Return a list of completions for the incomplete value. Looks - at the names of options, subcommands, and chained - multi-commands. - - :param ctx: Invocation context for this command. - :param incomplete: Value being completed. May be empty. - - .. versionadded:: 8.0 - """ - from click.shell_completion import CompletionItem - - results = [ - CompletionItem(name, help=command.get_short_help_str()) - for name, command in _complete_visible_commands(ctx, incomplete) - ] - results.extend(super().shell_complete(ctx, incomplete)) - return results - - -class _MultiCommand(Group, metaclass=_FakeSubclassCheck): - """ - .. deprecated:: 8.2 - Will be removed in Click 9.0. Use ``Group`` instead. - """ - - -class CommandCollection(Group): - """A :class:`Group` that looks up subcommands on other groups. If a command - is not found on this group, each registered source is checked in order. - Parameters on a source are not added to this group, and a source's callback - is not invoked when invoking its commands. In other words, this "flattens" - commands in many groups into this one group. - - :param name: The name of the group command. - :param sources: A list of :class:`Group` objects to look up commands from. - :param kwargs: Other arguments passed to :class:`Group`. - - .. versionchanged:: 8.2 - This is a subclass of ``Group``. Commands are looked up first on this - group, then each of its sources. - """ - - def __init__( - self, - name: str | None = None, - sources: list[Group] | None = None, - **kwargs: t.Any, - ) -> None: - super().__init__(name, **kwargs) - #: The list of registered groups. - self.sources: list[Group] = sources or [] - - def add_source(self, group: Group) -> None: - """Add a group as a source of commands.""" - self.sources.append(group) - - def get_command(self, ctx: Context, cmd_name: str) -> Command | None: - rv = super().get_command(ctx, cmd_name) - - if rv is not None: - return rv - - for source in self.sources: - rv = source.get_command(ctx, cmd_name) - - if rv is not None: - if self.chain: - _check_nested_chain(self, cmd_name, rv) - - return rv - - return None - - def list_commands(self, ctx: Context) -> list[str]: - rv: set[str] = set(super().list_commands(ctx)) - - for source in self.sources: - rv.update(source.list_commands(ctx)) - - return sorted(rv) - - -def _check_iter(value: t.Any) -> cabc.Iterator[t.Any]: - """Check if the value is iterable but not a string. Raises a type - error, or return an iterator over the value. - """ - if isinstance(value, str): - raise TypeError - - return iter(value) - - -class Parameter: - r"""A parameter to a command comes in two versions: they are either - :class:`Option`\s or :class:`Argument`\s. Other subclasses are currently - not supported by design as some of the internals for parsing are - intentionally not finalized. - - Some settings are supported by both options and arguments. - - :param param_decls: the parameter declarations for this option or - argument. This is a list of flags or argument - names. - :param type: the type that should be used. Either a :class:`ParamType` - or a Python type. The latter is converted into the former - automatically if supported. - :param required: controls if this is optional or not. - :param default: the default value if omitted. This can also be a callable, - in which case it's invoked when the default is needed - without any arguments. - :param callback: A function to further process or validate the value - after type conversion. It is called as ``f(ctx, param, value)`` - and must return the value. It is called for all sources, - including prompts. - :param nargs: the number of arguments to match. If not ``1`` the return - value is a tuple instead of single value. The default for - nargs is ``1`` (except if the type is a tuple, then it's - the arity of the tuple). If ``nargs=-1``, all remaining - parameters are collected. - :param metavar: how the value is represented in the help page. - :param expose_value: if this is `True` then the value is passed onwards - to the command callback and stored on the context, - otherwise it's skipped. - :param is_eager: eager values are processed before non eager ones. This - should not be set for arguments or it will inverse the - order of processing. - :param envvar: environment variable(s) that are used to provide a default value for - this parameter. This can be a string or a sequence of strings. If a sequence is - given, only the first non-empty environment variable is used for the parameter. - :param shell_complete: A function that returns custom shell - completions. Used instead of the param's type completion if - given. Takes ``ctx, param, incomplete`` and must return a list - of :class:`~click.shell_completion.CompletionItem` or a list of - strings. - :param deprecated: If ``True`` or non-empty string, issues a message - indicating that the argument is deprecated and highlights - its deprecation in --help. The message can be customized - by using a string as the value. A deprecated parameter - cannot be required, a ValueError will be raised otherwise. - - .. versionchanged:: 8.2.0 - Introduction of ``deprecated``. - - .. versionchanged:: 8.2 - Adding duplicate parameter names to a :class:`~click.core.Command` will - result in a ``UserWarning`` being shown. - - .. versionchanged:: 8.2 - Adding duplicate parameter names to a :class:`~click.core.Command` will - result in a ``UserWarning`` being shown. - - .. versionchanged:: 8.0 - ``process_value`` validates required parameters and bounded - ``nargs``, and invokes the parameter callback before returning - the value. This allows the callback to validate prompts. - ``full_process_value`` is removed. - - .. versionchanged:: 8.0 - ``autocompletion`` is renamed to ``shell_complete`` and has new - semantics described above. The old name is deprecated and will - be removed in 8.1, until then it will be wrapped to match the - new requirements. - - .. versionchanged:: 8.0 - For ``multiple=True, nargs>1``, the default must be a list of - tuples. - - .. versionchanged:: 8.0 - Setting a default is no longer required for ``nargs>1``, it will - default to ``None``. ``multiple=True`` or ``nargs=-1`` will - default to ``()``. - - .. versionchanged:: 7.1 - Empty environment variables are ignored rather than taking the - empty string value. This makes it possible for scripts to clear - variables if they can't unset them. - - .. versionchanged:: 2.0 - Changed signature for parameter callback to also be passed the - parameter. The old callback format will still work, but it will - raise a warning to give you a chance to migrate the code easier. - """ - - param_type_name = "parameter" - - def __init__( - self, - param_decls: cabc.Sequence[str] | None = None, - type: types.ParamType | t.Any | None = None, - required: bool = False, - # XXX The default historically embed two concepts: - # - the declaration of a Parameter object carrying the default (handy to - # arbitrage the default value of coupled Parameters sharing the same - # self.name, like flag options), - # - and the actual value of the default. - # It is confusing and is the source of many issues discussed in: - # https://github.com/pallets/click/pull/3030 - # In the future, we might think of splitting it in two, not unlike - # Option.is_flag and Option.flag_value: we could have something like - # Parameter.is_default and Parameter.default_value. - default: t.Any | t.Callable[[], t.Any] | None = UNSET, - callback: t.Callable[[Context, Parameter, t.Any], t.Any] | None = None, - nargs: int | None = None, - multiple: bool = False, - metavar: str | None = None, - expose_value: bool = True, - is_eager: bool = False, - envvar: str | cabc.Sequence[str] | None = None, - shell_complete: t.Callable[ - [Context, Parameter, str], list[CompletionItem] | list[str] - ] - | None = None, - deprecated: bool | str = False, - ) -> None: - self.name: str | None - self.opts: list[str] - self.secondary_opts: list[str] - self.name, self.opts, self.secondary_opts = self._parse_decls( - param_decls or (), expose_value - ) - self.type: types.ParamType = types.convert_type(type, default) - - # Default nargs to what the type tells us if we have that - # information available. - if nargs is None: - if self.type.is_composite: - nargs = self.type.arity - else: - nargs = 1 - - self.required = required - self.callback = callback - self.nargs = nargs - self.multiple = multiple - self.expose_value = expose_value - self.default: t.Any | t.Callable[[], t.Any] | None = default - self.is_eager = is_eager - self.metavar = metavar - self.envvar = envvar - self._custom_shell_complete = shell_complete - self.deprecated = deprecated - - if __debug__: - if self.type.is_composite and nargs != self.type.arity: - raise ValueError( - f"'nargs' must be {self.type.arity} (or None) for" - f" type {self.type!r}, but it was {nargs}." - ) - - if required and deprecated: - raise ValueError( - f"The {self.param_type_name} '{self.human_readable_name}' " - "is deprecated and still required. A deprecated " - f"{self.param_type_name} cannot be required." - ) - - def to_info_dict(self) -> dict[str, t.Any]: - """Gather information that could be useful for a tool generating - user-facing documentation. - - Use :meth:`click.Context.to_info_dict` to traverse the entire - CLI structure. - - .. versionchanged:: 8.3.0 - Returns ``None`` for the :attr:`default` if it was not set. - - .. versionadded:: 8.0 - """ - return { - "name": self.name, - "param_type_name": self.param_type_name, - "opts": self.opts, - "secondary_opts": self.secondary_opts, - "type": self.type.to_info_dict(), - "required": self.required, - "nargs": self.nargs, - "multiple": self.multiple, - # We explicitly hide the :attr:`UNSET` value to the user, as we choose to - # make it an implementation detail. And because ``to_info_dict`` has been - # designed for documentation purposes, we return ``None`` instead. - "default": self.default if self.default is not UNSET else None, - "envvar": self.envvar, - } - - def __repr__(self) -> str: - return f"<{self.__class__.__name__} {self.name}>" - - def _parse_decls( - self, decls: cabc.Sequence[str], expose_value: bool - ) -> tuple[str | None, list[str], list[str]]: - raise NotImplementedError() - - @property - def human_readable_name(self) -> str: - """Returns the human readable name of this parameter. This is the - same as the name for options, but the metavar for arguments. - """ - return self.name # type: ignore - - def make_metavar(self, ctx: Context) -> str: - if self.metavar is not None: - return self.metavar - - metavar = self.type.get_metavar(param=self, ctx=ctx) - - if metavar is None: - metavar = self.type.name.upper() - - if self.nargs != 1: - metavar += "..." - - return metavar - - @t.overload - def get_default( - self, ctx: Context, call: t.Literal[True] = True - ) -> t.Any | None: ... - - @t.overload - def get_default( - self, ctx: Context, call: bool = ... - ) -> t.Any | t.Callable[[], t.Any] | None: ... - - def get_default( - self, ctx: Context, call: bool = True - ) -> t.Any | t.Callable[[], t.Any] | None: - """Get the default for the parameter. Tries - :meth:`Context.lookup_default` first, then the local default. - - :param ctx: Current context. - :param call: If the default is a callable, call it. Disable to - return the callable instead. - - .. versionchanged:: 8.0.2 - Type casting is no longer performed when getting a default. - - .. versionchanged:: 8.0.1 - Type casting can fail in resilient parsing mode. Invalid - defaults will not prevent showing help text. - - .. versionchanged:: 8.0 - Looks at ``ctx.default_map`` first. - - .. versionchanged:: 8.0 - Added the ``call`` parameter. - """ - value = ctx.lookup_default(self.name, call=False) # type: ignore - - if value is UNSET: - value = self.default - - if call and callable(value): - value = value() - - return value - - def add_to_parser(self, parser: _OptionParser, ctx: Context) -> None: - raise NotImplementedError() - - def consume_value( - self, ctx: Context, opts: cabc.Mapping[str, t.Any] - ) -> tuple[t.Any, ParameterSource]: - """Returns the parameter value produced by the parser. - - If the parser did not produce a value from user input, the value is either - sourced from the environment variable, the default map, or the parameter's - default value. In that order of precedence. - - If no value is found, an internal sentinel value is returned. - - :meta private: - """ - # Collect from the parse the value passed by the user to the CLI. - value = opts.get(self.name, UNSET) # type: ignore - # If the value is set, it means it was sourced from the command line by the - # parser, otherwise it left unset by default. - source = ( - ParameterSource.COMMANDLINE - if value is not UNSET - else ParameterSource.DEFAULT - ) - - if value is UNSET: - envvar_value = self.value_from_envvar(ctx) - if envvar_value is not None: - value = envvar_value - source = ParameterSource.ENVIRONMENT - - if value is UNSET: - default_map_value = ctx.lookup_default(self.name) # type: ignore - if default_map_value is not UNSET: - value = default_map_value - source = ParameterSource.DEFAULT_MAP - - if value is UNSET: - default_value = self.get_default(ctx) - if default_value is not UNSET: - value = default_value - source = ParameterSource.DEFAULT - - return value, source - - def type_cast_value(self, ctx: Context, value: t.Any) -> t.Any: - """Convert and validate a value against the parameter's - :attr:`type`, :attr:`multiple`, and :attr:`nargs`. - """ - if value is None: - if self.multiple or self.nargs == -1: - return () - else: - return value - - def check_iter(value: t.Any) -> cabc.Iterator[t.Any]: - try: - return _check_iter(value) - except TypeError: - # This should only happen when passing in args manually, - # the parser should construct an iterable when parsing - # the command line. - raise BadParameter( - _("Value must be an iterable."), ctx=ctx, param=self - ) from None - - # Define the conversion function based on nargs and type. - - if self.nargs == 1 or self.type.is_composite: - - def convert(value: t.Any) -> t.Any: - return self.type(value, param=self, ctx=ctx) - - elif self.nargs == -1: - - def convert(value: t.Any) -> t.Any: # tuple[t.Any, ...] - return tuple(self.type(x, self, ctx) for x in check_iter(value)) - - else: # nargs > 1 - - def convert(value: t.Any) -> t.Any: # tuple[t.Any, ...] - value = tuple(check_iter(value)) - - if len(value) != self.nargs: - raise BadParameter( - ngettext( - "Takes {nargs} values but 1 was given.", - "Takes {nargs} values but {len} were given.", - len(value), - ).format(nargs=self.nargs, len=len(value)), - ctx=ctx, - param=self, - ) - - return tuple(self.type(x, self, ctx) for x in value) - - if self.multiple: - return tuple(convert(x) for x in check_iter(value)) - - return convert(value) - - def value_is_missing(self, value: t.Any) -> bool: - """A value is considered missing if: - - - it is :attr:`UNSET`, - - or if it is an empty sequence while the parameter is suppose to have - non-single value (i.e. :attr:`nargs` is not ``1`` or :attr:`multiple` is - set). - - :meta private: - """ - if value is UNSET: - return True - - if (self.nargs != 1 or self.multiple) and value == (): - return True - - return False - - def process_value(self, ctx: Context, value: t.Any) -> t.Any: - """Process the value of this parameter: - - 1. Type cast the value using :meth:`type_cast_value`. - 2. Check if the value is missing (see: :meth:`value_is_missing`), and raise - :exc:`MissingParameter` if it is required. - 3. If a :attr:`callback` is set, call it to have the value replaced by the - result of the callback. If the value was not set, the callback receive - ``None``. This keep the legacy behavior as it was before the introduction of - the :attr:`UNSET` sentinel. - - :meta private: - """ - # shelter `type_cast_value` from ever seeing an `UNSET` value by handling the - # cases in which `UNSET` gets special treatment explicitly at this layer - # - # Refs: - # https://github.com/pallets/click/issues/3069 - if value is UNSET: - if self.multiple or self.nargs == -1: - value = () - else: - value = self.type_cast_value(ctx, value) - - if self.required and self.value_is_missing(value): - raise MissingParameter(ctx=ctx, param=self) - - if self.callback is not None: - # Legacy case: UNSET is not exposed directly to the callback, but converted - # to None. - if value is UNSET: - value = None - - # Search for parameters with UNSET values in the context. - unset_keys = {k: None for k, v in ctx.params.items() if v is UNSET} - # No UNSET values, call the callback as usual. - if not unset_keys: - value = self.callback(ctx, self, value) - - # Legacy case: provide a temporarily manipulated context to the callback - # to hide UNSET values as None. - # - # Refs: - # https://github.com/pallets/click/issues/3136 - # https://github.com/pallets/click/pull/3137 - else: - # Add another layer to the context stack to clearly hint that the - # context is temporarily modified. - with ctx: - # Update the context parameters to replace UNSET with None. - ctx.params.update(unset_keys) - # Feed these fake context parameters to the callback. - value = self.callback(ctx, self, value) - # Restore the UNSET values in the context parameters. - ctx.params.update( - { - k: UNSET - for k in unset_keys - # Only restore keys that are present and still None, in case - # the callback modified other parameters. - if k in ctx.params and ctx.params[k] is None - } - ) - - return value - - def resolve_envvar_value(self, ctx: Context) -> str | None: - """Returns the value found in the environment variable(s) attached to this - parameter. - - Environment variables values are `always returned as strings - `_. - - This method returns ``None`` if: - - - the :attr:`envvar` property is not set on the :class:`Parameter`, - - the environment variable is not found in the environment, - - the variable is found in the environment but its value is empty (i.e. the - environment variable is present but has an empty string). - - If :attr:`envvar` is setup with multiple environment variables, - then only the first non-empty value is returned. - - .. caution:: - - The raw value extracted from the environment is not normalized and is - returned as-is. Any normalization or reconciliation is performed later by - the :class:`Parameter`'s :attr:`type`. - - :meta private: - """ - if not self.envvar: - return None - - if isinstance(self.envvar, str): - rv = os.environ.get(self.envvar) - - if rv: - return rv - else: - for envvar in self.envvar: - rv = os.environ.get(envvar) - - # Return the first non-empty value of the list of environment variables. - if rv: - return rv - # Else, absence of value is interpreted as an environment variable that - # is not set, so proceed to the next one. - - return None - - def value_from_envvar(self, ctx: Context) -> str | cabc.Sequence[str] | None: - """Process the raw environment variable string for this parameter. - - Returns the string as-is or splits it into a sequence of strings if the - parameter is expecting multiple values (i.e. its :attr:`nargs` property is set - to a value other than ``1``). - - :meta private: - """ - rv = self.resolve_envvar_value(ctx) - - if rv is not None and self.nargs != 1: - return self.type.split_envvar_value(rv) - - return rv - - def handle_parse_result( - self, ctx: Context, opts: cabc.Mapping[str, t.Any], args: list[str] - ) -> tuple[t.Any, list[str]]: - """Process the value produced by the parser from user input. - - Always process the value through the Parameter's :attr:`type`, wherever it - comes from. - - If the parameter is deprecated, this method warn the user about it. But only if - the value has been explicitly set by the user (and as such, is not coming from - a default). - - :meta private: - """ - with augment_usage_errors(ctx, param=self): - value, source = self.consume_value(ctx, opts) - - ctx.set_parameter_source(self.name, source) # type: ignore - - # Display a deprecation warning if necessary. - if ( - self.deprecated - and value is not UNSET - and source not in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) - ): - extra_message = ( - f" {self.deprecated}" if isinstance(self.deprecated, str) else "" - ) - message = _( - "DeprecationWarning: The {param_type} {name!r} is deprecated." - "{extra_message}" - ).format( - param_type=self.param_type_name, - name=self.human_readable_name, - extra_message=extra_message, - ) - echo(style(message, fg="red"), err=True) - - # Process the value through the parameter's type. - try: - value = self.process_value(ctx, value) - except Exception: - if not ctx.resilient_parsing: - raise - # In resilient parsing mode, we do not want to fail the command if the - # value is incompatible with the parameter type, so we reset the value - # to UNSET, which will be interpreted as a missing value. - value = UNSET - - # Add parameter's value to the context. - if ( - self.expose_value - # We skip adding the value if it was previously set by another parameter - # targeting the same variable name. This prevents parameters competing for - # the same name to override each other. - and (self.name not in ctx.params or ctx.params[self.name] is UNSET) - ): - # Click is logically enforcing that the name is None if the parameter is - # not to be exposed. We still assert it here to please the type checker. - assert self.name is not None, ( - f"{self!r} parameter's name should not be None when exposing value." - ) - ctx.params[self.name] = value - - return value, args - - def get_help_record(self, ctx: Context) -> tuple[str, str] | None: - pass - - def get_usage_pieces(self, ctx: Context) -> list[str]: - return [] - - def get_error_hint(self, ctx: Context) -> str: - """Get a stringified version of the param for use in error messages to - indicate which param caused the error. - """ - hint_list = self.opts or [self.human_readable_name] - return " / ".join(f"'{x}'" for x in hint_list) - - def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]: - """Return a list of completions for the incomplete value. If a - ``shell_complete`` function was given during init, it is used. - Otherwise, the :attr:`type` - :meth:`~click.types.ParamType.shell_complete` function is used. - - :param ctx: Invocation context for this command. - :param incomplete: Value being completed. May be empty. - - .. versionadded:: 8.0 - """ - if self._custom_shell_complete is not None: - results = self._custom_shell_complete(ctx, self, incomplete) - - if results and isinstance(results[0], str): - from click.shell_completion import CompletionItem - - results = [CompletionItem(c) for c in results] - - return t.cast("list[CompletionItem]", results) - - return self.type.shell_complete(ctx, self, incomplete) - - -class Option(Parameter): - """Options are usually optional values on the command line and - have some extra features that arguments don't have. - - All other parameters are passed onwards to the parameter constructor. - - :param show_default: Show the default value for this option in its - help text. Values are not shown by default, unless - :attr:`Context.show_default` is ``True``. If this value is a - string, it shows that string in parentheses instead of the - actual value. This is particularly useful for dynamic options. - For single option boolean flags, the default remains hidden if - its value is ``False``. - :param show_envvar: Controls if an environment variable should be - shown on the help page and error messages. - Normally, environment variables are not shown. - :param prompt: If set to ``True`` or a non empty string then the - user will be prompted for input. If set to ``True`` the prompt - will be the option name capitalized. A deprecated option cannot be - prompted. - :param confirmation_prompt: Prompt a second time to confirm the - value if it was prompted for. Can be set to a string instead of - ``True`` to customize the message. - :param prompt_required: If set to ``False``, the user will be - prompted for input only when the option was specified as a flag - without a value. - :param hide_input: If this is ``True`` then the input on the prompt - will be hidden from the user. This is useful for password input. - :param is_flag: forces this option to act as a flag. The default is - auto detection. - :param flag_value: which value should be used for this flag if it's - enabled. This is set to a boolean automatically if - the option string contains a slash to mark two options. - :param multiple: if this is set to `True` then the argument is accepted - multiple times and recorded. This is similar to ``nargs`` - in how it works but supports arbitrary number of - arguments. - :param count: this flag makes an option increment an integer. - :param allow_from_autoenv: if this is enabled then the value of this - parameter will be pulled from an environment - variable in case a prefix is defined on the - context. - :param help: the help string. - :param hidden: hide this option from help outputs. - :param attrs: Other command arguments described in :class:`Parameter`. - - .. versionchanged:: 8.2 - ``envvar`` used with ``flag_value`` will always use the ``flag_value``, - previously it would use the value of the environment variable. - - .. versionchanged:: 8.1 - Help text indentation is cleaned here instead of only in the - ``@option`` decorator. - - .. versionchanged:: 8.1 - The ``show_default`` parameter overrides - ``Context.show_default``. - - .. versionchanged:: 8.1 - The default of a single option boolean flag is not shown if the - default value is ``False``. - - .. versionchanged:: 8.0.1 - ``type`` is detected from ``flag_value`` if given. - """ - - param_type_name = "option" - - def __init__( - self, - param_decls: cabc.Sequence[str] | None = None, - show_default: bool | str | None = None, - prompt: bool | str = False, - confirmation_prompt: bool | str = False, - prompt_required: bool = True, - hide_input: bool = False, - is_flag: bool | None = None, - flag_value: t.Any = UNSET, - multiple: bool = False, - count: bool = False, - allow_from_autoenv: bool = True, - type: types.ParamType | t.Any | None = None, - help: str | None = None, - hidden: bool = False, - show_choices: bool = True, - show_envvar: bool = False, - deprecated: bool | str = False, - **attrs: t.Any, - ) -> None: - if help: - help = inspect.cleandoc(help) - - super().__init__( - param_decls, type=type, multiple=multiple, deprecated=deprecated, **attrs - ) - - if prompt is True: - if self.name is None: - raise TypeError("'name' is required with 'prompt=True'.") - - prompt_text: str | None = self.name.replace("_", " ").capitalize() - elif prompt is False: - prompt_text = None - else: - prompt_text = prompt - - if deprecated: - deprecated_message = ( - f"(DEPRECATED: {deprecated})" - if isinstance(deprecated, str) - else "(DEPRECATED)" - ) - help = help + deprecated_message if help is not None else deprecated_message - - self.prompt = prompt_text - self.confirmation_prompt = confirmation_prompt - self.prompt_required = prompt_required - self.hide_input = hide_input - self.hidden = hidden - - # The _flag_needs_value property tells the parser that this option is a flag - # that cannot be used standalone and needs a value. With this information, the - # parser can determine whether to consider the next user-provided argument in - # the CLI as a value for this flag or as a new option. - # If prompt is enabled but not required, then it opens the possibility for the - # option to gets its value from the user. - self._flag_needs_value = self.prompt is not None and not self.prompt_required - - # Auto-detect if this is a flag or not. - if is_flag is None: - # Implicitly a flag because flag_value was set. - if flag_value is not UNSET: - is_flag = True - # Not a flag, but when used as a flag it shows a prompt. - elif self._flag_needs_value: - is_flag = False - # Implicitly a flag because secondary options names were given. - elif self.secondary_opts: - is_flag = True - # The option is explicitly not a flag. But we do not know yet if it needs a - # value or not. So we look at the default value to determine it. - elif is_flag is False and not self._flag_needs_value: - self._flag_needs_value = self.default is UNSET - - if is_flag: - # Set missing default for flags if not explicitly required or prompted. - if self.default is UNSET and not self.required and not self.prompt: - if multiple: - self.default = () - - # Auto-detect the type of the flag based on the flag_value. - if type is None: - # A flag without a flag_value is a boolean flag. - if flag_value is UNSET: - self.type: types.ParamType = types.BoolParamType() - # If the flag value is a boolean, use BoolParamType. - elif isinstance(flag_value, bool): - self.type = types.BoolParamType() - # Otherwise, guess the type from the flag value. - else: - self.type = types.convert_type(None, flag_value) - - self.is_flag: bool = bool(is_flag) - self.is_bool_flag: bool = bool( - is_flag and isinstance(self.type, types.BoolParamType) - ) - self.flag_value: t.Any = flag_value - - # Set boolean flag default to False if unset and not required. - if self.is_bool_flag: - if self.default is UNSET and not self.required: - self.default = False - - # Support the special case of aligning the default value with the flag_value - # for flags whose default is explicitly set to True. Note that as long as we - # have this condition, there is no way a flag can have a default set to True, - # and a flag_value set to something else. Refs: - # https://github.com/pallets/click/issues/3024#issuecomment-3146199461 - # https://github.com/pallets/click/pull/3030/commits/06847da - if self.default is True and self.flag_value is not UNSET: - self.default = self.flag_value - - # Set the default flag_value if it is not set. - if self.flag_value is UNSET: - if self.is_flag: - self.flag_value = True - else: - self.flag_value = None - - # Counting. - self.count = count - if count: - if type is None: - self.type = types.IntRange(min=0) - if self.default is UNSET: - self.default = 0 - - self.allow_from_autoenv = allow_from_autoenv - self.help = help - self.show_default = show_default - self.show_choices = show_choices - self.show_envvar = show_envvar - - if __debug__: - if deprecated and prompt: - raise ValueError("`deprecated` options cannot use `prompt`.") - - if self.nargs == -1: - raise TypeError("nargs=-1 is not supported for options.") - - if not self.is_bool_flag and self.secondary_opts: - raise TypeError("Secondary flag is not valid for non-boolean flag.") - - if self.is_bool_flag and self.hide_input and self.prompt is not None: - raise TypeError( - "'prompt' with 'hide_input' is not valid for boolean flag." - ) - - if self.count: - if self.multiple: - raise TypeError("'count' is not valid with 'multiple'.") - - if self.is_flag: - raise TypeError("'count' is not valid with 'is_flag'.") - - def to_info_dict(self) -> dict[str, t.Any]: - """ - .. versionchanged:: 8.3.0 - Returns ``None`` for the :attr:`flag_value` if it was not set. - """ - info_dict = super().to_info_dict() - info_dict.update( - help=self.help, - prompt=self.prompt, - is_flag=self.is_flag, - # We explicitly hide the :attr:`UNSET` value to the user, as we choose to - # make it an implementation detail. And because ``to_info_dict`` has been - # designed for documentation purposes, we return ``None`` instead. - flag_value=self.flag_value if self.flag_value is not UNSET else None, - count=self.count, - hidden=self.hidden, - ) - return info_dict - - def get_error_hint(self, ctx: Context) -> str: - result = super().get_error_hint(ctx) - if self.show_envvar and self.envvar is not None: - result += f" (env var: '{self.envvar}')" - return result - - def _parse_decls( - self, decls: cabc.Sequence[str], expose_value: bool - ) -> tuple[str | None, list[str], list[str]]: - opts = [] - secondary_opts = [] - name = None - possible_names = [] - - for decl in decls: - if decl.isidentifier(): - if name is not None: - raise TypeError(f"Name '{name}' defined twice") - name = decl - else: - split_char = ";" if decl[:1] == "/" else "/" - if split_char in decl: - first, second = decl.split(split_char, 1) - first = first.rstrip() - if first: - possible_names.append(_split_opt(first)) - opts.append(first) - second = second.lstrip() - if second: - secondary_opts.append(second.lstrip()) - if first == second: - raise ValueError( - f"Boolean option {decl!r} cannot use the" - " same flag for true/false." - ) - else: - possible_names.append(_split_opt(decl)) - opts.append(decl) - - if name is None and possible_names: - possible_names.sort(key=lambda x: -len(x[0])) # group long options first - name = possible_names[0][1].replace("-", "_").lower() - if not name.isidentifier(): - name = None - - if name is None: - if not expose_value: - return None, opts, secondary_opts - raise TypeError( - f"Could not determine name for option with declarations {decls!r}" - ) - - if not opts and not secondary_opts: - raise TypeError( - f"No options defined but a name was passed ({name})." - " Did you mean to declare an argument instead? Did" - f" you mean to pass '--{name}'?" - ) - - return name, opts, secondary_opts - - def add_to_parser(self, parser: _OptionParser, ctx: Context) -> None: - if self.multiple: - action = "append" - elif self.count: - action = "count" - else: - action = "store" - - if self.is_flag: - action = f"{action}_const" - - if self.is_bool_flag and self.secondary_opts: - parser.add_option( - obj=self, opts=self.opts, dest=self.name, action=action, const=True - ) - parser.add_option( - obj=self, - opts=self.secondary_opts, - dest=self.name, - action=action, - const=False, - ) - else: - parser.add_option( - obj=self, - opts=self.opts, - dest=self.name, - action=action, - const=self.flag_value, - ) - else: - parser.add_option( - obj=self, - opts=self.opts, - dest=self.name, - action=action, - nargs=self.nargs, - ) - - def get_help_record(self, ctx: Context) -> tuple[str, str] | None: - if self.hidden: - return None - - any_prefix_is_slash = False - - def _write_opts(opts: cabc.Sequence[str]) -> str: - nonlocal any_prefix_is_slash - - rv, any_slashes = join_options(opts) - - if any_slashes: - any_prefix_is_slash = True - - if not self.is_flag and not self.count: - rv += f" {self.make_metavar(ctx=ctx)}" - - return rv - - rv = [_write_opts(self.opts)] - - if self.secondary_opts: - rv.append(_write_opts(self.secondary_opts)) - - help = self.help or "" - - extra = self.get_help_extra(ctx) - extra_items = [] - if "envvars" in extra: - extra_items.append( - _("env var: {var}").format(var=", ".join(extra["envvars"])) - ) - if "default" in extra: - extra_items.append(_("default: {default}").format(default=extra["default"])) - if "range" in extra: - extra_items.append(extra["range"]) - if "required" in extra: - extra_items.append(_(extra["required"])) - - if extra_items: - extra_str = "; ".join(extra_items) - help = f"{help} [{extra_str}]" if help else f"[{extra_str}]" - - return ("; " if any_prefix_is_slash else " / ").join(rv), help - - def get_help_extra(self, ctx: Context) -> types.OptionHelpExtra: - extra: types.OptionHelpExtra = {} - - if self.show_envvar: - envvar = self.envvar - - if envvar is None: - if ( - self.allow_from_autoenv - and ctx.auto_envvar_prefix is not None - and self.name is not None - ): - envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" - - if envvar is not None: - if isinstance(envvar, str): - extra["envvars"] = (envvar,) - else: - extra["envvars"] = tuple(str(d) for d in envvar) - - # Temporarily enable resilient parsing to avoid type casting - # failing for the default. Might be possible to extend this to - # help formatting in general. - resilient = ctx.resilient_parsing - ctx.resilient_parsing = True - - try: - default_value = self.get_default(ctx, call=False) - finally: - ctx.resilient_parsing = resilient - - show_default = False - show_default_is_str = False - - if self.show_default is not None: - if isinstance(self.show_default, str): - show_default_is_str = show_default = True - else: - show_default = self.show_default - elif ctx.show_default is not None: - show_default = ctx.show_default - - if show_default_is_str or ( - show_default and (default_value not in (None, UNSET)) - ): - if show_default_is_str: - default_string = f"({self.show_default})" - elif isinstance(default_value, (list, tuple)): - default_string = ", ".join(str(d) for d in default_value) - elif isinstance(default_value, enum.Enum): - default_string = default_value.name - elif inspect.isfunction(default_value): - default_string = _("(dynamic)") - elif self.is_bool_flag and self.secondary_opts: - # For boolean flags that have distinct True/False opts, - # use the opt without prefix instead of the value. - default_string = _split_opt( - (self.opts if default_value else self.secondary_opts)[0] - )[1] - elif self.is_bool_flag and not self.secondary_opts and not default_value: - default_string = "" - elif default_value == "": - default_string = '""' - else: - default_string = str(default_value) - - if default_string: - extra["default"] = default_string - - if ( - isinstance(self.type, types._NumberRangeBase) - # skip count with default range type - and not (self.count and self.type.min == 0 and self.type.max is None) - ): - range_str = self.type._describe_range() - - if range_str: - extra["range"] = range_str - - if self.required: - extra["required"] = "required" - - return extra - - def prompt_for_value(self, ctx: Context) -> t.Any: - """This is an alternative flow that can be activated in the full - value processing if a value does not exist. It will prompt the - user until a valid value exists and then returns the processed - value as result. - """ - assert self.prompt is not None - - # Calculate the default before prompting anything to lock in the value before - # attempting any user interaction. - default = self.get_default(ctx) - - # A boolean flag can use a simplified [y/n] confirmation prompt. - if self.is_bool_flag: - # If we have no boolean default, we force the user to explicitly provide - # one. - if default in (UNSET, None): - default = None - # Nothing prevent you to declare an option that is simultaneously: - # 1) auto-detected as a boolean flag, - # 2) allowed to prompt, and - # 3) still declare a non-boolean default. - # This forced casting into a boolean is necessary to align any non-boolean - # default to the prompt, which is going to be a [y/n]-style confirmation - # because the option is still a boolean flag. That way, instead of [y/n], - # we get [Y/n] or [y/N] depending on the truthy value of the default. - # Refs: https://github.com/pallets/click/pull/3030#discussion_r2289180249 - else: - default = bool(default) - return confirm(self.prompt, default) - - # If show_default is set to True/False, provide this to `prompt` as well. For - # non-bool values of `show_default`, we use `prompt`'s default behavior - prompt_kwargs: t.Any = {} - if isinstance(self.show_default, bool): - prompt_kwargs["show_default"] = self.show_default - - return prompt( - self.prompt, - # Use ``None`` to inform the prompt() function to reiterate until a valid - # value is provided by the user if we have no default. - default=None if default is UNSET else default, - type=self.type, - hide_input=self.hide_input, - show_choices=self.show_choices, - confirmation_prompt=self.confirmation_prompt, - value_proc=lambda x: self.process_value(ctx, x), - **prompt_kwargs, - ) - - def resolve_envvar_value(self, ctx: Context) -> str | None: - """:class:`Option` resolves its environment variable the same way as - :func:`Parameter.resolve_envvar_value`, but it also supports - :attr:`Context.auto_envvar_prefix`. If we could not find an environment from - the :attr:`envvar` property, we fallback on :attr:`Context.auto_envvar_prefix` - to build dynamiccaly the environment variable name using the - :python:`{ctx.auto_envvar_prefix}_{self.name.upper()}` template. - - :meta private: - """ - rv = super().resolve_envvar_value(ctx) - - if rv is not None: - return rv - - if ( - self.allow_from_autoenv - and ctx.auto_envvar_prefix is not None - and self.name is not None - ): - envvar = f"{ctx.auto_envvar_prefix}_{self.name.upper()}" - rv = os.environ.get(envvar) - - if rv: - return rv - - return None - - def value_from_envvar(self, ctx: Context) -> t.Any: - """For :class:`Option`, this method processes the raw environment variable - string the same way as :func:`Parameter.value_from_envvar` does. - - But in the case of non-boolean flags, the value is analyzed to determine if the - flag is activated or not, and returns a boolean of its activation, or the - :attr:`flag_value` if the latter is set. - - This method also takes care of repeated options (i.e. options with - :attr:`multiple` set to ``True``). - - :meta private: - """ - rv = self.resolve_envvar_value(ctx) - - # Absent environment variable or an empty string is interpreted as unset. - if rv is None: - return None - - # Non-boolean flags are more liberal in what they accept. But a flag being a - # flag, its envvar value still needs to be analyzed to determine if the flag is - # activated or not. - if self.is_flag and not self.is_bool_flag: - # If the flag_value is set and match the envvar value, return it - # directly. - if self.flag_value is not UNSET and rv == self.flag_value: - return self.flag_value - # Analyze the envvar value as a boolean to know if the flag is - # activated or not. - return types.BoolParamType.str_to_bool(rv) - - # Split the envvar value if it is allowed to be repeated. - value_depth = (self.nargs != 1) + bool(self.multiple) - if value_depth > 0: - multi_rv = self.type.split_envvar_value(rv) - if self.multiple and self.nargs != 1: - multi_rv = batch(multi_rv, self.nargs) # type: ignore[assignment] - - return multi_rv - - return rv - - def consume_value( - self, ctx: Context, opts: cabc.Mapping[str, Parameter] - ) -> tuple[t.Any, ParameterSource]: - """For :class:`Option`, the value can be collected from an interactive prompt - if the option is a flag that needs a value (and the :attr:`prompt` property is - set). - - Additionally, this method handles flag option that are activated without a - value, in which case the :attr:`flag_value` is returned. - - :meta private: - """ - value, source = super().consume_value(ctx, opts) - - # The parser will emit a sentinel value if the option is allowed to as a flag - # without a value. - if value is FLAG_NEEDS_VALUE: - # If the option allows for a prompt, we start an interaction with the user. - if self.prompt is not None and not ctx.resilient_parsing: - value = self.prompt_for_value(ctx) - source = ParameterSource.PROMPT - # Else the flag takes its flag_value as value. - else: - value = self.flag_value - source = ParameterSource.COMMANDLINE - - # A flag which is activated always returns the flag value, unless the value - # comes from the explicitly sets default. - elif ( - self.is_flag - and value is True - and not self.is_bool_flag - and source not in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) - ): - value = self.flag_value - - # Re-interpret a multiple option which has been sent as-is by the parser. - # Here we replace each occurrence of value-less flags (marked by the - # FLAG_NEEDS_VALUE sentinel) with the flag_value. - elif ( - self.multiple - and value is not UNSET - and source not in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) - and any(v is FLAG_NEEDS_VALUE for v in value) - ): - value = [self.flag_value if v is FLAG_NEEDS_VALUE else v for v in value] - source = ParameterSource.COMMANDLINE - - # The value wasn't set, or used the param's default, prompt for one to the user - # if prompting is enabled. - elif ( - ( - value is UNSET - or source in (ParameterSource.DEFAULT, ParameterSource.DEFAULT_MAP) - ) - and self.prompt is not None - and (self.required or self.prompt_required) - and not ctx.resilient_parsing - ): - value = self.prompt_for_value(ctx) - source = ParameterSource.PROMPT - - return value, source - - def process_value(self, ctx: Context, value: t.Any) -> t.Any: - # process_value has to be overridden on Options in order to capture - # `value == UNSET` cases before `type_cast_value()` gets called. - # - # Refs: - # https://github.com/pallets/click/issues/3069 - if self.is_flag and not self.required and self.is_bool_flag and value is UNSET: - value = False - - if self.callback is not None: - value = self.callback(ctx, self, value) - - return value - - # in the normal case, rely on Parameter.process_value - return super().process_value(ctx, value) - - -class Argument(Parameter): - """Arguments are positional parameters to a command. They generally - provide fewer features than options but can have infinite ``nargs`` - and are required by default. - - All parameters are passed onwards to the constructor of :class:`Parameter`. - """ - - param_type_name = "argument" - - def __init__( - self, - param_decls: cabc.Sequence[str], - required: bool | None = None, - **attrs: t.Any, - ) -> None: - # Auto-detect the requirement status of the argument if not explicitly set. - if required is None: - # The argument gets automatically required if it has no explicit default - # value set and is setup to match at least one value. - if attrs.get("default", UNSET) is UNSET: - required = attrs.get("nargs", 1) > 0 - # If the argument has a default value, it is not required. - else: - required = False - - if "multiple" in attrs: - raise TypeError("__init__() got an unexpected keyword argument 'multiple'.") - - super().__init__(param_decls, required=required, **attrs) - - @property - def human_readable_name(self) -> str: - if self.metavar is not None: - return self.metavar - return self.name.upper() # type: ignore - - def make_metavar(self, ctx: Context) -> str: - if self.metavar is not None: - return self.metavar - var = self.type.get_metavar(param=self, ctx=ctx) - if not var: - var = self.name.upper() # type: ignore - if self.deprecated: - var += "!" - if not self.required: - var = f"[{var}]" - if self.nargs != 1: - var += "..." - return var - - def _parse_decls( - self, decls: cabc.Sequence[str], expose_value: bool - ) -> tuple[str | None, list[str], list[str]]: - if not decls: - if not expose_value: - return None, [], [] - raise TypeError("Argument is marked as exposed, but does not have a name.") - if len(decls) == 1: - name = arg = decls[0] - name = name.replace("-", "_").lower() - else: - raise TypeError( - "Arguments take exactly one parameter declaration, got" - f" {len(decls)}: {decls}." - ) - return name, [arg], [] - - def get_usage_pieces(self, ctx: Context) -> list[str]: - return [self.make_metavar(ctx)] - - def get_error_hint(self, ctx: Context) -> str: - return f"'{self.make_metavar(ctx)}'" - - def add_to_parser(self, parser: _OptionParser, ctx: Context) -> None: - parser.add_argument(dest=self.name, nargs=self.nargs, obj=self) - - -def __getattr__(name: str) -> object: - import warnings - - if name == "BaseCommand": - warnings.warn( - "'BaseCommand' is deprecated and will be removed in Click 9.0. Use" - " 'Command' instead.", - DeprecationWarning, - stacklevel=2, - ) - return _BaseCommand - - if name == "MultiCommand": - warnings.warn( - "'MultiCommand' is deprecated and will be removed in Click 9.0. Use" - " 'Group' instead.", - DeprecationWarning, - stacklevel=2, - ) - return _MultiCommand - - raise AttributeError(name) diff --git a/backend/venv/lib/python3.12/site-packages/click/decorators.py b/backend/venv/lib/python3.12/site-packages/click/decorators.py deleted file mode 100644 index 21f4c34..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/decorators.py +++ /dev/null @@ -1,551 +0,0 @@ -from __future__ import annotations - -import inspect -import typing as t -from functools import update_wrapper -from gettext import gettext as _ - -from .core import Argument -from .core import Command -from .core import Context -from .core import Group -from .core import Option -from .core import Parameter -from .globals import get_current_context -from .utils import echo - -if t.TYPE_CHECKING: - import typing_extensions as te - - P = te.ParamSpec("P") - -R = t.TypeVar("R") -T = t.TypeVar("T") -_AnyCallable = t.Callable[..., t.Any] -FC = t.TypeVar("FC", bound="_AnyCallable | Command") - - -def pass_context(f: t.Callable[te.Concatenate[Context, P], R]) -> t.Callable[P, R]: - """Marks a callback as wanting to receive the current context - object as first argument. - """ - - def new_func(*args: P.args, **kwargs: P.kwargs) -> R: - return f(get_current_context(), *args, **kwargs) - - return update_wrapper(new_func, f) - - -def pass_obj(f: t.Callable[te.Concatenate[T, P], R]) -> t.Callable[P, R]: - """Similar to :func:`pass_context`, but only pass the object on the - context onwards (:attr:`Context.obj`). This is useful if that object - represents the state of a nested system. - """ - - def new_func(*args: P.args, **kwargs: P.kwargs) -> R: - return f(get_current_context().obj, *args, **kwargs) - - return update_wrapper(new_func, f) - - -def make_pass_decorator( - object_type: type[T], ensure: bool = False -) -> t.Callable[[t.Callable[te.Concatenate[T, P], R]], t.Callable[P, R]]: - """Given an object type this creates a decorator that will work - similar to :func:`pass_obj` but instead of passing the object of the - current context, it will find the innermost context of type - :func:`object_type`. - - This generates a decorator that works roughly like this:: - - from functools import update_wrapper - - def decorator(f): - @pass_context - def new_func(ctx, *args, **kwargs): - obj = ctx.find_object(object_type) - return ctx.invoke(f, obj, *args, **kwargs) - return update_wrapper(new_func, f) - return decorator - - :param object_type: the type of the object to pass. - :param ensure: if set to `True`, a new object will be created and - remembered on the context if it's not there yet. - """ - - def decorator(f: t.Callable[te.Concatenate[T, P], R]) -> t.Callable[P, R]: - def new_func(*args: P.args, **kwargs: P.kwargs) -> R: - ctx = get_current_context() - - obj: T | None - if ensure: - obj = ctx.ensure_object(object_type) - else: - obj = ctx.find_object(object_type) - - if obj is None: - raise RuntimeError( - "Managed to invoke callback without a context" - f" object of type {object_type.__name__!r}" - " existing." - ) - - return ctx.invoke(f, obj, *args, **kwargs) - - return update_wrapper(new_func, f) - - return decorator - - -def pass_meta_key( - key: str, *, doc_description: str | None = None -) -> t.Callable[[t.Callable[te.Concatenate[T, P], R]], t.Callable[P, R]]: - """Create a decorator that passes a key from - :attr:`click.Context.meta` as the first argument to the decorated - function. - - :param key: Key in ``Context.meta`` to pass. - :param doc_description: Description of the object being passed, - inserted into the decorator's docstring. Defaults to "the 'key' - key from Context.meta". - - .. versionadded:: 8.0 - """ - - def decorator(f: t.Callable[te.Concatenate[T, P], R]) -> t.Callable[P, R]: - def new_func(*args: P.args, **kwargs: P.kwargs) -> R: - ctx = get_current_context() - obj = ctx.meta[key] - return ctx.invoke(f, obj, *args, **kwargs) - - return update_wrapper(new_func, f) - - if doc_description is None: - doc_description = f"the {key!r} key from :attr:`click.Context.meta`" - - decorator.__doc__ = ( - f"Decorator that passes {doc_description} as the first argument" - " to the decorated function." - ) - return decorator - - -CmdType = t.TypeVar("CmdType", bound=Command) - - -# variant: no call, directly as decorator for a function. -@t.overload -def command(name: _AnyCallable) -> Command: ... - - -# variant: with positional name and with positional or keyword cls argument: -# @command(namearg, CommandCls, ...) or @command(namearg, cls=CommandCls, ...) -@t.overload -def command( - name: str | None, - cls: type[CmdType], - **attrs: t.Any, -) -> t.Callable[[_AnyCallable], CmdType]: ... - - -# variant: name omitted, cls _must_ be a keyword argument, @command(cls=CommandCls, ...) -@t.overload -def command( - name: None = None, - *, - cls: type[CmdType], - **attrs: t.Any, -) -> t.Callable[[_AnyCallable], CmdType]: ... - - -# variant: with optional string name, no cls argument provided. -@t.overload -def command( - name: str | None = ..., cls: None = None, **attrs: t.Any -) -> t.Callable[[_AnyCallable], Command]: ... - - -def command( - name: str | _AnyCallable | None = None, - cls: type[CmdType] | None = None, - **attrs: t.Any, -) -> Command | t.Callable[[_AnyCallable], Command | CmdType]: - r"""Creates a new :class:`Command` and uses the decorated function as - callback. This will also automatically attach all decorated - :func:`option`\s and :func:`argument`\s as parameters to the command. - - The name of the command defaults to the name of the function, converted to - lowercase, with underscores ``_`` replaced by dashes ``-``, and the suffixes - ``_command``, ``_cmd``, ``_group``, and ``_grp`` are removed. For example, - ``init_data_command`` becomes ``init-data``. - - All keyword arguments are forwarded to the underlying command class. - For the ``params`` argument, any decorated params are appended to - the end of the list. - - Once decorated the function turns into a :class:`Command` instance - that can be invoked as a command line utility or be attached to a - command :class:`Group`. - - :param name: The name of the command. Defaults to modifying the function's - name as described above. - :param cls: The command class to create. Defaults to :class:`Command`. - - .. versionchanged:: 8.2 - The suffixes ``_command``, ``_cmd``, ``_group``, and ``_grp`` are - removed when generating the name. - - .. versionchanged:: 8.1 - This decorator can be applied without parentheses. - - .. versionchanged:: 8.1 - The ``params`` argument can be used. Decorated params are - appended to the end of the list. - """ - - func: t.Callable[[_AnyCallable], t.Any] | None = None - - if callable(name): - func = name - name = None - assert cls is None, "Use 'command(cls=cls)(callable)' to specify a class." - assert not attrs, "Use 'command(**kwargs)(callable)' to provide arguments." - - if cls is None: - cls = t.cast("type[CmdType]", Command) - - def decorator(f: _AnyCallable) -> CmdType: - if isinstance(f, Command): - raise TypeError("Attempted to convert a callback into a command twice.") - - attr_params = attrs.pop("params", None) - params = attr_params if attr_params is not None else [] - - try: - decorator_params = f.__click_params__ # type: ignore - except AttributeError: - pass - else: - del f.__click_params__ # type: ignore - params.extend(reversed(decorator_params)) - - if attrs.get("help") is None: - attrs["help"] = f.__doc__ - - if t.TYPE_CHECKING: - assert cls is not None - assert not callable(name) - - if name is not None: - cmd_name = name - else: - cmd_name = f.__name__.lower().replace("_", "-") - cmd_left, sep, suffix = cmd_name.rpartition("-") - - if sep and suffix in {"command", "cmd", "group", "grp"}: - cmd_name = cmd_left - - cmd = cls(name=cmd_name, callback=f, params=params, **attrs) - cmd.__doc__ = f.__doc__ - return cmd - - if func is not None: - return decorator(func) - - return decorator - - -GrpType = t.TypeVar("GrpType", bound=Group) - - -# variant: no call, directly as decorator for a function. -@t.overload -def group(name: _AnyCallable) -> Group: ... - - -# variant: with positional name and with positional or keyword cls argument: -# @group(namearg, GroupCls, ...) or @group(namearg, cls=GroupCls, ...) -@t.overload -def group( - name: str | None, - cls: type[GrpType], - **attrs: t.Any, -) -> t.Callable[[_AnyCallable], GrpType]: ... - - -# variant: name omitted, cls _must_ be a keyword argument, @group(cmd=GroupCls, ...) -@t.overload -def group( - name: None = None, - *, - cls: type[GrpType], - **attrs: t.Any, -) -> t.Callable[[_AnyCallable], GrpType]: ... - - -# variant: with optional string name, no cls argument provided. -@t.overload -def group( - name: str | None = ..., cls: None = None, **attrs: t.Any -) -> t.Callable[[_AnyCallable], Group]: ... - - -def group( - name: str | _AnyCallable | None = None, - cls: type[GrpType] | None = None, - **attrs: t.Any, -) -> Group | t.Callable[[_AnyCallable], Group | GrpType]: - """Creates a new :class:`Group` with a function as callback. This - works otherwise the same as :func:`command` just that the `cls` - parameter is set to :class:`Group`. - - .. versionchanged:: 8.1 - This decorator can be applied without parentheses. - """ - if cls is None: - cls = t.cast("type[GrpType]", Group) - - if callable(name): - return command(cls=cls, **attrs)(name) - - return command(name, cls, **attrs) - - -def _param_memo(f: t.Callable[..., t.Any], param: Parameter) -> None: - if isinstance(f, Command): - f.params.append(param) - else: - if not hasattr(f, "__click_params__"): - f.__click_params__ = [] # type: ignore - - f.__click_params__.append(param) # type: ignore - - -def argument( - *param_decls: str, cls: type[Argument] | None = None, **attrs: t.Any -) -> t.Callable[[FC], FC]: - """Attaches an argument to the command. All positional arguments are - passed as parameter declarations to :class:`Argument`; all keyword - arguments are forwarded unchanged (except ``cls``). - This is equivalent to creating an :class:`Argument` instance manually - and attaching it to the :attr:`Command.params` list. - - For the default argument class, refer to :class:`Argument` and - :class:`Parameter` for descriptions of parameters. - - :param cls: the argument class to instantiate. This defaults to - :class:`Argument`. - :param param_decls: Passed as positional arguments to the constructor of - ``cls``. - :param attrs: Passed as keyword arguments to the constructor of ``cls``. - """ - if cls is None: - cls = Argument - - def decorator(f: FC) -> FC: - _param_memo(f, cls(param_decls, **attrs)) - return f - - return decorator - - -def option( - *param_decls: str, cls: type[Option] | None = None, **attrs: t.Any -) -> t.Callable[[FC], FC]: - """Attaches an option to the command. All positional arguments are - passed as parameter declarations to :class:`Option`; all keyword - arguments are forwarded unchanged (except ``cls``). - This is equivalent to creating an :class:`Option` instance manually - and attaching it to the :attr:`Command.params` list. - - For the default option class, refer to :class:`Option` and - :class:`Parameter` for descriptions of parameters. - - :param cls: the option class to instantiate. This defaults to - :class:`Option`. - :param param_decls: Passed as positional arguments to the constructor of - ``cls``. - :param attrs: Passed as keyword arguments to the constructor of ``cls``. - """ - if cls is None: - cls = Option - - def decorator(f: FC) -> FC: - _param_memo(f, cls(param_decls, **attrs)) - return f - - return decorator - - -def confirmation_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: - """Add a ``--yes`` option which shows a prompt before continuing if - not passed. If the prompt is declined, the program will exit. - - :param param_decls: One or more option names. Defaults to the single - value ``"--yes"``. - :param kwargs: Extra arguments are passed to :func:`option`. - """ - - def callback(ctx: Context, param: Parameter, value: bool) -> None: - if not value: - ctx.abort() - - if not param_decls: - param_decls = ("--yes",) - - kwargs.setdefault("is_flag", True) - kwargs.setdefault("callback", callback) - kwargs.setdefault("expose_value", False) - kwargs.setdefault("prompt", "Do you want to continue?") - kwargs.setdefault("help", "Confirm the action without prompting.") - return option(*param_decls, **kwargs) - - -def password_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: - """Add a ``--password`` option which prompts for a password, hiding - input and asking to enter the value again for confirmation. - - :param param_decls: One or more option names. Defaults to the single - value ``"--password"``. - :param kwargs: Extra arguments are passed to :func:`option`. - """ - if not param_decls: - param_decls = ("--password",) - - kwargs.setdefault("prompt", True) - kwargs.setdefault("confirmation_prompt", True) - kwargs.setdefault("hide_input", True) - return option(*param_decls, **kwargs) - - -def version_option( - version: str | None = None, - *param_decls: str, - package_name: str | None = None, - prog_name: str | None = None, - message: str | None = None, - **kwargs: t.Any, -) -> t.Callable[[FC], FC]: - """Add a ``--version`` option which immediately prints the version - number and exits the program. - - If ``version`` is not provided, Click will try to detect it using - :func:`importlib.metadata.version` to get the version for the - ``package_name``. - - If ``package_name`` is not provided, Click will try to detect it by - inspecting the stack frames. This will be used to detect the - version, so it must match the name of the installed package. - - :param version: The version number to show. If not provided, Click - will try to detect it. - :param param_decls: One or more option names. Defaults to the single - value ``"--version"``. - :param package_name: The package name to detect the version from. If - not provided, Click will try to detect it. - :param prog_name: The name of the CLI to show in the message. If not - provided, it will be detected from the command. - :param message: The message to show. The values ``%(prog)s``, - ``%(package)s``, and ``%(version)s`` are available. Defaults to - ``"%(prog)s, version %(version)s"``. - :param kwargs: Extra arguments are passed to :func:`option`. - :raise RuntimeError: ``version`` could not be detected. - - .. versionchanged:: 8.0 - Add the ``package_name`` parameter, and the ``%(package)s`` - value for messages. - - .. versionchanged:: 8.0 - Use :mod:`importlib.metadata` instead of ``pkg_resources``. The - version is detected based on the package name, not the entry - point name. The Python package name must match the installed - package name, or be passed with ``package_name=``. - """ - if message is None: - message = _("%(prog)s, version %(version)s") - - if version is None and package_name is None: - frame = inspect.currentframe() - f_back = frame.f_back if frame is not None else None - f_globals = f_back.f_globals if f_back is not None else None - # break reference cycle - # https://docs.python.org/3/library/inspect.html#the-interpreter-stack - del frame - - if f_globals is not None: - package_name = f_globals.get("__name__") - - if package_name == "__main__": - package_name = f_globals.get("__package__") - - if package_name: - package_name = package_name.partition(".")[0] - - def callback(ctx: Context, param: Parameter, value: bool) -> None: - if not value or ctx.resilient_parsing: - return - - nonlocal prog_name - nonlocal version - - if prog_name is None: - prog_name = ctx.find_root().info_name - - if version is None and package_name is not None: - import importlib.metadata - - try: - version = importlib.metadata.version(package_name) - except importlib.metadata.PackageNotFoundError: - raise RuntimeError( - f"{package_name!r} is not installed. Try passing" - " 'package_name' instead." - ) from None - - if version is None: - raise RuntimeError( - f"Could not determine the version for {package_name!r} automatically." - ) - - echo( - message % {"prog": prog_name, "package": package_name, "version": version}, - color=ctx.color, - ) - ctx.exit() - - if not param_decls: - param_decls = ("--version",) - - kwargs.setdefault("is_flag", True) - kwargs.setdefault("expose_value", False) - kwargs.setdefault("is_eager", True) - kwargs.setdefault("help", _("Show the version and exit.")) - kwargs["callback"] = callback - return option(*param_decls, **kwargs) - - -def help_option(*param_decls: str, **kwargs: t.Any) -> t.Callable[[FC], FC]: - """Pre-configured ``--help`` option which immediately prints the help page - and exits the program. - - :param param_decls: One or more option names. Defaults to the single - value ``"--help"``. - :param kwargs: Extra arguments are passed to :func:`option`. - """ - - def show_help(ctx: Context, param: Parameter, value: bool) -> None: - """Callback that print the help page on ```` and exits.""" - if value and not ctx.resilient_parsing: - echo(ctx.get_help(), color=ctx.color) - ctx.exit() - - if not param_decls: - param_decls = ("--help",) - - kwargs.setdefault("is_flag", True) - kwargs.setdefault("expose_value", False) - kwargs.setdefault("is_eager", True) - kwargs.setdefault("help", _("Show this message and exit.")) - kwargs.setdefault("callback", show_help) - - return option(*param_decls, **kwargs) diff --git a/backend/venv/lib/python3.12/site-packages/click/exceptions.py b/backend/venv/lib/python3.12/site-packages/click/exceptions.py deleted file mode 100644 index 4d782ee..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/exceptions.py +++ /dev/null @@ -1,308 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import typing as t -from gettext import gettext as _ -from gettext import ngettext - -from ._compat import get_text_stderr -from .globals import resolve_color_default -from .utils import echo -from .utils import format_filename - -if t.TYPE_CHECKING: - from .core import Command - from .core import Context - from .core import Parameter - - -def _join_param_hints(param_hint: cabc.Sequence[str] | str | None) -> str | None: - if param_hint is not None and not isinstance(param_hint, str): - return " / ".join(repr(x) for x in param_hint) - - return param_hint - - -class ClickException(Exception): - """An exception that Click can handle and show to the user.""" - - #: The exit code for this exception. - exit_code = 1 - - def __init__(self, message: str) -> None: - super().__init__(message) - # The context will be removed by the time we print the message, so cache - # the color settings here to be used later on (in `show`) - self.show_color: bool | None = resolve_color_default() - self.message = message - - def format_message(self) -> str: - return self.message - - def __str__(self) -> str: - return self.message - - def show(self, file: t.IO[t.Any] | None = None) -> None: - if file is None: - file = get_text_stderr() - - echo( - _("Error: {message}").format(message=self.format_message()), - file=file, - color=self.show_color, - ) - - -class UsageError(ClickException): - """An internal exception that signals a usage error. This typically - aborts any further handling. - - :param message: the error message to display. - :param ctx: optionally the context that caused this error. Click will - fill in the context automatically in some situations. - """ - - exit_code = 2 - - def __init__(self, message: str, ctx: Context | None = None) -> None: - super().__init__(message) - self.ctx = ctx - self.cmd: Command | None = self.ctx.command if self.ctx else None - - def show(self, file: t.IO[t.Any] | None = None) -> None: - if file is None: - file = get_text_stderr() - color = None - hint = "" - if ( - self.ctx is not None - and self.ctx.command.get_help_option(self.ctx) is not None - ): - hint = _("Try '{command} {option}' for help.").format( - command=self.ctx.command_path, option=self.ctx.help_option_names[0] - ) - hint = f"{hint}\n" - if self.ctx is not None: - color = self.ctx.color - echo(f"{self.ctx.get_usage()}\n{hint}", file=file, color=color) - echo( - _("Error: {message}").format(message=self.format_message()), - file=file, - color=color, - ) - - -class BadParameter(UsageError): - """An exception that formats out a standardized error message for a - bad parameter. This is useful when thrown from a callback or type as - Click will attach contextual information to it (for instance, which - parameter it is). - - .. versionadded:: 2.0 - - :param param: the parameter object that caused this error. This can - be left out, and Click will attach this info itself - if possible. - :param param_hint: a string that shows up as parameter name. This - can be used as alternative to `param` in cases - where custom validation should happen. If it is - a string it's used as such, if it's a list then - each item is quoted and separated. - """ - - def __init__( - self, - message: str, - ctx: Context | None = None, - param: Parameter | None = None, - param_hint: cabc.Sequence[str] | str | None = None, - ) -> None: - super().__init__(message, ctx) - self.param = param - self.param_hint = param_hint - - def format_message(self) -> str: - if self.param_hint is not None: - param_hint = self.param_hint - elif self.param is not None: - param_hint = self.param.get_error_hint(self.ctx) # type: ignore - else: - return _("Invalid value: {message}").format(message=self.message) - - return _("Invalid value for {param_hint}: {message}").format( - param_hint=_join_param_hints(param_hint), message=self.message - ) - - -class MissingParameter(BadParameter): - """Raised if click required an option or argument but it was not - provided when invoking the script. - - .. versionadded:: 4.0 - - :param param_type: a string that indicates the type of the parameter. - The default is to inherit the parameter type from - the given `param`. Valid values are ``'parameter'``, - ``'option'`` or ``'argument'``. - """ - - def __init__( - self, - message: str | None = None, - ctx: Context | None = None, - param: Parameter | None = None, - param_hint: cabc.Sequence[str] | str | None = None, - param_type: str | None = None, - ) -> None: - super().__init__(message or "", ctx, param, param_hint) - self.param_type = param_type - - def format_message(self) -> str: - if self.param_hint is not None: - param_hint: cabc.Sequence[str] | str | None = self.param_hint - elif self.param is not None: - param_hint = self.param.get_error_hint(self.ctx) # type: ignore - else: - param_hint = None - - param_hint = _join_param_hints(param_hint) - param_hint = f" {param_hint}" if param_hint else "" - - param_type = self.param_type - if param_type is None and self.param is not None: - param_type = self.param.param_type_name - - msg = self.message - if self.param is not None: - msg_extra = self.param.type.get_missing_message( - param=self.param, ctx=self.ctx - ) - if msg_extra: - if msg: - msg += f". {msg_extra}" - else: - msg = msg_extra - - msg = f" {msg}" if msg else "" - - # Translate param_type for known types. - if param_type == "argument": - missing = _("Missing argument") - elif param_type == "option": - missing = _("Missing option") - elif param_type == "parameter": - missing = _("Missing parameter") - else: - missing = _("Missing {param_type}").format(param_type=param_type) - - return f"{missing}{param_hint}.{msg}" - - def __str__(self) -> str: - if not self.message: - param_name = self.param.name if self.param else None - return _("Missing parameter: {param_name}").format(param_name=param_name) - else: - return self.message - - -class NoSuchOption(UsageError): - """Raised if click attempted to handle an option that does not - exist. - - .. versionadded:: 4.0 - """ - - def __init__( - self, - option_name: str, - message: str | None = None, - possibilities: cabc.Sequence[str] | None = None, - ctx: Context | None = None, - ) -> None: - if message is None: - message = _("No such option: {name}").format(name=option_name) - - super().__init__(message, ctx) - self.option_name = option_name - self.possibilities = possibilities - - def format_message(self) -> str: - if not self.possibilities: - return self.message - - possibility_str = ", ".join(sorted(self.possibilities)) - suggest = ngettext( - "Did you mean {possibility}?", - "(Possible options: {possibilities})", - len(self.possibilities), - ).format(possibility=possibility_str, possibilities=possibility_str) - return f"{self.message} {suggest}" - - -class BadOptionUsage(UsageError): - """Raised if an option is generally supplied but the use of the option - was incorrect. This is for instance raised if the number of arguments - for an option is not correct. - - .. versionadded:: 4.0 - - :param option_name: the name of the option being used incorrectly. - """ - - def __init__( - self, option_name: str, message: str, ctx: Context | None = None - ) -> None: - super().__init__(message, ctx) - self.option_name = option_name - - -class BadArgumentUsage(UsageError): - """Raised if an argument is generally supplied but the use of the argument - was incorrect. This is for instance raised if the number of values - for an argument is not correct. - - .. versionadded:: 6.0 - """ - - -class NoArgsIsHelpError(UsageError): - def __init__(self, ctx: Context) -> None: - self.ctx: Context - super().__init__(ctx.get_help(), ctx=ctx) - - def show(self, file: t.IO[t.Any] | None = None) -> None: - echo(self.format_message(), file=file, err=True, color=self.ctx.color) - - -class FileError(ClickException): - """Raised if a file cannot be opened.""" - - def __init__(self, filename: str, hint: str | None = None) -> None: - if hint is None: - hint = _("unknown error") - - super().__init__(hint) - self.ui_filename: str = format_filename(filename) - self.filename = filename - - def format_message(self) -> str: - return _("Could not open file {filename!r}: {message}").format( - filename=self.ui_filename, message=self.message - ) - - -class Abort(RuntimeError): - """An internal signalling exception that signals Click to abort.""" - - -class Exit(RuntimeError): - """An exception that indicates that the application should exit with some - status code. - - :param code: the status code to exit with. - """ - - __slots__ = ("exit_code",) - - def __init__(self, code: int = 0) -> None: - self.exit_code: int = code diff --git a/backend/venv/lib/python3.12/site-packages/click/formatting.py b/backend/venv/lib/python3.12/site-packages/click/formatting.py deleted file mode 100644 index 0b64f83..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/formatting.py +++ /dev/null @@ -1,301 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -from contextlib import contextmanager -from gettext import gettext as _ - -from ._compat import term_len -from .parser import _split_opt - -# Can force a width. This is used by the test system -FORCED_WIDTH: int | None = None - - -def measure_table(rows: cabc.Iterable[tuple[str, str]]) -> tuple[int, ...]: - widths: dict[int, int] = {} - - for row in rows: - for idx, col in enumerate(row): - widths[idx] = max(widths.get(idx, 0), term_len(col)) - - return tuple(y for x, y in sorted(widths.items())) - - -def iter_rows( - rows: cabc.Iterable[tuple[str, str]], col_count: int -) -> cabc.Iterator[tuple[str, ...]]: - for row in rows: - yield row + ("",) * (col_count - len(row)) - - -def wrap_text( - text: str, - width: int = 78, - initial_indent: str = "", - subsequent_indent: str = "", - preserve_paragraphs: bool = False, -) -> str: - """A helper function that intelligently wraps text. By default, it - assumes that it operates on a single paragraph of text but if the - `preserve_paragraphs` parameter is provided it will intelligently - handle paragraphs (defined by two empty lines). - - If paragraphs are handled, a paragraph can be prefixed with an empty - line containing the ``\\b`` character (``\\x08``) to indicate that - no rewrapping should happen in that block. - - :param text: the text that should be rewrapped. - :param width: the maximum width for the text. - :param initial_indent: the initial indent that should be placed on the - first line as a string. - :param subsequent_indent: the indent string that should be placed on - each consecutive line. - :param preserve_paragraphs: if this flag is set then the wrapping will - intelligently handle paragraphs. - """ - from ._textwrap import TextWrapper - - text = text.expandtabs() - wrapper = TextWrapper( - width, - initial_indent=initial_indent, - subsequent_indent=subsequent_indent, - replace_whitespace=False, - ) - if not preserve_paragraphs: - return wrapper.fill(text) - - p: list[tuple[int, bool, str]] = [] - buf: list[str] = [] - indent = None - - def _flush_par() -> None: - if not buf: - return - if buf[0].strip() == "\b": - p.append((indent or 0, True, "\n".join(buf[1:]))) - else: - p.append((indent or 0, False, " ".join(buf))) - del buf[:] - - for line in text.splitlines(): - if not line: - _flush_par() - indent = None - else: - if indent is None: - orig_len = term_len(line) - line = line.lstrip() - indent = orig_len - term_len(line) - buf.append(line) - _flush_par() - - rv = [] - for indent, raw, text in p: - with wrapper.extra_indent(" " * indent): - if raw: - rv.append(wrapper.indent_only(text)) - else: - rv.append(wrapper.fill(text)) - - return "\n\n".join(rv) - - -class HelpFormatter: - """This class helps with formatting text-based help pages. It's - usually just needed for very special internal cases, but it's also - exposed so that developers can write their own fancy outputs. - - At present, it always writes into memory. - - :param indent_increment: the additional increment for each level. - :param width: the width for the text. This defaults to the terminal - width clamped to a maximum of 78. - """ - - def __init__( - self, - indent_increment: int = 2, - width: int | None = None, - max_width: int | None = None, - ) -> None: - self.indent_increment = indent_increment - if max_width is None: - max_width = 80 - if width is None: - import shutil - - width = FORCED_WIDTH - if width is None: - width = max(min(shutil.get_terminal_size().columns, max_width) - 2, 50) - self.width = width - self.current_indent: int = 0 - self.buffer: list[str] = [] - - def write(self, string: str) -> None: - """Writes a unicode string into the internal buffer.""" - self.buffer.append(string) - - def indent(self) -> None: - """Increases the indentation.""" - self.current_indent += self.indent_increment - - def dedent(self) -> None: - """Decreases the indentation.""" - self.current_indent -= self.indent_increment - - def write_usage(self, prog: str, args: str = "", prefix: str | None = None) -> None: - """Writes a usage line into the buffer. - - :param prog: the program name. - :param args: whitespace separated list of arguments. - :param prefix: The prefix for the first line. Defaults to - ``"Usage: "``. - """ - if prefix is None: - prefix = f"{_('Usage:')} " - - usage_prefix = f"{prefix:>{self.current_indent}}{prog} " - text_width = self.width - self.current_indent - - if text_width >= (term_len(usage_prefix) + 20): - # The arguments will fit to the right of the prefix. - indent = " " * term_len(usage_prefix) - self.write( - wrap_text( - args, - text_width, - initial_indent=usage_prefix, - subsequent_indent=indent, - ) - ) - else: - # The prefix is too long, put the arguments on the next line. - self.write(usage_prefix) - self.write("\n") - indent = " " * (max(self.current_indent, term_len(prefix)) + 4) - self.write( - wrap_text( - args, text_width, initial_indent=indent, subsequent_indent=indent - ) - ) - - self.write("\n") - - def write_heading(self, heading: str) -> None: - """Writes a heading into the buffer.""" - self.write(f"{'':>{self.current_indent}}{heading}:\n") - - def write_paragraph(self) -> None: - """Writes a paragraph into the buffer.""" - if self.buffer: - self.write("\n") - - def write_text(self, text: str) -> None: - """Writes re-indented text into the buffer. This rewraps and - preserves paragraphs. - """ - indent = " " * self.current_indent - self.write( - wrap_text( - text, - self.width, - initial_indent=indent, - subsequent_indent=indent, - preserve_paragraphs=True, - ) - ) - self.write("\n") - - def write_dl( - self, - rows: cabc.Sequence[tuple[str, str]], - col_max: int = 30, - col_spacing: int = 2, - ) -> None: - """Writes a definition list into the buffer. This is how options - and commands are usually formatted. - - :param rows: a list of two item tuples for the terms and values. - :param col_max: the maximum width of the first column. - :param col_spacing: the number of spaces between the first and - second column. - """ - rows = list(rows) - widths = measure_table(rows) - if len(widths) != 2: - raise TypeError("Expected two columns for definition list") - - first_col = min(widths[0], col_max) + col_spacing - - for first, second in iter_rows(rows, len(widths)): - self.write(f"{'':>{self.current_indent}}{first}") - if not second: - self.write("\n") - continue - if term_len(first) <= first_col - col_spacing: - self.write(" " * (first_col - term_len(first))) - else: - self.write("\n") - self.write(" " * (first_col + self.current_indent)) - - text_width = max(self.width - first_col - 2, 10) - wrapped_text = wrap_text(second, text_width, preserve_paragraphs=True) - lines = wrapped_text.splitlines() - - if lines: - self.write(f"{lines[0]}\n") - - for line in lines[1:]: - self.write(f"{'':>{first_col + self.current_indent}}{line}\n") - else: - self.write("\n") - - @contextmanager - def section(self, name: str) -> cabc.Iterator[None]: - """Helpful context manager that writes a paragraph, a heading, - and the indents. - - :param name: the section name that is written as heading. - """ - self.write_paragraph() - self.write_heading(name) - self.indent() - try: - yield - finally: - self.dedent() - - @contextmanager - def indentation(self) -> cabc.Iterator[None]: - """A context manager that increases the indentation.""" - self.indent() - try: - yield - finally: - self.dedent() - - def getvalue(self) -> str: - """Returns the buffer contents.""" - return "".join(self.buffer) - - -def join_options(options: cabc.Sequence[str]) -> tuple[str, bool]: - """Given a list of option strings this joins them in the most appropriate - way and returns them in the form ``(formatted_string, - any_prefix_is_slash)`` where the second item in the tuple is a flag that - indicates if any of the option prefixes was a slash. - """ - rv = [] - any_prefix_is_slash = False - - for opt in options: - prefix = _split_opt(opt)[0] - - if prefix == "/": - any_prefix_is_slash = True - - rv.append((len(prefix), opt)) - - rv.sort(key=lambda x: x[0]) - return ", ".join(x[1] for x in rv), any_prefix_is_slash diff --git a/backend/venv/lib/python3.12/site-packages/click/globals.py b/backend/venv/lib/python3.12/site-packages/click/globals.py deleted file mode 100644 index a2f9172..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/globals.py +++ /dev/null @@ -1,67 +0,0 @@ -from __future__ import annotations - -import typing as t -from threading import local - -if t.TYPE_CHECKING: - from .core import Context - -_local = local() - - -@t.overload -def get_current_context(silent: t.Literal[False] = False) -> Context: ... - - -@t.overload -def get_current_context(silent: bool = ...) -> Context | None: ... - - -def get_current_context(silent: bool = False) -> Context | None: - """Returns the current click context. This can be used as a way to - access the current context object from anywhere. This is a more implicit - alternative to the :func:`pass_context` decorator. This function is - primarily useful for helpers such as :func:`echo` which might be - interested in changing its behavior based on the current context. - - To push the current context, :meth:`Context.scope` can be used. - - .. versionadded:: 5.0 - - :param silent: if set to `True` the return value is `None` if no context - is available. The default behavior is to raise a - :exc:`RuntimeError`. - """ - try: - return t.cast("Context", _local.stack[-1]) - except (AttributeError, IndexError) as e: - if not silent: - raise RuntimeError("There is no active click context.") from e - - return None - - -def push_context(ctx: Context) -> None: - """Pushes a new context to the current stack.""" - _local.__dict__.setdefault("stack", []).append(ctx) - - -def pop_context() -> None: - """Removes the top level from the stack.""" - _local.stack.pop() - - -def resolve_color_default(color: bool | None = None) -> bool | None: - """Internal helper to get the default value of the color flag. If a - value is passed it's returned unchanged, otherwise it's looked up from - the current context. - """ - if color is not None: - return color - - ctx = get_current_context(silent=True) - - if ctx is not None: - return ctx.color - - return None diff --git a/backend/venv/lib/python3.12/site-packages/click/parser.py b/backend/venv/lib/python3.12/site-packages/click/parser.py deleted file mode 100644 index 1ea1f71..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/parser.py +++ /dev/null @@ -1,532 +0,0 @@ -""" -This module started out as largely a copy paste from the stdlib's -optparse module with the features removed that we do not need from -optparse because we implement them in Click on a higher level (for -instance type handling, help formatting and a lot more). - -The plan is to remove more and more from here over time. - -The reason this is a different module and not optparse from the stdlib -is that there are differences in 2.x and 3.x about the error messages -generated and optparse in the stdlib uses gettext for no good reason -and might cause us issues. - -Click uses parts of optparse written by Gregory P. Ward and maintained -by the Python Software Foundation. This is limited to code in parser.py. - -Copyright 2001-2006 Gregory P. Ward. All rights reserved. -Copyright 2002-2006 Python Software Foundation. All rights reserved. -""" - -# This code uses parts of optparse written by Gregory P. Ward and -# maintained by the Python Software Foundation. -# Copyright 2001-2006 Gregory P. Ward -# Copyright 2002-2006 Python Software Foundation -from __future__ import annotations - -import collections.abc as cabc -import typing as t -from collections import deque -from gettext import gettext as _ -from gettext import ngettext - -from ._utils import FLAG_NEEDS_VALUE -from ._utils import UNSET -from .exceptions import BadArgumentUsage -from .exceptions import BadOptionUsage -from .exceptions import NoSuchOption -from .exceptions import UsageError - -if t.TYPE_CHECKING: - from ._utils import T_FLAG_NEEDS_VALUE - from ._utils import T_UNSET - from .core import Argument as CoreArgument - from .core import Context - from .core import Option as CoreOption - from .core import Parameter as CoreParameter - -V = t.TypeVar("V") - - -def _unpack_args( - args: cabc.Sequence[str], nargs_spec: cabc.Sequence[int] -) -> tuple[cabc.Sequence[str | cabc.Sequence[str | None] | None], list[str]]: - """Given an iterable of arguments and an iterable of nargs specifications, - it returns a tuple with all the unpacked arguments at the first index - and all remaining arguments as the second. - - The nargs specification is the number of arguments that should be consumed - or `-1` to indicate that this position should eat up all the remainders. - - Missing items are filled with ``UNSET``. - """ - args = deque(args) - nargs_spec = deque(nargs_spec) - rv: list[str | tuple[str | T_UNSET, ...] | T_UNSET] = [] - spos: int | None = None - - def _fetch(c: deque[V]) -> V | T_UNSET: - try: - if spos is None: - return c.popleft() - else: - return c.pop() - except IndexError: - return UNSET - - while nargs_spec: - nargs = _fetch(nargs_spec) - - if nargs is None: - continue - - if nargs == 1: - rv.append(_fetch(args)) # type: ignore[arg-type] - elif nargs > 1: - x = [_fetch(args) for _ in range(nargs)] - - # If we're reversed, we're pulling in the arguments in reverse, - # so we need to turn them around. - if spos is not None: - x.reverse() - - rv.append(tuple(x)) - elif nargs < 0: - if spos is not None: - raise TypeError("Cannot have two nargs < 0") - - spos = len(rv) - rv.append(UNSET) - - # spos is the position of the wildcard (star). If it's not `None`, - # we fill it with the remainder. - if spos is not None: - rv[spos] = tuple(args) - args = [] - rv[spos + 1 :] = reversed(rv[spos + 1 :]) - - return tuple(rv), list(args) - - -def _split_opt(opt: str) -> tuple[str, str]: - first = opt[:1] - if first.isalnum(): - return "", opt - if opt[1:2] == first: - return opt[:2], opt[2:] - return first, opt[1:] - - -def _normalize_opt(opt: str, ctx: Context | None) -> str: - if ctx is None or ctx.token_normalize_func is None: - return opt - prefix, opt = _split_opt(opt) - return f"{prefix}{ctx.token_normalize_func(opt)}" - - -class _Option: - def __init__( - self, - obj: CoreOption, - opts: cabc.Sequence[str], - dest: str | None, - action: str | None = None, - nargs: int = 1, - const: t.Any | None = None, - ): - self._short_opts = [] - self._long_opts = [] - self.prefixes: set[str] = set() - - for opt in opts: - prefix, value = _split_opt(opt) - if not prefix: - raise ValueError(f"Invalid start character for option ({opt})") - self.prefixes.add(prefix[0]) - if len(prefix) == 1 and len(value) == 1: - self._short_opts.append(opt) - else: - self._long_opts.append(opt) - self.prefixes.add(prefix) - - if action is None: - action = "store" - - self.dest = dest - self.action = action - self.nargs = nargs - self.const = const - self.obj = obj - - @property - def takes_value(self) -> bool: - return self.action in ("store", "append") - - def process(self, value: t.Any, state: _ParsingState) -> None: - if self.action == "store": - state.opts[self.dest] = value # type: ignore - elif self.action == "store_const": - state.opts[self.dest] = self.const # type: ignore - elif self.action == "append": - state.opts.setdefault(self.dest, []).append(value) # type: ignore - elif self.action == "append_const": - state.opts.setdefault(self.dest, []).append(self.const) # type: ignore - elif self.action == "count": - state.opts[self.dest] = state.opts.get(self.dest, 0) + 1 # type: ignore - else: - raise ValueError(f"unknown action '{self.action}'") - state.order.append(self.obj) - - -class _Argument: - def __init__(self, obj: CoreArgument, dest: str | None, nargs: int = 1): - self.dest = dest - self.nargs = nargs - self.obj = obj - - def process( - self, - value: str | cabc.Sequence[str | None] | None | T_UNSET, - state: _ParsingState, - ) -> None: - if self.nargs > 1: - assert isinstance(value, cabc.Sequence) - holes = sum(1 for x in value if x is UNSET) - if holes == len(value): - value = UNSET - elif holes != 0: - raise BadArgumentUsage( - _("Argument {name!r} takes {nargs} values.").format( - name=self.dest, nargs=self.nargs - ) - ) - - # We failed to collect any argument value so we consider the argument as unset. - if value == (): - value = UNSET - - state.opts[self.dest] = value # type: ignore - state.order.append(self.obj) - - -class _ParsingState: - def __init__(self, rargs: list[str]) -> None: - self.opts: dict[str, t.Any] = {} - self.largs: list[str] = [] - self.rargs = rargs - self.order: list[CoreParameter] = [] - - -class _OptionParser: - """The option parser is an internal class that is ultimately used to - parse options and arguments. It's modelled after optparse and brings - a similar but vastly simplified API. It should generally not be used - directly as the high level Click classes wrap it for you. - - It's not nearly as extensible as optparse or argparse as it does not - implement features that are implemented on a higher level (such as - types or defaults). - - :param ctx: optionally the :class:`~click.Context` where this parser - should go with. - - .. deprecated:: 8.2 - Will be removed in Click 9.0. - """ - - def __init__(self, ctx: Context | None = None) -> None: - #: The :class:`~click.Context` for this parser. This might be - #: `None` for some advanced use cases. - self.ctx = ctx - #: This controls how the parser deals with interspersed arguments. - #: If this is set to `False`, the parser will stop on the first - #: non-option. Click uses this to implement nested subcommands - #: safely. - self.allow_interspersed_args: bool = True - #: This tells the parser how to deal with unknown options. By - #: default it will error out (which is sensible), but there is a - #: second mode where it will ignore it and continue processing - #: after shifting all the unknown options into the resulting args. - self.ignore_unknown_options: bool = False - - if ctx is not None: - self.allow_interspersed_args = ctx.allow_interspersed_args - self.ignore_unknown_options = ctx.ignore_unknown_options - - self._short_opt: dict[str, _Option] = {} - self._long_opt: dict[str, _Option] = {} - self._opt_prefixes = {"-", "--"} - self._args: list[_Argument] = [] - - def add_option( - self, - obj: CoreOption, - opts: cabc.Sequence[str], - dest: str | None, - action: str | None = None, - nargs: int = 1, - const: t.Any | None = None, - ) -> None: - """Adds a new option named `dest` to the parser. The destination - is not inferred (unlike with optparse) and needs to be explicitly - provided. Action can be any of ``store``, ``store_const``, - ``append``, ``append_const`` or ``count``. - - The `obj` can be used to identify the option in the order list - that is returned from the parser. - """ - opts = [_normalize_opt(opt, self.ctx) for opt in opts] - option = _Option(obj, opts, dest, action=action, nargs=nargs, const=const) - self._opt_prefixes.update(option.prefixes) - for opt in option._short_opts: - self._short_opt[opt] = option - for opt in option._long_opts: - self._long_opt[opt] = option - - def add_argument(self, obj: CoreArgument, dest: str | None, nargs: int = 1) -> None: - """Adds a positional argument named `dest` to the parser. - - The `obj` can be used to identify the option in the order list - that is returned from the parser. - """ - self._args.append(_Argument(obj, dest=dest, nargs=nargs)) - - def parse_args( - self, args: list[str] - ) -> tuple[dict[str, t.Any], list[str], list[CoreParameter]]: - """Parses positional arguments and returns ``(values, args, order)`` - for the parsed options and arguments as well as the leftover - arguments if there are any. The order is a list of objects as they - appear on the command line. If arguments appear multiple times they - will be memorized multiple times as well. - """ - state = _ParsingState(args) - try: - self._process_args_for_options(state) - self._process_args_for_args(state) - except UsageError: - if self.ctx is None or not self.ctx.resilient_parsing: - raise - return state.opts, state.largs, state.order - - def _process_args_for_args(self, state: _ParsingState) -> None: - pargs, args = _unpack_args( - state.largs + state.rargs, [x.nargs for x in self._args] - ) - - for idx, arg in enumerate(self._args): - arg.process(pargs[idx], state) - - state.largs = args - state.rargs = [] - - def _process_args_for_options(self, state: _ParsingState) -> None: - while state.rargs: - arg = state.rargs.pop(0) - arglen = len(arg) - # Double dashes always handled explicitly regardless of what - # prefixes are valid. - if arg == "--": - return - elif arg[:1] in self._opt_prefixes and arglen > 1: - self._process_opts(arg, state) - elif self.allow_interspersed_args: - state.largs.append(arg) - else: - state.rargs.insert(0, arg) - return - - # Say this is the original argument list: - # [arg0, arg1, ..., arg(i-1), arg(i), arg(i+1), ..., arg(N-1)] - # ^ - # (we are about to process arg(i)). - # - # Then rargs is [arg(i), ..., arg(N-1)] and largs is a *subset* of - # [arg0, ..., arg(i-1)] (any options and their arguments will have - # been removed from largs). - # - # The while loop will usually consume 1 or more arguments per pass. - # If it consumes 1 (eg. arg is an option that takes no arguments), - # then after _process_arg() is done the situation is: - # - # largs = subset of [arg0, ..., arg(i)] - # rargs = [arg(i+1), ..., arg(N-1)] - # - # If allow_interspersed_args is false, largs will always be - # *empty* -- still a subset of [arg0, ..., arg(i-1)], but - # not a very interesting subset! - - def _match_long_opt( - self, opt: str, explicit_value: str | None, state: _ParsingState - ) -> None: - if opt not in self._long_opt: - from difflib import get_close_matches - - possibilities = get_close_matches(opt, self._long_opt) - raise NoSuchOption(opt, possibilities=possibilities, ctx=self.ctx) - - option = self._long_opt[opt] - if option.takes_value: - # At this point it's safe to modify rargs by injecting the - # explicit value, because no exception is raised in this - # branch. This means that the inserted value will be fully - # consumed. - if explicit_value is not None: - state.rargs.insert(0, explicit_value) - - value = self._get_value_from_state(opt, option, state) - - elif explicit_value is not None: - raise BadOptionUsage( - opt, _("Option {name!r} does not take a value.").format(name=opt) - ) - - else: - value = UNSET - - option.process(value, state) - - def _match_short_opt(self, arg: str, state: _ParsingState) -> None: - stop = False - i = 1 - prefix = arg[0] - unknown_options = [] - - for ch in arg[1:]: - opt = _normalize_opt(f"{prefix}{ch}", self.ctx) - option = self._short_opt.get(opt) - i += 1 - - if not option: - if self.ignore_unknown_options: - unknown_options.append(ch) - continue - raise NoSuchOption(opt, ctx=self.ctx) - if option.takes_value: - # Any characters left in arg? Pretend they're the - # next arg, and stop consuming characters of arg. - if i < len(arg): - state.rargs.insert(0, arg[i:]) - stop = True - - value = self._get_value_from_state(opt, option, state) - - else: - value = UNSET - - option.process(value, state) - - if stop: - break - - # If we got any unknown options we recombine the string of the - # remaining options and re-attach the prefix, then report that - # to the state as new larg. This way there is basic combinatorics - # that can be achieved while still ignoring unknown arguments. - if self.ignore_unknown_options and unknown_options: - state.largs.append(f"{prefix}{''.join(unknown_options)}") - - def _get_value_from_state( - self, option_name: str, option: _Option, state: _ParsingState - ) -> str | cabc.Sequence[str] | T_FLAG_NEEDS_VALUE: - nargs = option.nargs - - value: str | cabc.Sequence[str] | T_FLAG_NEEDS_VALUE - - if len(state.rargs) < nargs: - if option.obj._flag_needs_value: - # Option allows omitting the value. - value = FLAG_NEEDS_VALUE - else: - raise BadOptionUsage( - option_name, - ngettext( - "Option {name!r} requires an argument.", - "Option {name!r} requires {nargs} arguments.", - nargs, - ).format(name=option_name, nargs=nargs), - ) - elif nargs == 1: - next_rarg = state.rargs[0] - - if ( - option.obj._flag_needs_value - and isinstance(next_rarg, str) - and next_rarg[:1] in self._opt_prefixes - and len(next_rarg) > 1 - ): - # The next arg looks like the start of an option, don't - # use it as the value if omitting the value is allowed. - value = FLAG_NEEDS_VALUE - else: - value = state.rargs.pop(0) - else: - value = tuple(state.rargs[:nargs]) - del state.rargs[:nargs] - - return value - - def _process_opts(self, arg: str, state: _ParsingState) -> None: - explicit_value = None - # Long option handling happens in two parts. The first part is - # supporting explicitly attached values. In any case, we will try - # to long match the option first. - if "=" in arg: - long_opt, explicit_value = arg.split("=", 1) - else: - long_opt = arg - norm_long_opt = _normalize_opt(long_opt, self.ctx) - - # At this point we will match the (assumed) long option through - # the long option matching code. Note that this allows options - # like "-foo" to be matched as long options. - try: - self._match_long_opt(norm_long_opt, explicit_value, state) - except NoSuchOption: - # At this point the long option matching failed, and we need - # to try with short options. However there is a special rule - # which says, that if we have a two character options prefix - # (applies to "--foo" for instance), we do not dispatch to the - # short option code and will instead raise the no option - # error. - if arg[:2] not in self._opt_prefixes: - self._match_short_opt(arg, state) - return - - if not self.ignore_unknown_options: - raise - - state.largs.append(arg) - - -def __getattr__(name: str) -> object: - import warnings - - if name in { - "OptionParser", - "Argument", - "Option", - "split_opt", - "normalize_opt", - "ParsingState", - }: - warnings.warn( - f"'parser.{name}' is deprecated and will be removed in Click 9.0." - " The old parser is available in 'optparse'.", - DeprecationWarning, - stacklevel=2, - ) - return globals()[f"_{name}"] - - if name == "split_arg_string": - from .shell_completion import split_arg_string - - warnings.warn( - "Importing 'parser.split_arg_string' is deprecated, it will only be" - " available in 'shell_completion' in Click 9.0.", - DeprecationWarning, - stacklevel=2, - ) - return split_arg_string - - raise AttributeError(name) diff --git a/backend/venv/lib/python3.12/site-packages/click/py.typed b/backend/venv/lib/python3.12/site-packages/click/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/backend/venv/lib/python3.12/site-packages/click/shell_completion.py b/backend/venv/lib/python3.12/site-packages/click/shell_completion.py deleted file mode 100644 index 8f1564c..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/shell_completion.py +++ /dev/null @@ -1,667 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import os -import re -import typing as t -from gettext import gettext as _ - -from .core import Argument -from .core import Command -from .core import Context -from .core import Group -from .core import Option -from .core import Parameter -from .core import ParameterSource -from .utils import echo - - -def shell_complete( - cli: Command, - ctx_args: cabc.MutableMapping[str, t.Any], - prog_name: str, - complete_var: str, - instruction: str, -) -> int: - """Perform shell completion for the given CLI program. - - :param cli: Command being called. - :param ctx_args: Extra arguments to pass to - ``cli.make_context``. - :param prog_name: Name of the executable in the shell. - :param complete_var: Name of the environment variable that holds - the completion instruction. - :param instruction: Value of ``complete_var`` with the completion - instruction and shell, in the form ``instruction_shell``. - :return: Status code to exit with. - """ - shell, _, instruction = instruction.partition("_") - comp_cls = get_completion_class(shell) - - if comp_cls is None: - return 1 - - comp = comp_cls(cli, ctx_args, prog_name, complete_var) - - if instruction == "source": - echo(comp.source()) - return 0 - - if instruction == "complete": - echo(comp.complete()) - return 0 - - return 1 - - -class CompletionItem: - """Represents a completion value and metadata about the value. The - default metadata is ``type`` to indicate special shell handling, - and ``help`` if a shell supports showing a help string next to the - value. - - Arbitrary parameters can be passed when creating the object, and - accessed using ``item.attr``. If an attribute wasn't passed, - accessing it returns ``None``. - - :param value: The completion suggestion. - :param type: Tells the shell script to provide special completion - support for the type. Click uses ``"dir"`` and ``"file"``. - :param help: String shown next to the value if supported. - :param kwargs: Arbitrary metadata. The built-in implementations - don't use this, but custom type completions paired with custom - shell support could use it. - """ - - __slots__ = ("value", "type", "help", "_info") - - def __init__( - self, - value: t.Any, - type: str = "plain", - help: str | None = None, - **kwargs: t.Any, - ) -> None: - self.value: t.Any = value - self.type: str = type - self.help: str | None = help - self._info = kwargs - - def __getattr__(self, name: str) -> t.Any: - return self._info.get(name) - - -# Only Bash >= 4.4 has the nosort option. -_SOURCE_BASH = """\ -%(complete_func)s() { - local IFS=$'\\n' - local response - - response=$(env COMP_WORDS="${COMP_WORDS[*]}" COMP_CWORD=$COMP_CWORD \ -%(complete_var)s=bash_complete $1) - - for completion in $response; do - IFS=',' read type value <<< "$completion" - - if [[ $type == 'dir' ]]; then - COMPREPLY=() - compopt -o dirnames - elif [[ $type == 'file' ]]; then - COMPREPLY=() - compopt -o default - elif [[ $type == 'plain' ]]; then - COMPREPLY+=($value) - fi - done - - return 0 -} - -%(complete_func)s_setup() { - complete -o nosort -F %(complete_func)s %(prog_name)s -} - -%(complete_func)s_setup; -""" - -# See ZshComplete.format_completion below, and issue #2703, before -# changing this script. -# -# (TL;DR: _describe is picky about the format, but this Zsh script snippet -# is already widely deployed. So freeze this script, and use clever-ish -# handling of colons in ZshComplet.format_completion.) -_SOURCE_ZSH = """\ -#compdef %(prog_name)s - -%(complete_func)s() { - local -a completions - local -a completions_with_descriptions - local -a response - (( ! $+commands[%(prog_name)s] )) && return 1 - - response=("${(@f)$(env COMP_WORDS="${words[*]}" COMP_CWORD=$((CURRENT-1)) \ -%(complete_var)s=zsh_complete %(prog_name)s)}") - - for type key descr in ${response}; do - if [[ "$type" == "plain" ]]; then - if [[ "$descr" == "_" ]]; then - completions+=("$key") - else - completions_with_descriptions+=("$key":"$descr") - fi - elif [[ "$type" == "dir" ]]; then - _path_files -/ - elif [[ "$type" == "file" ]]; then - _path_files -f - fi - done - - if [ -n "$completions_with_descriptions" ]; then - _describe -V unsorted completions_with_descriptions -U - fi - - if [ -n "$completions" ]; then - compadd -U -V unsorted -a completions - fi -} - -if [[ $zsh_eval_context[-1] == loadautofunc ]]; then - # autoload from fpath, call function directly - %(complete_func)s "$@" -else - # eval/source/. command, register function for later - compdef %(complete_func)s %(prog_name)s -fi -""" - -_SOURCE_FISH = """\ -function %(complete_func)s; - set -l response (env %(complete_var)s=fish_complete COMP_WORDS=(commandline -cp) \ -COMP_CWORD=(commandline -t) %(prog_name)s); - - for completion in $response; - set -l metadata (string split "," $completion); - - if test $metadata[1] = "dir"; - __fish_complete_directories $metadata[2]; - else if test $metadata[1] = "file"; - __fish_complete_path $metadata[2]; - else if test $metadata[1] = "plain"; - echo $metadata[2]; - end; - end; -end; - -complete --no-files --command %(prog_name)s --arguments \ -"(%(complete_func)s)"; -""" - - -class ShellComplete: - """Base class for providing shell completion support. A subclass for - a given shell will override attributes and methods to implement the - completion instructions (``source`` and ``complete``). - - :param cli: Command being called. - :param prog_name: Name of the executable in the shell. - :param complete_var: Name of the environment variable that holds - the completion instruction. - - .. versionadded:: 8.0 - """ - - name: t.ClassVar[str] - """Name to register the shell as with :func:`add_completion_class`. - This is used in completion instructions (``{name}_source`` and - ``{name}_complete``). - """ - - source_template: t.ClassVar[str] - """Completion script template formatted by :meth:`source`. This must - be provided by subclasses. - """ - - def __init__( - self, - cli: Command, - ctx_args: cabc.MutableMapping[str, t.Any], - prog_name: str, - complete_var: str, - ) -> None: - self.cli = cli - self.ctx_args = ctx_args - self.prog_name = prog_name - self.complete_var = complete_var - - @property - def func_name(self) -> str: - """The name of the shell function defined by the completion - script. - """ - safe_name = re.sub(r"\W*", "", self.prog_name.replace("-", "_"), flags=re.ASCII) - return f"_{safe_name}_completion" - - def source_vars(self) -> dict[str, t.Any]: - """Vars for formatting :attr:`source_template`. - - By default this provides ``complete_func``, ``complete_var``, - and ``prog_name``. - """ - return { - "complete_func": self.func_name, - "complete_var": self.complete_var, - "prog_name": self.prog_name, - } - - def source(self) -> str: - """Produce the shell script that defines the completion - function. By default this ``%``-style formats - :attr:`source_template` with the dict returned by - :meth:`source_vars`. - """ - return self.source_template % self.source_vars() - - def get_completion_args(self) -> tuple[list[str], str]: - """Use the env vars defined by the shell script to return a - tuple of ``args, incomplete``. This must be implemented by - subclasses. - """ - raise NotImplementedError - - def get_completions(self, args: list[str], incomplete: str) -> list[CompletionItem]: - """Determine the context and last complete command or parameter - from the complete args. Call that object's ``shell_complete`` - method to get the completions for the incomplete value. - - :param args: List of complete args before the incomplete value. - :param incomplete: Value being completed. May be empty. - """ - ctx = _resolve_context(self.cli, self.ctx_args, self.prog_name, args) - obj, incomplete = _resolve_incomplete(ctx, args, incomplete) - return obj.shell_complete(ctx, incomplete) - - def format_completion(self, item: CompletionItem) -> str: - """Format a completion item into the form recognized by the - shell script. This must be implemented by subclasses. - - :param item: Completion item to format. - """ - raise NotImplementedError - - def complete(self) -> str: - """Produce the completion data to send back to the shell. - - By default this calls :meth:`get_completion_args`, gets the - completions, then calls :meth:`format_completion` for each - completion. - """ - args, incomplete = self.get_completion_args() - completions = self.get_completions(args, incomplete) - out = [self.format_completion(item) for item in completions] - return "\n".join(out) - - -class BashComplete(ShellComplete): - """Shell completion for Bash.""" - - name = "bash" - source_template = _SOURCE_BASH - - @staticmethod - def _check_version() -> None: - import shutil - import subprocess - - bash_exe = shutil.which("bash") - - if bash_exe is None: - match = None - else: - output = subprocess.run( - [bash_exe, "--norc", "-c", 'echo "${BASH_VERSION}"'], - stdout=subprocess.PIPE, - ) - match = re.search(r"^(\d+)\.(\d+)\.\d+", output.stdout.decode()) - - if match is not None: - major, minor = match.groups() - - if major < "4" or major == "4" and minor < "4": - echo( - _( - "Shell completion is not supported for Bash" - " versions older than 4.4." - ), - err=True, - ) - else: - echo( - _("Couldn't detect Bash version, shell completion is not supported."), - err=True, - ) - - def source(self) -> str: - self._check_version() - return super().source() - - def get_completion_args(self) -> tuple[list[str], str]: - cwords = split_arg_string(os.environ["COMP_WORDS"]) - cword = int(os.environ["COMP_CWORD"]) - args = cwords[1:cword] - - try: - incomplete = cwords[cword] - except IndexError: - incomplete = "" - - return args, incomplete - - def format_completion(self, item: CompletionItem) -> str: - return f"{item.type},{item.value}" - - -class ZshComplete(ShellComplete): - """Shell completion for Zsh.""" - - name = "zsh" - source_template = _SOURCE_ZSH - - def get_completion_args(self) -> tuple[list[str], str]: - cwords = split_arg_string(os.environ["COMP_WORDS"]) - cword = int(os.environ["COMP_CWORD"]) - args = cwords[1:cword] - - try: - incomplete = cwords[cword] - except IndexError: - incomplete = "" - - return args, incomplete - - def format_completion(self, item: CompletionItem) -> str: - help_ = item.help or "_" - # The zsh completion script uses `_describe` on items with help - # texts (which splits the item help from the item value at the - # first unescaped colon) and `compadd` on items without help - # text (which uses the item value as-is and does not support - # colon escaping). So escape colons in the item value if and - # only if the item help is not the sentinel "_" value, as used - # by the completion script. - # - # (The zsh completion script is potentially widely deployed, and - # thus harder to fix than this method.) - # - # See issue #1812 and issue #2703 for further context. - value = item.value.replace(":", r"\:") if help_ != "_" else item.value - return f"{item.type}\n{value}\n{help_}" - - -class FishComplete(ShellComplete): - """Shell completion for Fish.""" - - name = "fish" - source_template = _SOURCE_FISH - - def get_completion_args(self) -> tuple[list[str], str]: - cwords = split_arg_string(os.environ["COMP_WORDS"]) - incomplete = os.environ["COMP_CWORD"] - if incomplete: - incomplete = split_arg_string(incomplete)[0] - args = cwords[1:] - - # Fish stores the partial word in both COMP_WORDS and - # COMP_CWORD, remove it from complete args. - if incomplete and args and args[-1] == incomplete: - args.pop() - - return args, incomplete - - def format_completion(self, item: CompletionItem) -> str: - if item.help: - return f"{item.type},{item.value}\t{item.help}" - - return f"{item.type},{item.value}" - - -ShellCompleteType = t.TypeVar("ShellCompleteType", bound="type[ShellComplete]") - - -_available_shells: dict[str, type[ShellComplete]] = { - "bash": BashComplete, - "fish": FishComplete, - "zsh": ZshComplete, -} - - -def add_completion_class( - cls: ShellCompleteType, name: str | None = None -) -> ShellCompleteType: - """Register a :class:`ShellComplete` subclass under the given name. - The name will be provided by the completion instruction environment - variable during completion. - - :param cls: The completion class that will handle completion for the - shell. - :param name: Name to register the class under. Defaults to the - class's ``name`` attribute. - """ - if name is None: - name = cls.name - - _available_shells[name] = cls - - return cls - - -def get_completion_class(shell: str) -> type[ShellComplete] | None: - """Look up a registered :class:`ShellComplete` subclass by the name - provided by the completion instruction environment variable. If the - name isn't registered, returns ``None``. - - :param shell: Name the class is registered under. - """ - return _available_shells.get(shell) - - -def split_arg_string(string: str) -> list[str]: - """Split an argument string as with :func:`shlex.split`, but don't - fail if the string is incomplete. Ignores a missing closing quote or - incomplete escape sequence and uses the partial token as-is. - - .. code-block:: python - - split_arg_string("example 'my file") - ["example", "my file"] - - split_arg_string("example my\\") - ["example", "my"] - - :param string: String to split. - - .. versionchanged:: 8.2 - Moved to ``shell_completion`` from ``parser``. - """ - import shlex - - lex = shlex.shlex(string, posix=True) - lex.whitespace_split = True - lex.commenters = "" - out = [] - - try: - for token in lex: - out.append(token) - except ValueError: - # Raised when end-of-string is reached in an invalid state. Use - # the partial token as-is. The quote or escape character is in - # lex.state, not lex.token. - out.append(lex.token) - - return out - - -def _is_incomplete_argument(ctx: Context, param: Parameter) -> bool: - """Determine if the given parameter is an argument that can still - accept values. - - :param ctx: Invocation context for the command represented by the - parsed complete args. - :param param: Argument object being checked. - """ - if not isinstance(param, Argument): - return False - - assert param.name is not None - # Will be None if expose_value is False. - value = ctx.params.get(param.name) - return ( - param.nargs == -1 - or ctx.get_parameter_source(param.name) is not ParameterSource.COMMANDLINE - or ( - param.nargs > 1 - and isinstance(value, (tuple, list)) - and len(value) < param.nargs - ) - ) - - -def _start_of_option(ctx: Context, value: str) -> bool: - """Check if the value looks like the start of an option.""" - if not value: - return False - - c = value[0] - return c in ctx._opt_prefixes - - -def _is_incomplete_option(ctx: Context, args: list[str], param: Parameter) -> bool: - """Determine if the given parameter is an option that needs a value. - - :param args: List of complete args before the incomplete value. - :param param: Option object being checked. - """ - if not isinstance(param, Option): - return False - - if param.is_flag or param.count: - return False - - last_option = None - - for index, arg in enumerate(reversed(args)): - if index + 1 > param.nargs: - break - - if _start_of_option(ctx, arg): - last_option = arg - break - - return last_option is not None and last_option in param.opts - - -def _resolve_context( - cli: Command, - ctx_args: cabc.MutableMapping[str, t.Any], - prog_name: str, - args: list[str], -) -> Context: - """Produce the context hierarchy starting with the command and - traversing the complete arguments. This only follows the commands, - it doesn't trigger input prompts or callbacks. - - :param cli: Command being called. - :param prog_name: Name of the executable in the shell. - :param args: List of complete args before the incomplete value. - """ - ctx_args["resilient_parsing"] = True - with cli.make_context(prog_name, args.copy(), **ctx_args) as ctx: - args = ctx._protected_args + ctx.args - - while args: - command = ctx.command - - if isinstance(command, Group): - if not command.chain: - name, cmd, args = command.resolve_command(ctx, args) - - if cmd is None: - return ctx - - with cmd.make_context( - name, args, parent=ctx, resilient_parsing=True - ) as sub_ctx: - ctx = sub_ctx - args = ctx._protected_args + ctx.args - else: - sub_ctx = ctx - - while args: - name, cmd, args = command.resolve_command(ctx, args) - - if cmd is None: - return ctx - - with cmd.make_context( - name, - args, - parent=ctx, - allow_extra_args=True, - allow_interspersed_args=False, - resilient_parsing=True, - ) as sub_sub_ctx: - sub_ctx = sub_sub_ctx - args = sub_ctx.args - - ctx = sub_ctx - args = [*sub_ctx._protected_args, *sub_ctx.args] - else: - break - - return ctx - - -def _resolve_incomplete( - ctx: Context, args: list[str], incomplete: str -) -> tuple[Command | Parameter, str]: - """Find the Click object that will handle the completion of the - incomplete value. Return the object and the incomplete value. - - :param ctx: Invocation context for the command represented by - the parsed complete args. - :param args: List of complete args before the incomplete value. - :param incomplete: Value being completed. May be empty. - """ - # Different shells treat an "=" between a long option name and - # value differently. Might keep the value joined, return the "=" - # as a separate item, or return the split name and value. Always - # split and discard the "=" to make completion easier. - if incomplete == "=": - incomplete = "" - elif "=" in incomplete and _start_of_option(ctx, incomplete): - name, _, incomplete = incomplete.partition("=") - args.append(name) - - # The "--" marker tells Click to stop treating values as options - # even if they start with the option character. If it hasn't been - # given and the incomplete arg looks like an option, the current - # command will provide option name completions. - if "--" not in args and _start_of_option(ctx, incomplete): - return ctx.command, incomplete - - params = ctx.command.get_params(ctx) - - # If the last complete arg is an option name with an incomplete - # value, the option will provide value completions. - for param in params: - if _is_incomplete_option(ctx, args, param): - return param, incomplete - - # It's not an option name or value. The first argument without a - # parsed value will provide value completions. - for param in params: - if _is_incomplete_argument(ctx, param): - return param, incomplete - - # There were no unparsed arguments, the command may be a group that - # will provide command name completions. - return ctx.command, incomplete diff --git a/backend/venv/lib/python3.12/site-packages/click/termui.py b/backend/venv/lib/python3.12/site-packages/click/termui.py deleted file mode 100644 index 2e98a07..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/termui.py +++ /dev/null @@ -1,883 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import inspect -import io -import itertools -import sys -import typing as t -from contextlib import AbstractContextManager -from gettext import gettext as _ - -from ._compat import isatty -from ._compat import strip_ansi -from .exceptions import Abort -from .exceptions import UsageError -from .globals import resolve_color_default -from .types import Choice -from .types import convert_type -from .types import ParamType -from .utils import echo -from .utils import LazyFile - -if t.TYPE_CHECKING: - from ._termui_impl import ProgressBar - -V = t.TypeVar("V") - -# The prompt functions to use. The doc tools currently override these -# functions to customize how they work. -visible_prompt_func: t.Callable[[str], str] = input - -_ansi_colors = { - "black": 30, - "red": 31, - "green": 32, - "yellow": 33, - "blue": 34, - "magenta": 35, - "cyan": 36, - "white": 37, - "reset": 39, - "bright_black": 90, - "bright_red": 91, - "bright_green": 92, - "bright_yellow": 93, - "bright_blue": 94, - "bright_magenta": 95, - "bright_cyan": 96, - "bright_white": 97, -} -_ansi_reset_all = "\033[0m" - - -def hidden_prompt_func(prompt: str) -> str: - import getpass - - return getpass.getpass(prompt) - - -def _build_prompt( - text: str, - suffix: str, - show_default: bool = False, - default: t.Any | None = None, - show_choices: bool = True, - type: ParamType | None = None, -) -> str: - prompt = text - if type is not None and show_choices and isinstance(type, Choice): - prompt += f" ({', '.join(map(str, type.choices))})" - if default is not None and show_default: - prompt = f"{prompt} [{_format_default(default)}]" - return f"{prompt}{suffix}" - - -def _format_default(default: t.Any) -> t.Any: - if isinstance(default, (io.IOBase, LazyFile)) and hasattr(default, "name"): - return default.name - - return default - - -def prompt( - text: str, - default: t.Any | None = None, - hide_input: bool = False, - confirmation_prompt: bool | str = False, - type: ParamType | t.Any | None = None, - value_proc: t.Callable[[str], t.Any] | None = None, - prompt_suffix: str = ": ", - show_default: bool = True, - err: bool = False, - show_choices: bool = True, -) -> t.Any: - """Prompts a user for input. This is a convenience function that can - be used to prompt a user for input later. - - If the user aborts the input by sending an interrupt signal, this - function will catch it and raise a :exc:`Abort` exception. - - :param text: the text to show for the prompt. - :param default: the default value to use if no input happens. If this - is not given it will prompt until it's aborted. - :param hide_input: if this is set to true then the input value will - be hidden. - :param confirmation_prompt: Prompt a second time to confirm the - value. Can be set to a string instead of ``True`` to customize - the message. - :param type: the type to use to check the value against. - :param value_proc: if this parameter is provided it's a function that - is invoked instead of the type conversion to - convert a value. - :param prompt_suffix: a suffix that should be added to the prompt. - :param show_default: shows or hides the default value in the prompt. - :param err: if set to true the file defaults to ``stderr`` instead of - ``stdout``, the same as with echo. - :param show_choices: Show or hide choices if the passed type is a Choice. - For example if type is a Choice of either day or week, - show_choices is true and text is "Group by" then the - prompt will be "Group by (day, week): ". - - .. versionchanged:: 8.3.1 - A space is no longer appended to the prompt. - - .. versionadded:: 8.0 - ``confirmation_prompt`` can be a custom string. - - .. versionadded:: 7.0 - Added the ``show_choices`` parameter. - - .. versionadded:: 6.0 - Added unicode support for cmd.exe on Windows. - - .. versionadded:: 4.0 - Added the `err` parameter. - - """ - - def prompt_func(text: str) -> str: - f = hidden_prompt_func if hide_input else visible_prompt_func - try: - # Write the prompt separately so that we get nice - # coloring through colorama on Windows - echo(text[:-1], nl=False, err=err) - # Echo the last character to stdout to work around an issue where - # readline causes backspace to clear the whole line. - return f(text[-1:]) - except (KeyboardInterrupt, EOFError): - # getpass doesn't print a newline if the user aborts input with ^C. - # Allegedly this behavior is inherited from getpass(3). - # A doc bug has been filed at https://bugs.python.org/issue24711 - if hide_input: - echo(None, err=err) - raise Abort() from None - - if value_proc is None: - value_proc = convert_type(type, default) - - prompt = _build_prompt( - text, prompt_suffix, show_default, default, show_choices, type - ) - - if confirmation_prompt: - if confirmation_prompt is True: - confirmation_prompt = _("Repeat for confirmation") - - confirmation_prompt = _build_prompt(confirmation_prompt, prompt_suffix) - - while True: - while True: - value = prompt_func(prompt) - if value: - break - elif default is not None: - value = default - break - try: - result = value_proc(value) - except UsageError as e: - if hide_input: - echo(_("Error: The value you entered was invalid."), err=err) - else: - echo(_("Error: {e.message}").format(e=e), err=err) - continue - if not confirmation_prompt: - return result - while True: - value2 = prompt_func(confirmation_prompt) - is_empty = not value and not value2 - if value2 or is_empty: - break - if value == value2: - return result - echo(_("Error: The two entered values do not match."), err=err) - - -def confirm( - text: str, - default: bool | None = False, - abort: bool = False, - prompt_suffix: str = ": ", - show_default: bool = True, - err: bool = False, -) -> bool: - """Prompts for confirmation (yes/no question). - - If the user aborts the input by sending a interrupt signal this - function will catch it and raise a :exc:`Abort` exception. - - :param text: the question to ask. - :param default: The default value to use when no input is given. If - ``None``, repeat until input is given. - :param abort: if this is set to `True` a negative answer aborts the - exception by raising :exc:`Abort`. - :param prompt_suffix: a suffix that should be added to the prompt. - :param show_default: shows or hides the default value in the prompt. - :param err: if set to true the file defaults to ``stderr`` instead of - ``stdout``, the same as with echo. - - .. versionchanged:: 8.3.1 - A space is no longer appended to the prompt. - - .. versionchanged:: 8.0 - Repeat until input is given if ``default`` is ``None``. - - .. versionadded:: 4.0 - Added the ``err`` parameter. - """ - prompt = _build_prompt( - text, - prompt_suffix, - show_default, - "y/n" if default is None else ("Y/n" if default else "y/N"), - ) - - while True: - try: - # Write the prompt separately so that we get nice - # coloring through colorama on Windows - echo(prompt[:-1], nl=False, err=err) - # Echo the last character to stdout to work around an issue where - # readline causes backspace to clear the whole line. - value = visible_prompt_func(prompt[-1:]).lower().strip() - except (KeyboardInterrupt, EOFError): - raise Abort() from None - if value in ("y", "yes"): - rv = True - elif value in ("n", "no"): - rv = False - elif default is not None and value == "": - rv = default - else: - echo(_("Error: invalid input"), err=err) - continue - break - if abort and not rv: - raise Abort() - return rv - - -def echo_via_pager( - text_or_generator: cabc.Iterable[str] | t.Callable[[], cabc.Iterable[str]] | str, - color: bool | None = None, -) -> None: - """This function takes a text and shows it via an environment specific - pager on stdout. - - .. versionchanged:: 3.0 - Added the `color` flag. - - :param text_or_generator: the text to page, or alternatively, a - generator emitting the text to page. - :param color: controls if the pager supports ANSI colors or not. The - default is autodetection. - """ - color = resolve_color_default(color) - - if inspect.isgeneratorfunction(text_or_generator): - i = t.cast("t.Callable[[], cabc.Iterable[str]]", text_or_generator)() - elif isinstance(text_or_generator, str): - i = [text_or_generator] - else: - i = iter(t.cast("cabc.Iterable[str]", text_or_generator)) - - # convert every element of i to a text type if necessary - text_generator = (el if isinstance(el, str) else str(el) for el in i) - - from ._termui_impl import pager - - return pager(itertools.chain(text_generator, "\n"), color) - - -@t.overload -def progressbar( - *, - length: int, - label: str | None = None, - hidden: bool = False, - show_eta: bool = True, - show_percent: bool | None = None, - show_pos: bool = False, - fill_char: str = "#", - empty_char: str = "-", - bar_template: str = "%(label)s [%(bar)s] %(info)s", - info_sep: str = " ", - width: int = 36, - file: t.TextIO | None = None, - color: bool | None = None, - update_min_steps: int = 1, -) -> ProgressBar[int]: ... - - -@t.overload -def progressbar( - iterable: cabc.Iterable[V] | None = None, - length: int | None = None, - label: str | None = None, - hidden: bool = False, - show_eta: bool = True, - show_percent: bool | None = None, - show_pos: bool = False, - item_show_func: t.Callable[[V | None], str | None] | None = None, - fill_char: str = "#", - empty_char: str = "-", - bar_template: str = "%(label)s [%(bar)s] %(info)s", - info_sep: str = " ", - width: int = 36, - file: t.TextIO | None = None, - color: bool | None = None, - update_min_steps: int = 1, -) -> ProgressBar[V]: ... - - -def progressbar( - iterable: cabc.Iterable[V] | None = None, - length: int | None = None, - label: str | None = None, - hidden: bool = False, - show_eta: bool = True, - show_percent: bool | None = None, - show_pos: bool = False, - item_show_func: t.Callable[[V | None], str | None] | None = None, - fill_char: str = "#", - empty_char: str = "-", - bar_template: str = "%(label)s [%(bar)s] %(info)s", - info_sep: str = " ", - width: int = 36, - file: t.TextIO | None = None, - color: bool | None = None, - update_min_steps: int = 1, -) -> ProgressBar[V]: - """This function creates an iterable context manager that can be used - to iterate over something while showing a progress bar. It will - either iterate over the `iterable` or `length` items (that are counted - up). While iteration happens, this function will print a rendered - progress bar to the given `file` (defaults to stdout) and will attempt - to calculate remaining time and more. By default, this progress bar - will not be rendered if the file is not a terminal. - - The context manager creates the progress bar. When the context - manager is entered the progress bar is already created. With every - iteration over the progress bar, the iterable passed to the bar is - advanced and the bar is updated. When the context manager exits, - a newline is printed and the progress bar is finalized on screen. - - Note: The progress bar is currently designed for use cases where the - total progress can be expected to take at least several seconds. - Because of this, the ProgressBar class object won't display - progress that is considered too fast, and progress where the time - between steps is less than a second. - - No printing must happen or the progress bar will be unintentionally - destroyed. - - Example usage:: - - with progressbar(items) as bar: - for item in bar: - do_something_with(item) - - Alternatively, if no iterable is specified, one can manually update the - progress bar through the `update()` method instead of directly - iterating over the progress bar. The update method accepts the number - of steps to increment the bar with:: - - with progressbar(length=chunks.total_bytes) as bar: - for chunk in chunks: - process_chunk(chunk) - bar.update(chunks.bytes) - - The ``update()`` method also takes an optional value specifying the - ``current_item`` at the new position. This is useful when used - together with ``item_show_func`` to customize the output for each - manual step:: - - with click.progressbar( - length=total_size, - label='Unzipping archive', - item_show_func=lambda a: a.filename - ) as bar: - for archive in zip_file: - archive.extract() - bar.update(archive.size, archive) - - :param iterable: an iterable to iterate over. If not provided the length - is required. - :param length: the number of items to iterate over. By default the - progressbar will attempt to ask the iterator about its - length, which might or might not work. If an iterable is - also provided this parameter can be used to override the - length. If an iterable is not provided the progress bar - will iterate over a range of that length. - :param label: the label to show next to the progress bar. - :param hidden: hide the progressbar. Defaults to ``False``. When no tty is - detected, it will only print the progressbar label. Setting this to - ``False`` also disables that. - :param show_eta: enables or disables the estimated time display. This is - automatically disabled if the length cannot be - determined. - :param show_percent: enables or disables the percentage display. The - default is `True` if the iterable has a length or - `False` if not. - :param show_pos: enables or disables the absolute position display. The - default is `False`. - :param item_show_func: A function called with the current item which - can return a string to show next to the progress bar. If the - function returns ``None`` nothing is shown. The current item can - be ``None``, such as when entering and exiting the bar. - :param fill_char: the character to use to show the filled part of the - progress bar. - :param empty_char: the character to use to show the non-filled part of - the progress bar. - :param bar_template: the format string to use as template for the bar. - The parameters in it are ``label`` for the label, - ``bar`` for the progress bar and ``info`` for the - info section. - :param info_sep: the separator between multiple info items (eta etc.) - :param width: the width of the progress bar in characters, 0 means full - terminal width - :param file: The file to write to. If this is not a terminal then - only the label is printed. - :param color: controls if the terminal supports ANSI colors or not. The - default is autodetection. This is only needed if ANSI - codes are included anywhere in the progress bar output - which is not the case by default. - :param update_min_steps: Render only when this many updates have - completed. This allows tuning for very fast iterators. - - .. versionadded:: 8.2 - The ``hidden`` argument. - - .. versionchanged:: 8.0 - Output is shown even if execution time is less than 0.5 seconds. - - .. versionchanged:: 8.0 - ``item_show_func`` shows the current item, not the previous one. - - .. versionchanged:: 8.0 - Labels are echoed if the output is not a TTY. Reverts a change - in 7.0 that removed all output. - - .. versionadded:: 8.0 - The ``update_min_steps`` parameter. - - .. versionadded:: 4.0 - The ``color`` parameter and ``update`` method. - - .. versionadded:: 2.0 - """ - from ._termui_impl import ProgressBar - - color = resolve_color_default(color) - return ProgressBar( - iterable=iterable, - length=length, - hidden=hidden, - show_eta=show_eta, - show_percent=show_percent, - show_pos=show_pos, - item_show_func=item_show_func, - fill_char=fill_char, - empty_char=empty_char, - bar_template=bar_template, - info_sep=info_sep, - file=file, - label=label, - width=width, - color=color, - update_min_steps=update_min_steps, - ) - - -def clear() -> None: - """Clears the terminal screen. This will have the effect of clearing - the whole visible space of the terminal and moving the cursor to the - top left. This does not do anything if not connected to a terminal. - - .. versionadded:: 2.0 - """ - if not isatty(sys.stdout): - return - - # ANSI escape \033[2J clears the screen, \033[1;1H moves the cursor - echo("\033[2J\033[1;1H", nl=False) - - -def _interpret_color(color: int | tuple[int, int, int] | str, offset: int = 0) -> str: - if isinstance(color, int): - return f"{38 + offset};5;{color:d}" - - if isinstance(color, (tuple, list)): - r, g, b = color - return f"{38 + offset};2;{r:d};{g:d};{b:d}" - - return str(_ansi_colors[color] + offset) - - -def style( - text: t.Any, - fg: int | tuple[int, int, int] | str | None = None, - bg: int | tuple[int, int, int] | str | None = None, - bold: bool | None = None, - dim: bool | None = None, - underline: bool | None = None, - overline: bool | None = None, - italic: bool | None = None, - blink: bool | None = None, - reverse: bool | None = None, - strikethrough: bool | None = None, - reset: bool = True, -) -> str: - """Styles a text with ANSI styles and returns the new string. By - default the styling is self contained which means that at the end - of the string a reset code is issued. This can be prevented by - passing ``reset=False``. - - Examples:: - - click.echo(click.style('Hello World!', fg='green')) - click.echo(click.style('ATTENTION!', blink=True)) - click.echo(click.style('Some things', reverse=True, fg='cyan')) - click.echo(click.style('More colors', fg=(255, 12, 128), bg=117)) - - Supported color names: - - * ``black`` (might be a gray) - * ``red`` - * ``green`` - * ``yellow`` (might be an orange) - * ``blue`` - * ``magenta`` - * ``cyan`` - * ``white`` (might be light gray) - * ``bright_black`` - * ``bright_red`` - * ``bright_green`` - * ``bright_yellow`` - * ``bright_blue`` - * ``bright_magenta`` - * ``bright_cyan`` - * ``bright_white`` - * ``reset`` (reset the color code only) - - If the terminal supports it, color may also be specified as: - - - An integer in the interval [0, 255]. The terminal must support - 8-bit/256-color mode. - - An RGB tuple of three integers in [0, 255]. The terminal must - support 24-bit/true-color mode. - - See https://en.wikipedia.org/wiki/ANSI_color and - https://gist.github.com/XVilka/8346728 for more information. - - :param text: the string to style with ansi codes. - :param fg: if provided this will become the foreground color. - :param bg: if provided this will become the background color. - :param bold: if provided this will enable or disable bold mode. - :param dim: if provided this will enable or disable dim mode. This is - badly supported. - :param underline: if provided this will enable or disable underline. - :param overline: if provided this will enable or disable overline. - :param italic: if provided this will enable or disable italic. - :param blink: if provided this will enable or disable blinking. - :param reverse: if provided this will enable or disable inverse - rendering (foreground becomes background and the - other way round). - :param strikethrough: if provided this will enable or disable - striking through text. - :param reset: by default a reset-all code is added at the end of the - string which means that styles do not carry over. This - can be disabled to compose styles. - - .. versionchanged:: 8.0 - A non-string ``message`` is converted to a string. - - .. versionchanged:: 8.0 - Added support for 256 and RGB color codes. - - .. versionchanged:: 8.0 - Added the ``strikethrough``, ``italic``, and ``overline`` - parameters. - - .. versionchanged:: 7.0 - Added support for bright colors. - - .. versionadded:: 2.0 - """ - if not isinstance(text, str): - text = str(text) - - bits = [] - - if fg: - try: - bits.append(f"\033[{_interpret_color(fg)}m") - except KeyError: - raise TypeError(f"Unknown color {fg!r}") from None - - if bg: - try: - bits.append(f"\033[{_interpret_color(bg, 10)}m") - except KeyError: - raise TypeError(f"Unknown color {bg!r}") from None - - if bold is not None: - bits.append(f"\033[{1 if bold else 22}m") - if dim is not None: - bits.append(f"\033[{2 if dim else 22}m") - if underline is not None: - bits.append(f"\033[{4 if underline else 24}m") - if overline is not None: - bits.append(f"\033[{53 if overline else 55}m") - if italic is not None: - bits.append(f"\033[{3 if italic else 23}m") - if blink is not None: - bits.append(f"\033[{5 if blink else 25}m") - if reverse is not None: - bits.append(f"\033[{7 if reverse else 27}m") - if strikethrough is not None: - bits.append(f"\033[{9 if strikethrough else 29}m") - bits.append(text) - if reset: - bits.append(_ansi_reset_all) - return "".join(bits) - - -def unstyle(text: str) -> str: - """Removes ANSI styling information from a string. Usually it's not - necessary to use this function as Click's echo function will - automatically remove styling if necessary. - - .. versionadded:: 2.0 - - :param text: the text to remove style information from. - """ - return strip_ansi(text) - - -def secho( - message: t.Any | None = None, - file: t.IO[t.AnyStr] | None = None, - nl: bool = True, - err: bool = False, - color: bool | None = None, - **styles: t.Any, -) -> None: - """This function combines :func:`echo` and :func:`style` into one - call. As such the following two calls are the same:: - - click.secho('Hello World!', fg='green') - click.echo(click.style('Hello World!', fg='green')) - - All keyword arguments are forwarded to the underlying functions - depending on which one they go with. - - Non-string types will be converted to :class:`str`. However, - :class:`bytes` are passed directly to :meth:`echo` without applying - style. If you want to style bytes that represent text, call - :meth:`bytes.decode` first. - - .. versionchanged:: 8.0 - A non-string ``message`` is converted to a string. Bytes are - passed through without style applied. - - .. versionadded:: 2.0 - """ - if message is not None and not isinstance(message, (bytes, bytearray)): - message = style(message, **styles) - - return echo(message, file=file, nl=nl, err=err, color=color) - - -@t.overload -def edit( - text: bytes | bytearray, - editor: str | None = None, - env: cabc.Mapping[str, str] | None = None, - require_save: bool = False, - extension: str = ".txt", -) -> bytes | None: ... - - -@t.overload -def edit( - text: str, - editor: str | None = None, - env: cabc.Mapping[str, str] | None = None, - require_save: bool = True, - extension: str = ".txt", -) -> str | None: ... - - -@t.overload -def edit( - text: None = None, - editor: str | None = None, - env: cabc.Mapping[str, str] | None = None, - require_save: bool = True, - extension: str = ".txt", - filename: str | cabc.Iterable[str] | None = None, -) -> None: ... - - -def edit( - text: str | bytes | bytearray | None = None, - editor: str | None = None, - env: cabc.Mapping[str, str] | None = None, - require_save: bool = True, - extension: str = ".txt", - filename: str | cabc.Iterable[str] | None = None, -) -> str | bytes | bytearray | None: - r"""Edits the given text in the defined editor. If an editor is given - (should be the full path to the executable but the regular operating - system search path is used for finding the executable) it overrides - the detected editor. Optionally, some environment variables can be - used. If the editor is closed without changes, `None` is returned. In - case a file is edited directly the return value is always `None` and - `require_save` and `extension` are ignored. - - If the editor cannot be opened a :exc:`UsageError` is raised. - - Note for Windows: to simplify cross-platform usage, the newlines are - automatically converted from POSIX to Windows and vice versa. As such, - the message here will have ``\n`` as newline markers. - - :param text: the text to edit. - :param editor: optionally the editor to use. Defaults to automatic - detection. - :param env: environment variables to forward to the editor. - :param require_save: if this is true, then not saving in the editor - will make the return value become `None`. - :param extension: the extension to tell the editor about. This defaults - to `.txt` but changing this might change syntax - highlighting. - :param filename: if provided it will edit this file instead of the - provided text contents. It will not use a temporary - file as an indirection in that case. If the editor supports - editing multiple files at once, a sequence of files may be - passed as well. Invoke `click.file` once per file instead - if multiple files cannot be managed at once or editing the - files serially is desired. - - .. versionchanged:: 8.2.0 - ``filename`` now accepts any ``Iterable[str]`` in addition to a ``str`` - if the ``editor`` supports editing multiple files at once. - - """ - from ._termui_impl import Editor - - ed = Editor(editor=editor, env=env, require_save=require_save, extension=extension) - - if filename is None: - return ed.edit(text) - - if isinstance(filename, str): - filename = (filename,) - - ed.edit_files(filenames=filename) - return None - - -def launch(url: str, wait: bool = False, locate: bool = False) -> int: - """This function launches the given URL (or filename) in the default - viewer application for this file type. If this is an executable, it - might launch the executable in a new session. The return value is - the exit code of the launched application. Usually, ``0`` indicates - success. - - Examples:: - - click.launch('https://click.palletsprojects.com/') - click.launch('/my/downloaded/file', locate=True) - - .. versionadded:: 2.0 - - :param url: URL or filename of the thing to launch. - :param wait: Wait for the program to exit before returning. This - only works if the launched program blocks. In particular, - ``xdg-open`` on Linux does not block. - :param locate: if this is set to `True` then instead of launching the - application associated with the URL it will attempt to - launch a file manager with the file located. This - might have weird effects if the URL does not point to - the filesystem. - """ - from ._termui_impl import open_url - - return open_url(url, wait=wait, locate=locate) - - -# If this is provided, getchar() calls into this instead. This is used -# for unittesting purposes. -_getchar: t.Callable[[bool], str] | None = None - - -def getchar(echo: bool = False) -> str: - """Fetches a single character from the terminal and returns it. This - will always return a unicode character and under certain rare - circumstances this might return more than one character. The - situations which more than one character is returned is when for - whatever reason multiple characters end up in the terminal buffer or - standard input was not actually a terminal. - - Note that this will always read from the terminal, even if something - is piped into the standard input. - - Note for Windows: in rare cases when typing non-ASCII characters, this - function might wait for a second character and then return both at once. - This is because certain Unicode characters look like special-key markers. - - .. versionadded:: 2.0 - - :param echo: if set to `True`, the character read will also show up on - the terminal. The default is to not show it. - """ - global _getchar - - if _getchar is None: - from ._termui_impl import getchar as f - - _getchar = f - - return _getchar(echo) - - -def raw_terminal() -> AbstractContextManager[int]: - from ._termui_impl import raw_terminal as f - - return f() - - -def pause(info: str | None = None, err: bool = False) -> None: - """This command stops execution and waits for the user to press any - key to continue. This is similar to the Windows batch "pause" - command. If the program is not run through a terminal, this command - will instead do nothing. - - .. versionadded:: 2.0 - - .. versionadded:: 4.0 - Added the `err` parameter. - - :param info: The message to print before pausing. Defaults to - ``"Press any key to continue..."``. - :param err: if set to message goes to ``stderr`` instead of - ``stdout``, the same as with echo. - """ - if not isatty(sys.stdin) or not isatty(sys.stdout): - return - - if info is None: - info = _("Press any key to continue...") - - try: - if info: - echo(info, nl=False, err=err) - try: - getchar() - except (KeyboardInterrupt, EOFError): - pass - finally: - if info: - echo(err=err) diff --git a/backend/venv/lib/python3.12/site-packages/click/testing.py b/backend/venv/lib/python3.12/site-packages/click/testing.py deleted file mode 100644 index f6f60b8..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/testing.py +++ /dev/null @@ -1,577 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import contextlib -import io -import os -import shlex -import sys -import tempfile -import typing as t -from types import TracebackType - -from . import _compat -from . import formatting -from . import termui -from . import utils -from ._compat import _find_binary_reader - -if t.TYPE_CHECKING: - from _typeshed import ReadableBuffer - - from .core import Command - - -class EchoingStdin: - def __init__(self, input: t.BinaryIO, output: t.BinaryIO) -> None: - self._input = input - self._output = output - self._paused = False - - def __getattr__(self, x: str) -> t.Any: - return getattr(self._input, x) - - def _echo(self, rv: bytes) -> bytes: - if not self._paused: - self._output.write(rv) - - return rv - - def read(self, n: int = -1) -> bytes: - return self._echo(self._input.read(n)) - - def read1(self, n: int = -1) -> bytes: - return self._echo(self._input.read1(n)) # type: ignore - - def readline(self, n: int = -1) -> bytes: - return self._echo(self._input.readline(n)) - - def readlines(self) -> list[bytes]: - return [self._echo(x) for x in self._input.readlines()] - - def __iter__(self) -> cabc.Iterator[bytes]: - return iter(self._echo(x) for x in self._input) - - def __repr__(self) -> str: - return repr(self._input) - - -@contextlib.contextmanager -def _pause_echo(stream: EchoingStdin | None) -> cabc.Iterator[None]: - if stream is None: - yield - else: - stream._paused = True - yield - stream._paused = False - - -class BytesIOCopy(io.BytesIO): - """Patch ``io.BytesIO`` to let the written stream be copied to another. - - .. versionadded:: 8.2 - """ - - def __init__(self, copy_to: io.BytesIO) -> None: - super().__init__() - self.copy_to = copy_to - - def flush(self) -> None: - super().flush() - self.copy_to.flush() - - def write(self, b: ReadableBuffer) -> int: - self.copy_to.write(b) - return super().write(b) - - -class StreamMixer: - """Mixes `` and `` streams. - - The result is available in the ``output`` attribute. - - .. versionadded:: 8.2 - """ - - def __init__(self) -> None: - self.output: io.BytesIO = io.BytesIO() - self.stdout: io.BytesIO = BytesIOCopy(copy_to=self.output) - self.stderr: io.BytesIO = BytesIOCopy(copy_to=self.output) - - def __del__(self) -> None: - """ - Guarantee that embedded file-like objects are closed in a - predictable order, protecting against races between - self.output being closed and other streams being flushed on close - - .. versionadded:: 8.2.2 - """ - self.stderr.close() - self.stdout.close() - self.output.close() - - -class _NamedTextIOWrapper(io.TextIOWrapper): - def __init__( - self, buffer: t.BinaryIO, name: str, mode: str, **kwargs: t.Any - ) -> None: - super().__init__(buffer, **kwargs) - self._name = name - self._mode = mode - - @property - def name(self) -> str: - return self._name - - @property - def mode(self) -> str: - return self._mode - - -def make_input_stream( - input: str | bytes | t.IO[t.Any] | None, charset: str -) -> t.BinaryIO: - # Is already an input stream. - if hasattr(input, "read"): - rv = _find_binary_reader(t.cast("t.IO[t.Any]", input)) - - if rv is not None: - return rv - - raise TypeError("Could not find binary reader for input stream.") - - if input is None: - input = b"" - elif isinstance(input, str): - input = input.encode(charset) - - return io.BytesIO(input) - - -class Result: - """Holds the captured result of an invoked CLI script. - - :param runner: The runner that created the result - :param stdout_bytes: The standard output as bytes. - :param stderr_bytes: The standard error as bytes. - :param output_bytes: A mix of ``stdout_bytes`` and ``stderr_bytes``, as the - user would see it in its terminal. - :param return_value: The value returned from the invoked command. - :param exit_code: The exit code as integer. - :param exception: The exception that happened if one did. - :param exc_info: Exception information (exception type, exception instance, - traceback type). - - .. versionchanged:: 8.2 - ``stderr_bytes`` no longer optional, ``output_bytes`` introduced and - ``mix_stderr`` has been removed. - - .. versionadded:: 8.0 - Added ``return_value``. - """ - - def __init__( - self, - runner: CliRunner, - stdout_bytes: bytes, - stderr_bytes: bytes, - output_bytes: bytes, - return_value: t.Any, - exit_code: int, - exception: BaseException | None, - exc_info: tuple[type[BaseException], BaseException, TracebackType] - | None = None, - ): - self.runner = runner - self.stdout_bytes = stdout_bytes - self.stderr_bytes = stderr_bytes - self.output_bytes = output_bytes - self.return_value = return_value - self.exit_code = exit_code - self.exception = exception - self.exc_info = exc_info - - @property - def output(self) -> str: - """The terminal output as unicode string, as the user would see it. - - .. versionchanged:: 8.2 - No longer a proxy for ``self.stdout``. Now has its own independent stream - that is mixing `` and ``, in the order they were written. - """ - return self.output_bytes.decode(self.runner.charset, "replace").replace( - "\r\n", "\n" - ) - - @property - def stdout(self) -> str: - """The standard output as unicode string.""" - return self.stdout_bytes.decode(self.runner.charset, "replace").replace( - "\r\n", "\n" - ) - - @property - def stderr(self) -> str: - """The standard error as unicode string. - - .. versionchanged:: 8.2 - No longer raise an exception, always returns the `` string. - """ - return self.stderr_bytes.decode(self.runner.charset, "replace").replace( - "\r\n", "\n" - ) - - def __repr__(self) -> str: - exc_str = repr(self.exception) if self.exception else "okay" - return f"<{type(self).__name__} {exc_str}>" - - -class CliRunner: - """The CLI runner provides functionality to invoke a Click command line - script for unittesting purposes in a isolated environment. This only - works in single-threaded systems without any concurrency as it changes the - global interpreter state. - - :param charset: the character set for the input and output data. - :param env: a dictionary with environment variables for overriding. - :param echo_stdin: if this is set to `True`, then reading from `` writes - to ``. This is useful for showing examples in - some circumstances. Note that regular prompts - will automatically echo the input. - :param catch_exceptions: Whether to catch any exceptions other than - ``SystemExit`` when running :meth:`~CliRunner.invoke`. - - .. versionchanged:: 8.2 - Added the ``catch_exceptions`` parameter. - - .. versionchanged:: 8.2 - ``mix_stderr`` parameter has been removed. - """ - - def __init__( - self, - charset: str = "utf-8", - env: cabc.Mapping[str, str | None] | None = None, - echo_stdin: bool = False, - catch_exceptions: bool = True, - ) -> None: - self.charset = charset - self.env: cabc.Mapping[str, str | None] = env or {} - self.echo_stdin = echo_stdin - self.catch_exceptions = catch_exceptions - - def get_default_prog_name(self, cli: Command) -> str: - """Given a command object it will return the default program name - for it. The default is the `name` attribute or ``"root"`` if not - set. - """ - return cli.name or "root" - - def make_env( - self, overrides: cabc.Mapping[str, str | None] | None = None - ) -> cabc.Mapping[str, str | None]: - """Returns the environment overrides for invoking a script.""" - rv = dict(self.env) - if overrides: - rv.update(overrides) - return rv - - @contextlib.contextmanager - def isolation( - self, - input: str | bytes | t.IO[t.Any] | None = None, - env: cabc.Mapping[str, str | None] | None = None, - color: bool = False, - ) -> cabc.Iterator[tuple[io.BytesIO, io.BytesIO, io.BytesIO]]: - """A context manager that sets up the isolation for invoking of a - command line tool. This sets up `` with the given input data - and `os.environ` with the overrides from the given dictionary. - This also rebinds some internals in Click to be mocked (like the - prompt functionality). - - This is automatically done in the :meth:`invoke` method. - - :param input: the input stream to put into `sys.stdin`. - :param env: the environment overrides as dictionary. - :param color: whether the output should contain color codes. The - application can still override this explicitly. - - .. versionadded:: 8.2 - An additional output stream is returned, which is a mix of - `` and `` streams. - - .. versionchanged:: 8.2 - Always returns the `` stream. - - .. versionchanged:: 8.0 - `` is opened with ``errors="backslashreplace"`` - instead of the default ``"strict"``. - - .. versionchanged:: 4.0 - Added the ``color`` parameter. - """ - bytes_input = make_input_stream(input, self.charset) - echo_input = None - - old_stdin = sys.stdin - old_stdout = sys.stdout - old_stderr = sys.stderr - old_forced_width = formatting.FORCED_WIDTH - formatting.FORCED_WIDTH = 80 - - env = self.make_env(env) - - stream_mixer = StreamMixer() - - if self.echo_stdin: - bytes_input = echo_input = t.cast( - t.BinaryIO, EchoingStdin(bytes_input, stream_mixer.stdout) - ) - - sys.stdin = text_input = _NamedTextIOWrapper( - bytes_input, encoding=self.charset, name="", mode="r" - ) - - if self.echo_stdin: - # Force unbuffered reads, otherwise TextIOWrapper reads a - # large chunk which is echoed early. - text_input._CHUNK_SIZE = 1 # type: ignore - - sys.stdout = _NamedTextIOWrapper( - stream_mixer.stdout, encoding=self.charset, name="", mode="w" - ) - - sys.stderr = _NamedTextIOWrapper( - stream_mixer.stderr, - encoding=self.charset, - name="", - mode="w", - errors="backslashreplace", - ) - - @_pause_echo(echo_input) # type: ignore - def visible_input(prompt: str | None = None) -> str: - sys.stdout.write(prompt or "") - try: - val = next(text_input).rstrip("\r\n") - except StopIteration as e: - raise EOFError() from e - sys.stdout.write(f"{val}\n") - sys.stdout.flush() - return val - - @_pause_echo(echo_input) # type: ignore - def hidden_input(prompt: str | None = None) -> str: - sys.stdout.write(f"{prompt or ''}\n") - sys.stdout.flush() - try: - return next(text_input).rstrip("\r\n") - except StopIteration as e: - raise EOFError() from e - - @_pause_echo(echo_input) # type: ignore - def _getchar(echo: bool) -> str: - char = sys.stdin.read(1) - - if echo: - sys.stdout.write(char) - - sys.stdout.flush() - return char - - default_color = color - - def should_strip_ansi( - stream: t.IO[t.Any] | None = None, color: bool | None = None - ) -> bool: - if color is None: - return not default_color - return not color - - old_visible_prompt_func = termui.visible_prompt_func - old_hidden_prompt_func = termui.hidden_prompt_func - old__getchar_func = termui._getchar - old_should_strip_ansi = utils.should_strip_ansi # type: ignore - old__compat_should_strip_ansi = _compat.should_strip_ansi - termui.visible_prompt_func = visible_input - termui.hidden_prompt_func = hidden_input - termui._getchar = _getchar - utils.should_strip_ansi = should_strip_ansi # type: ignore - _compat.should_strip_ansi = should_strip_ansi - - old_env = {} - try: - for key, value in env.items(): - old_env[key] = os.environ.get(key) - if value is None: - try: - del os.environ[key] - except Exception: - pass - else: - os.environ[key] = value - yield (stream_mixer.stdout, stream_mixer.stderr, stream_mixer.output) - finally: - for key, value in old_env.items(): - if value is None: - try: - del os.environ[key] - except Exception: - pass - else: - os.environ[key] = value - sys.stdout = old_stdout - sys.stderr = old_stderr - sys.stdin = old_stdin - termui.visible_prompt_func = old_visible_prompt_func - termui.hidden_prompt_func = old_hidden_prompt_func - termui._getchar = old__getchar_func - utils.should_strip_ansi = old_should_strip_ansi # type: ignore - _compat.should_strip_ansi = old__compat_should_strip_ansi - formatting.FORCED_WIDTH = old_forced_width - - def invoke( - self, - cli: Command, - args: str | cabc.Sequence[str] | None = None, - input: str | bytes | t.IO[t.Any] | None = None, - env: cabc.Mapping[str, str | None] | None = None, - catch_exceptions: bool | None = None, - color: bool = False, - **extra: t.Any, - ) -> Result: - """Invokes a command in an isolated environment. The arguments are - forwarded directly to the command line script, the `extra` keyword - arguments are passed to the :meth:`~clickpkg.Command.main` function of - the command. - - This returns a :class:`Result` object. - - :param cli: the command to invoke - :param args: the arguments to invoke. It may be given as an iterable - or a string. When given as string it will be interpreted - as a Unix shell command. More details at - :func:`shlex.split`. - :param input: the input data for `sys.stdin`. - :param env: the environment overrides. - :param catch_exceptions: Whether to catch any other exceptions than - ``SystemExit``. If :data:`None`, the value - from :class:`CliRunner` is used. - :param extra: the keyword arguments to pass to :meth:`main`. - :param color: whether the output should contain color codes. The - application can still override this explicitly. - - .. versionadded:: 8.2 - The result object has the ``output_bytes`` attribute with - the mix of ``stdout_bytes`` and ``stderr_bytes``, as the user would - see it in its terminal. - - .. versionchanged:: 8.2 - The result object always returns the ``stderr_bytes`` stream. - - .. versionchanged:: 8.0 - The result object has the ``return_value`` attribute with - the value returned from the invoked command. - - .. versionchanged:: 4.0 - Added the ``color`` parameter. - - .. versionchanged:: 3.0 - Added the ``catch_exceptions`` parameter. - - .. versionchanged:: 3.0 - The result object has the ``exc_info`` attribute with the - traceback if available. - """ - exc_info = None - if catch_exceptions is None: - catch_exceptions = self.catch_exceptions - - with self.isolation(input=input, env=env, color=color) as outstreams: - return_value = None - exception: BaseException | None = None - exit_code = 0 - - if isinstance(args, str): - args = shlex.split(args) - - try: - prog_name = extra.pop("prog_name") - except KeyError: - prog_name = self.get_default_prog_name(cli) - - try: - return_value = cli.main(args=args or (), prog_name=prog_name, **extra) - except SystemExit as e: - exc_info = sys.exc_info() - e_code = t.cast("int | t.Any | None", e.code) - - if e_code is None: - e_code = 0 - - if e_code != 0: - exception = e - - if not isinstance(e_code, int): - sys.stdout.write(str(e_code)) - sys.stdout.write("\n") - e_code = 1 - - exit_code = e_code - - except Exception as e: - if not catch_exceptions: - raise - exception = e - exit_code = 1 - exc_info = sys.exc_info() - finally: - sys.stdout.flush() - sys.stderr.flush() - stdout = outstreams[0].getvalue() - stderr = outstreams[1].getvalue() - output = outstreams[2].getvalue() - - return Result( - runner=self, - stdout_bytes=stdout, - stderr_bytes=stderr, - output_bytes=output, - return_value=return_value, - exit_code=exit_code, - exception=exception, - exc_info=exc_info, # type: ignore - ) - - @contextlib.contextmanager - def isolated_filesystem( - self, temp_dir: str | os.PathLike[str] | None = None - ) -> cabc.Iterator[str]: - """A context manager that creates a temporary directory and - changes the current working directory to it. This isolates tests - that affect the contents of the CWD to prevent them from - interfering with each other. - - :param temp_dir: Create the temporary directory under this - directory. If given, the created directory is not removed - when exiting. - - .. versionchanged:: 8.0 - Added the ``temp_dir`` parameter. - """ - cwd = os.getcwd() - dt = tempfile.mkdtemp(dir=temp_dir) - os.chdir(dt) - - try: - yield dt - finally: - os.chdir(cwd) - - if temp_dir is None: - import shutil - - try: - shutil.rmtree(dt) - except OSError: - pass diff --git a/backend/venv/lib/python3.12/site-packages/click/types.py b/backend/venv/lib/python3.12/site-packages/click/types.py deleted file mode 100644 index e71c1c2..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/types.py +++ /dev/null @@ -1,1209 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import enum -import os -import stat -import sys -import typing as t -from datetime import datetime -from gettext import gettext as _ -from gettext import ngettext - -from ._compat import _get_argv_encoding -from ._compat import open_stream -from .exceptions import BadParameter -from .utils import format_filename -from .utils import LazyFile -from .utils import safecall - -if t.TYPE_CHECKING: - import typing_extensions as te - - from .core import Context - from .core import Parameter - from .shell_completion import CompletionItem - -ParamTypeValue = t.TypeVar("ParamTypeValue") - - -class ParamType: - """Represents the type of a parameter. Validates and converts values - from the command line or Python into the correct type. - - To implement a custom type, subclass and implement at least the - following: - - - The :attr:`name` class attribute must be set. - - Calling an instance of the type with ``None`` must return - ``None``. This is already implemented by default. - - :meth:`convert` must convert string values to the correct type. - - :meth:`convert` must accept values that are already the correct - type. - - It must be able to convert a value if the ``ctx`` and ``param`` - arguments are ``None``. This can occur when converting prompt - input. - """ - - is_composite: t.ClassVar[bool] = False - arity: t.ClassVar[int] = 1 - - #: the descriptive name of this type - name: str - - #: if a list of this type is expected and the value is pulled from a - #: string environment variable, this is what splits it up. `None` - #: means any whitespace. For all parameters the general rule is that - #: whitespace splits them up. The exception are paths and files which - #: are split by ``os.path.pathsep`` by default (":" on Unix and ";" on - #: Windows). - envvar_list_splitter: t.ClassVar[str | None] = None - - def to_info_dict(self) -> dict[str, t.Any]: - """Gather information that could be useful for a tool generating - user-facing documentation. - - Use :meth:`click.Context.to_info_dict` to traverse the entire - CLI structure. - - .. versionadded:: 8.0 - """ - # The class name without the "ParamType" suffix. - param_type = type(self).__name__.partition("ParamType")[0] - param_type = param_type.partition("ParameterType")[0] - - # Custom subclasses might not remember to set a name. - if hasattr(self, "name"): - name = self.name - else: - name = param_type - - return {"param_type": param_type, "name": name} - - def __call__( - self, - value: t.Any, - param: Parameter | None = None, - ctx: Context | None = None, - ) -> t.Any: - if value is not None: - return self.convert(value, param, ctx) - - def get_metavar(self, param: Parameter, ctx: Context) -> str | None: - """Returns the metavar default for this param if it provides one.""" - - def get_missing_message(self, param: Parameter, ctx: Context | None) -> str | None: - """Optionally might return extra information about a missing - parameter. - - .. versionadded:: 2.0 - """ - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - """Convert the value to the correct type. This is not called if - the value is ``None`` (the missing value). - - This must accept string values from the command line, as well as - values that are already the correct type. It may also convert - other compatible types. - - The ``param`` and ``ctx`` arguments may be ``None`` in certain - situations, such as when converting prompt input. - - If the value cannot be converted, call :meth:`fail` with a - descriptive message. - - :param value: The value to convert. - :param param: The parameter that is using this type to convert - its value. May be ``None``. - :param ctx: The current context that arrived at this value. May - be ``None``. - """ - return value - - def split_envvar_value(self, rv: str) -> cabc.Sequence[str]: - """Given a value from an environment variable this splits it up - into small chunks depending on the defined envvar list splitter. - - If the splitter is set to `None`, which means that whitespace splits, - then leading and trailing whitespace is ignored. Otherwise, leading - and trailing splitters usually lead to empty items being included. - """ - return (rv or "").split(self.envvar_list_splitter) - - def fail( - self, - message: str, - param: Parameter | None = None, - ctx: Context | None = None, - ) -> t.NoReturn: - """Helper method to fail with an invalid value message.""" - raise BadParameter(message, ctx=ctx, param=param) - - def shell_complete( - self, ctx: Context, param: Parameter, incomplete: str - ) -> list[CompletionItem]: - """Return a list of - :class:`~click.shell_completion.CompletionItem` objects for the - incomplete value. Most types do not provide completions, but - some do, and this allows custom types to provide custom - completions as well. - - :param ctx: Invocation context for this command. - :param param: The parameter that is requesting completion. - :param incomplete: Value being completed. May be empty. - - .. versionadded:: 8.0 - """ - return [] - - -class CompositeParamType(ParamType): - is_composite = True - - @property - def arity(self) -> int: # type: ignore - raise NotImplementedError() - - -class FuncParamType(ParamType): - def __init__(self, func: t.Callable[[t.Any], t.Any]) -> None: - self.name: str = func.__name__ - self.func = func - - def to_info_dict(self) -> dict[str, t.Any]: - info_dict = super().to_info_dict() - info_dict["func"] = self.func - return info_dict - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - try: - return self.func(value) - except ValueError: - try: - value = str(value) - except UnicodeError: - value = value.decode("utf-8", "replace") - - self.fail(value, param, ctx) - - -class UnprocessedParamType(ParamType): - name = "text" - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - return value - - def __repr__(self) -> str: - return "UNPROCESSED" - - -class StringParamType(ParamType): - name = "text" - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - if isinstance(value, bytes): - enc = _get_argv_encoding() - try: - value = value.decode(enc) - except UnicodeError: - fs_enc = sys.getfilesystemencoding() - if fs_enc != enc: - try: - value = value.decode(fs_enc) - except UnicodeError: - value = value.decode("utf-8", "replace") - else: - value = value.decode("utf-8", "replace") - return value - return str(value) - - def __repr__(self) -> str: - return "STRING" - - -class Choice(ParamType, t.Generic[ParamTypeValue]): - """The choice type allows a value to be checked against a fixed set - of supported values. - - You may pass any iterable value which will be converted to a tuple - and thus will only be iterated once. - - The resulting value will always be one of the originally passed choices. - See :meth:`normalize_choice` for more info on the mapping of strings - to choices. See :ref:`choice-opts` for an example. - - :param case_sensitive: Set to false to make choices case - insensitive. Defaults to true. - - .. versionchanged:: 8.2.0 - Non-``str`` ``choices`` are now supported. It can additionally be any - iterable. Before you were not recommended to pass anything but a list or - tuple. - - .. versionadded:: 8.2.0 - Choice normalization can be overridden via :meth:`normalize_choice`. - """ - - name = "choice" - - def __init__( - self, choices: cabc.Iterable[ParamTypeValue], case_sensitive: bool = True - ) -> None: - self.choices: cabc.Sequence[ParamTypeValue] = tuple(choices) - self.case_sensitive = case_sensitive - - def to_info_dict(self) -> dict[str, t.Any]: - info_dict = super().to_info_dict() - info_dict["choices"] = self.choices - info_dict["case_sensitive"] = self.case_sensitive - return info_dict - - def _normalized_mapping( - self, ctx: Context | None = None - ) -> cabc.Mapping[ParamTypeValue, str]: - """ - Returns mapping where keys are the original choices and the values are - the normalized values that are accepted via the command line. - - This is a simple wrapper around :meth:`normalize_choice`, use that - instead which is supported. - """ - return { - choice: self.normalize_choice( - choice=choice, - ctx=ctx, - ) - for choice in self.choices - } - - def normalize_choice(self, choice: ParamTypeValue, ctx: Context | None) -> str: - """ - Normalize a choice value, used to map a passed string to a choice. - Each choice must have a unique normalized value. - - By default uses :meth:`Context.token_normalize_func` and if not case - sensitive, convert it to a casefolded value. - - .. versionadded:: 8.2.0 - """ - normed_value = choice.name if isinstance(choice, enum.Enum) else str(choice) - - if ctx is not None and ctx.token_normalize_func is not None: - normed_value = ctx.token_normalize_func(normed_value) - - if not self.case_sensitive: - normed_value = normed_value.casefold() - - return normed_value - - def get_metavar(self, param: Parameter, ctx: Context) -> str | None: - if param.param_type_name == "option" and not param.show_choices: # type: ignore - choice_metavars = [ - convert_type(type(choice)).name.upper() for choice in self.choices - ] - choices_str = "|".join([*dict.fromkeys(choice_metavars)]) - else: - choices_str = "|".join( - [str(i) for i in self._normalized_mapping(ctx=ctx).values()] - ) - - # Use curly braces to indicate a required argument. - if param.required and param.param_type_name == "argument": - return f"{{{choices_str}}}" - - # Use square braces to indicate an option or optional argument. - return f"[{choices_str}]" - - def get_missing_message(self, param: Parameter, ctx: Context | None) -> str: - """ - Message shown when no choice is passed. - - .. versionchanged:: 8.2.0 Added ``ctx`` argument. - """ - return _("Choose from:\n\t{choices}").format( - choices=",\n\t".join(self._normalized_mapping(ctx=ctx).values()) - ) - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> ParamTypeValue: - """ - For a given value from the parser, normalize it and find its - matching normalized value in the list of choices. Then return the - matched "original" choice. - """ - normed_value = self.normalize_choice(choice=value, ctx=ctx) - normalized_mapping = self._normalized_mapping(ctx=ctx) - - try: - return next( - original - for original, normalized in normalized_mapping.items() - if normalized == normed_value - ) - except StopIteration: - self.fail( - self.get_invalid_choice_message(value=value, ctx=ctx), - param=param, - ctx=ctx, - ) - - def get_invalid_choice_message(self, value: t.Any, ctx: Context | None) -> str: - """Get the error message when the given choice is invalid. - - :param value: The invalid value. - - .. versionadded:: 8.2 - """ - choices_str = ", ".join(map(repr, self._normalized_mapping(ctx=ctx).values())) - return ngettext( - "{value!r} is not {choice}.", - "{value!r} is not one of {choices}.", - len(self.choices), - ).format(value=value, choice=choices_str, choices=choices_str) - - def __repr__(self) -> str: - return f"Choice({list(self.choices)})" - - def shell_complete( - self, ctx: Context, param: Parameter, incomplete: str - ) -> list[CompletionItem]: - """Complete choices that start with the incomplete value. - - :param ctx: Invocation context for this command. - :param param: The parameter that is requesting completion. - :param incomplete: Value being completed. May be empty. - - .. versionadded:: 8.0 - """ - from click.shell_completion import CompletionItem - - str_choices = map(str, self.choices) - - if self.case_sensitive: - matched = (c for c in str_choices if c.startswith(incomplete)) - else: - incomplete = incomplete.lower() - matched = (c for c in str_choices if c.lower().startswith(incomplete)) - - return [CompletionItem(c) for c in matched] - - -class DateTime(ParamType): - """The DateTime type converts date strings into `datetime` objects. - - The format strings which are checked are configurable, but default to some - common (non-timezone aware) ISO 8601 formats. - - When specifying *DateTime* formats, you should only pass a list or a tuple. - Other iterables, like generators, may lead to surprising results. - - The format strings are processed using ``datetime.strptime``, and this - consequently defines the format strings which are allowed. - - Parsing is tried using each format, in order, and the first format which - parses successfully is used. - - :param formats: A list or tuple of date format strings, in the order in - which they should be tried. Defaults to - ``'%Y-%m-%d'``, ``'%Y-%m-%dT%H:%M:%S'``, - ``'%Y-%m-%d %H:%M:%S'``. - """ - - name = "datetime" - - def __init__(self, formats: cabc.Sequence[str] | None = None): - self.formats: cabc.Sequence[str] = formats or [ - "%Y-%m-%d", - "%Y-%m-%dT%H:%M:%S", - "%Y-%m-%d %H:%M:%S", - ] - - def to_info_dict(self) -> dict[str, t.Any]: - info_dict = super().to_info_dict() - info_dict["formats"] = self.formats - return info_dict - - def get_metavar(self, param: Parameter, ctx: Context) -> str | None: - return f"[{'|'.join(self.formats)}]" - - def _try_to_convert_date(self, value: t.Any, format: str) -> datetime | None: - try: - return datetime.strptime(value, format) - except ValueError: - return None - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - if isinstance(value, datetime): - return value - - for format in self.formats: - converted = self._try_to_convert_date(value, format) - - if converted is not None: - return converted - - formats_str = ", ".join(map(repr, self.formats)) - self.fail( - ngettext( - "{value!r} does not match the format {format}.", - "{value!r} does not match the formats {formats}.", - len(self.formats), - ).format(value=value, format=formats_str, formats=formats_str), - param, - ctx, - ) - - def __repr__(self) -> str: - return "DateTime" - - -class _NumberParamTypeBase(ParamType): - _number_class: t.ClassVar[type[t.Any]] - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - try: - return self._number_class(value) - except ValueError: - self.fail( - _("{value!r} is not a valid {number_type}.").format( - value=value, number_type=self.name - ), - param, - ctx, - ) - - -class _NumberRangeBase(_NumberParamTypeBase): - def __init__( - self, - min: float | None = None, - max: float | None = None, - min_open: bool = False, - max_open: bool = False, - clamp: bool = False, - ) -> None: - self.min = min - self.max = max - self.min_open = min_open - self.max_open = max_open - self.clamp = clamp - - def to_info_dict(self) -> dict[str, t.Any]: - info_dict = super().to_info_dict() - info_dict.update( - min=self.min, - max=self.max, - min_open=self.min_open, - max_open=self.max_open, - clamp=self.clamp, - ) - return info_dict - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - import operator - - rv = super().convert(value, param, ctx) - lt_min: bool = self.min is not None and ( - operator.le if self.min_open else operator.lt - )(rv, self.min) - gt_max: bool = self.max is not None and ( - operator.ge if self.max_open else operator.gt - )(rv, self.max) - - if self.clamp: - if lt_min: - return self._clamp(self.min, 1, self.min_open) # type: ignore - - if gt_max: - return self._clamp(self.max, -1, self.max_open) # type: ignore - - if lt_min or gt_max: - self.fail( - _("{value} is not in the range {range}.").format( - value=rv, range=self._describe_range() - ), - param, - ctx, - ) - - return rv - - def _clamp(self, bound: float, dir: t.Literal[1, -1], open: bool) -> float: - """Find the valid value to clamp to bound in the given - direction. - - :param bound: The boundary value. - :param dir: 1 or -1 indicating the direction to move. - :param open: If true, the range does not include the bound. - """ - raise NotImplementedError - - def _describe_range(self) -> str: - """Describe the range for use in help text.""" - if self.min is None: - op = "<" if self.max_open else "<=" - return f"x{op}{self.max}" - - if self.max is None: - op = ">" if self.min_open else ">=" - return f"x{op}{self.min}" - - lop = "<" if self.min_open else "<=" - rop = "<" if self.max_open else "<=" - return f"{self.min}{lop}x{rop}{self.max}" - - def __repr__(self) -> str: - clamp = " clamped" if self.clamp else "" - return f"<{type(self).__name__} {self._describe_range()}{clamp}>" - - -class IntParamType(_NumberParamTypeBase): - name = "integer" - _number_class = int - - def __repr__(self) -> str: - return "INT" - - -class IntRange(_NumberRangeBase, IntParamType): - """Restrict an :data:`click.INT` value to a range of accepted - values. See :ref:`ranges`. - - If ``min`` or ``max`` are not passed, any value is accepted in that - direction. If ``min_open`` or ``max_open`` are enabled, the - corresponding boundary is not included in the range. - - If ``clamp`` is enabled, a value outside the range is clamped to the - boundary instead of failing. - - .. versionchanged:: 8.0 - Added the ``min_open`` and ``max_open`` parameters. - """ - - name = "integer range" - - def _clamp( # type: ignore - self, bound: int, dir: t.Literal[1, -1], open: bool - ) -> int: - if not open: - return bound - - return bound + dir - - -class FloatParamType(_NumberParamTypeBase): - name = "float" - _number_class = float - - def __repr__(self) -> str: - return "FLOAT" - - -class FloatRange(_NumberRangeBase, FloatParamType): - """Restrict a :data:`click.FLOAT` value to a range of accepted - values. See :ref:`ranges`. - - If ``min`` or ``max`` are not passed, any value is accepted in that - direction. If ``min_open`` or ``max_open`` are enabled, the - corresponding boundary is not included in the range. - - If ``clamp`` is enabled, a value outside the range is clamped to the - boundary instead of failing. This is not supported if either - boundary is marked ``open``. - - .. versionchanged:: 8.0 - Added the ``min_open`` and ``max_open`` parameters. - """ - - name = "float range" - - def __init__( - self, - min: float | None = None, - max: float | None = None, - min_open: bool = False, - max_open: bool = False, - clamp: bool = False, - ) -> None: - super().__init__( - min=min, max=max, min_open=min_open, max_open=max_open, clamp=clamp - ) - - if (min_open or max_open) and clamp: - raise TypeError("Clamping is not supported for open bounds.") - - def _clamp(self, bound: float, dir: t.Literal[1, -1], open: bool) -> float: - if not open: - return bound - - # Could use math.nextafter here, but clamping an - # open float range doesn't seem to be particularly useful. It's - # left up to the user to write a callback to do it if needed. - raise RuntimeError("Clamping is not supported for open bounds.") - - -class BoolParamType(ParamType): - name = "boolean" - - bool_states: dict[str, bool] = { - "1": True, - "0": False, - "yes": True, - "no": False, - "true": True, - "false": False, - "on": True, - "off": False, - "t": True, - "f": False, - "y": True, - "n": False, - # Absence of value is considered False. - "": False, - } - """A mapping of string values to boolean states. - - Mapping is inspired by :py:attr:`configparser.ConfigParser.BOOLEAN_STATES` - and extends it. - - .. caution:: - String values are lower-cased, as the ``str_to_bool`` comparison function - below is case-insensitive. - - .. warning:: - The mapping is not exhaustive, and does not cover all possible boolean strings - representations. It will remains as it is to avoid endless bikeshedding. - - Future work my be considered to make this mapping user-configurable from public - API. - """ - - @staticmethod - def str_to_bool(value: str | bool) -> bool | None: - """Convert a string to a boolean value. - - If the value is already a boolean, it is returned as-is. If the value is a - string, it is stripped of whitespaces and lower-cased, then checked against - the known boolean states pre-defined in the `BoolParamType.bool_states` mapping - above. - - Returns `None` if the value does not match any known boolean state. - """ - if isinstance(value, bool): - return value - return BoolParamType.bool_states.get(value.strip().lower()) - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> bool: - normalized = self.str_to_bool(value) - if normalized is None: - self.fail( - _( - "{value!r} is not a valid boolean. Recognized values: {states}" - ).format(value=value, states=", ".join(sorted(self.bool_states))), - param, - ctx, - ) - return normalized - - def __repr__(self) -> str: - return "BOOL" - - -class UUIDParameterType(ParamType): - name = "uuid" - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - import uuid - - if isinstance(value, uuid.UUID): - return value - - value = value.strip() - - try: - return uuid.UUID(value) - except ValueError: - self.fail( - _("{value!r} is not a valid UUID.").format(value=value), param, ctx - ) - - def __repr__(self) -> str: - return "UUID" - - -class File(ParamType): - """Declares a parameter to be a file for reading or writing. The file - is automatically closed once the context tears down (after the command - finished working). - - Files can be opened for reading or writing. The special value ``-`` - indicates stdin or stdout depending on the mode. - - By default, the file is opened for reading text data, but it can also be - opened in binary mode or for writing. The encoding parameter can be used - to force a specific encoding. - - The `lazy` flag controls if the file should be opened immediately or upon - first IO. The default is to be non-lazy for standard input and output - streams as well as files opened for reading, `lazy` otherwise. When opening a - file lazily for reading, it is still opened temporarily for validation, but - will not be held open until first IO. lazy is mainly useful when opening - for writing to avoid creating the file until it is needed. - - Files can also be opened atomically in which case all writes go into a - separate file in the same folder and upon completion the file will - be moved over to the original location. This is useful if a file - regularly read by other users is modified. - - See :ref:`file-args` for more information. - - .. versionchanged:: 2.0 - Added the ``atomic`` parameter. - """ - - name = "filename" - envvar_list_splitter: t.ClassVar[str] = os.path.pathsep - - def __init__( - self, - mode: str = "r", - encoding: str | None = None, - errors: str | None = "strict", - lazy: bool | None = None, - atomic: bool = False, - ) -> None: - self.mode = mode - self.encoding = encoding - self.errors = errors - self.lazy = lazy - self.atomic = atomic - - def to_info_dict(self) -> dict[str, t.Any]: - info_dict = super().to_info_dict() - info_dict.update(mode=self.mode, encoding=self.encoding) - return info_dict - - def resolve_lazy_flag(self, value: str | os.PathLike[str]) -> bool: - if self.lazy is not None: - return self.lazy - if os.fspath(value) == "-": - return False - elif "w" in self.mode: - return True - return False - - def convert( - self, - value: str | os.PathLike[str] | t.IO[t.Any], - param: Parameter | None, - ctx: Context | None, - ) -> t.IO[t.Any]: - if _is_file_like(value): - return value - - value = t.cast("str | os.PathLike[str]", value) - - try: - lazy = self.resolve_lazy_flag(value) - - if lazy: - lf = LazyFile( - value, self.mode, self.encoding, self.errors, atomic=self.atomic - ) - - if ctx is not None: - ctx.call_on_close(lf.close_intelligently) - - return t.cast("t.IO[t.Any]", lf) - - f, should_close = open_stream( - value, self.mode, self.encoding, self.errors, atomic=self.atomic - ) - - # If a context is provided, we automatically close the file - # at the end of the context execution (or flush out). If a - # context does not exist, it's the caller's responsibility to - # properly close the file. This for instance happens when the - # type is used with prompts. - if ctx is not None: - if should_close: - ctx.call_on_close(safecall(f.close)) - else: - ctx.call_on_close(safecall(f.flush)) - - return f - except OSError as e: - self.fail(f"'{format_filename(value)}': {e.strerror}", param, ctx) - - def shell_complete( - self, ctx: Context, param: Parameter, incomplete: str - ) -> list[CompletionItem]: - """Return a special completion marker that tells the completion - system to use the shell to provide file path completions. - - :param ctx: Invocation context for this command. - :param param: The parameter that is requesting completion. - :param incomplete: Value being completed. May be empty. - - .. versionadded:: 8.0 - """ - from click.shell_completion import CompletionItem - - return [CompletionItem(incomplete, type="file")] - - -def _is_file_like(value: t.Any) -> te.TypeGuard[t.IO[t.Any]]: - return hasattr(value, "read") or hasattr(value, "write") - - -class Path(ParamType): - """The ``Path`` type is similar to the :class:`File` type, but - returns the filename instead of an open file. Various checks can be - enabled to validate the type of file and permissions. - - :param exists: The file or directory needs to exist for the value to - be valid. If this is not set to ``True``, and the file does not - exist, then all further checks are silently skipped. - :param file_okay: Allow a file as a value. - :param dir_okay: Allow a directory as a value. - :param readable: if true, a readable check is performed. - :param writable: if true, a writable check is performed. - :param executable: if true, an executable check is performed. - :param resolve_path: Make the value absolute and resolve any - symlinks. A ``~`` is not expanded, as this is supposed to be - done by the shell only. - :param allow_dash: Allow a single dash as a value, which indicates - a standard stream (but does not open it). Use - :func:`~click.open_file` to handle opening this value. - :param path_type: Convert the incoming path value to this type. If - ``None``, keep Python's default, which is ``str``. Useful to - convert to :class:`pathlib.Path`. - - .. versionchanged:: 8.1 - Added the ``executable`` parameter. - - .. versionchanged:: 8.0 - Allow passing ``path_type=pathlib.Path``. - - .. versionchanged:: 6.0 - Added the ``allow_dash`` parameter. - """ - - envvar_list_splitter: t.ClassVar[str] = os.path.pathsep - - def __init__( - self, - exists: bool = False, - file_okay: bool = True, - dir_okay: bool = True, - writable: bool = False, - readable: bool = True, - resolve_path: bool = False, - allow_dash: bool = False, - path_type: type[t.Any] | None = None, - executable: bool = False, - ): - self.exists = exists - self.file_okay = file_okay - self.dir_okay = dir_okay - self.readable = readable - self.writable = writable - self.executable = executable - self.resolve_path = resolve_path - self.allow_dash = allow_dash - self.type = path_type - - if self.file_okay and not self.dir_okay: - self.name: str = _("file") - elif self.dir_okay and not self.file_okay: - self.name = _("directory") - else: - self.name = _("path") - - def to_info_dict(self) -> dict[str, t.Any]: - info_dict = super().to_info_dict() - info_dict.update( - exists=self.exists, - file_okay=self.file_okay, - dir_okay=self.dir_okay, - writable=self.writable, - readable=self.readable, - allow_dash=self.allow_dash, - ) - return info_dict - - def coerce_path_result( - self, value: str | os.PathLike[str] - ) -> str | bytes | os.PathLike[str]: - if self.type is not None and not isinstance(value, self.type): - if self.type is str: - return os.fsdecode(value) - elif self.type is bytes: - return os.fsencode(value) - else: - return t.cast("os.PathLike[str]", self.type(value)) - - return value - - def convert( - self, - value: str | os.PathLike[str], - param: Parameter | None, - ctx: Context | None, - ) -> str | bytes | os.PathLike[str]: - rv = value - - is_dash = self.file_okay and self.allow_dash and rv in (b"-", "-") - - if not is_dash: - if self.resolve_path: - rv = os.path.realpath(rv) - - try: - st = os.stat(rv) - except OSError: - if not self.exists: - return self.coerce_path_result(rv) - self.fail( - _("{name} {filename!r} does not exist.").format( - name=self.name.title(), filename=format_filename(value) - ), - param, - ctx, - ) - - if not self.file_okay and stat.S_ISREG(st.st_mode): - self.fail( - _("{name} {filename!r} is a file.").format( - name=self.name.title(), filename=format_filename(value) - ), - param, - ctx, - ) - if not self.dir_okay and stat.S_ISDIR(st.st_mode): - self.fail( - _("{name} {filename!r} is a directory.").format( - name=self.name.title(), filename=format_filename(value) - ), - param, - ctx, - ) - - if self.readable and not os.access(rv, os.R_OK): - self.fail( - _("{name} {filename!r} is not readable.").format( - name=self.name.title(), filename=format_filename(value) - ), - param, - ctx, - ) - - if self.writable and not os.access(rv, os.W_OK): - self.fail( - _("{name} {filename!r} is not writable.").format( - name=self.name.title(), filename=format_filename(value) - ), - param, - ctx, - ) - - if self.executable and not os.access(value, os.X_OK): - self.fail( - _("{name} {filename!r} is not executable.").format( - name=self.name.title(), filename=format_filename(value) - ), - param, - ctx, - ) - - return self.coerce_path_result(rv) - - def shell_complete( - self, ctx: Context, param: Parameter, incomplete: str - ) -> list[CompletionItem]: - """Return a special completion marker that tells the completion - system to use the shell to provide path completions for only - directories or any paths. - - :param ctx: Invocation context for this command. - :param param: The parameter that is requesting completion. - :param incomplete: Value being completed. May be empty. - - .. versionadded:: 8.0 - """ - from click.shell_completion import CompletionItem - - type = "dir" if self.dir_okay and not self.file_okay else "file" - return [CompletionItem(incomplete, type=type)] - - -class Tuple(CompositeParamType): - """The default behavior of Click is to apply a type on a value directly. - This works well in most cases, except for when `nargs` is set to a fixed - count and different types should be used for different items. In this - case the :class:`Tuple` type can be used. This type can only be used - if `nargs` is set to a fixed number. - - For more information see :ref:`tuple-type`. - - This can be selected by using a Python tuple literal as a type. - - :param types: a list of types that should be used for the tuple items. - """ - - def __init__(self, types: cabc.Sequence[type[t.Any] | ParamType]) -> None: - self.types: cabc.Sequence[ParamType] = [convert_type(ty) for ty in types] - - def to_info_dict(self) -> dict[str, t.Any]: - info_dict = super().to_info_dict() - info_dict["types"] = [t.to_info_dict() for t in self.types] - return info_dict - - @property - def name(self) -> str: # type: ignore - return f"<{' '.join(ty.name for ty in self.types)}>" - - @property - def arity(self) -> int: # type: ignore - return len(self.types) - - def convert( - self, value: t.Any, param: Parameter | None, ctx: Context | None - ) -> t.Any: - len_type = len(self.types) - len_value = len(value) - - if len_value != len_type: - self.fail( - ngettext( - "{len_type} values are required, but {len_value} was given.", - "{len_type} values are required, but {len_value} were given.", - len_value, - ).format(len_type=len_type, len_value=len_value), - param=param, - ctx=ctx, - ) - - return tuple( - ty(x, param, ctx) for ty, x in zip(self.types, value, strict=False) - ) - - -def convert_type(ty: t.Any | None, default: t.Any | None = None) -> ParamType: - """Find the most appropriate :class:`ParamType` for the given Python - type. If the type isn't provided, it can be inferred from a default - value. - """ - guessed_type = False - - if ty is None and default is not None: - if isinstance(default, (tuple, list)): - # If the default is empty, ty will remain None and will - # return STRING. - if default: - item = default[0] - - # A tuple of tuples needs to detect the inner types. - # Can't call convert recursively because that would - # incorrectly unwind the tuple to a single type. - if isinstance(item, (tuple, list)): - ty = tuple(map(type, item)) - else: - ty = type(item) - else: - ty = type(default) - - guessed_type = True - - if isinstance(ty, tuple): - return Tuple(ty) - - if isinstance(ty, ParamType): - return ty - - if ty is str or ty is None: - return STRING - - if ty is int: - return INT - - if ty is float: - return FLOAT - - if ty is bool: - return BOOL - - if guessed_type: - return STRING - - if __debug__: - try: - if issubclass(ty, ParamType): - raise AssertionError( - f"Attempted to use an uninstantiated parameter type ({ty})." - ) - except TypeError: - # ty is an instance (correct), so issubclass fails. - pass - - return FuncParamType(ty) - - -#: A dummy parameter type that just does nothing. From a user's -#: perspective this appears to just be the same as `STRING` but -#: internally no string conversion takes place if the input was bytes. -#: This is usually useful when working with file paths as they can -#: appear in bytes and unicode. -#: -#: For path related uses the :class:`Path` type is a better choice but -#: there are situations where an unprocessed type is useful which is why -#: it is is provided. -#: -#: .. versionadded:: 4.0 -UNPROCESSED = UnprocessedParamType() - -#: A unicode string parameter type which is the implicit default. This -#: can also be selected by using ``str`` as type. -STRING = StringParamType() - -#: An integer parameter. This can also be selected by using ``int`` as -#: type. -INT = IntParamType() - -#: A floating point value parameter. This can also be selected by using -#: ``float`` as type. -FLOAT = FloatParamType() - -#: A boolean parameter. This is the default for boolean flags. This can -#: also be selected by using ``bool`` as a type. -BOOL = BoolParamType() - -#: A UUID parameter. -UUID = UUIDParameterType() - - -class OptionHelpExtra(t.TypedDict, total=False): - envvars: tuple[str, ...] - default: str - range: str - required: str diff --git a/backend/venv/lib/python3.12/site-packages/click/utils.py b/backend/venv/lib/python3.12/site-packages/click/utils.py deleted file mode 100644 index beae26f..0000000 --- a/backend/venv/lib/python3.12/site-packages/click/utils.py +++ /dev/null @@ -1,627 +0,0 @@ -from __future__ import annotations - -import collections.abc as cabc -import os -import re -import sys -import typing as t -from functools import update_wrapper -from types import ModuleType -from types import TracebackType - -from ._compat import _default_text_stderr -from ._compat import _default_text_stdout -from ._compat import _find_binary_writer -from ._compat import auto_wrap_for_ansi -from ._compat import binary_streams -from ._compat import open_stream -from ._compat import should_strip_ansi -from ._compat import strip_ansi -from ._compat import text_streams -from ._compat import WIN -from .globals import resolve_color_default - -if t.TYPE_CHECKING: - import typing_extensions as te - - P = te.ParamSpec("P") - -R = t.TypeVar("R") - - -def _posixify(name: str) -> str: - return "-".join(name.split()).lower() - - -def safecall(func: t.Callable[P, R]) -> t.Callable[P, R | None]: - """Wraps a function so that it swallows exceptions.""" - - def wrapper(*args: P.args, **kwargs: P.kwargs) -> R | None: - try: - return func(*args, **kwargs) - except Exception: - pass - return None - - return update_wrapper(wrapper, func) - - -def make_str(value: t.Any) -> str: - """Converts a value into a valid string.""" - if isinstance(value, bytes): - try: - return value.decode(sys.getfilesystemencoding()) - except UnicodeError: - return value.decode("utf-8", "replace") - return str(value) - - -def make_default_short_help(help: str, max_length: int = 45) -> str: - """Returns a condensed version of help string.""" - # Consider only the first paragraph. - paragraph_end = help.find("\n\n") - - if paragraph_end != -1: - help = help[:paragraph_end] - - # Collapse newlines, tabs, and spaces. - words = help.split() - - if not words: - return "" - - # The first paragraph started with a "no rewrap" marker, ignore it. - if words[0] == "\b": - words = words[1:] - - total_length = 0 - last_index = len(words) - 1 - - for i, word in enumerate(words): - total_length += len(word) + (i > 0) - - if total_length > max_length: # too long, truncate - break - - if word[-1] == ".": # sentence end, truncate without "..." - return " ".join(words[: i + 1]) - - if total_length == max_length and i != last_index: - break # not at sentence end, truncate with "..." - else: - return " ".join(words) # no truncation needed - - # Account for the length of the suffix. - total_length += len("...") - - # remove words until the length is short enough - while i > 0: - total_length -= len(words[i]) + (i > 0) - - if total_length <= max_length: - break - - i -= 1 - - return " ".join(words[:i]) + "..." - - -class LazyFile: - """A lazy file works like a regular file but it does not fully open - the file but it does perform some basic checks early to see if the - filename parameter does make sense. This is useful for safely opening - files for writing. - """ - - def __init__( - self, - filename: str | os.PathLike[str], - mode: str = "r", - encoding: str | None = None, - errors: str | None = "strict", - atomic: bool = False, - ): - self.name: str = os.fspath(filename) - self.mode = mode - self.encoding = encoding - self.errors = errors - self.atomic = atomic - self._f: t.IO[t.Any] | None - self.should_close: bool - - if self.name == "-": - self._f, self.should_close = open_stream(filename, mode, encoding, errors) - else: - if "r" in mode: - # Open and close the file in case we're opening it for - # reading so that we can catch at least some errors in - # some cases early. - open(filename, mode).close() - self._f = None - self.should_close = True - - def __getattr__(self, name: str) -> t.Any: - return getattr(self.open(), name) - - def __repr__(self) -> str: - if self._f is not None: - return repr(self._f) - return f"" - - def open(self) -> t.IO[t.Any]: - """Opens the file if it's not yet open. This call might fail with - a :exc:`FileError`. Not handling this error will produce an error - that Click shows. - """ - if self._f is not None: - return self._f - try: - rv, self.should_close = open_stream( - self.name, self.mode, self.encoding, self.errors, atomic=self.atomic - ) - except OSError as e: - from .exceptions import FileError - - raise FileError(self.name, hint=e.strerror) from e - self._f = rv - return rv - - def close(self) -> None: - """Closes the underlying file, no matter what.""" - if self._f is not None: - self._f.close() - - def close_intelligently(self) -> None: - """This function only closes the file if it was opened by the lazy - file wrapper. For instance this will never close stdin. - """ - if self.should_close: - self.close() - - def __enter__(self) -> LazyFile: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - tb: TracebackType | None, - ) -> None: - self.close_intelligently() - - def __iter__(self) -> cabc.Iterator[t.AnyStr]: - self.open() - return iter(self._f) # type: ignore - - -class KeepOpenFile: - def __init__(self, file: t.IO[t.Any]) -> None: - self._file: t.IO[t.Any] = file - - def __getattr__(self, name: str) -> t.Any: - return getattr(self._file, name) - - def __enter__(self) -> KeepOpenFile: - return self - - def __exit__( - self, - exc_type: type[BaseException] | None, - exc_value: BaseException | None, - tb: TracebackType | None, - ) -> None: - pass - - def __repr__(self) -> str: - return repr(self._file) - - def __iter__(self) -> cabc.Iterator[t.AnyStr]: - return iter(self._file) - - -def echo( - message: t.Any | None = None, - file: t.IO[t.Any] | None = None, - nl: bool = True, - err: bool = False, - color: bool | None = None, -) -> None: - """Print a message and newline to stdout or a file. This should be - used instead of :func:`print` because it provides better support - for different data, files, and environments. - - Compared to :func:`print`, this does the following: - - - Ensures that the output encoding is not misconfigured on Linux. - - Supports Unicode in the Windows console. - - Supports writing to binary outputs, and supports writing bytes - to text outputs. - - Supports colors and styles on Windows. - - Removes ANSI color and style codes if the output does not look - like an interactive terminal. - - Always flushes the output. - - :param message: The string or bytes to output. Other objects are - converted to strings. - :param file: The file to write to. Defaults to ``stdout``. - :param err: Write to ``stderr`` instead of ``stdout``. - :param nl: Print a newline after the message. Enabled by default. - :param color: Force showing or hiding colors and other styles. By - default Click will remove color if the output does not look like - an interactive terminal. - - .. versionchanged:: 6.0 - Support Unicode output on the Windows console. Click does not - modify ``sys.stdout``, so ``sys.stdout.write()`` and ``print()`` - will still not support Unicode. - - .. versionchanged:: 4.0 - Added the ``color`` parameter. - - .. versionadded:: 3.0 - Added the ``err`` parameter. - - .. versionchanged:: 2.0 - Support colors on Windows if colorama is installed. - """ - if file is None: - if err: - file = _default_text_stderr() - else: - file = _default_text_stdout() - - # There are no standard streams attached to write to. For example, - # pythonw on Windows. - if file is None: - return - - # Convert non bytes/text into the native string type. - if message is not None and not isinstance(message, (str, bytes, bytearray)): - out: str | bytes | bytearray | None = str(message) - else: - out = message - - if nl: - out = out or "" - if isinstance(out, str): - out += "\n" - else: - out += b"\n" - - if not out: - file.flush() - return - - # If there is a message and the value looks like bytes, we manually - # need to find the binary stream and write the message in there. - # This is done separately so that most stream types will work as you - # would expect. Eg: you can write to StringIO for other cases. - if isinstance(out, (bytes, bytearray)): - binary_file = _find_binary_writer(file) - - if binary_file is not None: - file.flush() - binary_file.write(out) - binary_file.flush() - return - - # ANSI style code support. For no message or bytes, nothing happens. - # When outputting to a file instead of a terminal, strip codes. - else: - color = resolve_color_default(color) - - if should_strip_ansi(file, color): - out = strip_ansi(out) - elif WIN: - if auto_wrap_for_ansi is not None: - file = auto_wrap_for_ansi(file, color) # type: ignore - elif not color: - out = strip_ansi(out) - - file.write(out) # type: ignore - file.flush() - - -def get_binary_stream(name: t.Literal["stdin", "stdout", "stderr"]) -> t.BinaryIO: - """Returns a system stream for byte processing. - - :param name: the name of the stream to open. Valid names are ``'stdin'``, - ``'stdout'`` and ``'stderr'`` - """ - opener = binary_streams.get(name) - if opener is None: - raise TypeError(f"Unknown standard stream '{name}'") - return opener() - - -def get_text_stream( - name: t.Literal["stdin", "stdout", "stderr"], - encoding: str | None = None, - errors: str | None = "strict", -) -> t.TextIO: - """Returns a system stream for text processing. This usually returns - a wrapped stream around a binary stream returned from - :func:`get_binary_stream` but it also can take shortcuts for already - correctly configured streams. - - :param name: the name of the stream to open. Valid names are ``'stdin'``, - ``'stdout'`` and ``'stderr'`` - :param encoding: overrides the detected default encoding. - :param errors: overrides the default error mode. - """ - opener = text_streams.get(name) - if opener is None: - raise TypeError(f"Unknown standard stream '{name}'") - return opener(encoding, errors) - - -def open_file( - filename: str | os.PathLike[str], - mode: str = "r", - encoding: str | None = None, - errors: str | None = "strict", - lazy: bool = False, - atomic: bool = False, -) -> t.IO[t.Any]: - """Open a file, with extra behavior to handle ``'-'`` to indicate - a standard stream, lazy open on write, and atomic write. Similar to - the behavior of the :class:`~click.File` param type. - - If ``'-'`` is given to open ``stdout`` or ``stdin``, the stream is - wrapped so that using it in a context manager will not close it. - This makes it possible to use the function without accidentally - closing a standard stream: - - .. code-block:: python - - with open_file(filename) as f: - ... - - :param filename: The name or Path of the file to open, or ``'-'`` for - ``stdin``/``stdout``. - :param mode: The mode in which to open the file. - :param encoding: The encoding to decode or encode a file opened in - text mode. - :param errors: The error handling mode. - :param lazy: Wait to open the file until it is accessed. For read - mode, the file is temporarily opened to raise access errors - early, then closed until it is read again. - :param atomic: Write to a temporary file and replace the given file - on close. - - .. versionadded:: 3.0 - """ - if lazy: - return t.cast( - "t.IO[t.Any]", LazyFile(filename, mode, encoding, errors, atomic=atomic) - ) - - f, should_close = open_stream(filename, mode, encoding, errors, atomic=atomic) - - if not should_close: - f = t.cast("t.IO[t.Any]", KeepOpenFile(f)) - - return f - - -def format_filename( - filename: str | bytes | os.PathLike[str] | os.PathLike[bytes], - shorten: bool = False, -) -> str: - """Format a filename as a string for display. Ensures the filename can be - displayed by replacing any invalid bytes or surrogate escapes in the name - with the replacement character ``�``. - - Invalid bytes or surrogate escapes will raise an error when written to a - stream with ``errors="strict"``. This will typically happen with ``stdout`` - when the locale is something like ``en_GB.UTF-8``. - - Many scenarios *are* safe to write surrogates though, due to PEP 538 and - PEP 540, including: - - - Writing to ``stderr``, which uses ``errors="backslashreplace"``. - - The system has ``LANG=C.UTF-8``, ``C``, or ``POSIX``. Python opens - stdout and stderr with ``errors="surrogateescape"``. - - None of ``LANG/LC_*`` are set. Python assumes ``LANG=C.UTF-8``. - - Python is started in UTF-8 mode with ``PYTHONUTF8=1`` or ``-X utf8``. - Python opens stdout and stderr with ``errors="surrogateescape"``. - - :param filename: formats a filename for UI display. This will also convert - the filename into unicode without failing. - :param shorten: this optionally shortens the filename to strip of the - path that leads up to it. - """ - if shorten: - filename = os.path.basename(filename) - else: - filename = os.fspath(filename) - - if isinstance(filename, bytes): - filename = filename.decode(sys.getfilesystemencoding(), "replace") - else: - filename = filename.encode("utf-8", "surrogateescape").decode( - "utf-8", "replace" - ) - - return filename - - -def get_app_dir(app_name: str, roaming: bool = True, force_posix: bool = False) -> str: - r"""Returns the config folder for the application. The default behavior - is to return whatever is most appropriate for the operating system. - - To give you an idea, for an app called ``"Foo Bar"``, something like - the following folders could be returned: - - Mac OS X: - ``~/Library/Application Support/Foo Bar`` - Mac OS X (POSIX): - ``~/.foo-bar`` - Unix: - ``~/.config/foo-bar`` - Unix (POSIX): - ``~/.foo-bar`` - Windows (roaming): - ``C:\Users\\AppData\Roaming\Foo Bar`` - Windows (not roaming): - ``C:\Users\\AppData\Local\Foo Bar`` - - .. versionadded:: 2.0 - - :param app_name: the application name. This should be properly capitalized - and can contain whitespace. - :param roaming: controls if the folder should be roaming or not on Windows. - Has no effect otherwise. - :param force_posix: if this is set to `True` then on any POSIX system the - folder will be stored in the home folder with a leading - dot instead of the XDG config home or darwin's - application support folder. - """ - if WIN: - key = "APPDATA" if roaming else "LOCALAPPDATA" - folder = os.environ.get(key) - if folder is None: - folder = os.path.expanduser("~") - return os.path.join(folder, app_name) - if force_posix: - return os.path.join(os.path.expanduser(f"~/.{_posixify(app_name)}")) - if sys.platform == "darwin": - return os.path.join( - os.path.expanduser("~/Library/Application Support"), app_name - ) - return os.path.join( - os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~/.config")), - _posixify(app_name), - ) - - -class PacifyFlushWrapper: - """This wrapper is used to catch and suppress BrokenPipeErrors resulting - from ``.flush()`` being called on broken pipe during the shutdown/final-GC - of the Python interpreter. Notably ``.flush()`` is always called on - ``sys.stdout`` and ``sys.stderr``. So as to have minimal impact on any - other cleanup code, and the case where the underlying file is not a broken - pipe, all calls and attributes are proxied. - """ - - def __init__(self, wrapped: t.IO[t.Any]) -> None: - self.wrapped = wrapped - - def flush(self) -> None: - try: - self.wrapped.flush() - except OSError as e: - import errno - - if e.errno != errno.EPIPE: - raise - - def __getattr__(self, attr: str) -> t.Any: - return getattr(self.wrapped, attr) - - -def _detect_program_name( - path: str | None = None, _main: ModuleType | None = None -) -> str: - """Determine the command used to run the program, for use in help - text. If a file or entry point was executed, the file name is - returned. If ``python -m`` was used to execute a module or package, - ``python -m name`` is returned. - - This doesn't try to be too precise, the goal is to give a concise - name for help text. Files are only shown as their name without the - path. ``python`` is only shown for modules, and the full path to - ``sys.executable`` is not shown. - - :param path: The Python file being executed. Python puts this in - ``sys.argv[0]``, which is used by default. - :param _main: The ``__main__`` module. This should only be passed - during internal testing. - - .. versionadded:: 8.0 - Based on command args detection in the Werkzeug reloader. - - :meta private: - """ - if _main is None: - _main = sys.modules["__main__"] - - if not path: - path = sys.argv[0] - - # The value of __package__ indicates how Python was called. It may - # not exist if a setuptools script is installed as an egg. It may be - # set incorrectly for entry points created with pip on Windows. - # It is set to "" inside a Shiv or PEX zipapp. - if getattr(_main, "__package__", None) in {None, ""} or ( - os.name == "nt" - and _main.__package__ == "" - and not os.path.exists(path) - and os.path.exists(f"{path}.exe") - ): - # Executed a file, like "python app.py". - return os.path.basename(path) - - # Executed a module, like "python -m example". - # Rewritten by Python from "-m script" to "/path/to/script.py". - # Need to look at main module to determine how it was executed. - py_module = t.cast(str, _main.__package__) - name = os.path.splitext(os.path.basename(path))[0] - - # A submodule like "example.cli". - if name != "__main__": - py_module = f"{py_module}.{name}" - - return f"python -m {py_module.lstrip('.')}" - - -def _expand_args( - args: cabc.Iterable[str], - *, - user: bool = True, - env: bool = True, - glob_recursive: bool = True, -) -> list[str]: - """Simulate Unix shell expansion with Python functions. - - See :func:`glob.glob`, :func:`os.path.expanduser`, and - :func:`os.path.expandvars`. - - This is intended for use on Windows, where the shell does not do any - expansion. It may not exactly match what a Unix shell would do. - - :param args: List of command line arguments to expand. - :param user: Expand user home directory. - :param env: Expand environment variables. - :param glob_recursive: ``**`` matches directories recursively. - - .. versionchanged:: 8.1 - Invalid glob patterns are treated as empty expansions rather - than raising an error. - - .. versionadded:: 8.0 - - :meta private: - """ - from glob import glob - - out = [] - - for arg in args: - if user: - arg = os.path.expanduser(arg) - - if env: - arg = os.path.expandvars(arg) - - try: - matches = glob(arg, recursive=glob_recursive) - except re.error: - matches = [] - - if not matches: - out.append(arg) - else: - out.extend(matches) - - return out diff --git a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/INSTALLER b/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/METADATA b/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/METADATA deleted file mode 100644 index 15080bb..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/METADATA +++ /dev/null @@ -1,139 +0,0 @@ -Metadata-Version: 2.4 -Name: cryptography -Version: 46.0.5 -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Natural Language :: English -Classifier: Operating System :: MacOS :: MacOS X -Classifier: Operating System :: POSIX -Classifier: Operating System :: POSIX :: BSD -Classifier: Operating System :: POSIX :: Linux -Classifier: Operating System :: Microsoft :: Windows -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: 3.14 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable -Classifier: Topic :: Security :: Cryptography -Requires-Dist: cffi>=1.14 ; python_full_version == '3.8.*' and platform_python_implementation != 'PyPy' -Requires-Dist: cffi>=2.0.0 ; python_full_version >= '3.9' and platform_python_implementation != 'PyPy' -Requires-Dist: typing-extensions>=4.13.2 ; python_full_version < '3.11' -Requires-Dist: bcrypt>=3.1.5 ; extra == 'ssh' -Requires-Dist: nox[uv]>=2024.4.15 ; extra == 'nox' -Requires-Dist: cryptography-vectors==46.0.5 ; extra == 'test' -Requires-Dist: pytest>=7.4.0 ; extra == 'test' -Requires-Dist: pytest-benchmark>=4.0 ; extra == 'test' -Requires-Dist: pytest-cov>=2.10.1 ; extra == 'test' -Requires-Dist: pytest-xdist>=3.5.0 ; extra == 'test' -Requires-Dist: pretend>=0.7 ; extra == 'test' -Requires-Dist: certifi>=2024 ; extra == 'test' -Requires-Dist: pytest-randomly ; extra == 'test-randomorder' -Requires-Dist: sphinx>=5.3.0 ; extra == 'docs' -Requires-Dist: sphinx-rtd-theme>=3.0.0 ; extra == 'docs' -Requires-Dist: sphinx-inline-tabs ; extra == 'docs' -Requires-Dist: pyenchant>=3 ; extra == 'docstest' -Requires-Dist: readme-renderer>=30.0 ; extra == 'docstest' -Requires-Dist: sphinxcontrib-spelling>=7.3.1 ; extra == 'docstest' -Requires-Dist: build>=1.0.0 ; extra == 'sdist' -Requires-Dist: ruff>=0.11.11 ; extra == 'pep8test' -Requires-Dist: mypy>=1.14 ; extra == 'pep8test' -Requires-Dist: check-sdist ; extra == 'pep8test' -Requires-Dist: click>=8.0.1 ; extra == 'pep8test' -Provides-Extra: ssh -Provides-Extra: nox -Provides-Extra: test -Provides-Extra: test-randomorder -Provides-Extra: docs -Provides-Extra: docstest -Provides-Extra: sdist -Provides-Extra: pep8test -License-File: LICENSE -License-File: LICENSE.APACHE -License-File: LICENSE.BSD -Summary: cryptography is a package which provides cryptographic recipes and primitives to Python developers. -Author-email: The Python Cryptographic Authority and individual contributors -License-Expression: Apache-2.0 OR BSD-3-Clause -Requires-Python: >=3.8, !=3.9.0, !=3.9.1 -Description-Content-Type: text/x-rst; charset=UTF-8 -Project-URL: homepage, https://github.com/pyca/cryptography -Project-URL: documentation, https://cryptography.io/ -Project-URL: source, https://github.com/pyca/cryptography/ -Project-URL: issues, https://github.com/pyca/cryptography/issues -Project-URL: changelog, https://cryptography.io/en/latest/changelog/ - -pyca/cryptography -================= - -.. image:: https://img.shields.io/pypi/v/cryptography.svg - :target: https://pypi.org/project/cryptography/ - :alt: Latest Version - -.. image:: https://readthedocs.org/projects/cryptography/badge/?version=latest - :target: https://cryptography.io - :alt: Latest Docs - -.. image:: https://github.com/pyca/cryptography/actions/workflows/ci.yml/badge.svg - :target: https://github.com/pyca/cryptography/actions/workflows/ci.yml?query=branch%3Amain - -``cryptography`` is a package which provides cryptographic recipes and -primitives to Python developers. Our goal is for it to be your "cryptographic -standard library". It supports Python 3.8+ and PyPy3 7.3.11+. - -``cryptography`` includes both high level recipes and low level interfaces to -common cryptographic algorithms such as symmetric ciphers, message digests, and -key derivation functions. For example, to encrypt something with -``cryptography``'s high level symmetric encryption recipe: - -.. code-block:: pycon - - >>> from cryptography.fernet import Fernet - >>> # Put this somewhere safe! - >>> key = Fernet.generate_key() - >>> f = Fernet(key) - >>> token = f.encrypt(b"A really secret message. Not for prying eyes.") - >>> token - b'...' - >>> f.decrypt(token) - b'A really secret message. Not for prying eyes.' - -You can find more information in the `documentation`_. - -You can install ``cryptography`` with: - -.. code-block:: console - - $ pip install cryptography - -For full details see `the installation documentation`_. - -Discussion -~~~~~~~~~~ - -If you run into bugs, you can file them in our `issue tracker`_. - -We maintain a `cryptography-dev`_ mailing list for development discussion. - -You can also join ``#pyca`` on ``irc.libera.chat`` to ask questions or get -involved. - -Security -~~~~~~~~ - -Need to report a security issue? Please consult our `security reporting`_ -documentation. - - -.. _`documentation`: https://cryptography.io/ -.. _`the installation documentation`: https://cryptography.io/en/latest/installation/ -.. _`issue tracker`: https://github.com/pyca/cryptography/issues -.. _`cryptography-dev`: https://mail.python.org/mailman/listinfo/cryptography-dev -.. _`security reporting`: https://cryptography.io/en/latest/security/ - diff --git a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/RECORD b/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/RECORD deleted file mode 100644 index 00b63de..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/RECORD +++ /dev/null @@ -1,180 +0,0 @@ -cryptography-46.0.5.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -cryptography-46.0.5.dist-info/METADATA,sha256=aOYB9_B-Ccske76ncMz-w9c_VnzYihv_7kxZlt2i2WQ,5748 -cryptography-46.0.5.dist-info/RECORD,, -cryptography-46.0.5.dist-info/WHEEL,sha256=vDyXGwAe_QBpYw-jD8eU-EbjMjQEXHzUZDoiosetxRI,108 -cryptography-46.0.5.dist-info/licenses/LICENSE,sha256=Pgx8CRqUi4JTO6mP18u0BDLW8amsv4X1ki0vmak65rs,197 -cryptography-46.0.5.dist-info/licenses/LICENSE.APACHE,sha256=qsc7MUj20dcRHbyjIJn2jSbGRMaBOuHk8F9leaomY_4,11360 -cryptography-46.0.5.dist-info/licenses/LICENSE.BSD,sha256=YCxMdILeZHndLpeTzaJ15eY9dz2s0eymiSMqtwCPtPs,1532 -cryptography/__about__.py,sha256=GWg4NAxg4vsSKUwmDy1HjUeAOhqTA46wIhiY6i03NSU,445 -cryptography/__init__.py,sha256=mthuUrTd4FROCpUYrTIqhjz6s6T9djAZrV7nZ1oMm2o,364 -cryptography/__pycache__/__about__.cpython-312.pyc,, -cryptography/__pycache__/__init__.cpython-312.pyc,, -cryptography/__pycache__/exceptions.cpython-312.pyc,, -cryptography/__pycache__/fernet.cpython-312.pyc,, -cryptography/__pycache__/utils.cpython-312.pyc,, -cryptography/exceptions.py,sha256=835EWILc2fwxw-gyFMriciC2SqhViETB10LBSytnDIc,1087 -cryptography/fernet.py,sha256=3Cvxkh0KJSbX8HbnCHu4wfCW7U0GgfUA3v_qQ8a8iWc,6963 -cryptography/hazmat/__init__.py,sha256=5IwrLWrVp0AjEr_4FdWG_V057NSJGY_W4egNNsuct0g,455 -cryptography/hazmat/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/__pycache__/_oid.cpython-312.pyc,, -cryptography/hazmat/_oid.py,sha256=p8ThjwJB56Ci_rAIrjyJ1f8VjgD6e39es2dh8JIUBOw,17240 -cryptography/hazmat/asn1/__init__.py,sha256=hS_EWx3wVvZzfbCcNV8hzcDnyMM8H-BhIoS1TipUosk,293 -cryptography/hazmat/asn1/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/asn1/__pycache__/asn1.cpython-312.pyc,, -cryptography/hazmat/asn1/asn1.py,sha256=eMEThEXa19LQjcyVofgHsW6tsZnjp3ddH7bWkkcxfLM,3860 -cryptography/hazmat/backends/__init__.py,sha256=O5jvKFQdZnXhKeqJ-HtulaEL9Ni7mr1mDzZY5kHlYhI,361 -cryptography/hazmat/backends/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/backends/openssl/__init__.py,sha256=p3jmJfnCag9iE5sdMrN6VvVEu55u46xaS_IjoI0SrmA,305 -cryptography/hazmat/backends/openssl/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/backends/openssl/__pycache__/backend.cpython-312.pyc,, -cryptography/hazmat/backends/openssl/backend.py,sha256=tV5AxBoFJ2GfA0DMWSY-0TxQJrpQoexzI9R4Kybb--4,10215 -cryptography/hazmat/bindings/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/bindings/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/bindings/_rust.abi3.so,sha256=pjIwlBblIAQM67TNyxA7a1MZPTLlmxD9yq48grQX_8A,21013520 -cryptography/hazmat/bindings/_rust/__init__.pyi,sha256=KhqLhXFPArPzzJ7DYO9Fl8FoXB_BagAd_r4Dm_Ze9Xo,1257 -cryptography/hazmat/bindings/_rust/_openssl.pyi,sha256=mpNJLuYLbCVrd5i33FBTmWwL_55Dw7JPkSLlSX9Q7oI,230 -cryptography/hazmat/bindings/_rust/asn1.pyi,sha256=BrGjC8J6nwuS-r3EVcdXJB8ndotfY9mbQYOfpbPG0HA,354 -cryptography/hazmat/bindings/_rust/declarative_asn1.pyi,sha256=2ECFmYue1EPkHEE2Bm7aLwkjB0mSUTpr23v9MN4pri4,892 -cryptography/hazmat/bindings/_rust/exceptions.pyi,sha256=exXr2xw_0pB1kk93cYbM3MohbzoUkjOms1ZMUi0uQZE,640 -cryptography/hazmat/bindings/_rust/ocsp.pyi,sha256=VPVWuKHI9EMs09ZLRYAGvR0Iz0mCMmEzXAkgJHovpoM,4020 -cryptography/hazmat/bindings/_rust/openssl/__init__.pyi,sha256=iOAMDyHoNwwCSZfZzuXDr64g4GpGUeDgEN-LjXqdrBM,1522 -cryptography/hazmat/bindings/_rust/openssl/aead.pyi,sha256=4Nddw6-ynzIB3w2W86WvkGKTLlTDk_6F5l54RHCuy3E,2688 -cryptography/hazmat/bindings/_rust/openssl/ciphers.pyi,sha256=LhPzHWSXJq4grAJXn6zSvSSdV-aYIIscHDwIPlJGGPs,1315 -cryptography/hazmat/bindings/_rust/openssl/cmac.pyi,sha256=nPH0X57RYpsAkRowVpjQiHE566ThUTx7YXrsadmrmHk,564 -cryptography/hazmat/bindings/_rust/openssl/dh.pyi,sha256=Z3TC-G04-THtSdAOPLM1h2G7ml5bda1ElZUcn5wpuhk,1564 -cryptography/hazmat/bindings/_rust/openssl/dsa.pyi,sha256=qBtkgj2albt2qFcnZ9UDrhzoNhCVO7HTby5VSf1EXMI,1299 -cryptography/hazmat/bindings/_rust/openssl/ec.pyi,sha256=zJy0pRa5n-_p2dm45PxECB_-B6SVZyNKfjxFDpPqT38,1691 -cryptography/hazmat/bindings/_rust/openssl/ed25519.pyi,sha256=VXfXd5G6hUivg399R1DYdmW3eTb0EebzDTqjRC2gaRw,532 -cryptography/hazmat/bindings/_rust/openssl/ed448.pyi,sha256=Yx49lqdnjsD7bxiDV1kcaMrDktug5evi5a6zerMiy2s,514 -cryptography/hazmat/bindings/_rust/openssl/hashes.pyi,sha256=OWZvBx7xfo_HJl41Nc--DugVyCVPIprZ3HlOPTSWH9g,984 -cryptography/hazmat/bindings/_rust/openssl/hmac.pyi,sha256=BXZn7NDjL3JAbYW0SQ8pg1iyC5DbQXVhUAiwsi8DFR8,702 -cryptography/hazmat/bindings/_rust/openssl/kdf.pyi,sha256=xXfFBb9QehHfDtEaxV_65Z0YK7NquOVIChpTLkgAs_k,2029 -cryptography/hazmat/bindings/_rust/openssl/keys.pyi,sha256=teIt8M6ZEMJrn4s3W0UnW0DZ-30Jd68WnSsKKG124l0,912 -cryptography/hazmat/bindings/_rust/openssl/poly1305.pyi,sha256=_SW9NtQ5FDlAbdclFtWpT4lGmxKIKHpN-4j8J2BzYfQ,585 -cryptography/hazmat/bindings/_rust/openssl/rsa.pyi,sha256=2OQCNSXkxgc-3uw1xiCCloIQTV6p9_kK79Yu0rhZgPc,1364 -cryptography/hazmat/bindings/_rust/openssl/x25519.pyi,sha256=ewn4GpQyb7zPwE-ni7GtyQgMC0A1mLuqYsSyqv6nI_s,523 -cryptography/hazmat/bindings/_rust/openssl/x448.pyi,sha256=juTZTmli8jO_5Vcufg-vHvx_tCyezmSLIh_9PU3TczI,505 -cryptography/hazmat/bindings/_rust/pkcs12.pyi,sha256=vEEd5wDiZvb8ZGFaziLCaWLzAwoG_tvPUxLQw5_uOl8,1605 -cryptography/hazmat/bindings/_rust/pkcs7.pyi,sha256=txGBJijqZshEcqra6byPNbnisIdlxzOSIHP2hl9arPs,1601 -cryptography/hazmat/bindings/_rust/test_support.pyi,sha256=PPhld-WkO743iXFPebeG0LtgK0aTzGdjcIsay1Gm5GE,757 -cryptography/hazmat/bindings/_rust/x509.pyi,sha256=n9X0IQ6ICbdIi-ExdCFZoBgeY6njm3QOVAVZwDQdnbk,9784 -cryptography/hazmat/bindings/openssl/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/bindings/openssl/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/bindings/openssl/__pycache__/_conditional.cpython-312.pyc,, -cryptography/hazmat/bindings/openssl/__pycache__/binding.cpython-312.pyc,, -cryptography/hazmat/bindings/openssl/_conditional.py,sha256=DMOpA_XN4l70zTc5_J9DpwlbQeUBRTWpfIJ4yRIn1-U,5791 -cryptography/hazmat/bindings/openssl/binding.py,sha256=x8eocEmukO4cm7cHqfVmOoYY7CCXdoF1v1WhZQt9neo,4610 -cryptography/hazmat/decrepit/__init__.py,sha256=wHCbWfaefa-fk6THSw9th9fJUsStJo7245wfFBqmduA,216 -cryptography/hazmat/decrepit/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/decrepit/ciphers/__init__.py,sha256=wHCbWfaefa-fk6THSw9th9fJUsStJo7245wfFBqmduA,216 -cryptography/hazmat/decrepit/ciphers/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/decrepit/ciphers/__pycache__/algorithms.cpython-312.pyc,, -cryptography/hazmat/decrepit/ciphers/algorithms.py,sha256=YrKgHS4MfwWaMmPBYRymRRlC0phwWp9ycICFezeJPGk,2595 -cryptography/hazmat/primitives/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/primitives/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/_asymmetric.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/_cipheralgorithm.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/_serialization.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/cmac.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/constant_time.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/hashes.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/hmac.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/keywrap.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/padding.cpython-312.pyc,, -cryptography/hazmat/primitives/__pycache__/poly1305.cpython-312.pyc,, -cryptography/hazmat/primitives/_asymmetric.py,sha256=RhgcouUB6HTiFDBrR1LxqkMjpUxIiNvQ1r_zJjRG6qQ,532 -cryptography/hazmat/primitives/_cipheralgorithm.py,sha256=Eh3i7lwedHfi0eLSsH93PZxQKzY9I6lkK67vL4V5tOc,1522 -cryptography/hazmat/primitives/_serialization.py,sha256=chgPCSF2jxI2Cr5gB-qbWXOvOfupBh4CARS0KAhv9AM,5123 -cryptography/hazmat/primitives/asymmetric/__init__.py,sha256=s9oKCQ2ycFdXoERdS1imafueSkBsL9kvbyfghaauZ9Y,180 -cryptography/hazmat/primitives/asymmetric/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/dh.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/dsa.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/ec.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/ed25519.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/ed448.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/padding.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/rsa.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/types.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/utils.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/x25519.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/__pycache__/x448.cpython-312.pyc,, -cryptography/hazmat/primitives/asymmetric/dh.py,sha256=0v_vEFFz5pQ1QG-FkWDyvgv7IfuVZSH5Q6LyFI5A8rg,3645 -cryptography/hazmat/primitives/asymmetric/dsa.py,sha256=Ld_bbbqQFz12dObHxIkzEQzX0SWWP41RLSWkYSaKhqE,4213 -cryptography/hazmat/primitives/asymmetric/ec.py,sha256=dj0ZR_jTVI1wojjipjbXNVccPSIRObWxSZcTGQKGbHc,13437 -cryptography/hazmat/primitives/asymmetric/ed25519.py,sha256=jZW5cs472wXXV3eB0sE1b8w64gdazwwU0_MT5UOTiXs,3700 -cryptography/hazmat/primitives/asymmetric/ed448.py,sha256=yAetgn2f2JYf0BO8MapGzXeThsvSMG5LmUCrxVOidAA,3729 -cryptography/hazmat/primitives/asymmetric/padding.py,sha256=vQ6l6gOg9HqcbOsvHrSiJRVLdEj9L4m4HkRGYziTyFA,2854 -cryptography/hazmat/primitives/asymmetric/rsa.py,sha256=ZnKOo2f34MCCOupC03Y1uR-_jiSG5IrelHEmxaME3D4,8303 -cryptography/hazmat/primitives/asymmetric/types.py,sha256=LnsOJym-wmPUJ7Knu_7bCNU3kIiELCd6krOaW_JU08I,2996 -cryptography/hazmat/primitives/asymmetric/utils.py,sha256=DPTs6T4F-UhwzFQTh-1fSEpQzazH2jf2xpIro3ItF4o,790 -cryptography/hazmat/primitives/asymmetric/x25519.py,sha256=_4nQeZ3yJ3Lg0RpXnaqA-1yt6vbx1F-wzLcaZHwSpeE,3613 -cryptography/hazmat/primitives/asymmetric/x448.py,sha256=WKBLtuVfJqiBRro654fGaQAlvsKbqbNkK7c4A_ZCdV0,3642 -cryptography/hazmat/primitives/ciphers/__init__.py,sha256=eyEXmjk6_CZXaOPYDr7vAYGXr29QvzgWL2-4CSolLFs,680 -cryptography/hazmat/primitives/ciphers/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/aead.cpython-312.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/algorithms.cpython-312.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/base.cpython-312.pyc,, -cryptography/hazmat/primitives/ciphers/__pycache__/modes.cpython-312.pyc,, -cryptography/hazmat/primitives/ciphers/aead.py,sha256=Fzlyx7w8KYQakzDp1zWgJnIr62zgZrgVh1u2h4exB54,634 -cryptography/hazmat/primitives/ciphers/algorithms.py,sha256=Q7ZJwcsx83Mgxv5y7r6CyJKSdsOwC-my-5A67-ma2vw,3407 -cryptography/hazmat/primitives/ciphers/base.py,sha256=aBC7HHBBoixebmparVr0UlODs3VD0A7B6oz_AaRjDv8,4253 -cryptography/hazmat/primitives/ciphers/modes.py,sha256=20stpwhDtbAvpH0SMf9EDHIciwmTF-JMBUOZ9bU8WiQ,8318 -cryptography/hazmat/primitives/cmac.py,sha256=sz_s6H_cYnOvx-VNWdIKhRhe3Ymp8z8J0D3CBqOX3gg,338 -cryptography/hazmat/primitives/constant_time.py,sha256=xdunWT0nf8OvKdcqUhhlFKayGp4_PgVJRU2W1wLSr_A,422 -cryptography/hazmat/primitives/hashes.py,sha256=M8BrlKB3U6DEtHvWTV5VRjpteHv1kS3Zxm_Bsk04cr8,5184 -cryptography/hazmat/primitives/hmac.py,sha256=RpB3z9z5skirCQrm7zQbtnp9pLMnAjrlTUvKqF5aDDc,423 -cryptography/hazmat/primitives/kdf/__init__.py,sha256=4XibZnrYq4hh5xBjWiIXzaYW6FKx8hPbVaa_cB9zS64,750 -cryptography/hazmat/primitives/kdf/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/argon2.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/concatkdf.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/hkdf.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/kbkdf.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/pbkdf2.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/scrypt.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/__pycache__/x963kdf.cpython-312.pyc,, -cryptography/hazmat/primitives/kdf/argon2.py,sha256=UFDNXG0v-rw3DqAQTB1UQAsQC2M5Ejg0k_6OCyhLKus,460 -cryptography/hazmat/primitives/kdf/concatkdf.py,sha256=Ua8KoLXXnzgsrAUmHpyKymaPt8aPRP0EHEaBz7QCQ9I,3737 -cryptography/hazmat/primitives/kdf/hkdf.py,sha256=M0lAEfRoc4kpp4-nwDj9yB-vNZukIOYEQrUlWsBNn9o,543 -cryptography/hazmat/primitives/kdf/kbkdf.py,sha256=oZepvo4evhKkkJQWRDwaPoIbyTaFmDc5NPimxg6lfKg,9165 -cryptography/hazmat/primitives/kdf/pbkdf2.py,sha256=1WIwhELR0w8ztTpTu8BrFiYWmK3hUfJq08I79TxwieE,1957 -cryptography/hazmat/primitives/kdf/scrypt.py,sha256=XyWUdUUmhuI9V6TqAPOvujCSMGv1XQdg0a21IWCmO-U,590 -cryptography/hazmat/primitives/kdf/x963kdf.py,sha256=zLTcF665QFvXX2f8TS7fmBZTteXpFjKahzfjjQcCJyw,1999 -cryptography/hazmat/primitives/keywrap.py,sha256=XV4Pj2fqSeD-RqZVvY2cA3j5_7RwJSFygYuLfk2ujCo,5650 -cryptography/hazmat/primitives/padding.py,sha256=QT-U-NvV2eQGO1wVPbDiNGNSc9keRDS-ig5cQOrLz0E,1865 -cryptography/hazmat/primitives/poly1305.py,sha256=P5EPQV-RB_FJPahpg01u0Ts4S_PnAmsroxIGXbGeRRo,355 -cryptography/hazmat/primitives/serialization/__init__.py,sha256=Q7uTgDlt7n3WfsMT6jYwutC6DIg_7SEeoAm1GHZ5B5E,1705 -cryptography/hazmat/primitives/serialization/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/base.cpython-312.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/pkcs12.cpython-312.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/pkcs7.cpython-312.pyc,, -cryptography/hazmat/primitives/serialization/__pycache__/ssh.cpython-312.pyc,, -cryptography/hazmat/primitives/serialization/base.py,sha256=ikq5MJIwp_oUnjiaBco_PmQwOTYuGi-XkYUYHKy8Vo0,615 -cryptography/hazmat/primitives/serialization/pkcs12.py,sha256=mS9cFNG4afzvseoc5e1MWoY2VskfL8N8Y_OFjl67luY,5104 -cryptography/hazmat/primitives/serialization/pkcs7.py,sha256=5OR_Tkysxaprn4FegvJIfbep9rJ9wok6FLWvWwQ5-Mg,13943 -cryptography/hazmat/primitives/serialization/ssh.py,sha256=hPV5obFznz0QhFfXFPOeQ8y6MsurA0xVMQiLnLESEs8,53700 -cryptography/hazmat/primitives/twofactor/__init__.py,sha256=tmMZGB-g4IU1r7lIFqASU019zr0uPp_wEBYcwdDCKCA,258 -cryptography/hazmat/primitives/twofactor/__pycache__/__init__.cpython-312.pyc,, -cryptography/hazmat/primitives/twofactor/__pycache__/hotp.cpython-312.pyc,, -cryptography/hazmat/primitives/twofactor/__pycache__/totp.cpython-312.pyc,, -cryptography/hazmat/primitives/twofactor/hotp.py,sha256=ivZo5BrcCGWLsqql4nZV0XXCjyGPi_iHfDFltGlOJwk,3256 -cryptography/hazmat/primitives/twofactor/totp.py,sha256=m5LPpRL00kp4zY8gTjr55Hfz9aMlPS53kHmVkSQCmdY,1652 -cryptography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -cryptography/utils.py,sha256=nFHkPQZycOQGeBtBRkWSA4WjOHFo7pwummQt-PPSkZc,4349 -cryptography/x509/__init__.py,sha256=xloN0swseNx-m2WFZmCA17gOoxQWqeU82UVjEdJBePQ,8257 -cryptography/x509/__pycache__/__init__.cpython-312.pyc,, -cryptography/x509/__pycache__/base.cpython-312.pyc,, -cryptography/x509/__pycache__/certificate_transparency.cpython-312.pyc,, -cryptography/x509/__pycache__/extensions.cpython-312.pyc,, -cryptography/x509/__pycache__/general_name.cpython-312.pyc,, -cryptography/x509/__pycache__/name.cpython-312.pyc,, -cryptography/x509/__pycache__/ocsp.cpython-312.pyc,, -cryptography/x509/__pycache__/oid.cpython-312.pyc,, -cryptography/x509/__pycache__/verification.cpython-312.pyc,, -cryptography/x509/base.py,sha256=OrmTw3y8B6AE_nGXQPN8x9kq-d7rDWeH13gCq6T6D6U,27997 -cryptography/x509/certificate_transparency.py,sha256=JqoOIDhlwInrYMFW6IFn77WJ0viF-PB_rlZV3vs9MYc,797 -cryptography/x509/extensions.py,sha256=QxYrqR6SF1qzR9ZraP8wDiIczlEVlAFuwDRVcltB6Tk,77724 -cryptography/x509/general_name.py,sha256=sP_rV11Qlpsk4x3XXGJY_Mv0Q_s9dtjeLckHsjpLQoQ,7836 -cryptography/x509/name.py,sha256=ty0_xf0LnHwZAdEf-d8FLO1K4hGqx_7DsD3CHwoLJiY,15101 -cryptography/x509/ocsp.py,sha256=Yey6NdFV1MPjop24Mj_VenjEpg3kUaMopSWOK0AbeBs,12699 -cryptography/x509/oid.py,sha256=BUzgXXGVWilkBkdKPTm9R4qElE9gAGHgdYPMZAp7PJo,931 -cryptography/x509/verification.py,sha256=gR2C2c-XZQtblZhT5T5vjSKOtCb74ef2alPVmEcwFlM,958 diff --git a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/WHEEL b/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/WHEEL deleted file mode 100644 index 7e6db7b..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/WHEEL +++ /dev/null @@ -1,4 +0,0 @@ -Wheel-Version: 1.0 -Generator: maturin (1.9.4) -Root-Is-Purelib: false -Tag: cp311-abi3-macosx_10_9_universal2 diff --git a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE b/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE deleted file mode 100644 index b11f379..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE +++ /dev/null @@ -1,3 +0,0 @@ -This software is made available under the terms of *either* of the licenses -found in LICENSE.APACHE or LICENSE.BSD. Contributions to cryptography are made -under the terms of *both* these licenses. diff --git a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.APACHE b/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.APACHE deleted file mode 100644 index 62589ed..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.APACHE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.BSD b/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.BSD deleted file mode 100644 index ec1a29d..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography-46.0.5.dist-info/licenses/LICENSE.BSD +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Individual contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of PyCA Cryptography nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/__about__.py b/backend/venv/lib/python3.12/site-packages/cryptography/__about__.py deleted file mode 100644 index 43b3024..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/__about__.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -__all__ = [ - "__author__", - "__copyright__", - "__version__", -] - -__version__ = "46.0.5" - - -__author__ = "The Python Cryptographic Authority and individual contributors" -__copyright__ = f"Copyright 2013-2025 {__author__}" diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/__init__.py b/backend/venv/lib/python3.12/site-packages/cryptography/__init__.py deleted file mode 100644 index d374f75..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.__about__ import __author__, __copyright__, __version__ - -__all__ = [ - "__author__", - "__copyright__", - "__version__", -] diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/exceptions.py b/backend/venv/lib/python3.12/site-packages/cryptography/exceptions.py deleted file mode 100644 index fe125ea..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/exceptions.py +++ /dev/null @@ -1,52 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import typing - -from cryptography.hazmat.bindings._rust import exceptions as rust_exceptions - -if typing.TYPE_CHECKING: - from cryptography.hazmat.bindings._rust import openssl as rust_openssl - -_Reasons = rust_exceptions._Reasons - - -class UnsupportedAlgorithm(Exception): - def __init__(self, message: str, reason: _Reasons | None = None) -> None: - super().__init__(message) - self._reason = reason - - -class AlreadyFinalized(Exception): - pass - - -class AlreadyUpdated(Exception): - pass - - -class NotYetFinalized(Exception): - pass - - -class InvalidTag(Exception): - pass - - -class InvalidSignature(Exception): - pass - - -class InternalError(Exception): - def __init__( - self, msg: str, err_code: list[rust_openssl.OpenSSLError] - ) -> None: - super().__init__(msg) - self.err_code = err_code - - -class InvalidKey(Exception): - pass diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/fernet.py b/backend/venv/lib/python3.12/site-packages/cryptography/fernet.py deleted file mode 100644 index c6744ae..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/fernet.py +++ /dev/null @@ -1,224 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import base64 -import binascii -import os -import time -import typing -from collections.abc import Iterable - -from cryptography import utils -from cryptography.exceptions import InvalidSignature -from cryptography.hazmat.primitives import hashes, padding -from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes -from cryptography.hazmat.primitives.hmac import HMAC - - -class InvalidToken(Exception): - pass - - -_MAX_CLOCK_SKEW = 60 - - -class Fernet: - def __init__( - self, - key: bytes | str, - backend: typing.Any = None, - ) -> None: - try: - key = base64.urlsafe_b64decode(key) - except binascii.Error as exc: - raise ValueError( - "Fernet key must be 32 url-safe base64-encoded bytes." - ) from exc - if len(key) != 32: - raise ValueError( - "Fernet key must be 32 url-safe base64-encoded bytes." - ) - - self._signing_key = key[:16] - self._encryption_key = key[16:] - - @classmethod - def generate_key(cls) -> bytes: - return base64.urlsafe_b64encode(os.urandom(32)) - - def encrypt(self, data: bytes) -> bytes: - return self.encrypt_at_time(data, int(time.time())) - - def encrypt_at_time(self, data: bytes, current_time: int) -> bytes: - iv = os.urandom(16) - return self._encrypt_from_parts(data, current_time, iv) - - def _encrypt_from_parts( - self, data: bytes, current_time: int, iv: bytes - ) -> bytes: - utils._check_bytes("data", data) - - padder = padding.PKCS7(algorithms.AES.block_size).padder() - padded_data = padder.update(data) + padder.finalize() - encryptor = Cipher( - algorithms.AES(self._encryption_key), - modes.CBC(iv), - ).encryptor() - ciphertext = encryptor.update(padded_data) + encryptor.finalize() - - basic_parts = ( - b"\x80" - + current_time.to_bytes(length=8, byteorder="big") - + iv - + ciphertext - ) - - h = HMAC(self._signing_key, hashes.SHA256()) - h.update(basic_parts) - hmac = h.finalize() - return base64.urlsafe_b64encode(basic_parts + hmac) - - def decrypt(self, token: bytes | str, ttl: int | None = None) -> bytes: - timestamp, data = Fernet._get_unverified_token_data(token) - if ttl is None: - time_info = None - else: - time_info = (ttl, int(time.time())) - return self._decrypt_data(data, timestamp, time_info) - - def decrypt_at_time( - self, token: bytes | str, ttl: int, current_time: int - ) -> bytes: - if ttl is None: - raise ValueError( - "decrypt_at_time() can only be used with a non-None ttl" - ) - timestamp, data = Fernet._get_unverified_token_data(token) - return self._decrypt_data(data, timestamp, (ttl, current_time)) - - def extract_timestamp(self, token: bytes | str) -> int: - timestamp, data = Fernet._get_unverified_token_data(token) - # Verify the token was not tampered with. - self._verify_signature(data) - return timestamp - - @staticmethod - def _get_unverified_token_data(token: bytes | str) -> tuple[int, bytes]: - if not isinstance(token, (str, bytes)): - raise TypeError("token must be bytes or str") - - try: - data = base64.urlsafe_b64decode(token) - except (TypeError, binascii.Error): - raise InvalidToken - - if not data or data[0] != 0x80: - raise InvalidToken - - if len(data) < 9: - raise InvalidToken - - timestamp = int.from_bytes(data[1:9], byteorder="big") - return timestamp, data - - def _verify_signature(self, data: bytes) -> None: - h = HMAC(self._signing_key, hashes.SHA256()) - h.update(data[:-32]) - try: - h.verify(data[-32:]) - except InvalidSignature: - raise InvalidToken - - def _decrypt_data( - self, - data: bytes, - timestamp: int, - time_info: tuple[int, int] | None, - ) -> bytes: - if time_info is not None: - ttl, current_time = time_info - if timestamp + ttl < current_time: - raise InvalidToken - - if current_time + _MAX_CLOCK_SKEW < timestamp: - raise InvalidToken - - self._verify_signature(data) - - iv = data[9:25] - ciphertext = data[25:-32] - decryptor = Cipher( - algorithms.AES(self._encryption_key), modes.CBC(iv) - ).decryptor() - plaintext_padded = decryptor.update(ciphertext) - try: - plaintext_padded += decryptor.finalize() - except ValueError: - raise InvalidToken - unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder() - - unpadded = unpadder.update(plaintext_padded) - try: - unpadded += unpadder.finalize() - except ValueError: - raise InvalidToken - return unpadded - - -class MultiFernet: - def __init__(self, fernets: Iterable[Fernet]): - fernets = list(fernets) - if not fernets: - raise ValueError( - "MultiFernet requires at least one Fernet instance" - ) - self._fernets = fernets - - def encrypt(self, msg: bytes) -> bytes: - return self.encrypt_at_time(msg, int(time.time())) - - def encrypt_at_time(self, msg: bytes, current_time: int) -> bytes: - return self._fernets[0].encrypt_at_time(msg, current_time) - - def rotate(self, msg: bytes | str) -> bytes: - timestamp, data = Fernet._get_unverified_token_data(msg) - for f in self._fernets: - try: - p = f._decrypt_data(data, timestamp, None) - break - except InvalidToken: - pass - else: - raise InvalidToken - - iv = os.urandom(16) - return self._fernets[0]._encrypt_from_parts(p, timestamp, iv) - - def decrypt(self, msg: bytes | str, ttl: int | None = None) -> bytes: - for f in self._fernets: - try: - return f.decrypt(msg, ttl) - except InvalidToken: - pass - raise InvalidToken - - def decrypt_at_time( - self, msg: bytes | str, ttl: int, current_time: int - ) -> bytes: - for f in self._fernets: - try: - return f.decrypt_at_time(msg, ttl, current_time) - except InvalidToken: - pass - raise InvalidToken - - def extract_timestamp(self, msg: bytes | str) -> int: - for f in self._fernets: - try: - return f.extract_timestamp(msg) - except InvalidToken: - pass - raise InvalidToken diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/__init__.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/__init__.py deleted file mode 100644 index b9f1187..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -""" -Hazardous Materials - -This is a "Hazardous Materials" module. You should ONLY use it if you're -100% absolutely sure that you know what you're doing because this module -is full of land mines, dragons, and dinosaurs with laser guns. -""" diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/_oid.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/_oid.py deleted file mode 100644 index 4bf138d..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/_oid.py +++ /dev/null @@ -1,356 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import ( - ObjectIdentifier as ObjectIdentifier, -) -from cryptography.hazmat.primitives import hashes - - -class ExtensionOID: - SUBJECT_DIRECTORY_ATTRIBUTES = ObjectIdentifier("2.5.29.9") - SUBJECT_KEY_IDENTIFIER = ObjectIdentifier("2.5.29.14") - KEY_USAGE = ObjectIdentifier("2.5.29.15") - PRIVATE_KEY_USAGE_PERIOD = ObjectIdentifier("2.5.29.16") - SUBJECT_ALTERNATIVE_NAME = ObjectIdentifier("2.5.29.17") - ISSUER_ALTERNATIVE_NAME = ObjectIdentifier("2.5.29.18") - BASIC_CONSTRAINTS = ObjectIdentifier("2.5.29.19") - NAME_CONSTRAINTS = ObjectIdentifier("2.5.29.30") - CRL_DISTRIBUTION_POINTS = ObjectIdentifier("2.5.29.31") - CERTIFICATE_POLICIES = ObjectIdentifier("2.5.29.32") - POLICY_MAPPINGS = ObjectIdentifier("2.5.29.33") - AUTHORITY_KEY_IDENTIFIER = ObjectIdentifier("2.5.29.35") - POLICY_CONSTRAINTS = ObjectIdentifier("2.5.29.36") - EXTENDED_KEY_USAGE = ObjectIdentifier("2.5.29.37") - FRESHEST_CRL = ObjectIdentifier("2.5.29.46") - INHIBIT_ANY_POLICY = ObjectIdentifier("2.5.29.54") - ISSUING_DISTRIBUTION_POINT = ObjectIdentifier("2.5.29.28") - AUTHORITY_INFORMATION_ACCESS = ObjectIdentifier("1.3.6.1.5.5.7.1.1") - SUBJECT_INFORMATION_ACCESS = ObjectIdentifier("1.3.6.1.5.5.7.1.11") - OCSP_NO_CHECK = ObjectIdentifier("1.3.6.1.5.5.7.48.1.5") - TLS_FEATURE = ObjectIdentifier("1.3.6.1.5.5.7.1.24") - CRL_NUMBER = ObjectIdentifier("2.5.29.20") - DELTA_CRL_INDICATOR = ObjectIdentifier("2.5.29.27") - PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS = ObjectIdentifier( - "1.3.6.1.4.1.11129.2.4.2" - ) - PRECERT_POISON = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.3") - SIGNED_CERTIFICATE_TIMESTAMPS = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.5") - MS_CERTIFICATE_TEMPLATE = ObjectIdentifier("1.3.6.1.4.1.311.21.7") - ADMISSIONS = ObjectIdentifier("1.3.36.8.3.3") - - -class OCSPExtensionOID: - NONCE = ObjectIdentifier("1.3.6.1.5.5.7.48.1.2") - ACCEPTABLE_RESPONSES = ObjectIdentifier("1.3.6.1.5.5.7.48.1.4") - - -class CRLEntryExtensionOID: - CERTIFICATE_ISSUER = ObjectIdentifier("2.5.29.29") - CRL_REASON = ObjectIdentifier("2.5.29.21") - INVALIDITY_DATE = ObjectIdentifier("2.5.29.24") - - -class NameOID: - COMMON_NAME = ObjectIdentifier("2.5.4.3") - COUNTRY_NAME = ObjectIdentifier("2.5.4.6") - LOCALITY_NAME = ObjectIdentifier("2.5.4.7") - STATE_OR_PROVINCE_NAME = ObjectIdentifier("2.5.4.8") - STREET_ADDRESS = ObjectIdentifier("2.5.4.9") - ORGANIZATION_IDENTIFIER = ObjectIdentifier("2.5.4.97") - ORGANIZATION_NAME = ObjectIdentifier("2.5.4.10") - ORGANIZATIONAL_UNIT_NAME = ObjectIdentifier("2.5.4.11") - SERIAL_NUMBER = ObjectIdentifier("2.5.4.5") - SURNAME = ObjectIdentifier("2.5.4.4") - GIVEN_NAME = ObjectIdentifier("2.5.4.42") - TITLE = ObjectIdentifier("2.5.4.12") - INITIALS = ObjectIdentifier("2.5.4.43") - GENERATION_QUALIFIER = ObjectIdentifier("2.5.4.44") - X500_UNIQUE_IDENTIFIER = ObjectIdentifier("2.5.4.45") - DN_QUALIFIER = ObjectIdentifier("2.5.4.46") - PSEUDONYM = ObjectIdentifier("2.5.4.65") - USER_ID = ObjectIdentifier("0.9.2342.19200300.100.1.1") - DOMAIN_COMPONENT = ObjectIdentifier("0.9.2342.19200300.100.1.25") - EMAIL_ADDRESS = ObjectIdentifier("1.2.840.113549.1.9.1") - JURISDICTION_COUNTRY_NAME = ObjectIdentifier("1.3.6.1.4.1.311.60.2.1.3") - JURISDICTION_LOCALITY_NAME = ObjectIdentifier("1.3.6.1.4.1.311.60.2.1.1") - JURISDICTION_STATE_OR_PROVINCE_NAME = ObjectIdentifier( - "1.3.6.1.4.1.311.60.2.1.2" - ) - BUSINESS_CATEGORY = ObjectIdentifier("2.5.4.15") - POSTAL_ADDRESS = ObjectIdentifier("2.5.4.16") - POSTAL_CODE = ObjectIdentifier("2.5.4.17") - INN = ObjectIdentifier("1.2.643.3.131.1.1") - OGRN = ObjectIdentifier("1.2.643.100.1") - SNILS = ObjectIdentifier("1.2.643.100.3") - UNSTRUCTURED_NAME = ObjectIdentifier("1.2.840.113549.1.9.2") - - -class SignatureAlgorithmOID: - RSA_WITH_MD5 = ObjectIdentifier("1.2.840.113549.1.1.4") - RSA_WITH_SHA1 = ObjectIdentifier("1.2.840.113549.1.1.5") - # This is an alternate OID for RSA with SHA1 that is occasionally seen - _RSA_WITH_SHA1 = ObjectIdentifier("1.3.14.3.2.29") - RSA_WITH_SHA224 = ObjectIdentifier("1.2.840.113549.1.1.14") - RSA_WITH_SHA256 = ObjectIdentifier("1.2.840.113549.1.1.11") - RSA_WITH_SHA384 = ObjectIdentifier("1.2.840.113549.1.1.12") - RSA_WITH_SHA512 = ObjectIdentifier("1.2.840.113549.1.1.13") - RSA_WITH_SHA3_224 = ObjectIdentifier("2.16.840.1.101.3.4.3.13") - RSA_WITH_SHA3_256 = ObjectIdentifier("2.16.840.1.101.3.4.3.14") - RSA_WITH_SHA3_384 = ObjectIdentifier("2.16.840.1.101.3.4.3.15") - RSA_WITH_SHA3_512 = ObjectIdentifier("2.16.840.1.101.3.4.3.16") - RSASSA_PSS = ObjectIdentifier("1.2.840.113549.1.1.10") - ECDSA_WITH_SHA1 = ObjectIdentifier("1.2.840.10045.4.1") - ECDSA_WITH_SHA224 = ObjectIdentifier("1.2.840.10045.4.3.1") - ECDSA_WITH_SHA256 = ObjectIdentifier("1.2.840.10045.4.3.2") - ECDSA_WITH_SHA384 = ObjectIdentifier("1.2.840.10045.4.3.3") - ECDSA_WITH_SHA512 = ObjectIdentifier("1.2.840.10045.4.3.4") - ECDSA_WITH_SHA3_224 = ObjectIdentifier("2.16.840.1.101.3.4.3.9") - ECDSA_WITH_SHA3_256 = ObjectIdentifier("2.16.840.1.101.3.4.3.10") - ECDSA_WITH_SHA3_384 = ObjectIdentifier("2.16.840.1.101.3.4.3.11") - ECDSA_WITH_SHA3_512 = ObjectIdentifier("2.16.840.1.101.3.4.3.12") - DSA_WITH_SHA1 = ObjectIdentifier("1.2.840.10040.4.3") - DSA_WITH_SHA224 = ObjectIdentifier("2.16.840.1.101.3.4.3.1") - DSA_WITH_SHA256 = ObjectIdentifier("2.16.840.1.101.3.4.3.2") - DSA_WITH_SHA384 = ObjectIdentifier("2.16.840.1.101.3.4.3.3") - DSA_WITH_SHA512 = ObjectIdentifier("2.16.840.1.101.3.4.3.4") - ED25519 = ObjectIdentifier("1.3.101.112") - ED448 = ObjectIdentifier("1.3.101.113") - GOSTR3411_94_WITH_3410_2001 = ObjectIdentifier("1.2.643.2.2.3") - GOSTR3410_2012_WITH_3411_2012_256 = ObjectIdentifier("1.2.643.7.1.1.3.2") - GOSTR3410_2012_WITH_3411_2012_512 = ObjectIdentifier("1.2.643.7.1.1.3.3") - - -_SIG_OIDS_TO_HASH: dict[ObjectIdentifier, hashes.HashAlgorithm | None] = { - SignatureAlgorithmOID.RSA_WITH_MD5: hashes.MD5(), - SignatureAlgorithmOID.RSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID._RSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID.RSA_WITH_SHA224: hashes.SHA224(), - SignatureAlgorithmOID.RSA_WITH_SHA256: hashes.SHA256(), - SignatureAlgorithmOID.RSA_WITH_SHA384: hashes.SHA384(), - SignatureAlgorithmOID.RSA_WITH_SHA512: hashes.SHA512(), - SignatureAlgorithmOID.RSA_WITH_SHA3_224: hashes.SHA3_224(), - SignatureAlgorithmOID.RSA_WITH_SHA3_256: hashes.SHA3_256(), - SignatureAlgorithmOID.RSA_WITH_SHA3_384: hashes.SHA3_384(), - SignatureAlgorithmOID.RSA_WITH_SHA3_512: hashes.SHA3_512(), - SignatureAlgorithmOID.ECDSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID.ECDSA_WITH_SHA224: hashes.SHA224(), - SignatureAlgorithmOID.ECDSA_WITH_SHA256: hashes.SHA256(), - SignatureAlgorithmOID.ECDSA_WITH_SHA384: hashes.SHA384(), - SignatureAlgorithmOID.ECDSA_WITH_SHA512: hashes.SHA512(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_224: hashes.SHA3_224(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_256: hashes.SHA3_256(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_384: hashes.SHA3_384(), - SignatureAlgorithmOID.ECDSA_WITH_SHA3_512: hashes.SHA3_512(), - SignatureAlgorithmOID.DSA_WITH_SHA1: hashes.SHA1(), - SignatureAlgorithmOID.DSA_WITH_SHA224: hashes.SHA224(), - SignatureAlgorithmOID.DSA_WITH_SHA256: hashes.SHA256(), - SignatureAlgorithmOID.ED25519: None, - SignatureAlgorithmOID.ED448: None, - SignatureAlgorithmOID.GOSTR3411_94_WITH_3410_2001: None, - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_256: None, - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_512: None, -} - - -class HashAlgorithmOID: - SHA1 = ObjectIdentifier("1.3.14.3.2.26") - SHA224 = ObjectIdentifier("2.16.840.1.101.3.4.2.4") - SHA256 = ObjectIdentifier("2.16.840.1.101.3.4.2.1") - SHA384 = ObjectIdentifier("2.16.840.1.101.3.4.2.2") - SHA512 = ObjectIdentifier("2.16.840.1.101.3.4.2.3") - SHA3_224 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.224") - SHA3_256 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.256") - SHA3_384 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.384") - SHA3_512 = ObjectIdentifier("1.3.6.1.4.1.37476.3.2.1.99.7.512") - SHA3_224_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.7") - SHA3_256_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.8") - SHA3_384_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.9") - SHA3_512_NIST = ObjectIdentifier("2.16.840.1.101.3.4.2.10") - - -class PublicKeyAlgorithmOID: - DSA = ObjectIdentifier("1.2.840.10040.4.1") - EC_PUBLIC_KEY = ObjectIdentifier("1.2.840.10045.2.1") - RSAES_PKCS1_v1_5 = ObjectIdentifier("1.2.840.113549.1.1.1") - RSASSA_PSS = ObjectIdentifier("1.2.840.113549.1.1.10") - X25519 = ObjectIdentifier("1.3.101.110") - X448 = ObjectIdentifier("1.3.101.111") - ED25519 = ObjectIdentifier("1.3.101.112") - ED448 = ObjectIdentifier("1.3.101.113") - - -class ExtendedKeyUsageOID: - SERVER_AUTH = ObjectIdentifier("1.3.6.1.5.5.7.3.1") - CLIENT_AUTH = ObjectIdentifier("1.3.6.1.5.5.7.3.2") - CODE_SIGNING = ObjectIdentifier("1.3.6.1.5.5.7.3.3") - EMAIL_PROTECTION = ObjectIdentifier("1.3.6.1.5.5.7.3.4") - TIME_STAMPING = ObjectIdentifier("1.3.6.1.5.5.7.3.8") - OCSP_SIGNING = ObjectIdentifier("1.3.6.1.5.5.7.3.9") - ANY_EXTENDED_KEY_USAGE = ObjectIdentifier("2.5.29.37.0") - SMARTCARD_LOGON = ObjectIdentifier("1.3.6.1.4.1.311.20.2.2") - KERBEROS_PKINIT_KDC = ObjectIdentifier("1.3.6.1.5.2.3.5") - IPSEC_IKE = ObjectIdentifier("1.3.6.1.5.5.7.3.17") - BUNDLE_SECURITY = ObjectIdentifier("1.3.6.1.5.5.7.3.35") - CERTIFICATE_TRANSPARENCY = ObjectIdentifier("1.3.6.1.4.1.11129.2.4.4") - - -class OtherNameFormOID: - PERMANENT_IDENTIFIER = ObjectIdentifier("1.3.6.1.5.5.7.8.3") - HW_MODULE_NAME = ObjectIdentifier("1.3.6.1.5.5.7.8.4") - DNS_SRV = ObjectIdentifier("1.3.6.1.5.5.7.8.7") - NAI_REALM = ObjectIdentifier("1.3.6.1.5.5.7.8.8") - SMTP_UTF8_MAILBOX = ObjectIdentifier("1.3.6.1.5.5.7.8.9") - ACP_NODE_NAME = ObjectIdentifier("1.3.6.1.5.5.7.8.10") - BUNDLE_EID = ObjectIdentifier("1.3.6.1.5.5.7.8.11") - - -class AuthorityInformationAccessOID: - CA_ISSUERS = ObjectIdentifier("1.3.6.1.5.5.7.48.2") - OCSP = ObjectIdentifier("1.3.6.1.5.5.7.48.1") - - -class SubjectInformationAccessOID: - CA_REPOSITORY = ObjectIdentifier("1.3.6.1.5.5.7.48.5") - - -class CertificatePoliciesOID: - CPS_QUALIFIER = ObjectIdentifier("1.3.6.1.5.5.7.2.1") - CPS_USER_NOTICE = ObjectIdentifier("1.3.6.1.5.5.7.2.2") - ANY_POLICY = ObjectIdentifier("2.5.29.32.0") - - -class AttributeOID: - CHALLENGE_PASSWORD = ObjectIdentifier("1.2.840.113549.1.9.7") - UNSTRUCTURED_NAME = ObjectIdentifier("1.2.840.113549.1.9.2") - - -_OID_NAMES = { - NameOID.COMMON_NAME: "commonName", - NameOID.COUNTRY_NAME: "countryName", - NameOID.LOCALITY_NAME: "localityName", - NameOID.STATE_OR_PROVINCE_NAME: "stateOrProvinceName", - NameOID.STREET_ADDRESS: "streetAddress", - NameOID.ORGANIZATION_NAME: "organizationName", - NameOID.ORGANIZATIONAL_UNIT_NAME: "organizationalUnitName", - NameOID.SERIAL_NUMBER: "serialNumber", - NameOID.SURNAME: "surname", - NameOID.GIVEN_NAME: "givenName", - NameOID.TITLE: "title", - NameOID.GENERATION_QUALIFIER: "generationQualifier", - NameOID.X500_UNIQUE_IDENTIFIER: "x500UniqueIdentifier", - NameOID.DN_QUALIFIER: "dnQualifier", - NameOID.PSEUDONYM: "pseudonym", - NameOID.USER_ID: "userID", - NameOID.DOMAIN_COMPONENT: "domainComponent", - NameOID.EMAIL_ADDRESS: "emailAddress", - NameOID.JURISDICTION_COUNTRY_NAME: "jurisdictionCountryName", - NameOID.JURISDICTION_LOCALITY_NAME: "jurisdictionLocalityName", - NameOID.JURISDICTION_STATE_OR_PROVINCE_NAME: ( - "jurisdictionStateOrProvinceName" - ), - NameOID.BUSINESS_CATEGORY: "businessCategory", - NameOID.POSTAL_ADDRESS: "postalAddress", - NameOID.POSTAL_CODE: "postalCode", - NameOID.INN: "INN", - NameOID.OGRN: "OGRN", - NameOID.SNILS: "SNILS", - NameOID.UNSTRUCTURED_NAME: "unstructuredName", - SignatureAlgorithmOID.RSA_WITH_MD5: "md5WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA1: "sha1WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA224: "sha224WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA256: "sha256WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA384: "sha384WithRSAEncryption", - SignatureAlgorithmOID.RSA_WITH_SHA512: "sha512WithRSAEncryption", - SignatureAlgorithmOID.RSASSA_PSS: "rsassaPss", - SignatureAlgorithmOID.ECDSA_WITH_SHA1: "ecdsa-with-SHA1", - SignatureAlgorithmOID.ECDSA_WITH_SHA224: "ecdsa-with-SHA224", - SignatureAlgorithmOID.ECDSA_WITH_SHA256: "ecdsa-with-SHA256", - SignatureAlgorithmOID.ECDSA_WITH_SHA384: "ecdsa-with-SHA384", - SignatureAlgorithmOID.ECDSA_WITH_SHA512: "ecdsa-with-SHA512", - SignatureAlgorithmOID.DSA_WITH_SHA1: "dsa-with-sha1", - SignatureAlgorithmOID.DSA_WITH_SHA224: "dsa-with-sha224", - SignatureAlgorithmOID.DSA_WITH_SHA256: "dsa-with-sha256", - SignatureAlgorithmOID.ED25519: "ed25519", - SignatureAlgorithmOID.ED448: "ed448", - SignatureAlgorithmOID.GOSTR3411_94_WITH_3410_2001: ( - "GOST R 34.11-94 with GOST R 34.10-2001" - ), - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_256: ( - "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" - ), - SignatureAlgorithmOID.GOSTR3410_2012_WITH_3411_2012_512: ( - "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" - ), - HashAlgorithmOID.SHA1: "sha1", - HashAlgorithmOID.SHA224: "sha224", - HashAlgorithmOID.SHA256: "sha256", - HashAlgorithmOID.SHA384: "sha384", - HashAlgorithmOID.SHA512: "sha512", - HashAlgorithmOID.SHA3_224: "sha3_224", - HashAlgorithmOID.SHA3_256: "sha3_256", - HashAlgorithmOID.SHA3_384: "sha3_384", - HashAlgorithmOID.SHA3_512: "sha3_512", - HashAlgorithmOID.SHA3_224_NIST: "sha3_224", - HashAlgorithmOID.SHA3_256_NIST: "sha3_256", - HashAlgorithmOID.SHA3_384_NIST: "sha3_384", - HashAlgorithmOID.SHA3_512_NIST: "sha3_512", - PublicKeyAlgorithmOID.DSA: "dsaEncryption", - PublicKeyAlgorithmOID.EC_PUBLIC_KEY: "id-ecPublicKey", - PublicKeyAlgorithmOID.RSAES_PKCS1_v1_5: "rsaEncryption", - PublicKeyAlgorithmOID.X25519: "X25519", - PublicKeyAlgorithmOID.X448: "X448", - ExtendedKeyUsageOID.SERVER_AUTH: "serverAuth", - ExtendedKeyUsageOID.CLIENT_AUTH: "clientAuth", - ExtendedKeyUsageOID.CODE_SIGNING: "codeSigning", - ExtendedKeyUsageOID.EMAIL_PROTECTION: "emailProtection", - ExtendedKeyUsageOID.TIME_STAMPING: "timeStamping", - ExtendedKeyUsageOID.OCSP_SIGNING: "OCSPSigning", - ExtendedKeyUsageOID.SMARTCARD_LOGON: "msSmartcardLogin", - ExtendedKeyUsageOID.KERBEROS_PKINIT_KDC: "pkInitKDC", - ExtensionOID.SUBJECT_DIRECTORY_ATTRIBUTES: "subjectDirectoryAttributes", - ExtensionOID.SUBJECT_KEY_IDENTIFIER: "subjectKeyIdentifier", - ExtensionOID.KEY_USAGE: "keyUsage", - ExtensionOID.PRIVATE_KEY_USAGE_PERIOD: "privateKeyUsagePeriod", - ExtensionOID.SUBJECT_ALTERNATIVE_NAME: "subjectAltName", - ExtensionOID.ISSUER_ALTERNATIVE_NAME: "issuerAltName", - ExtensionOID.BASIC_CONSTRAINTS: "basicConstraints", - ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS: ( - "signedCertificateTimestampList" - ), - ExtensionOID.SIGNED_CERTIFICATE_TIMESTAMPS: ( - "signedCertificateTimestampList" - ), - ExtensionOID.PRECERT_POISON: "ctPoison", - ExtensionOID.MS_CERTIFICATE_TEMPLATE: "msCertificateTemplate", - ExtensionOID.ADMISSIONS: "Admissions", - CRLEntryExtensionOID.CRL_REASON: "cRLReason", - CRLEntryExtensionOID.INVALIDITY_DATE: "invalidityDate", - CRLEntryExtensionOID.CERTIFICATE_ISSUER: "certificateIssuer", - ExtensionOID.NAME_CONSTRAINTS: "nameConstraints", - ExtensionOID.CRL_DISTRIBUTION_POINTS: "cRLDistributionPoints", - ExtensionOID.CERTIFICATE_POLICIES: "certificatePolicies", - ExtensionOID.POLICY_MAPPINGS: "policyMappings", - ExtensionOID.AUTHORITY_KEY_IDENTIFIER: "authorityKeyIdentifier", - ExtensionOID.POLICY_CONSTRAINTS: "policyConstraints", - ExtensionOID.EXTENDED_KEY_USAGE: "extendedKeyUsage", - ExtensionOID.FRESHEST_CRL: "freshestCRL", - ExtensionOID.INHIBIT_ANY_POLICY: "inhibitAnyPolicy", - ExtensionOID.ISSUING_DISTRIBUTION_POINT: "issuingDistributionPoint", - ExtensionOID.AUTHORITY_INFORMATION_ACCESS: "authorityInfoAccess", - ExtensionOID.SUBJECT_INFORMATION_ACCESS: "subjectInfoAccess", - ExtensionOID.OCSP_NO_CHECK: "OCSPNoCheck", - ExtensionOID.CRL_NUMBER: "cRLNumber", - ExtensionOID.DELTA_CRL_INDICATOR: "deltaCRLIndicator", - ExtensionOID.TLS_FEATURE: "TLSFeature", - AuthorityInformationAccessOID.OCSP: "OCSP", - AuthorityInformationAccessOID.CA_ISSUERS: "caIssuers", - SubjectInformationAccessOID.CA_REPOSITORY: "caRepository", - CertificatePoliciesOID.CPS_QUALIFIER: "id-qt-cps", - CertificatePoliciesOID.CPS_USER_NOTICE: "id-qt-unotice", - OCSPExtensionOID.NONCE: "OCSPNonce", - AttributeOID.CHALLENGE_PASSWORD: "challengePassword", -} diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/__init__.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/__init__.py deleted file mode 100644 index be68373..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from cryptography.hazmat.asn1.asn1 import encode_der, sequence - -__all__ = [ - "encode_der", - "sequence", -] diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/asn1.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/asn1.py deleted file mode 100644 index dedad6f..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/asn1/asn1.py +++ /dev/null @@ -1,116 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -import dataclasses -import sys -import typing - -if sys.version_info < (3, 11): - import typing_extensions - - # We use the `include_extras` parameter of `get_type_hints`, which was - # added in Python 3.9. This can be replaced by the `typing` version - # once the min version is >= 3.9 - if sys.version_info < (3, 9): - get_type_hints = typing_extensions.get_type_hints - else: - get_type_hints = typing.get_type_hints -else: - get_type_hints = typing.get_type_hints - -from cryptography.hazmat.bindings._rust import declarative_asn1 - -T = typing.TypeVar("T", covariant=True) -U = typing.TypeVar("U") - - -encode_der = declarative_asn1.encode_der - - -def _normalize_field_type( - field_type: typing.Any, field_name: str -) -> declarative_asn1.AnnotatedType: - annotation = declarative_asn1.Annotation() - - if hasattr(field_type, "__asn1_root__"): - annotated_root = field_type.__asn1_root__ - if not isinstance(annotated_root, declarative_asn1.AnnotatedType): - raise TypeError(f"unsupported root type: {annotated_root}") - return annotated_root - else: - rust_field_type = declarative_asn1.non_root_python_to_rust(field_type) - - return declarative_asn1.AnnotatedType(rust_field_type, annotation) - - -def _annotate_fields( - raw_fields: dict[str, type], -) -> dict[str, declarative_asn1.AnnotatedType]: - fields = {} - for field_name, field_type in raw_fields.items(): - # Recursively normalize the field type into something that the - # Rust code can understand. - annotated_field_type = _normalize_field_type(field_type, field_name) - fields[field_name] = annotated_field_type - - return fields - - -def _register_asn1_sequence(cls: type[U]) -> None: - raw_fields = get_type_hints(cls, include_extras=True) - root = declarative_asn1.AnnotatedType( - declarative_asn1.Type.Sequence(cls, _annotate_fields(raw_fields)), - declarative_asn1.Annotation(), - ) - - setattr(cls, "__asn1_root__", root) - - -# Due to https://github.com/python/mypy/issues/19731, we can't define an alias -# for `dataclass_transform` that conditionally points to `typing` or -# `typing_extensions` depending on the Python version (like we do for -# `get_type_hints`). -# We work around it by making the whole decorated class conditional on the -# Python version. -if sys.version_info < (3, 11): - - @typing_extensions.dataclass_transform(kw_only_default=True) - def sequence(cls: type[U]) -> type[U]: - # We use `dataclasses.dataclass` to add an __init__ method - # to the class with keyword-only parameters. - if sys.version_info >= (3, 10): - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - # `match_args` was added in Python 3.10 and defaults - # to True - match_args=False, - # `kw_only` was added in Python 3.10 and defaults to - # False - kw_only=True, - )(cls) - else: - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - )(cls) - _register_asn1_sequence(dataclass_cls) - return dataclass_cls - -else: - - @typing.dataclass_transform(kw_only_default=True) - def sequence(cls: type[U]) -> type[U]: - # Only add an __init__ method, with keyword-only - # parameters. - dataclass_cls = dataclasses.dataclass( - repr=False, - eq=False, - match_args=False, - kw_only=True, - )(cls) - _register_asn1_sequence(dataclass_cls) - return dataclass_cls diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/__init__.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/__init__.py deleted file mode 100644 index b4400aa..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from typing import Any - - -def default_backend() -> Any: - from cryptography.hazmat.backends.openssl.backend import backend - - return backend diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/__init__.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/__init__.py deleted file mode 100644 index 51b0447..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.backends.openssl.backend import backend - -__all__ = ["backend"] diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/backend.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/backend.py deleted file mode 100644 index 248b8c5..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/backend.py +++ /dev/null @@ -1,302 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. - -from __future__ import annotations - -from cryptography.hazmat.bindings._rust import openssl as rust_openssl -from cryptography.hazmat.bindings.openssl import binding -from cryptography.hazmat.primitives import hashes -from cryptography.hazmat.primitives._asymmetric import AsymmetricPadding -from cryptography.hazmat.primitives.asymmetric import ec -from cryptography.hazmat.primitives.asymmetric import utils as asym_utils -from cryptography.hazmat.primitives.asymmetric.padding import ( - MGF1, - OAEP, - PSS, - PKCS1v15, -) -from cryptography.hazmat.primitives.ciphers import ( - CipherAlgorithm, -) -from cryptography.hazmat.primitives.ciphers.algorithms import ( - AES, -) -from cryptography.hazmat.primitives.ciphers.modes import ( - CBC, - Mode, -) - - -class Backend: - """ - OpenSSL API binding interfaces. - """ - - name = "openssl" - - # TripleDES encryption is disallowed/deprecated throughout 2023 in - # FIPS 140-3. To keep it simple we denylist any use of TripleDES (TDEA). - _fips_ciphers = (AES,) - # Sometimes SHA1 is still permissible. That logic is contained - # within the various *_supported methods. - _fips_hashes = ( - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, - hashes.SHA512_224, - hashes.SHA512_256, - hashes.SHA3_224, - hashes.SHA3_256, - hashes.SHA3_384, - hashes.SHA3_512, - hashes.SHAKE128, - hashes.SHAKE256, - ) - _fips_ecdh_curves = ( - ec.SECP224R1, - ec.SECP256R1, - ec.SECP384R1, - ec.SECP521R1, - ) - _fips_rsa_min_key_size = 2048 - _fips_rsa_min_public_exponent = 65537 - _fips_dsa_min_modulus = 1 << 2048 - _fips_dh_min_key_size = 2048 - _fips_dh_min_modulus = 1 << _fips_dh_min_key_size - - def __init__(self) -> None: - self._binding = binding.Binding() - self._ffi = self._binding.ffi - self._lib = self._binding.lib - self._fips_enabled = rust_openssl.is_fips_enabled() - - def __repr__(self) -> str: - return ( - f"" - ) - - def openssl_assert(self, ok: bool) -> None: - return binding._openssl_assert(ok) - - def _enable_fips(self) -> None: - # This function enables FIPS mode for OpenSSL 3.0.0 on installs that - # have the FIPS provider installed properly. - rust_openssl.enable_fips(rust_openssl._providers) - assert rust_openssl.is_fips_enabled() - self._fips_enabled = rust_openssl.is_fips_enabled() - - def openssl_version_text(self) -> str: - """ - Friendly string name of the loaded OpenSSL library. This is not - necessarily the same version as it was compiled against. - - Example: OpenSSL 3.2.1 30 Jan 2024 - """ - return rust_openssl.openssl_version_text() - - def openssl_version_number(self) -> int: - return rust_openssl.openssl_version() - - def hash_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - if self._fips_enabled and not isinstance(algorithm, self._fips_hashes): - return False - - return rust_openssl.hashes.hash_supported(algorithm) - - def signature_hash_supported( - self, algorithm: hashes.HashAlgorithm - ) -> bool: - # Dedicated check for hashing algorithm use in message digest for - # signatures, e.g. RSA PKCS#1 v1.5 SHA1 (sha1WithRSAEncryption). - if self._fips_enabled and isinstance(algorithm, hashes.SHA1): - return False - return self.hash_supported(algorithm) - - def scrypt_supported(self) -> bool: - if self._fips_enabled: - return False - else: - return hasattr(rust_openssl.kdf.Scrypt, "derive") - - def argon2_supported(self) -> bool: - if self._fips_enabled: - return False - else: - return hasattr(rust_openssl.kdf.Argon2id, "derive") - - def hmac_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - # FIPS mode still allows SHA1 for HMAC - if self._fips_enabled and isinstance(algorithm, hashes.SHA1): - return True - if rust_openssl.CRYPTOGRAPHY_IS_AWSLC: - return isinstance( - algorithm, - ( - hashes.SHA1, - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, - hashes.SHA512_224, - hashes.SHA512_256, - ), - ) - return self.hash_supported(algorithm) - - def cipher_supported(self, cipher: CipherAlgorithm, mode: Mode) -> bool: - if self._fips_enabled: - # FIPS mode requires AES. TripleDES is disallowed/deprecated in - # FIPS 140-3. - if not isinstance(cipher, self._fips_ciphers): - return False - - return rust_openssl.ciphers.cipher_supported(cipher, mode) - - def pbkdf2_hmac_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - return self.hmac_supported(algorithm) - - def _consume_errors(self) -> list[rust_openssl.OpenSSLError]: - return rust_openssl.capture_error_stack() - - def _oaep_hash_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - if self._fips_enabled and isinstance(algorithm, hashes.SHA1): - return False - - return isinstance( - algorithm, - ( - hashes.SHA1, - hashes.SHA224, - hashes.SHA256, - hashes.SHA384, - hashes.SHA512, - ), - ) - - def rsa_padding_supported(self, padding: AsymmetricPadding) -> bool: - if isinstance(padding, PKCS1v15): - return True - elif isinstance(padding, PSS) and isinstance(padding._mgf, MGF1): - # FIPS 186-4 only allows salt length == digest length for PSS - # It is technically acceptable to set an explicit salt length - # equal to the digest length and this will incorrectly fail, but - # since we don't do that in the tests and this method is - # private, we'll ignore that until we need to do otherwise. - if ( - self._fips_enabled - and padding._salt_length != PSS.DIGEST_LENGTH - ): - return False - return self.hash_supported(padding._mgf._algorithm) - elif isinstance(padding, OAEP) and isinstance(padding._mgf, MGF1): - return self._oaep_hash_supported( - padding._mgf._algorithm - ) and self._oaep_hash_supported(padding._algorithm) - else: - return False - - def rsa_encryption_supported(self, padding: AsymmetricPadding) -> bool: - if self._fips_enabled and isinstance(padding, PKCS1v15): - return False - else: - return self.rsa_padding_supported(padding) - - def dsa_supported(self) -> bool: - return ( - not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not self._fips_enabled - ) - - def dsa_hash_supported(self, algorithm: hashes.HashAlgorithm) -> bool: - if not self.dsa_supported(): - return False - return self.signature_hash_supported(algorithm) - - def cmac_algorithm_supported(self, algorithm) -> bool: - return self.cipher_supported( - algorithm, CBC(b"\x00" * algorithm.block_size) - ) - - def elliptic_curve_supported(self, curve: ec.EllipticCurve) -> bool: - if self._fips_enabled and not isinstance( - curve, self._fips_ecdh_curves - ): - return False - - return rust_openssl.ec.curve_supported(curve) - - def elliptic_curve_signature_algorithm_supported( - self, - signature_algorithm: ec.EllipticCurveSignatureAlgorithm, - curve: ec.EllipticCurve, - ) -> bool: - # We only support ECDSA right now. - if not isinstance(signature_algorithm, ec.ECDSA): - return False - - return self.elliptic_curve_supported(curve) and ( - isinstance(signature_algorithm.algorithm, asym_utils.Prehashed) - or self.hash_supported(signature_algorithm.algorithm) - ) - - def elliptic_curve_exchange_algorithm_supported( - self, algorithm: ec.ECDH, curve: ec.EllipticCurve - ) -> bool: - return self.elliptic_curve_supported(curve) and isinstance( - algorithm, ec.ECDH - ) - - def dh_supported(self) -> bool: - return ( - not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not rust_openssl.CRYPTOGRAPHY_IS_AWSLC - ) - - def dh_x942_serialization_supported(self) -> bool: - return self._lib.Cryptography_HAS_EVP_PKEY_DHX == 1 - - def x25519_supported(self) -> bool: - return not self._fips_enabled - - def x448_supported(self) -> bool: - if self._fips_enabled: - return False - return ( - not rust_openssl.CRYPTOGRAPHY_IS_LIBRESSL - and not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not rust_openssl.CRYPTOGRAPHY_IS_AWSLC - ) - - def ed25519_supported(self) -> bool: - return not self._fips_enabled - - def ed448_supported(self) -> bool: - if self._fips_enabled: - return False - return ( - not rust_openssl.CRYPTOGRAPHY_IS_LIBRESSL - and not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not rust_openssl.CRYPTOGRAPHY_IS_AWSLC - ) - - def ecdsa_deterministic_supported(self) -> bool: - return ( - rust_openssl.CRYPTOGRAPHY_OPENSSL_320_OR_GREATER - and not self._fips_enabled - ) - - def poly1305_supported(self) -> bool: - return not self._fips_enabled - - def pkcs7_supported(self) -> bool: - return ( - not rust_openssl.CRYPTOGRAPHY_IS_BORINGSSL - and not rust_openssl.CRYPTOGRAPHY_IS_AWSLC - ) - - -backend = Backend() diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/__init__.py b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/__init__.py deleted file mode 100644 index b509336..0000000 --- a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. diff --git a/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust.abi3.so b/backend/venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust.abi3.so deleted file mode 100755 index 973d39ef2e29c2af3fdf3b791728024cf5d08fba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21013520 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�l`+bgRSoBEN5Vq09tuM1)L4< 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%0DZL$N$$s|+X6Ik2+eB&l>}Sw~z5RCcEM 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

rnhq zGE-BERvWIm2p7^1BGZ0mlqNG*Yt@4fyJ|B(ooQ8Vfrqa%+4K&k(O;F(w4^xD#{KXr zX2X%KbMgs0lW#LKl8YuyNSGTIeX8+cS5f=L6}GSI_0p6yAT^@37px&EqmlFMwk;GE zP;mm$T{e0n6r!lTQKDH}DHrr z{gbJO>wiEIv+2A&$68x$I_uspRd_}HHrZW}!9Z+6juo@!bBx8>)_qmmQeKAXOBSVd*AxC>Q) z8Yq++NG`1^7HaraST3ci$`HdZZ7)`yua{H}SJ6tPtD>*mZ>(^4x9$5$ z9QA;r!;4I!bzur8njKZkYiw(@A|}k@p5MB#AUj{nH#(3xii}7W_Ga`-lzyc&v88vh zc+#mc%y8i&P!OX?MDv8aj`|=Z;@jOlDvyW?K3kuNKVExQj)>c>N5m_6hjaJ{4jUC& z3hHl?p)^3O=Y9TQwEo*4NQlSBLkOFChHo3VRS}L|puV}vgDj?|`4}jrW3D+#h(KeQGt-^a8`3z76DEq70T!B^;v5rny(Y z(C5c@JvAnQd?b%GL-TnD}q@Cx7kpG

UB$PluV>vveW?bp0(7#)!s|o zIJ2n4?^te}xiRucGQV-=CZz7PR57XlA(gm0IcQLF(?seA{$cY$$;}ceIdgck#h@gW zT;(512PG2?myr8~LCGx}W{}u=P;#q=vq)?^D7j6;sU*qa$eri%1ihRQ{f}XNNfgn_Z^hnCy}~| zPVun+pyYmuRI7g&Iw*Mn3erCuI4C(Rk-E%396Ts_P$G4{e>h}NvLccCx_=lxD0yfi zb%K95Y*2DUA~nW895E<)cp`O}e>ieba%3X49}kT)zYODjkrc+_+wU}LNZ1IP{WDFi z7HGQY6`HqUov>gBt&gfipsmnjdKA8`)H0vMy_M?mNjzMsZl5eC*{LK;o0fAl(}hu` zxmmdkL zREzyYbF5QEm#GLkN_%9AzQF@A{L#oM_Td73;VwL4Ds}mtCGno{$k)|sbw%2y;_LGy zK$ay{dlZWO#?_6=(WKF+R8VhA%?1N=vh-(6lVoOAi|w^QCbky#EW`Uam)zP+l6hn_$CB7~ zmCP)|hQQWF%hdJQV=HUe`B;;_cxX-fvLSW&PwO~fpa!>WUHW(qD6!+V1i0G-#dZf013$wCSZQ06ht}P%`Tl`E^hY1R>pVn#i6V1?%D(`&DSKh&|DYmAr zX$&1{8C$63vUxTqCGL(YV9V&(e>T1|AaVEa?>$m-{HRA7->FD6uT}c)hnwDE#NHt0 za-?>}8#SQK3;Ot2d0yMDsrk?I{C~(=iOnl!rO?7FmB_Kwr17 zA$W_-#Tlr|;KmF29rm_l7D)Cq*-NajCr!pzT*&PxbX4r%CIO8?A4ms&ilF^npE2Ip1Ta?tIqr2!eJon2LL+ zn)BQJNk)ED^3!Ziy?ve5Kbd;_ap}jax4<~A1TU{ed71ajtu4d`3c-t?6=fGj>r>WT z6J0hCaw5crt{3Yzbkn0G)@|sfM@g)=*%%pBPSTGdKdRCjigk18MHPp=-^Vt4{&;=1 zsXvp7{v)Ks`9yH)TUndL=dzt!DVSTXMLcB(|cqA>}ppRuytT86Dc%+p+ zDb{m7Db`!2B#PZ~#v$9k(x=f+EY6AH160 z{Typfs^%t{d3z#ByAA!-cywl#$2ZK>rDwp3lW`DNqOatfl(ukX8yjx3J6g1(krIdH zcq(wOa^s#CtjrYJ3}Qb@(y1-X4vJQYu<2-Hdum-~PpxZB*ZDoO=>@Co$u`oWb6?|$ zyHBJcP`fYNlPw)^a+A1(quQQRW;$ZqC?%zGk3!{+Mdcok%DouZ_hqQuqlh3q9+f*b zR=L?;$l18)f2ad9pjp616$h{EV}YUbY}DtmK*QzG(8q`5B#$S*8I+#BZTviocj6E**)P!ZvjFja`12ww^AveK~q{t6l|bOS8S`4$*TZQ%0Fp+HM&Xw#7@dAm1+Gw!<7Lp(J_Yh@q-4yu zi`O0-Y*bk=!ISArF}E(l09)<;+zS`)>W&#<$WqQDrvP`5VfIe4v%5K5 zD8i}={#c*F;XJ(JZqUO3od5u;ui=5squF<*_tT5BbF2>5tk=2oc*V!Pr;sl(G%-sw^XS9jiU)-t0NXHTtH-{o!xau(_|HrI+h4tlmZBGP}!G#w9J3 zQ*NCPo`$YI(oaJVpvmkQK5}1p8FUIR?^@Iv@ZqZLgFGkq@^yA+-s0iSle1v-M|yKh z4v1-zf~rc#<9uLM=j(%&;JtrU^1mFfSEun|uK@GD53!)z0V_4D1!_0xC6E!o)*$}y z4sT3lR3X9~jtSFyqT7vc<)Kb5@7*nKq4&!|f#-C0=RawBe~M_n{T-tF{3d>6`(EZ0_j-1WXhm%BFa+nM6F zOMI!hN>3*(T>XsSzRiLk5#Nkj(HY85+DV>>|FD~)XyZXlLNg_s=qH-+1Y3gIm?X60 z5XW#RTBCJS3%)(Z+_^=sDO7i^7I)Ab#fZIRFq9Ypqwe@JrLxjr^)z1@MqmyVGPv#No01+O0{SgwW;wZ^odo z{<@9Dz&VF$HaM<*OE|q>*Zv&#z+?n_f+bQh!y|EZTyo<%rc2dbg05huEGNL~!F+OA0-1F{S#l4T?(8s7Zv$mx?1fPAyD2)-tnh4b~({dVY?0P^qLtaFNAckeOY;XmuLKb%+vq~1!7u>*sJbpgLD1e$_@0A57K}o1N25W5-X>T?4_6zF&>+V&4 zF~I5Ezy`wre6QwXH&xQhrC82oc$5+cK@(<-?S0EN8AtF4J?pnYiO$S{>(Z!N7y z3l3(CX>scz7(;cksMx~k;h4P%a2yOAXt0GG(yyuywyIxuTg6q1+#9RUjM%l$tG#t@ zIL}rSr2QLtBJH*w7obJ>I8v>d{TApu4;x9J{*&Uaj>dB5+1mO3O@E(g=YhYiJ3W?G zcNsG+t?mxvuO~cf5yr-2$nVs%Cbe7I=;8jooyaf&>*WatO5D7syr;xZYQy`zGwTnS zao*R@#t5h_D^1>e!X-1N99E7il*i)ay+>Vee*Kj5>)EKadD+s@Wo0FUN(LpH7VkvB z9~ZE%OEmwJ;ZoH&t6&hPNeLA4lZQ|0YA8wSn)5YJf(x2jGO&z{qc{%(fpBG_)nI zdP*FFvyQ5IYWH?EBbFqtd0HgJSfGivqoac{Q`mr3h)Qf|RLJ*BE0~Au{ZIDv?6V$a z*Zt8GUH}gqP$GEOC;p!)V*RKcFui-!5(*Hf345?Z0uVYq2;ZC~)TzmgZ}K9Vtleii z&{&)KtdQ|-8j|wbv?44RnusU9{Y;A4Ntk(~Ld?o)wfdC$q5>|b_hc37+P_G9C~~?l z(wUWFV{o>CC4idMCiEru<`(OviEETe&&Xp7SK)H|^j&u+BCEFWJIck;`~ zWtQXP$+7t@o_sEd27O~odDbN(8l-lvKE4ENmxkQZ!HVmjgNy$N1{=eMp);io^TCuK zXW4p`&Phggo5A_PHa01JC~N)W){UhvGP<-CAHBMBJ8bwc@_qrg59*VdXD;&i?!tA@d7n% zR;|!820Fue-DOwQW8SUT8}) zkJa$^=a6AU6Zlh?UgP%e(Zo!ziW)WxHXa9>O(UkooK%sW`m|8)6>0rdAl}#sU(&ZP z)uOq@a02}VK@2n5CBHC}K`h7xu^<=3f*c0&klUCtPD*nFiB9kqKj+78Y9EAgDcCbE zt#0HOl=#gRw&B5_nP|KkrfHg@hJ6;feeV;ElAfSZ#k6bs=%8`pw))z?Lj=Zx#zYto z!wlR1A;^pW&L! zDNuL&aru&}Ar$NsX4SlCGZ#KJ}#taN!`Zl#Bij)f4yCMSfDH-3af6|eRf z!>IC{$l2rMPtP;!Nq@1<`zTWMR*QR+M0TloL<%R(R)fE}nzyHTee*SU#h3a8m+i`< zIT(K=f<`5;KLVsa9IzD5CPH!sQc1oYk`hpo&LlNaB}G|V&Cgz~v<`liXc0qfd<{1@ zW$NZ|)RT^Jn%zbLSJ=PtoAwTkA4KEY6K-3siiZAH0j~txFC9I&xJ=(&@`5$`(V#HH zZUL%fR5a=h*gx$TF_&5xLg;{|-qgo-P`RYk56!}rlO;6Gv!Ob`KJ~=iv${uTsvjPm zPF(`oNIpjLa*|wS(UT~x*7byKu!`px+h3a4(zFWByUCOzQc-MC*;VNn5&g`Ow zZSNgF_Ne0zDo)&8Ik0Kvp_{Tzo&zHa+)G3H5$0+hjW7zbgfQ7hbA&k%ct0s&z{bHV z|7C2Tr_?RC+w)R5X#PJ0=DLvtO37BJI4B?F<&@Ib#el|g?5E@~Fvj#87~nHfN)meg zloFNueb;u~1xrEx*w}Kw)&l65eYheliX=YpNSR3R2Taj5fz7}GxE3kjTf6xr<4;v! zj^tejk`Y_&rIXK98duiFsu*`9PwaOSeT`d9F~*9p8>W*964axpPZFacR)lEb;1V?T zD9K`?&kQ9tG~L6aF26(O*6OjBfmg;eSC4>o2)kXiD~NPn($<<$FVYU*!`t=6zvHvrdUy3J561KR zaY9S)mX^V3C+qa2^(GC2xjkVRd`AiN^TYgZpr2dv^>Yu1Mn9W-uTMW;s3EDb;%_5y zBR2o6_49IA23uY2Vr_SNa%;#a$*o}Dd|{I?E12Gfwr=;f|3GwcUFt>iOw=YuI~kk* z^Mq^?e_(z(9INebh)6Fguq`4Eijx zwohyhJPHW7J1`%7R5xhfOAut{FQcGNp)YoiKc2G%CP-}O+XBAkqEkxE7FelvmRit( zw*~Bsh+qq-sF>jv4qN`9iHAuIfB2L1d?|3tl2E#gw75m-a?;6=mMsw53$g`bdqK8< zml+k$ciXs7isYh_FpQUyEd{0QkDZFv!cHKt)XKy#z7)%`| zj{eth*bd^rV`O-QG5aG9b3}+^NkSME!}mNY{#fU_?RT~7;y31#yOb86)b9k0EpC_7 zHsF!>c9mWnLS=ros@lVBRjcj@8NJIH21#*VFbr0l`&k`em+6B1a<*JTPXYgytV6Ab6+ca@{lQXLh}eO+Jp+UId$poP zstal9e}b5tFG(Rz<_F?}dfOo+iD@v-Un7XqHkqQrVwH{$05J;&jw@Ftu{SeKcsM@r zx6mxFRhMFZE>}e%9yuMA*;6Gxk_ZNm zH0BXYjDZ~ zEC=;&-TMWs0}c-E1t(Yuuk`K{oR0nE>e8LO!SOv+MzD)+d(}+8nr98gk@maVRp@=V z>vg~~Y>x_e?_&EzrM3&D5_zTm!U^~B*>y9(pnHrA87KQv$X(9I9}|C|omh5i#M_)2 z(MIEq(9NCLsN?CAhucgqFtOB%_K9_rha{mNZ)vra_r_N9f{AK0J%6(O`0H_U%e#8# zQf(IZFO25GvG?Lznl$eB(<`k6eE%UWAFp=XW738@KoiYlR5UYb&bq}TCUquKuTTw$ z>2gP2UDpToYiL6jF}S1rtdrNW7bR5zgB-z5RT+9{_$`}pmuH5m^4~lpMl`S)SJxdk zJ+5WpYDAVh>1TKl48ORDd#!Cd{u5~<^v1a7Pyn9%3ZENrz)l1YikmPxdW;3)z}vR4 zt)Wxje!`gKxxQ>!%!Z+5HmXwtLMQB9U+vy_kO9MTr*kB-o6s;!ATZ)Dje&0y-0p(y z`^~ybc{HZ_5eU*kYE*P#m%I_1)GQrSyaSl1OTAiudCh&K^sfQCf$`W4B{#cs(a)VZpDkY7?*gzuj>TqM1Y`=T=k^?&;#dwX$r?TA&E z->t9iplpx-vWa)SKW5m~Z(H-givz|+2fr9^w(D|J?L#~gAG~?9HhqaUZw^@@UqDs) zM{VBB{)w^fPNcs3L4v=5&8^-pAZ8Dbm?f11FIieJW%`VI!E?OZi{jNBjoqUCaK9SF zpZoR4LQ34i_~Un=MNRr4bfL(h0*rf;DND^;Lx#oc3B453I1mV7`azDgg>tfN>@0A< zq~5%ZlE=r*9A?dkc>nx$j(ErNnf6Y-1#p-Y+Ca zJd?QQRG_FUdP=?ec)dBE`tC2M1;2Cnt!)Ad zz6XC;Fam;Oa&a;}v2;mg8JhzAF?jGS3vFguc(#3v?}YgJ3qBC>Q;a3?k`PotTZnt@ zmXIjBcs8PprNY`Y$CfG_(~{VwJ4q-~e-Wh4-CJ;KZ3=w%Bj zmE3IZLdKlTTYqw(h2~YaWC@WJrLoMzwhH+R&FiSMK#;^<@>REFQuk6PyW}&eUt8i% zKItOG*WJM1tt2n*W@z5pLlOKl4=$no_e?pqQ*56fuBLBN+g2W++UxB*FdhHiwe7QSh$e> zqH5S+MjWS{J&;fGygyxcK?JQ1_`Gsb?pEcsk^*~bA#d^6yyE|GUmR#h8fjPsDJBPfJe4cPKh-B}16p-a| zrj0eTXjZweQd947iYa=ix7=#*``^OQRA>Cq97e(ZGGtc|M3-ANtImLUd65CpJ0*tX zdNKg1%l$Ewc+i&+NZ<7DdffRW)P;8c&dUEJl)u5}ZD4QxWJ~q`LxjjR_L5dl4YiC5 zHGAT^ryiA>c-q! z+Hc9t6m6^b79qSXDhQQWV&9d9t|4KpYxl^;%q$W-p@+D02U4RT~?8_*+m<)R0F7CyTM0_Egu%^g&9V)4NPAhp5(o)O^IPb8GL7rv_l|9q5*QfI*I} zYOdU5V)QaiAD^QXU72C^&zs2)K8Qy9ncreR>)c(Gf%_ASVH@9FH}-7JRPuR4k=w@o zpC4b?!RfWpZEXTRGIE4art>%)TfKW1vD;`b*jTlL=UsU%V8d;VDTDJO+QOb%{Whys zzp%4lnU!3y7PMi#^w`s)RXpJrv5jBp)NA%+$5i1L@w=^BUsh&1dd~ldUN}oUy@Dsv z-$$KZV3d!KFAvuhGOGFrDTf2SbHnHeM;nMD1@*+oTFSMKl_Sp5dH&i9v~pk*M%Ji) zt4IQWsm-v55ln=6Z{ZJwmdwlZl5wom9qM6Jv2*-vXZKV%N^nM3`Pw|`nE z>+5u@nLz0Ub9@n5({<@rvfmbk^F9B|4Ai2puR%Gd{ax`(ZJ~kLDmn93+WUDnSR>nY zC0TO&A)u9O(`bqcfjM6$Q%{Gr8qOv&(M_gkACK&`KMuhQd*1cI6J5^3E&Sx&OcC(G<= zlEmGQLe5g!a$EmV%x!6!^5h6kn3SkOUkvk^lqXJ@yQhZwcXRYZJehwoQU!VO{Wim+ zP+B`;MZaX^c(;5RsZyee>&Yi{oX&>;Yyk48UJ*VfA?4abg6$5+SzWCKTRhJS`D4|!B zFnV}7hmJOa9rRzGKPd-Z6RAhkx)&e9ZSUa}Gz3J8gn)%tkm(*-V4P%w!$aNIhQt&D z!>rnj5r!e#D9~gnnu&0Y(0EW8k{S;o+1;1acnGAql{f^|LfJlpjnA)i*pY0}=a@$-dtYAa5^$sk}0}P@68Z>V`nv4 z^b`ATeM5BrUrEiiiX5@2{W%&N0B-~PU3M!lGTN-8e<0Teb3fF(yH>u>%)mBSH^pX$ zX67{+b~^i**P6`HL!o>zIIqbZ$IQI7z>*i0C)0M`TutUu=I4u~n(8v6aBrBxs>=+j z%N&QpqgBEH>q4WKAA$Ditqau3Q@>zNyd8Z5M*IPO17Kzlu;C7{#(>s~il|-3uyM+Z z{iHhWXSr*o1|}aXe`hp*LqC4<@qsjdTJMeKn;4rF_1Jgo)BG^I-o!NX{|e3L8O`6^ z!D#*gl)m=$_hH5kxEjmy7L7Ph_W#3_e)Tpey_s0gu<>=S+CNn%bacVb`e8f;H8m0JL!LV;qEmdk0ast|9Oexj|lrFRHPcm5@8 zaN}+V(&6(mlHv36zT7oyas>+d3KYi$m_w7aV>AxmTy*T#R8UzDtSCwrcEjvF)Bt<; zXiP^{psv}28qk^J3`#sXLUwGFM~^Gax{-(+O@ty=T& ztkUc+sPsF@xfKQ&I%qr?-;&y6Zas@LT@%f+oY8Rxnr8bI#nF(|`k+sjJbZsgTw zF2jX)S()3~3XGKt!CS{%Zx<$~84K}YZ$(w7)J(0vPRyM+c2z7;6V2lYk&?8hM{N-!Iuwn?J7?`NvYNVqm)8OuIWokfrMPC6(#T8j6bkbuoDS{)I-zK ziS~kAwX5*RrKv7PgmFcBQMU#MHd4sxV;}J-eV$=Ib_}UId9Jd&$&H=Po7hRze8(2R zjgd&6JMdj@aE_-;rWoT|gJtpjJQX%eO%`nPX+RF8Js*0h6fGEUL-0g+kYis{Nj))R z5wx70#*-WS-S?HHL8eg8%`eTP%MVQC<+D-QzegARaG#bg8qos#@OeVJT|}&e>wSq; zpmX1wm>gh4Sf5Jkxc0$+7)EqdQFSW<=)sfhxE&!Yhy9Lz0?1u=rd&@!`V4|HVJ2SB zh3zR397|9jW$kFO9G82u&en6?eNZyT<$HhD*i3wSYzEM44`0+DoAX`-o4$87=dPQW zEL^%CLTlEsCD*zgc#|iaTg2$~R`1&cxdq;&TszEVEUN2CY1*@>cVse|6I0^I1(lTT zw2@-?9IJ&-W4r*xG|WFW6T9!w8v61G9`QJ z$D5kVgyArUPWy9jG9_Es`=W$?n%>ctH2XYfYWkba-4nNO;OB16qQT$^vj)PL;KW&g zbJx{qGBVG&gyYV+>mRN!a9?@byVVZQ`GiZm1CIJ@{ zHYnV5WMRWW;Vf?Pj{Cx1=7?9CH8YPjZ*OHbO=d3i4)tE-{8x%~l=HBMlbIXstnbX- zGtD6sReD}X^27Ft@%Gd@*?tyG<0nRAsnFxGp)Tc_PVe578(?0MF~D9XFK0SEZ3P%v zIq|1*+KYN8(vFqcZFpo+xLFHhc2^tAKa&}1wdp5nBg1EHd=8|%qb<>cyyU7_(hMxp ziF;bN<-xwC6|rk=`f=c71%%gWyMd8YB=ud3-6GeL8i|&gnr=N($|~bWO>C5<8m<4a z)6tKUFlxM_3o4gYVrm39m%jG>bxTq@6qV&(k5u+;S~bDw4Ypt8QEUrPl$_{`$V0-D z$9vT6pM-vy&pgFckmmy`h!{qN_;{3M{);(uoG;8#!+GYw#*@qYeun>E2-5e+Rb?;{ z<)?-lhvn5-sk)*?N&E4m^6&?V66gXzv*CMXC=h7eyvaU`y&uCsg)Wg|GzAMWWR(p7z~y~^Vk6*a$irgNlDt+ zcm8>;MrLmuWUc;xg-FzbdvzZ3|ED(v_&%3kw%t_X=e%%Nbx&bd=Zr%;k42-M^PD-; z%exi+$*+cn6_jY1W%>ovu;`gKPYttD@40TBsLy=|VHb0RzV!nRa-&HUn6Znmd9H*H zhf4Y?=h#zxvSN!p#V0E^+EaY8;!K|UPF9>@PwSnmI8B*&cm2=5=c3Cj^0wpxiB9)s zJ6#BiHA^{Np0xC%JLN7#$w?|o7r0yTNL4qpzV>^3kZ z-8aaBs6!@pfGKz29K)eZAwF#3ds}z72wdm0)kV~gM@)h-c*I2A;QJKHgYQ!Wt;v}0 zv&WL=`;<8qe4kyGjD4T7A3&@i`FDMvHS0Ks=@oa=&%nlmSbLwJ9HFI|9`EL3JkSpW zDZ$TS=^RC9t;#Wz8-D-)EQSklZt#EEbfQbvhivO2i+=Imi*r{_v;f#_FM{p=HV0zT z=MU|&`B3CTr&Is^_rB@W;JFC$QWM<4X0sTTj>6musRjrlQ6`V;`fc9q{SB|Xf*r2G z^~*w5GQ^IVc?B9)nMIml#6p47-FaG)nnH=AFn%`seq+w~88hbpg7Nd1S!KbZe$Cx< zyiA^DfQw)L0ng-RQVHqQIQ0vo+@7MZ*pt7u7$e)B{MiNR1$LuR#x4b6B}P{rA@EmH zCyOzA+LN6{OvHzLb1c8?qRe!(t^fJ=1iqhxxRZ%p%ogC7(^b_^(+s0^sM*``68v!g zBu8Y;Izj?d2$AN8P3D`{R z!rW$}FKNa}zExsjT-rDg94DD@67XxT!!gnW6P$o{QrHi56)=}+ws}Z>S-fE0V@=tf z7ET(q&ote0b$9TYcaXX_eqre$G7GlxY0dTB*=PXDB%zNhxy{mZROXH!Sh`*51#Loh zSbUFz0otHVzhHnCGTghbNIv-+yHZ^tW`L7}miI01H|j%XqEApX`%_*p1-oTIBT)EQ zhC`oby0!Ls4Yoyd0ZZz6#P#gt)WKo@5Pdu=xFd-YW?evKXwvY_ZaCE*0w*$I-LkdJ znzS_m@v@;S$IC{bz#sAcno@lbwHll3b*$1hnR1VM;rvMmvGV0ULOkdZUMgfxyWM(V zg!q<6xDjH7&o@FeW4F2e_K`M1?E53qO?FalK_B^rcrY!3xJ%V))1tYg^GX=X z!>x!DeThc#QePc2eI3emhp0q|G>-;WBL(EU>MJ|Pm+ey7LB8x{5R@vuX zGK|a+tBv|G(eoiVt@(_n@jLJHq^cPCz@3eB*K@*tPr(TePN0SYHF|EVl+v_h;XlBL zXykSvbb>K#1kPB*STZVEbgjasY)Je4MnrYH$@2=;DnH6G9ZJuWv`pMx{bWnZq^PGE)K%@e8RXYHs)~7{UX#%iWo_q$p~OUQA6lHW zWGsOz{Zo*@!~Ii`z(f7hWC`0$5Czc?%lr@ti~>wjI$MWa@zMRVh~2f#U}RIYSy=afu9TH&8OCZirb5l?8Derlce=h^h>GN>+0Dli}u z$!2)PHSwF>RUdI9<_C1G<~xSSjXi<}eA^JT?3Xcu($BcwtEpkO_1f3&+bgo1J$tcP)W6GmWtRos03=zDQRNkQ*kDwfGfm$H7+Pp=NI;&$V5ntr<(Q?}8{_K-}pz*GE_RkFpi8 zx8C)ie*D*5SnNZmA3Fj@yqYsV18oNTO0pBfFZW?u!)4(&?HdcT>?5c=`vzHdS%U}6 z*muCq5PeJo3D1gPyX_~zEAGR`=pvr@QP#)^b=^wG6Xjmc@`aHqcKZd=3TS`#j9+xRpYMF9W~ftN{V($< z)gQ1P>QBFse(jLerfllDPeL?k&UNnPznI=PlXT%vJ&9D;sWPTQtj|?Hv9wu2Px|~M zL)KmD$!M0)E*w89R@b+?)1Jm0T%BjditF%&24+`|%x$S`Xv{_vRn8leM9dlQelOY&cn+G5|<$H0|iY?E9&1 zSAr1v>NX|HNz7G(P%52oS;yYoTHW`~(Q|d_g9BjNf|%8qtBoptn`tC`@r%U=fI3p_z*)1d{vb|4&_=ZLc#T)KVQN*=+QRzDRZ9jAF0@{<=bJMQ>Ud3}C(HdI zF=5jEhh{f%C`7S z-Qp_HIIN0S99~{Oc(|vsSa}@SGCWk15KoU(2CLy406v%(-exNWCimo}($ZoG&I{CW z>o|5_ck8g^th!Y`(c@lK0txpLztZ8mQcXC&dj0czi!n5E=V|IXcQ$&?kPD;lysqqg z+Y6XvShEB=u!2!iz`6M2-{K6ehQfi|rkP95s&1KjLf-&PNy4#;iw zaOsTPR!@n%V{)^9-^gII+9SKN8ieV|J+;-QKzLgZG~zBa{vucL2Oue`Ef}0KHJQ4h z*yY8RoG=8rT42eBa^&h7$WxPoV0A3~tFf13kImMO!GPb*=vVgp22Hi1L08fO;1ZE!d**5~ z6X-|-5qbXP$8@}OHiwRqIoE!oHv37n^P?es4lN|3iifU+<2->};V_G#&10*Ei$6D( zGKH1ZZO*Wg1`|+;QsIuhJ!X4b=*~v%YYQaY&hxw+5}-v<9gI-(Qlz6T?5S1O47A+X zo))aMrv+>E0lo%%TC_?8!w+GNrCzhANUVZWd6{LlzN}2P5&EA`Pg)ukQQWInf_yA| z(tZ!2QtsHTY!9K*d3y-=`J;(48)~Um-bonoM0`$KG05RuXvxVwjk1_XnTILc;*T4P zDrQ~PN9XMiSf9?horK+d6EJ?~l^)|&z#3z``P<;Jagl1q(QzW^&p&G=#`E-E^ib6a>?0Y+hc#}5mCk}P6wIKX5BGQ}{y+WmAbv8xObnx|0- zIxjqeJWdI2hJ&caJ1-?tA|6lEM0=X@Pc!_J^G`uA8ehZ`Gi5vzi&Bf1XP|WZv%S=i z?E};pDky}E{Xxn2b9cNrYqYjZoCV2-s);3=#F+=p#95GRW!WEMTgzQ%0JaK=1S3_d zrZ7z3{k~Y!1Y6v=KUEH#n^4Rwu*&l8meG+PYRe2^_w?^%QWu@m21{g0&gBPvE)3_+N_~4Ni8KZ?W z={`(%(z-y+-YV6ZUSP<_qp8urp(4QL2Ja%AnnY)1gcpS-jLVFr48~HQY!u{{jP-kg ze=;q@l87qJ!Kjgjkklw+ym+;gnkcOGDIj!);dE1p*T8fYkH4$2lvLG0bKA8__h~e; zG-(KrCiA0#QF56EMys)juYhjprTfdzZKX1gRRSs!sU?13xA<=TM=h9`Yj#7k0-24P zXpx~I{YZR$5=fH*4rSG?Lojb+%K250k=x9(0U>M76?Wk(AGgXr(IhM2?mjb(-+C+$ zfvxI41B+eZnhDTExo@e&S*97URFCnh1-3uSX>$xc})X=-%q@get!Z9kDRs)6* zP(IK}m_v8W;}LHj$M?|%MHhuHOu+lYZ#^5yafM7j@xNi5Ovy?7eApc0C>1f8{wKB| zAkz=CZ(?B%jc2Hbqh)Zd$9DHyBcJCSBilwmB_K(8fxT(aB);1hF=T@*c)>FsHDQ_8 zpO4um;gWoq{RVX*Y)yvspC2q;pe=-wyG#rg(#!v|6N5V&@L*;(6H-RrYYXXKU8H`6 z>^U7?19ID{fIwo7Ku0EEBZkv7;-I~ubd=2D_LHjQM;tnls-*>Z1OrNrCt2*16XV>d zV$?SqV@`ID4_;q5eU4KGucf9cjwUx(a7PTKZ#hBJ0vci!uhU*WCn2L|Q6JKxU^aW7 zCi94EpWA67k@KG~HhlN+81StC>ws?sSz9i9H9)--xPBC4bs#nawFT;RDf@x>dOLud zD3JkQxDonfO19z$88D5C_}YTGS$5J>res|!MWUhtm9*^`w@48Z08cGPXAa)m-%+Z8 z;(om!eaI}zQ`m{-XU%F^)M1qs{YI5#N*41&dp5f0x&|zRQ9qfYUs!wFbm+%KkM0-? zL}PSYMTGIwIx+mhk9+9u^-Z)y^Hbhf3gb5zO9tdMWjirlHY+L7{6$PbDz&MF-#*zc z#Anz(89Q3ytu=FvBCXQij0b0^TCmc7qBZuDDiBbNj>9gJtBR;ge!;%S)If~*8Kv53 zad6maAsOP@-)0LOD}kihY0<+^4!4_w+fTC9!g}ZDM{Kol9>6vBvq1J8aYR&GxFoe7 zc{nW%PU!5rnhLy_2)D?_A-!b25zl0pwh3H_*449QCYh%JnsuwdD2;Kq(ah|Sz zUdDCS21y`q&YCo0M;^*(ntu|od_IGpcw@p$WqC8#Z!B10Wh{bADpL3gj+;|&Ko&PW zR9rjawrRpf&CKgoc?WZPXeQlr2i&)Y>9tWdk&@d7;uRaJKPT@-_FCU)i&5l1 zZCQGsPo(i0_w#d^ePwS(v=Wgj5fNgdyDe$wL3CNt&V%T*q{T#cSkhvmHO4|rv<6t; zc@P>|xQR5D`0>);mg+x+2k?>UUf%qM-|RU^zTkGLuLDTR@oqjegxvHP}l zwLRIvs!Sz0oq>1$jOFyAS9rqNHkt20%5r-$OBZLGlm+WkPbo7UJ>h>oJr=VEdtUx< z6dVT3vT*=N_6=^Q4)w>oo&4sq^lIA~Hk|yl#jE0sIf93lXls=F5(_fw=b2(~TQ|HX z{ob%0eiKBX`rPk~oVm(aYW^v6YWdroOzZpGoI+Aa4oP7@B1 zO!_qo4MS?2NsZLs>7Qo!rw;$5=>YFE2R*5AeH~u;~}(X~42L`0#!B!@MAN z(`V5guNB>O*QjfYTBz3@evY5M!6xpVW-B8r+D*Thw2z|8TfiP-fZ4H#oD(W( zrs)Z<)W>|F4uT35VcuhCLj5U|n+sJ-WTubn-b-oY0e9Zz*0~<()j3y_4hT35_$VXg z?AA0{8AHH%7m@x*1e~*|4*_pYll8QyQ?)ps?oj&AmiAY6d{7KyrLng8%-jyD53bU8 zSIkrlqq@X8)C-PD-o-DeFC!;q8Y$$>nzL`mJlFwr!;%l3r+m+nTb6CWlFieFxoDBM zn8JNJ|EOj6_Q1cb6=w_2P4?RRO1r-`$OO7@#?ex4BLmk z5cx3Gmw%RD3m>b80CBvA_*bjpj=M=sm}O;pn$>_<4H2qPJXly}0)T z|H>-+t(OTaXysqO$i_ag^jI)HHO02dXAUmCk5RP8p-FT5~WKo zph9LXR^7e18sgEmbBw1U#!Ft@ypNUbyBlQAY<+iNsH8quNqBokUWR$Rj?2riVOph( z7>I-O-rB(ZqA~`-mBR%CNDg<{<_+Sy7|i@ZJV9U{WOs2$`u+J#su^tG+p1Xp`WGb? zEASpgR3MCe?nY1m&S8@+SNNW51(v(t^V=7Ivwl2*!<5R!6PT_bkN`sgq*s()ZGi+L zrgoLnBR8^5t8dCFY&cURTY|_35|sKRi`BvZZh-^^K9`AM@Vp;YPI9F&uLTmw_+kV) z%khB(@s%tqZ01_B<&?8+JzXVmn+vfVtx(k|*MK@&b6pA6pkQJV4qb$khf|KdyP+mC zjumY?i>xNYNxDAVrzZ0aRFb9-jq zJ44cJehY(lNlFt^?U^wP#;<9+$B$K?=PRo=y~3{ETu#LRoQwhCKv|9bKVC))+DkO6 zyN{U@yD}U8CwF}4T!z}{XGwa&WfpF)8#(Nb%WeMZMhajpICy}cTMz&?2TxQo>6Ba$ z(f)ny(iwp;J_doK!$^|JNJ&j5nT(3go28({)HFR|sPYrOni+~Nv9lmmPfN%VakJjW zVs-ZXPJ09oD*78Nm|TghmTY+o_ASRA^vK=*M{X#psc(g22HF%^fBg&YuW zD7HJyY{_n-3P>pEj%sMhcnJP6{_8`U$txREGejJ;^wa{5IUkKw_!GcHKsOZHe&pf znG4Sui`oMf8ebZHE11XeogR@;UQqd)sr-7j1{IMy3eWLkPSd)-IhD>gd-yMaZ z8&13?L^f)d$-BP!P~`i=>K0dzSO7 z>e6rZzU-bm*>p?(@T=5ttKTNS{4H_$n3yMRz#r3q2npBjmQPjV%iRH|a{1GhzIuDH zB)r&`7hcJU2yRyl0EtHTGIp*NoEHkdI*A%aQiB`LpFR+Myy=O@Cuje?3v{9BxVfW^ zJ~J?hanx^AG4o34xmoSCQC*um<-gEyv)T(Aj-~_7>$d6@{6gmHW&A>8-2i2`-6Kn- z<)U6<6IsJY#2k-?5K}W8YK(Jl|&EJ~to7ER`pkf9kXOfLqV8fnX(9+A3pONq<${ zGE(8Hx=OKHWZPzQ+&WLl5!kS5#XrTWy1|2R*vtgrwTsn(*RF&IUb_+=c*U3#fLB~; z7p{K@OA1}5RGm5r3u6{l3KhDjOsHVo8!BYx3l$PFrdImoPJFX0UkV}p&P9kSb{vG* z^%jM{7;edPQ$bQdUuFVr8Tjf3XrG{N4CPnd5cukbz*jc_UtvFCRArAq*7cEp>IU(~ z!zE9}1tu>cLOvthFQG2g8<}sz9rHc$!W_>FqIsq7sPO`g8!ym30SX#;UI1CT za@m_So)=zWm}|d<6uBLRCguIUU(6gclQ?ZgMbfQ)^3uA-Kh044$ShL}KI|?Nwi|~f{%|w2E~m6x z(32E(U%#_d28xJ37qwGnwN%qZ?|-wN`}Jf|(mOvW3x2}glNu(rC$?_H+C=lC8js?e zOdY6YMrM2zs*NqB@dl&cDV1BS_I-<|^S*DsiCiQ~rF~~JPAzfjsmTHwiW+vq;83-l z(xg=f4IIpsI<RLlzo=xhV{=x+fshMc((vS+ zlJX{*T)}`KDSFcDiNbtTbYg>94U_fcJze3e8KLMB3&K@BjUh)jk8GV}#R-sY=Ahxe zClE3FR@c#gqNkaVkI`6NG_|;Q+dg^T^k7-dx+fCN9lWc_)DPw=uT}L~T}EoPxo2-h zJv@yS$^l)Aax}HOO@m)GEV6$LP2o?EbO;_MJzTd#awyP2+jf#ee6o$CZz+(Od$%Q2 zI5EV~)G)`r^!H*N5sqh6pO}^Lz={FM=-|qn$*?(nE7g87NF-DO?6zf>F?L}4nOzy=^B>H-GT}E)&lbh z&5x5!e;?27l53LbhLy>*v{Bs(2JaoP8hpAe8OaWyr%^RUVE3q+VhFd$lqC0HnUd@Q zbscVV=H`IRd_iukl{SRFJDeAw~9IjS>2lq0YzWb2+3!6Vh{k47dkN=qZ ztG@Rs>i@g>OAY>&<3AeyHy-~K^?$3c{y860|MRbXiu(8MtAFUn)PJEJQvWaV&tn+r zfq#0A`DpxXsmq7{RsKA$ul^Zv{Z-h@41t>TDp^WV#hUtHA9LT|(9s}=kX=a~`q$t`Wa)hCTtbD3~u zX6vx7-dDqTt~#me#HtfC2bd!zm|m@J;W(P{r=1F#yAr7*%n}*-aDtO9r@`dOOwpqH zMt(}}X|+?U zPSXrwk*Nio zr8#ZBN1rx7>?cxDBli&;55l4n+iUHY4@PdS?At>2EByB9M)Nbqfr=TqE6o5bT216cP3BM^79_>z=5H!X%yzOgSy*17 zZH5D#hWfU^)i988HOypl2FR*8Ls%K9gYF*tctC}I;XA7hkJzxLUvb$R{_M$>zOkdc zXPPh))WzSzh6XAtwmzucaOi;sls^r@TKC5!7y#jj5`)3dChYj24Zt{q4Lz&fSH=nZ zBEPVhXVla@@b>{Ku!jm{idI}`Xnmd^P#Sc;I20!Kwn5QvRm4zQgnb0(JV*w9BECM| ze|^SBe0@yr>%ZFgEBcBud^{xMuQvU>yWzVQFr~o~2*SoJQ1ro=Jn>ETQ$#kw3Ybi! zn!tN9lN=7vvQUzl@k5zOnT?y7F(esW{F#~M!F^ntsf^vnwV5QYV`HD%OldMx$*3`& z!k_FpY-}Y{SE|04Ixic-edOibMQ#I+d&zYtxyYZrM#Rn}$qzR8_)EiU$LPxyUL_!FR0 zaEw_Z(&&{@fK@2<2K0$HI^cP{@I(fxi&360GSC<4BZjsk>Z)PfRGaJ{f}ORl66#`P z&g#mg*e6RRzvNe;sDj1ZAzKD!yA(TQmt%))WhC%cI1r2k-VFze(OFdnBaUz#=wlQK z7$(>-Jgs3EYr?Ps-vx%wonfov)bpuFfN+JVc?uxn_CY{CeAxn|ienB^d7Xd=4<;V~JgP8*(4IvS_z1|z;=W0HV8sT3Qu zCt)mBt1u8#5ZdmIOe*z{2T`^iiGC$o+8iRMm?QJ0D|7{jnaQt2axqg(6#mq^os~R> zpaJpZUCrd@OLDj?FoXq4A8@r<`Wt5Q;G9KCu9Cy-K9v5uo24W9SS0sBVFUBZ0JhnK za6i{)+4F^K{wr)qZd+$z9sUp=rNeV%4^;E&!FK0mk-#)O#WgAee79=4YS|e$M3Qiu}I3&*i<5hA(Jqwl9cF^A>WUlq35C)CxHQ z+U&0qo`GvTh32bE6T#f~unFd9O_zUi+hEqFu{(c_(^%7+k4+|2d0=B0_x#|8`&s8A{ERYT{%p|xPUZS=M3V6ksy0DVM@9hp z4n+R20!YBwb4pzyFIvaM-&Tzf@Pn&3d0^?ejqb&7hnr|z`%4@|S4oV;{A$VDC?!@3^O7cxn4kP8fFZDRPx?0R0cJVqgy&SoQ(cO{)FHRWcc)*~Zjq z(-SeJE&T(43ldb(B4CPZ{%BQ4i>mM5>mZqs1oTAG_Xn8+f3r?rMR9-wbwWaN`kAui z$E@U+gO6&oKfq5v0zN}fqOaUds55+FxhY@==XG0|33cpPZ^>%j!` ze+ZE9zquP!!^l=Z`j(+V$)(2aCelsf4mFo95ta&t znu07h9QqL}2}=cJqs8(K^5`ujCu|7EJ0L9=x7X-f>Wf-mqxc}sY)F8WH*UT~h&Hpg+Fw#fZ%HhTy2x}f_OfH81)_{Z zYZSvs&LfAaU)Ktk#C|m6z6LG@ZquYYhNEZ9*ucZlGjc#9T7;g7Cg}v|nW$dd8=j6^ zC2FI&_Gd-}5n+qL5r~m$HTz;3bPlK@Tn&b=;>&H38koW8`5u(&96c}Ii_uesmkzA# zx=_3iv{M~c=~1TXj(EU$nFK(uglhi)vmDV=CZe3!`SNAI|4+^uhT#kQX~A0~kaMeQ zf#OV6&K2#3PrKA>w}M3Q>A(QgbdqR#TtLx*t(fXVl*YB8=g?MH4Ih+-x2g*V#z;v%A4^u^*qK~rDM0?xhBb8g2AF1M-X zD9#t@+}Y9?cc?D?wZ`ZbMeQSNtYkc4DQds-RlSNDEjFU4eIXqVMXkL+w^KcWf}uAy z8EnDg1%&~YBl#vQ^N~QqGEnffL;XF+R2& z7h@9)ooDs@?HBGs;R|rxABa|HsW1t3=kSeat8X}Zt~}j8ofib|mM3lY3%{z*gf|ao zU&S-wxk-bUa0$bGaMJE!*hb=W|#ZG6Fx^duOuKDdE z2aF$p{*Yyy1>nMjEWeSDBFjc+mfnqtzSJZ?Hb3?rX=NOdka4Y<@os0vvp^PFD4q{v zA?R#-FPlK9ix`)}tf3QJqZ2IcZ6_GS1TDlO+536vv*yKS*TFm?WZE{Q$yBTN_b>?9 zf2)68mtvIZIw$Ko2iB;_-QVveev6<-SN>@18%O=P`H(9}9e4wjuP;Qp_10EzMuE!dKcT7-J> zE(f7L3tT%1^=}Z?gisriydsTmxB|F{G{2D--C1C>i-kez;M?Ko5=Yq_@dDH;8KdXrV;KAJf+FyAz~aq*l|r+tkh9^WjWcJf{@LR;&%d zVGlzI1{C8$rL7s7AiO~`ee z5fO8?RDCv?^NJq#T+HKG#<+)Gs+}++(B))}kYm}6pl|v@T7{IjTrT&Q%SDbjCN5sj zq)2KWVhI0$`G@F%=(_U}K%4jPWQ~?bFB7y}kl3Q5GxUFXk3&@Z7m!aVE(8=ZkSTlU zI=kvRAL?OuMF;YgqfR0hA5WdVQKz|9LaxoVk`C9KYbAW)nlH;{k(bJdsc7%F`Ua&x zRNt*N`Oh6aOt25JQ=+}+TCA$MBdM#TsUFY&E&rj)`tKDmEf>*$t9=@=%##tD$}eg7dooc6XrV?nAL66=zh=Q;a5A7x=J?x@6bJZ63uWzFX})a zwoJmit5|Qe>3Jt%o;<#GHw5Z5(-t8cyJqHXwGB;|q;X4dY&Gw{vXfeYrMKaw@a zTg2LA--uQd^;VKnyeczoCb(T3b(?N1 zVy~W}-_l-vjlNCC?I_+NVzs=fZLfZjC2Q=qvxoF}A6`bA`!ehyJs5;=^to(C!Ewx= z2H1#M+gGSqO~S??vpZ^#-@|=CejCibT%Td~rOWKgm#)QXeQV(`x-Y#~H>fpB)ZLdn z{)8m`L!fqF{vW+R5wgnmf#{8Hplju?NAy zev5zrFv#<8BWKsNosF&;j+Z75?nOe4gU5#n4i=qr0yube&~f14D+dnV9ao#)T%rF1 zMUuAeE&>i7bCBoFS+#NC3XyV{d;*i7g8mmpWk98@D(aKE{yi0LVz=$KKE0O~DoV8xY|{)ZW{Gs0AFp^b3Ri;~bd$&$3c4tdV*>QpW<4^nmgq zsj)$4l}`9ejnoe?^*pPr7i)Z-g|A$SaI;3ZilF*kYF}Y5I}U?PQTM{?9fL|BU!N}M zX@8|`tNhrX94pW@*efYO+J4oBb#o+lofGRM?S(q* zZw6kwl;yVTMTBfsFCvZly(2RScCIw@-p9Q9o5!rEa82s%P%Z}=!hu&W~MD|gE=5P{9uZ9zXJ=tskW1vnZP z?``A`pH8c4@%mix>2~^akI^38<1pks;rBe@kM;7)`U`?!;|EVdX-ixs85lNj&wdRr zc?w3P6WC|uVoHHv9~6V1J)5f@IF6W3C!mTvgaDd=RD;8F-oVCT$l$-R+oJ>S?{q`b zYM2g_)G(ZTp-(;`|HAwUhON%&27MJR?}WVY116IT%5Ez7g>(V0#{8ov9+|deD$>)I zh<@5Fm&6PNaN6ptZ@~`D4RukInF2fTcGJ2P#eN;2EGkv0-3zf!Be#J2AB0;+vx1wS zRSXMurAnkw*D_fvh`fr!1gpb=e@9-uOm1F-d5f?b)DA!6ihmMtGyoo<*(X9!V{46}m z0?}7g!=la0&bAp@?Zuw;AH*&B?xDxF=~_agx;tC&q|z;E25viBdNM ztwy4QUv2^1qIdW@Y3vdP8m|BCRYrWDV4BiS!Y$(gJfq@RJSUIO8mOjrWp;D3pf0QiXz zz|SW&@=ZFhuUdpx`s^vt?aRmvNGq941Fa1o;>5mOzlHE%p5iK_Wr=>9j<@8MkRikZ zP}7&5z5=_{eDFBfrK{KgS12D~7<~jm1yzxfEZjw+z3?~eTZb)O!X?B>UX4UPcvRw? zn6U31urIrp#IqiICpn2RpqPE`XA+AQbE>%H4=$D61@O*{pn#IoScybUv&YyGu)-yD zUjHmeHYr2R9bW4`u*Ef>ql{Rtgvle33Y76o-2=0Tm^3xGN$?9aA?DoIXBx@rV=UJ! zLAgoBBAKFlFFY^Efp(2tWaz@0#|~2km}5=8W|P%$8TFp31-24Z* zMH`b-!Kvt~Lm9@{f~q*YNU3|LGNExbhRCK~|8qOUe@R7o z4PBwzP06DrG)9Bbt3(!JhpWHj5g*OBwYS;G2v&Yn!_?E+#|B3zsbmi%Jwuz1UlnmT zIy*HU61;&P`v=rX?WO-@#;=0QlflCy9EO@FThLGgClRQN>tf^a$84Ivh#fazRy)MW zP@~g0)-X{YQ2%U)3EGV3B&FVtQe#6@CX&P&ngx;YOPR2V`9g*-jzIugrsF*dik+$p zj5U^PwHk-_lnn00HNL4v{2^-W533poBt;pBV6VD*2Ym&WB>Tsrdv-ZK{i3PEp{%jA#uP?!*w}?oN_JD7E}>5jMmK<(!6ey=P2uAUC@LcY?TD0PjF-R0O|!?d)!^ty0hQD)$2~K znsK>1+N=+pt=z7mm56YBa-L9}*Oh+=EC(A}=PcEy(&kB=0>*dyW&9-c&UqlK%_4cLxqpUi+FAnyxrGRd_#o+VuSf%k zb$ub$$qq6`%F?;HkK4?hi`=BZ)HW11f*GZf^xyg#)3){LxM4H zqz~l4Mc%2CQ^xs{f2k-a1EmK*r<0a?qjSp8B5dBB1G~eR#aa8=>QfgSst(R6OA7ei zYffW{WTDt@^2|?dz>ovwfF3B{>+bTlJG<)Ek?!QRt_61@8IIQjde;KIYatY!yppR0 zZdd+hU>AbGoFz`|y2D%41BJvcI?M~4EY+P@Se^i1E!bwj!tV)x=2})*<^V1lC|9#C zYRlfpa`Z-oI|h>lWGap4i3mEUQum6w37Sw#yb68c9|zWmW))U>vbVZIv@3bD4+l;L z(B*3Sso(%0=8A@CN$%=(?r>ohlzybfn%*xrCZo>4|1lxXa#Mp_p*ZZNoCP*){2gcm za?3pPtAoHq(S@j>95Jk_yxB2V=p*BUa zJfSXfvkBr?u26dcF=pm|uQ_G)-OYmNnaa|JXPRIZgy_14ssTkX)+0W~5ZYrZ&{9x2 zxU@e^lz=E4%L^V!E`XyBcILZ6uOJg&1kQzNKI<*dN4r=%!1d<=cr>1fxg52|UX}4$ z5S?6|7yP}WYautXA?L}i;-3KiplCDJpA;`3u*Ms`pe^Dlovb65xdthcM*?Y(7{gzC z!-n!-r76S}I#)y*O(lR>FhM+uuwvW~ofMX!0gepu0C1gN9?1eAt z0~em!;OSI8&F2#o?E#s5`Up=5(FArvR##3&NmgeL$uT!*R(DP-=VV(;-_`uCtUi8+ zx>}xkLz23_M_bMYH?4t_jPS1=sxJP8sbTGmsWo_4p14r~ZM*C0Xm5Cr+A_{$UYT)x zabOHs+#Gesx>K}-XXK}(Nr6Cp*0T- z1ko5*@n6}g;8}15t3p6AS7&8!BMHtb^ZyU-V|kYcmKfyJ?`IJ0tf z%tbhtNy4wto(#-eIA-(v;Nj%K;lngMxRky5b93-jJEd6uBMCeJcaeT7}}iwQg{j_T0eESX{c!L#1( zEj$ZO=VMBRXFYd{$+Lp^qT2F_JnKq6z1P&_S$FWMBfizovmT$QdDbo9fp)y1M1N`U zD^K|Mdf8PNoD}0GV`FQwtLbjh)hwB-=k~gI)^PHyn`-c^W6E3SUS_hao)*jE+yRDD zre3IM4MJN7$;weZhyB@LWRR-5$E7NsAZv?M7h(9sIoAExfn#;XtNrVe{cey?sVVzl z%r15@);JRD*-B&}I$g$PpeBthrWKcg?jloh%4VPNg)N(X+^{~`tW3??&{~+&Ad_KH zK6?sgBr+_z9GeWQTD{z>wtU5%QQyc{+ zh*w6o2D(yR^n~^-9_at=ng4rGZUbdx2Z;ILWCe{ASi$c}7AwH{<60ex z70@NWK^DjA#spo63@1KT*COlS@WI-;P<0^SR1vbF%wlpY15J{QLq`CclgTxVhWrpdQ|K@Q~oH3UT^A4dr%TmKmgf- zJ8L{stPvqZD_yB<-oqlsd|N#^DTexvUx&&ZVNu>?(vUiIr~zPyF<`<}l%_Hr1~GJb zEFS4h7{o&yV|WCHaO0XII6;kp5+{1LQ?tv0OW+pun9l;}{~SUR$CyOMIHB=6+Ab@% zMp;y}MJ0NH!-{&*360m^ycUoWdZR9tD9VC4Xh}v!Id7uP|J1FyetQj1^^e!=tMzz28FK6ijaP5Z*FVZ)h3tQUQQ~SAXc*(>9}~XOfDa~n zZT_(Vq@Z%!IU=ZZt9uO7UJ{p6e!3E4xG7%2^mAE)c+pUJiDmi;{4SCB>M;E*R&R-k z0dYW~Tu`*|G@xh^2pSJ#zyQH8`tS~|kqsRKZK^cZId1Q%$)7;G*v(G`O8C?nnol`wMW%hn;#VC}yXIF- zaOdDx!J7OkBK)c+;EM%MgkJ?c*2r6+Sx;@51gFn|U&XokVwE!`8U5=EQXu(_W8LCq zb65s_uE@*!=>m_3msxYWWgX| zodvJrR}13fG5EBz3x2OYY2;BB`~?1xLX2m$G!n|NEkBDy8oBNWx|iIoAHJwh{=gHZ zk(PW~$R~2QK787Or~0|uRhMh-c0RbJ!`?F*>|sKxyURY;f~(ng#fRs)?mQoNp70Ua z#1XV8Z9^l;on*0H-m99YhLhR z6W2nf#0c1c3({@zd}ItR^?eik4G9se|XW1wz-SSc?zQ0n5%oKV^{} zMF*UHF76xY`}g_&Onv`6@0-hgE53J!Kk$Yt)ED~e$NYK^hP*r4>LBj*k{-2r^*U12 z(vL@v@tq*lse!Dl;H_ua16NivS5;G*pM44GHIqNL26HADC#TNhHEOWn>~>xp2$ep zf4RPaC8a3B_&<*0$N+#hyc@{Mu#m+_TfOf_3t7~~005_stY^ESLn9dN}G(NT>m+Aqa z9QbhHd-*E6{M+K?rr$IS9an&r=9`5*jdmoMv~=^UBS0sAfmwjVf&3;5Ebt&tWd zfDp^d6KRZtK#1jSL^`m%S$$zNi+6LnxH;)g?rK*0`AFTUrmXZzR@&WK472zJ>Yx8( z8E8!wEe9ke&rhmu4bOq#tW<(vPt4^pLQHHg+Nb_6tZ53|E z>)T4)4%fHk0CXFJ;8utq352Ot4M5^IyfOupj`?4Qo_t;Oo<)0q!8spvH%T^=4XP{I z4R$h?))1w2{Uxz9nyu9!I~hx3vIcb}YilQCX^oKV+kJJE_RAh8Y)rPYu4M1o$yi!r zBzvf?WY5^i2pf|X)s<|Xos6Y5L9$EhN;b|;#?qMV{JN55AsJ>ug*E34T+u6x!y#+W zX}DtG$`Wh2Ud+);tgO4Af5M2`10}{2#@tXbBsJOip0g+iHmt?5pBjTO zwyKB0PE_nbBDv}Din)o45_d8;aLw+I{f1YisubH|$$|@Y&D04_cFjIY#?n(?7w) z|EzSu|Cy&B1OHZkE$=AljTXm9&-lOdf7A*P`gy=oi1Usv`vAg1tuE`8W_Q_H`j%aG zs=j5H9d0cN>@L#>>n2x}i~+wOOX<0b!*&(f2TdtB`Izo3nzQVP{epG*Re9pK$`ooM zmgf_SAcOd=?jnSpJXx!VvuYMWuCVGTMO;&>h_9iDB|t$|5Ijl|?Q0eBaLpn({_~Gg z#OFWM#Kkxi@gGp+{PpZ&n*If(LGlQAqf2*$8!A7t8&HR!RjozPb}^;qn%byf=|IxpJYuQ`NFUF{K<*)7E-G6~=S$XlnZvHmK2hRx%AV*q@ ze#cqI4#ACb2JG61&=#4UPWPx0*si^L3d%4~3BXR{;gCF{E0>TPWb$ho+N_T%3U7^< zWqgcun0FI1uffY$1DTF>2|u5T+EUcVdoiaYv9m07FA`HG`cneWwB#FjD^os*Oh|#y zm&$NBXTZsQ@}gmp{@?L@q#yQA#*!q?NAkdD1#;_|_BlpqI@jarCu4L+9oEA-8~!X%`*Kw8q{;+z>r@xKJP!I=k=qa3fAiGLmT%A{_p{tsYh&}NZx>2Ek)ugo%JMqiqQAHq#Xv~hoxSmnMxfQeNr;L*b>ldb;1F=WqR_Ynd2IcxHb3a?jb4|w$P>Av zvr=D@!QgJU+GO4xRF!gvI8tkPQ@kGT4Ic!m9PFZzMcx*NFsg?*hBH)9lV4l$@FB$M zmcbEawyCMTi!9zqQ93wk2DwyEIZvjAt-qpTo+smPW1l7SQ~WHMdyqNyl{9CaSq zG7aC|5v+e;P@aK0`wBK~a7Q`8HP;I`{`NOX7KB2RXSu(kA5z^@cWdkx8fPM#4WEox z$S-J^_%f35xRdv|!L`;N9Oyo)(%)RK78f6E?C%sCurduP2oD(AP>lnzuxwOs76?Cg zM|xqN+V4Nz9l4{UPQWSCcoLsw?sN)haeX#V_(cttJQH2q*R#r^me?tiaem8s;eS`N zySEXkH8@}n>ftww1@`Kk$O7BScYkN_z@P8q(Y--UONm43;(38 zfvV+h7zT=GBg)a)?&5W#56>=UzMS}prh?5esM?f7DiXe`9DL!ldJ2k)>$|RH3tvUY zMcr%qdnYvAwp7o zn9t^Kl;b0ehDgFG-kD0hj1+`r-Y&utL;<$_0^>P2Fv)+j?(tMi@@X7C7oo>fVyDMx z#2P;xJdwfd({jIzADf)jaMTgo0*isrdV90Wa^sMiqCh94vqp}?iP*w_bm%p%W%qCa zFM7$E;2|Js)9V^ZZ-?IUcL2_c4-rX+P6}KohYIu`S>^ zg0EHy_#yy@^8jsh_BE;}!CY;PJ!HuAX79eEHM^h%c~QIzDkaOxN;FXY-jL|XcQY;c zK)JsS(vGszT0LOghdkB;oJlHT?eGUlGr{lrs!wIdq%QG!DRH(NA4aKF_&_MT{RE+U zj+(6LY3%3|r|(yw`NI`tFP*wL0wsq#!hp{aA~>M~?z!dm{rWW%IPk zL_zrhWb{RDO=0G@YkWPRS&GQ7eJ)Xq3RFwb}SpU~4g1CLHmFW@_P8LSy`v79^Wo%{gvkMKY6#)+x03%Bl%9V)Za z8wMKbp;o+(Hc}ZpHw|gWe&AOqxB7#+950E=)-g2n`W?;@WR36eVUwUoD?A&T~$HhR`{B_j7klaBEPa-J^a0M!DVhCS%aZZwdl9RXeGtb6zSX3xTi9Ay;e_1);==AU~zGI3@Px4=Zx-!AX z`jYW?m%5sAem{EoS6Ss}kh|38UpXv4I(wFy0YvT3&rJ@TZ1Wj1Cg%FNZl08ctUz(B zJxKz6HA=Y9>~u9$-^@}S*e%8Da{2XMgrOmxp8yw9d%xr88f?yQyOrgK~S@fVUW~d72V}C z&i}#SuPx7VGP$Y71l&g^;M($Qz5V@84*UDq^Y4>LXLm$=evgk&N~!9PqJH4YIbZ}= z;UqY9YG0T}AZz1!IG&}+zg;98zW|}o5%6unr3Vg=9{YcJS8?)47?E5IFvgK>@yx%uE zvkWfOztEcJ1OFb|VV2*rM)~S?mdK4}9&jJ^;5W|J#N`2P55hd{T2?GlOKr*SY*Vs3 z9g-cxKCYw$qOKwXI!FDR#v#~&2703Nrl=vLK3jAnXZa<&dD7~PTJ4ruX*0f&6(wX? zhnK>N5^|{*@tR$82N;pPekJ@~J$^IKj%>gId8YK{4Z8`UAX<8QI`Z;{@`0JKRn3HI zxLHA4sUR+29<#s6`qAI#pIJwL<6Axb{bk?d?QfY#cB*$kPqq5nQNFs1C9=P-*pB{w zZfo8BU0eU{DRWz!O5Co^xgV_bBwXTumn0>%sIi6bhqIYzj!ok!Xa(w*M;s?HxpZo*8*o2C(&oA#Uf_H+(Cu|sWT?}0au2Z}bMuhkLX;}Rw)qW@X zox$PqG!{c+TTSCaN7y25<3eJSj7R#^*-8|hs_R4fr}?7SgXdSPX{WJyJ7YhX1@o|W zyI^$*i(>QA*}UmrCCGQeAL=m`cQu~D@@`Qd?S<4GZXLZglyV<_^jE5{hBq-!E3S$AK0EvZ(LnT z0V|@A7;Uuw8?1ZK=Mb@TIUlRry0=RT7yLpF5y2{6WOOQ+M4C6k)jllULRoS7B3vrr zj`M1K)Un?qe^0`rD^;KWW(Lr)4%#&jw8F-gh~AwXM!=28t2(MgU>k1xA~QVX6t;(+ z9McxLPUESE*v>86FR)(BgHOXa(_0oG>DbH#N%0t1q^2PlLDm;oM*Kx> z@2M97%(F^h4nt&($L|&iAE4(-ZC|UOCgF{F{vAuPjw55iB|451H_@7LoKUqD&VUe^ z;S37Oa4QAsAlLwpATKhQUp@4tSto!R382iq(sP39k|4iqRsRHwQpsP$`8oSXQ8JSL z8M{sThnudJNdIiPK=+RhjZyuPJM#B*)MUo{@LvsRWCM6a2knU5FH2fjLU%_b;s#dJ zx8c?;D8TO9h(1&0NBxmS$PFC6rimC2p}1ku-6Q zlv<(gn@Ge;-=SW3fpHl>f)m^6cOU_@xEEI+JXj0yQiyp#9Qzu5Zp{oPI;j35>!`=YB&vb366rDej!H zDS-jD%(TxP=_B&nK(zv$Qc@o13#V3gic8;t;0*4k-VIYB#51RI!3L^pM;Kq|{qUSLjl#q$?}Aos~Fd z2z&mov%ZcUb$#F^x;|klU#sGy)pt9Nxn+GTFfdfp6RNLATd9vyjnu~*w(s<#)pzA? zUEeU)_Ygv%)@mQyc39n;3Fez3C2m!{@xUpmiF8WgI&r6BRmC4V3()<+9oe)EM`osC zBorEHZ%hRFg;12OzrY)6I;cT)L%D0np`|AEeh*zuR}eMlr0ASd^?X}2DjFy?31lk> zM0+<(7kblWM|iX!G{fa1{$TLuiWLH+@e3gyz>pr=XR-gDV)9Cr`F=ll@NIHj&a^ zYGOc#T<~C%%Uu!Ya>C;J&_4e0=fdUs*j(-co6EhfKeffD3^2fq0HSpirGo*ct4HON zzp2Uhzya|(6Q8lLQVjzobnxxS))(3O20mBQbV(n^urjqj@HW!sA|3cAa^P;i>%O%q zYu(|4?vr=pW$3NIbI9yQW_RH4s;6YOnC;|6c6-K|?J;9ifM(I2hPtYO5L(haIb+iT zy*-gzQz5>jDg#|WhK^4e_>>WVM1N~KKBX)64tCMh!O(LZ!`a+GDlI4<0#x+WIz&iT540&ZG{2@_-`B|KT91PFPW6X1XZbo8tQ zx)gSx-kof^eahn&Ji1QtIQatw#i^(-mY(pMY~wP#Cfn!?28oXt$lFvB#8tja#XEJ) zCeEoEAJjKFxdG*vF;zx;di45FL(hT<7SUI<&^R40O#+ECT*v$cLQm7BsJ?Cb3l7g= z_#*!QS~dDE2VF9^H|E8Zgnb3EQ2?zMYOK4Yc*RVC z1d%b@^TK0WBHfor&w;D8CbnF%&Xf&;42ry4!T z^Dpz&UJU$r3oZKy{a>y2jXSee`(AC@|ETTzl>ttV+P;s>6i02}pZDnYo%?!L-R<+4 z2^vWPoS>|^7;&<9IrAJ)Esoi~S!uP}Hzwui?Q3<+_U*e>W8kRmyL-28-~M0fY2VFe zf=?vD0afs^-G6VIuX^Iu(fe<4>sswQXY0}Fv$qL-{q%YI@wD$ByUg~D$61ec(Pz|5 z@QEZipeB73Z=d<mwxO5ozinVa z)=voI#Ch_;N{ae(maCBr-HIqfj5{~x-SB9{>KU^h2SBuhD`*PCC~j? zw{~XAt?Fe6vNiFE_1WSdF;59~3Ps+sXe@c=Fht~0-y^3@M9WzWCh*XcAO@L3puW?E z6Be!hI#a$yHfAU|A)6aPHkInG8G`gmgjT`?p@|s5JZlm$0;e+d)yJ3GNneLL0X+E2 z*w%WXa#G%?4WiCE6Ti#EK*=KzGHv^AB7I>iC+s#Dev59`rV#Pezj>msyGE43d%lKuVqXP=a`Z)8v%->mK$$5 zE~1QGMnV8P*`VBLL*5$+=wu zdE*!?LDt$BT(s`EFqkp@L^0SH=&FIiC(k+t22TaW)Q7>b6o%>=l7hs(@^!1qcn?UN z1?C=~F5>=TwEt`VX47A)7O`L-v++5k4t(YxPq>%vwJync?%wek9W`ElWO&dn!^*Q+|# z!t22f$H41#P)+K?>kE`A>c;CLi4?z81>Xi%!;trkvs+)T82abEloQMAy+ay1P_K>n@7Ms>)*)&7}qsyI>q z$-`~2ZgUj>$uH!4eg2cH@HO@@P+ZPVu)H(M#lS@Q`S18%d^nlL6gYY~#8;>N(Y35e zzs7+9DBw&wCH934B^8$M)Ie7^4Gvh5i?xJVJh$JF+(2u0b%ncnAYH9E0F2l%35CJF$91ZhCg_Ba-$R`luxCk~of7I?RIAQXmMwK6RyVD^FbLBShB9WMjLmG# zJq;{!PL8INF4ld{9g#2zGwG!7+xGu+a9Ig;a^*hUTm)gmiyher8*1?vU-rBHbnIGH`5$ zY9}FE9Slym6zGwzk1)u$CSoo$Mto(!v!-C_ee}Unja!lxl4c5SyU_IfmCJeU>wECi!4}{EY-J*@NqeBqpP;bMMzICCHw`N0O&SJH)@<*tUgcC)u!SC z;!V>@*ufZZW_PFSBpH(A>2h6PCF-lxx65%`rEkk|yBW7weW_%#%%S0z`<41tjWKa& zE=b26F6ISD$&}08edT3DUyAwCq~{e<2;|o{Ad6!age=D~v%t_D%i*7a_=D;>1k|se zViBaD%6UT++L%j!+RZ`RZ?m9`V_A*(koR*Is{*;vJnBp)Ky}YSL{*1YI>qJ5i(IcQ zK|}A2IHQJ3FS^kyXsfWzk#dV(V{7y=-erK8vA*znEneq(bZh{ zaYtX_Mctw^!+WE+1A zsmPy{8GGMK(lxfuy1g*A++BQe65=eg3QoTVRDmJL19}P|oNkb3;pQ~sa@<(oI~yLy)A>e@8!;Krecj>9A+?Ro#5EJw3|upCO~)0o5b5W*s3Q*ng|hOJGQ>%%kg z!>%GkS&jry+U2=;<;L@3+>gSw4A*hEVtM)U!qTCWCWl8(Hg3XbwmPDh~KBUzX8|3;CdCV!*MOfuMh6wjakjm)h_%_MTh$EZWVsb@XNsOulT)# z-x7R(3_tFv--il6#`RnLX5yEGd?mQ@6z^pGzQT8fUpao$@p~S>9(aERegyp?u#Tzt z-HZD}$VXA)Rop+0`vFMvGOpL-%Dm3sXw>6;=KYO$7gsR!`lR*;S#T;uAc)V}&a67& zkvdps7)be+Hq(mSh8Jy28Z|tBw0mQIs=TG^GQ0&ik*wwmb<@kv2`xTfTn3-^36rAv ze*_O>=Xs^xc|NETQvI!y@}gt^K&Vl?-{cxp)%QbJNq-c$G&y+aV%Ne8IUg-UB%xLk zn8}(@pyc&z+$-5=iO)FSqzQhfPIm38ob2k``Yp^~#$f`@opd>n)JtOWbU8Gyu_>;S zujEOV(ATaobw1;5odHRPAjt}OYU0jm%))rO6UHE18C)fg;GO}U=$jE4+AwDbk5|II z!K2{RaEzYV?Ruq{%l@G--qJA-$N z1_p9vB1b4+#+~XY5C$#?9zF@608hBA4ZoT4HsU`8`lMIJTB@<%Aa^4*l7%$Jbbboe zPrY#s(a+(k!zSHV9{WMu56WY(rR{{*MK0EyFz|C##TI1T@Dk|gM1Svr7M;J@c&@7q zXBytum8PzD!;zNsUh~_{c<0COb^OZln~Y!0G<@b{Y5h1Mcf^lV@g}^tehcty$@lK! zd1(+V(m_>;swj>q@q|CYBnURii4ne=OV!-h4}fK^b+0wD<(#u2DU)4)ehXw+4l+!t z^h9TtGU|Zq)=f}U&MM!R=bF~8$z<0w?05ICo$UIovg9pS=r$6F9DY;)>YeAq+%*Rq z0OsM`2{;4pbG`8vVlaEp;<-fLse5LP$hoOcN}&BPM%@m>gAZJB&Qfpq2X){z3Zq|R z%npWfupDP-O+KpAvIxaEHQzXM z6#qsp^7NyI_#~ufD54j5=C3bD9$CrxRQ*v3_~uvS0$-lw4MiU!ddu4ziV&afACuvk z8#_~$Tz^)dA{jz^twgJm+zrN5&1hkn3>^!w(E$TLN7jdsH4a2gA{+<0tHN(_aNeAz znocood!sWE4fcTQ@Cgy=pU$~jC?hvDelpFKh`5NuXGos3(GaBlP&_W=#g zLsJl2G*ixWn3*bv45D@fnMOD4PL#h# z6>5rVQ03t8HgHAf0WR^r5dPtf79kRxE*CN>8nLf`a=6O>Tz}YL|AjLoVj0dHc7(_@ zfZ89inj7M3MvBBy6rPWMLVM5_e+M?;2{Ztz(-PGOjeuse#B4|`%(oza#NO?NBXEw` zM@pcbkbyA2BoG4=_NDPw~e(fWl%Vo7qTD_>Y=A4C~!wV`01S9J_GM#&A$6I%t>B3ge&}UGax# ztPOoVRhVcz*RF!5D-C}Ezz@J4Rmduc#yBOqLNi#~9r%O5&RL(r2Nq{?!!Jl5ATi}R z^lo&3@d<|OmrLY+1Me59PUB?B*6^?N8u6=6v~+zaz$rdUCw3^7h~B3-I%Fc=gP!J&+~5zAwyV zdvE4x*PZ0wW&kye?&;j_nYGFOT=WfKT(Ai+-j4yDu)o4u57~^ewUdxHaxrvaj36ZRD#8tvGxP;q!5z@8GTGyS=V&E>PHV0|8 z95!%xh#&^DiJm&H5z9l&5^%_YNox)4l z2QCtwu5TgZ&ec0(V3GDle2cs|&lT5FT+5*#`W6q4jCpV{HtgW~2(BL)#Q^UAdmst{ zL?M7E1Q3NE`JfJjanR&cFw`PU_@mQYrwvbsUr{D#2yG_^#;Jwj(Yf9*_Kj=C2}YZb zVL5u-WY?$p*WhHnDfm#13B3{@rsH|m;L=DCtpgcGd>@4)A>4$%q>@8eV#ms31NGpdTU#BcDilzwa=S}@u$Xl^S~SS z+~F|Z4lFMLi1|JT5JIlzX~9C+c|a=cQdL=-Vjj~k5=MzMGzAAX=4YB$H?JG>uYpk* zv;5SF6(aB_iRl!Ol6u|I*=esM&YUdb!0L>00aODcDznyrhd;n@yz@!O`C0Z3|6Gwj z_ui-(=w1PR7uoYYcaWX^hyY9Lias?~QUG(xw&~u;vMf<%x>DCh1u&+c!DrH8;y6@5N2Cq#z0jNW@C@k zEzI7_Ty_nXOnb9g$q^_-i85_dV1+W8$g~fj&|}H8XT!!s;rkU7Wy-Y^f~H&xaF@73 zk5EYX8&xmPFiA3gqq7iT_-hro{aC#;f%*Oe?c=H+tX^u*66)xs1o@TvN0#(g&ncRI zON4$!2l?Q(c%R|8x&eIiGSuszHKJsKn~P7uV@}1|UIV2R_YyusZOQhmPHW*S@GbkmtLZ9r);6 zvjY+S9mZGVbNxv@^ESIHQ90R#`r;y?R!+vV+WM4}LQzf*+seu3YAf_KlF)RH21_J2 zIJmS(uE}T&AsLPKQeLc2KY8XD`pH6+O8uk=*JJ4?OVtApvRlS1b?PTe0o39;^^EO%tlhW+f6x`G&s!SbPW{yz$2UhlmvGh3ivcI5S>X;N zq0C;8Wh%2!27S=oVEePx(7kHf^MdctkASCcWpI%vI$rcY7KL?*RP>qXf6IX1#-jhV zwGIX71%QasbX*fqN~p8<`8yEIm$}kRl`o&5ii{!P#vZU#zTwe!IF9eIR{7knLHK-m zN==lSs?gjW7D@+jCX~UgQR)thrjJ*m?xAYva~4YBLxH0bHoF!?Ijl@|FVr0S`=P$f zc&mo`@*Fv;b!NnIsee1ax4?SF*3fFHe^2o^^cV2w#LAA?We=;r?2}#o97E#KL0;pQ$!6^W|l;y53{ zi7OoLtMTVVYr591DZTERK$KYCU^hhB4bYQM5M9;ZS#4PjT-SjvlAqZYQebEt`-O%r zOdg+CVDfm6j0NXO@P59&m-nCGzP7wJ3Z_y~FfW=uH7+^%BG;#Qc=*TK?;tfL7=UxJ za`T11D_O{O*Xrr43}c-#m?=K}K7&)*I*1_~iax@+k3Es$@JO{4AE{Exbd7vL59Pws zvNmbIujIW&vkgvw@}=zSVG)>X6#1M$Uh~aizI&^=I^vxOy4b#e+n`!_9TB& z^sTWHnUKLyxW+;9MCT>Ppt)gg_*wNsEmC2H>cI-b6;SG>S-~!3icnh- zbb{#tlb@<2NlsIMYr%tjXZN!^J3lwzf@Uwfzr4x672O!S9V-rQ@6@7EY(dr+=KdeH zU(?qrfxn#vzdQM(qHobBvtL4=-1z`a7C*&0J9@SFgOe!v&7LmZYS%QQ1@@cN?pptw zC}tpviFa+n_>g#mSo?9Shn8tV=Q5{lNNFXtVBa&2VmsK-pIUsdQD89l8m~D6$zpAR zvb^HCnGFLRUdcyhjE&n?)Rt*+!gD8oUgSorS`nP3_fxt#pej)Yu-hGHf=VI&mFU1s zei`o-ykmderzo}PdE^|v7CCQ4PAFYsNRjR8w*Hhruh_paP8Rg^qRE^xSBMe&ux#d8 z4X~5gkysN*M^zjlnFKU)A&3pf zl^l-C2x-jD*%a&O-thUtKE77nUf1I10fbt_DW;396Wsez2=+$$z%?V)m;JLVRE?T^ z*}n#wQ#MgU7IE^&LJ-_h?StI^oNDwF`EpJr=vfUaZ$rOsDW^LuMJVT2SLh5>lo#Hb z7yKZIa?Ron+>=n8HsIfy%5##x5fsg-jCIlauP^#%$TLzadI-RUe}?DK;P7|w8HaV@ zbtK0#&PTRSbMKCNc|7vZ0RRKo?=mZk{hRXV;OKSc`Gn5_GC3dlMci1&eaUg|EP=-( zU(lz?p=mJU0 z+|gNSDg^bCqV#ylPwO_$9PI$eFwK?Y%uzI@%vG`hUp+F$*=|p?pxT|?#8tvW)j)R{ zSV$hm6gIITWCj*z=3?LmD%IMXNN!wIfn}X;O$s)P!P0;C3ck8D*8uPh1t`^}v z^`(V@$54oa@L&M;h5x_+0}zm952)uc-q}*Wq$3vQEOyVY4x&Y_;`5+c@t{*|bJu%F z1=AYqG$r3WXw!)Fo$nA|xMeLXJ!Iez9dMp~JE1I|ll{U+eLpDLGd#G^>>Zr#$ zR^}?*Q#XS}?#JRY{m(J~oh|dja`H!4Cg|`qX=_vUBY4C5=j=6p34#FVoWBF{#(N_MasAkGZwhU4hVU8_GSNKc57vXg^?)o zQ*elTI%4gt_l7ac%NfszD#g92W$cxyYKm7jrdF%sWir1_MaFVrvb3`8fw|e8{r0V6 zWLl(V7>sCdL^Q3nW#iEX}zDKRvV)e?aRCD9KVpdC{co0270{<&g zU@-vF!G^`I5-~$#^wBVW;LoO-&QTp7&#ur#lsCr{EJzr8R*<3U1@b_x(Lfn(LVm5@ z=s>W-p9kLwQUmbi1W?q^fzvte;ZCCF+(jbz!Q$nEO554Ycay8+d*Bef3EToGGx1u5 zNz02Ucx3TCUOgsGAB8emW39ia(d%GJKvr#(!Y*H_ZrE($^jc;%aVh}N+zp8+P_71} zJBiebkwhc40!Y1HYmuOgTr3hRSMfQ3*4T+O*1W+MTJy$l$>HBzAsT+^$EWW^Mb!8 z=Y_v?g&sgEJ_H)SLX39Ii(cKiI(Qf;EkL#S0-O%TU9{O(#3{rsdz$s95vNZOpX!^1 z1O%bc(E8XtCxXHAKD98|Q2?$BgO!54-auUJFOXOOc- zk+$AJiKp)GJ(UJ^X+Fc-(FM(kOq-AX#EYeMR`9LHDdq1I}VYo{cf1i z%TqizBgqd<{MJm!8IY8=s?(8}OS!Vo-<$kHQQKH^D0ucGj~~7KRn+r2#;;f0LY%9- z*7^?hlR~5Mw26-OB#Eci1hOG$8R67!xIsRKh$nGEw7&OsN2aF~8lGC;BLfSKPXBBM zjO+A~fiTcLhukLxn)A{y(5%qdJ7*$JjksU||Bekg>*x7n48s-P?TxrRQ4hfIL52J= z#T#w)6nfJeEmZDk`xW;v5?Ak@c!Tgw9U#a;a-m^R{pwfY__1nzK4 z#sk}ZH>+>-3f|c9z+&AJlP`-W-=dR;tmHU+jL@mby;k5bl(_+kR&ec)4xNl9W?cOU zKfehSu>Rh6>Qd&iTm~UyfHjuV=r2|&z_|}htO~z7@OurvxQZQ*|769VL0r-EuuMl~ zv0UxCYoctQ>jmt-G6+X}QdU9$i+BN;$>0e^@roKM1POIjcp`(?26jjZH=_gq?%W9* z&usaFz!|v?dN}(wQbIeSiaYUF>vyD2Yyv>jTOjb-3d|BnH1lr^@E64WQRr)vly}Em zmikQ4Szf|^W7vD$SUz~uv};49dw9RbmY-V+>!gOBv7_k zpzI0Oo-+?(YH@hZY%-l^;CJ>JTxX6D8Ie`ub)X{v!*wQCs@1V|5>txXvJyF??kpsVxT6g6PeyRAacYVoX_N%;VuPhzIvnc+3|@@c+fy zu|*bMxQJtg+Huvj!%^mOILd6s^(kDxfS?J-3IwwPcbyIDDiVho_*-N`Hdz9|m&P4t zhP&}@Io_4m0#2!^x}>-xmoEGxOJ%LgOIBlBPIYMQ77g#et8rGpu=w+)6HbI?PhX2dkJy@ZMcKx!}uEC4`aob zrysY&L9Z3eLuqR4vs##ug-)O~ZZr3RZap`QPo*_nEbw)#SBO3QI?PBgs$ORLD^qWS z$=Y`%nlXP}D&VsG)!Y0Hz@3BG%t%6ecvmKYKi&-3D3PZ^oyixL6I-kSExfgy*wDy_ zUO+it%}cZ}CvKt`fZ1ZJhsOeGKYJntA}#4&s^P zUTG~%*((93pnUXG&PCI2)e<=u&*)N*T`=D?f%#@F1arvjcKi1Gb7(#JEB5uG$Znv= zQnZpo4D`6_aCzDPk>vUGW3QPu%Koc(FWOL24Y0Fqb~ zTT21M->1<7z<=7(WYq559OH|0hq1a549H+C=yttOLUMY0ESgetm0={d_{>;Q(=aI! z383d5q^$<>Uc!zHghNuRE2!OZN5*V&8m`~V@#A)uYI7}c3vQl;7kmAjIc~kadpE$7cN5WC>m&-4^u6Tv6ErP zqw%;Bl!wq$Rzm-0;I^6SV3uC-3JP6frD=z2!5$PGClA$XOdXx3(U?p(f*Kb3Hz)?8 zgbD3GI7`+IK&c4_%2>M-_eOn#$oFSjsx5nYnvFOAK7VDeesE5{A?YmrRvgSy0*zSZ+0EV$~ z3I0G#`jMu>)&U?kI$+ilxSy);FXMej$NM7O*C8KFp{oJ*+@LGyF&LRS%N<776SKa619&C;SFlBVIC`8+aoYKMBBD_d$i<$Sjf#FCpBp>z#Lsk=~ zW#HfEun1^x+Ww7&Y?!rDOz5_Q7bHUWzK<4HgiPMbMFrJkv8I}@U_b=>DYZp~3pjOg z(ItW-#^z!v>98xbA9gxV_EvM1Wbic7K2y*a!4wGQrW*55l(SCABdD`ZG+dEqqTyQR zNkoIam5kw_5!;N?R{|Eekt}zWg@ukRL9hU>Z@eSu`@*Ya-@AEO%DMrO(OYuha$Y zSH)d)7cTgJ*!vRjsH*et3E$*=iLsM5NGvby^$aFq1dYz=s>oINZoPiM|jo$Ucu{ms25)S`PtxX zo_RkMq6MvpQO5)bf<{>4L&D{5gGrVl%qnQ4-5qg|AT=QikB0-X8y zNU8xUz!||lm^xjo2yzAsQ!A$h*Ah2yoRK%ue=sXUmXJ-=oGFXtZ)CA1$YQmW(V>=P zYKML!3%1vYy=pC3wJ-sD!Fuor_i&o}G`s z2u~uc;GEwHEr(nR@!4Gn>8F%3y3F{WTWv_k?uSS#Oc9seAbtrbD=DfwDl8x@r4B6C zF{~I&R&Hg7^od~fS9k|=#xYnI|KYGa<3Wh)uWdehc+R~MdH2SgC|vI;!zdvwFnBKXnX_F zC*!>ioAF+c-J&|O;=QH;oze_eLeJfEw~w9_?$bu zu!Q%+W%MW`&5GHmab^a6fWD0L$=}CB6n`(}t2px2HlVzHDa|`8kdwNyU`@0wwO5Pgo8;Qn|01 z42^+51(}Y>28wfisd0VxZ|lJx~s(hmlZ0l8(s% zo0ceoe_7<5gsD~78$K1|rUsTAcfrM2d1`~5(rwaC0m=hih$k!#xzC7AA-W2~m&!Q^ zTPtqei-pmUy&oMV((tcD0!)fX;L{H+(2fw2KIV z1lTP#dSZ0cMdUV`EOaxD>m6K~Ep|kUD(|Dl(I|-5`0}?3Dv#sg{mY<_ndwnA&_Cng zIaip7>N^=c#kVmIGWs@R=Ai5WE6kRKE6kLmNZPAUZ(ff}7dkxmbPsHKO#_ zLmGQ?IEO}q!?(&HwotkvqVxibpbXn8KLjc~^9~nsTt$~tc1j5he~%P#L|+*DyC$s} zs#2j5PZ-a8`t|M+U$w3{myk`NKS}YsTcY2o zre68#jV8s!^*?4hF|r++@DAfHQ=K^gD-#r}!PwPQvX#I#0^y!vrcxywD0r{fKa@S{ zNVndMdTPKuQ0d=z zAcVr2l@`{ByI~9UyZOt> z*|PS4dz3OlN(BM!XI!YbGjiB-bfxYW#D_zRdR1yZbA z91(gr5rIGY?@NsgmjjUm8OGtlLI$X($%p`Fka2Uz1_PI5NJP>T=DvOdv2D^qGiBj{ z3Jb0^QQ;=uQ4S?)mywE64jJO4*$5>XR?=h^nUd)Vr}vPI%XOj`LBJ}6C#uIK8|r}p zUXYx-9u&!00m)e^lJgAkXl~tp1$}`r%m^ytVkJ+8dx*zQYA~6>7zLEE5_=^Q#0(c= z(L^O?fPxLg442~XvJ`=m*y*Tm?vh6sxhi5vQ6&m~1i-t4c#sQn0z7J{oz3vo$k6)! z*e_JcFW4_E#|3|jv=(C;6|i-?Q_ZBdLxY*j!~xZUrankXEi~O)k#8ob@kb}(4o5;I zhR3|jtER3%hBU*YmgGV-0iptxgY#^d0oQJRsV8Tp7W9DyM(?96kF>e{w_E@@4-spi z%J}@5EHEbvIlm>?i22wEeRP#&Oe9&MJ_^m0=C8#-hd!A`d+BTI`l~>sps{j7Ly`>VruSU zWinie{S}M>u)!RH4dzhN25lnL+XhkPY`&YXBldwqCb*+pQY=lcSDT>X#tt3!^{&HY>9|1DP&Xn$u14i>} zga8pnLOaN%8AFQuE0-cHh_3-E@j;3D7=~A&K<%ZU2mNtx+nU>ox2|S0oU|lD^n#mb zCC()Q50s5SU9`TQqkRxv<8jh;WS~g3;AEglbQbO#kKa$f1a_euZhX)FL%g2@#+A}f zpcXoG>q6RXh7_k;cANYlY>eY-0ylsTu>S;UmrD2hjO(R)$geUj)S5%E?DBas9-L84 zi5c7kttRTiEs58)_WLSMU-tXhuDkN}&;3vH0`?JRcE!#z?IZb-$!7l6HjEfgfIwMp z1RV2o021?FCjt9n73fIFJ;?o@$7B%O(wZR9>yMvMnt2MArl!J+YAyPr@ zV7EL!p=E?(-vf-?LNpdz4J%MbZ^1{3aW~R|4E^Q5DzNy^NE$X87yN&j4Zn^LSS(^q zLC$#+#N&)v0N+{!%QLoI3&FHXL~!f`V+5nRofhdy>e|EW_Ky2gac$YxlKItm`a_VT zX4M3pj8dLj=x!{Xvj8U#yf=$*BI+Z1b36=4#y$_&iTXADjZ2S;OW+zu}|P;D~%IznG#aBaMMj--Hm;` z2ezOeH%&DF);IrS0qY_f1DwG6E>{v{rym1r>k*dIrI?Qa!7eD ztObiU^#TlW-m*$em_b$Vf_^WW4w@Z29<#IG5I8-L>P{3Y9#H4&A&A1K9_n@wMjrk$>kL+nb`)u}h;qM?+&BQ9eZ zA{mVDu&?F_yT}MZvs(=JC8o(h3$i9rw2Ayg6DB&|Z)`MEcUgMN7e3P?-Y_il2I=@S zR%AM0q)W&2?OhsoTA?z&7_Q2U{9LvBd>U;CDQq#;UTpRXiC?A#2hdPaY+{p>2H(Iv zMT4c6$DtID0=Wk4tBoX#F1sq5u(!lrMs0Wv*Z zY9Z5B;S)CZVaIf+8}rdQ0b6DA5w6*;i#TmH!70mZ7Etm^< z;%rjco8^3>3g|q48K&$kpwl}`5`L%CzZCQfdIZX2=h*rBD&B;pc6uXi_CCg&&>vHW zxgp+UI9`BH=4>;Y9HxU)(Y1dls!Rn|(4RFR-k;@Pm}KfB&wz;NulXJRTH1(bo!LZS z3DowI5s?YMf^ptaD~AD)Da+;TB1<3jlm*lWFfa#&qHG6HhueY@3{4B23DqMyfm;b= zg}y4W<77EfL6vTs;ConB)AT}GkV>?7j^-Y1j{-9*#`bqqqMZas6~w6GZ)Hpb*@hrS zuAfVW!jKEpUnL!@4ao|S41S>vVH?<_C7X8-QAGB5i6_=0f&xU>VTuy8Nv>MxSz^cA^`r&hb1-HCSfG(mezrt< zVTq?+gz_ALa=kGILR0i;lV{xwB>fDLO#pPhzDptL$6#HpWSo3R1fz=bx;YbSG=kBn zmLR?+cAkx&p2&nArVXiocbYY!4Jd_}B?Ew>Gw_Zm#x0;zK{4*09|-^h85Bj@RT^;{ zTmc8ouqdQk1C2lP!%6>f;7`U~BNdy7Jq#xTGW#6pm>L&xRL(|Y84{J0dcl|?C#a-! z)6Hxg8zn#|_9S9;NKZE3nYHjo`Ob3?9>>FX&NYYSzg>}siicq57T-AmowJ%2e#asp zPne-X>10CUk3)>F^ygb>D49nqQaORWPWvc#4 z5|M2>V(Hj=p=!PQUTK{U24yBW40h7M+J=5omwZA#)<&b>nALPQyJ=>bN-&1lhF^tYCR&LPyIngXDz#uhyIYN7yWJJo z$yh`7=^`qHYBsUmt@t=bV4P>SJk8NEB4SKn5DNt$6KEEkgb(O!BO-a^!UtR0_RU5i zE?jukA1$zOH)aiAI=O=a9HHQGv7`kj6ZX^bVOcsI-Qewpx)^i_F6<3Lq`DDx zOc~GXg^zzl)Bk>&{=w<&MX+P2OmPC-Pqn^jb`Jv_Jy`3j#7SI8z&_8JY;|H$e6>^K zsIb+o#vc}15c>c&Dhp!Pf&*gYl=bv8G{uqtPLf~jfKwv`AdIN5-S{j=WpcSNY^x?svd_u}38DCmY(oZrQa*6kTQhIyG*( zk@wB?mjwHl`^iS_UuQL<-2Zg@7g8vX*8WxYM5FdElwqRG|H<|*w}_mdZ2ua@W+sA- zr?h|V+1=3obxs5O*Q}$ke@Q>bYX7=Zy8mBl|GJcrJ1+azBNih42kc*V+dsSg%WhdV zskUY9=d*u3tibY9?O!vK?Oz^YO1I;_F-cu}c-`J{e=4pm{W=A|l6)Z)doCJ;gQ8BN zy2wgtTCgcD5xUlk`>Q~`Xk=3xRK~diUP{>rZlZ>ixDm{?*#FkX(oFt@BwM8#7f-p)g)C^C+;1~S?3L1ZUvxc16e*`eB zqbhf-VE6;lq!kz*;p^O1h+X$|_WA7(1U*bkwOVisB?-!*gs<)H)4%qGXChl~2eS3P zwD$vaQ+J2=HUlwTX1?B`?hNQ!iF~~k1$EKgRGjU!IWha={2x4mbBMJ0j5xtP+S8We zo?@OCCRCjB={sg#C94jT+IDV(676Zu`Xs5c!lFi5i8bA4tX-5$_Z&3M8E43hks7LI z3UgwabE@ZAxXk=O%vTHkjdMzvb2G=BVI3Xt;RMh`T|Q_fZeN0>W+dv3bDg_j9Nus| zQHDNM1e!8erX_cHMj)5`kdCKZmXtCRW{@9BSiR%c-!}@da%^ffcRMO)X7CxHB|)U% z-=TU$U*S*5pugr+8U|PTT!*#!2MG?eNRfrnmEWR9HwW(l2q?ZM@izt8NLyj@15#JC zU7aFJjG$%i$fCr0PzBmZb&&dpp^ zXxH$uq5*8)mOy{R*6@TolUQ|bUVQUrv&OpAtPw-sY7|B+I=P$sD}5tlpM^Pa0;j13 zMD*v?(9Y#(P-OGVO_Vc1#RAB{=REdi5BJ{!-SE zOl*0>{P(j^hY0!MD@}Q$cfsI_mMM9IWxeW3EZsmO)fag3K3^$Rc; zy1NlTj*S_&d{2Y4XoFJuA$$9gxhaP@jQYwlHYGE58I71a0eI})>TgKv}6!M zH^Ki@BVL^w%FiTT-~T!cmM4Py!{n9~-}9BkFacu@n6QqvsF*iI@tig_4h5a!AEWxgTFcn%Z%1|Oljpm;Y=3wv0 z5den8Yl)wt?eGB$jBU8E6iR@BF<=ckFzpG$><)a64s3e@9MYBrM$l|KdC*t*0M{Nn zO}KXaaI5e@;YY1;->4rT*T${5eo0-+{T6tp5q{*BSQzpd#KO2i_HGxaBgLLnOx;GT{!^yG2Li!DYRthd9<~bukXpCmO1O|G*7}tliiMNENBw)qL*oaMt zqyLl=V+4-fu;WQkKiCX^SuCv`2q13dfYCx)OWaTANQ&~kG=y_w8knK#nL6T0?(D%C zK*A%QWCigyY&snnt0MLW7ddc>PN2>rrDWKOyw9cL`)^%Gg+~isrQSE|$b5+W+_T7lSjR4nVHGIw z=7xW1G>BrMS(OGNzQ(L)qXh?%&p@b7H{1IMzQ=18euVbc<4!!^7d7Zzu{MtH-2dz{ z3Qxqi)n+ol%M^ioAm6f?SBlaygRa3urNybn(uyalY`GJ$$lk6($w0;4&Sw*G_LjSU zxhoO&6Khb!=gWAZeL25C3vLtm9WbtIBQ<<(fG%Uf{*88V*sqJ$0eEITWoIk)j?`?A zc{ki{oqw$;ps4w8)mKLTZ1i!i0Ilb0m-qHHit)~X56&AFQV;_B4$(Cr2tH=kf4G1= zLoAtg!3Id!LMntG2Gs8JS7-zvr>}e|s@79$8HFu!1he8%`%LGnmof2 zhM42{x0nDX7Q5$tSBQCNMUP>v<@9KlddH6Qmk39Z9Ve$a0fSOYn zJM~pK@^>2#Pf)bNwQ}ON)W7zES-f}=W>&NulTaZ$zeJfS3dpxHJ4djSR`k3q+z}#{ zjp(6zN-rka&@rzLmhIQIM*tH03!`&3L5LW2D58w$k;7!8tGHrT_X<-=QQe6naB~E- zRxsuhRZ=e(Oxa=X+~4j+G_g$;X3*!IU`)PJz-Xa6R0*o9(Sm=)%t`&oGcM&g=3OJ$ ziX3MYnPx^ct0q|)&ew>M?|q_z{y9`n1lZOgz_yMWD3Y8-F=OD6lQ@B#&_A{s757@} z^joqGtdq*dKa0f{ROe(Dzr%`fdbi*q%v`va7P>(cR)*~CH+JKMOJEJLnyCZPA#4sC zt^?O~0fx%nQueJI$*c8`^<}JI4EsS_U@8i!8ZVqr9oq0nglbo66h5Skvbp_$1ypzD zslvJLpl8}Qtmlc`ux&{E2k;UgT!Gi@_z%R9`obdThk|ZNR)H$Bwiz+Je=D#DAbpMv`6tgob)JE(MfDwvIxXOhpi9kWmSs)v>O=@Z3y%FEa;* zBLD!_=(YGjKnwlV;3I@^A_xl7ug*Gzoxe)FGw^e&YYn5z>L`dei^KqM_>i1`2Swx zsyS-beiRn4B4RJ3DG{=TW;5b;J_Z6lDZwD?C@ROI?o^|Wc?sPf&hfzPYB54Cs8&RF zfuJp#F{Gr<1rRw>QisfN)URx2$bd#7SM)6qE5-%YxtBLQ8!sVBw-D?qfwiB67n4~# zhE2}?x~Z3sAsr~rZe*Hd0A*~U7My~B|L7&^XJh9ClEOe%^pecrf0K>qpO~cZy-5ny z#?$A@9@s?f(@;yuhutelAw&3Ej0!=l2lA`u^sorvG)@Qw2}l4iyO994f&xJREwF~z z=$?{?(^H`XBerA*`XzR+#b02zBu`revcumQd`k!fj0coiZFEq>iIq@K2ioHpA;+Q6 zDgrMRbCDX-r2euw9t8gQtSaP)pAI?A4xRH-X3S$AJRf) zmdU@Z2Qp^P?Lkm}0TZ=x)j0&^x5C10F^GpyxG40U5P~G56A6Th6c5IUd(;D_9h^%1 zY<7jkdvQ8un8z^ZJDBg)!hA2|4wZ@Yjd9;pd||86_bv-MnVf{p6edH4NLIc?+qJ(^ zG2fjqRFnBa{Y1U|>xoqyw^grTAjTX$3FzyIOmx_N`}cI~S0VK16RQ>zP@^^8O<9ZS z9Uz$0&0mZQGw2AKECRRK6^ie&m{3<16B4^Gc2KNrv@eTLhW%hutO%Mp5M^A-IzmcM zY$%3c^4w~iH`{_mI_61OSdJD}T<2+ZNUf1NLS2a|g;M<^1~LO9*>ChRiwM;)VLP*4%nxeDS%N8l@1IIq#D0SNaOw`D++t$!F&3i%v zG}(&EfUjkis-OkekehD82l~J{g(ze1Fgi813BlHRtFb0v0qAdxfw2K(Drz{UWCEjc zCgH;#zuk7D)(gpDUwT*t)vywQS>w~xN;WoyZZL1zY*0L1r0+!+kuj@cvrG6} zs@;p)vwFxMleR84*d1G!GABPG+@C2Ru5ho;vMzvfx#@esC1#pmiBtG0lRQq2q?7Qy znD)jMUik9Fc~ zz~+d|ZW(?{IdcdjxEMxJ(k9K^<|Gg-P*cbD$bedzH1)m4vooxzw^Gu&+^l%iy9Y*} zP#u@~VklhG8{@yk`096R{7=Wnf2xdsWigi&HFnnl6?YBqS% ze^SyDPSo!U@w`^F4xeg?Qdcj$;NwH}NhL4nXrtp*4v}IO%eALdZ<`DG$Y9+b%I7*g zGrALP%K+5I?F%zowu`(U-?+tqXgI%!M$b=;6QwP3nB-t3;70%?u*slZhI3g<;YD3= zzwt5jPu_Y9x1y_Lj$asGT&|QGZWdCX1T=1QgUQX6MiWm0+Re!C4~<#BBs_5nkeVrT z@2q2I*9LBp6M()YG08C384EEjj_Dk>7^V>xZqn%_ZE=$>M;b5(8fo*zm?R_KDOfml za?CJV6nc5}=}jfQQ+Uqj(Qc>k#F%F>4KcF+<20@q z%08*-#D2%S&?QP!oFCIb;iMKoiSh-G$57PkR-(3CKqFz`=Zg_AJg$_z$Qd%{fWjpV zJe5R|Elm=Qh%_m(``E4|qRAoR(xe(djJ}T#p#ANa1MMfBA>7!*>-Oqe?oY+FW#3N0 zkH;nC>w-U%ryy+?4m=gJcyfG03}2m;M^1=W9RFKInGN%G??ot0N+$A?;}vhZ!xFYX zp08UGq1a!ERZh;=9qCrg;itwcUU91M0jK-pc=B~MX(km5kgZ_mUmL_Lexf*nBVRX$ zs*1LMrICEyznvmPaE$r7zk7z=|L=@f{IDBmg!Ki>j~!FK?#Z`Vi1hQvE50?&YWwGo zSDb9OJYU3^wUMzrDd0!q1PUH+zHYkNfzwSRS>~`whz;ZD@^zbyOycnU$$ujQmiWM< z%Dc<;A9;O~x|aJDxK8F*V@5L_(w((Wn?He)r0Bc*wBMYAD=L$$eS5&z3n>fT%3Tz7 zK|jGyKJL+=H5OfsFXBEsKvg(bugop1Da!B?K#}Ziwr)TTX?XAw%|j2gOy_i{@}Tdo^{c@V&7KCE0y#Z zX)nJ-h8y;e+wdX+2_wVn3J(p^7Ca&^njL)BKixkvGJFGmnRTz-?e_l7{Cy(BYk7C7 zefRVJ&HcZO46otc%k8^6`nT}6*4ID?7Ek=5e@5VLZE;QP7jQ-U;l>@7Q9PknJzTantgbKTbsM?v!250;3BoIl z&Fa@V{PjWdnMj9HT#HsL3Zn5Up0MLblI2k!_}_4bxihEsfbq8vJJO7JI}A58Blbjm zjWUw>paNT7@=+4hQ#E5+vRY~@}a+4iiGF|SYy~> z@gD~*vhHDjFmKQjy#Tw7Uv#GJFkjRjC|5WzJu}L^O2QleB34^(Z0%&eu`*qZ{Cov; z4<%)n5qh_ys9@JX_b?Uu7om;e_`j%>)yKS+LiXW1M#DZZA{Zu{VnpV#fACbxxbCrf zfkRwunsecT-yXOb?ss-38Z^w5?WIG2MGJi)YQ5=u&qIq)`zo-fDc3^H@eLY&bU7YT z`$M1j+f8qU_}uS=#s{DK_o(Tx)Bl8=6WB$}i|DF6);q3?i2pP{a$65EIr3L+!72bq z9U#c?8i(N#D@zkBX6gS0fFD>ujm`K|$0=#iy8xpGmUcehXjI`|h9Qdfv28)yi;6*rNy$GJd@R;gi+>pVeqR2u;l?BJ zj}y>&0{_@J;6K4X*0n!Y{_$t)jTHRj!}ZD>?BE|WU?6hxkNJ5=#XtI4y&Rc;+$0_T zxABi_e{r1rP`}#aXs!EW7YKl zUS~M&Pr&st^N;mg6Zl8j?w^-`EWGYW{NrkLp1?o;nDd|D9}j09EC0COdLsq@c;=G^ z`~x*&6ZprF!AHeEzSHb+9ZCP_Egk;1@sCq5x#QA5CQr1e@n_aQTH6i(%>3h}3D$^z zX8v)t+3+#*k6Q*M@sH9Ig@2re`$l_p{R7R(HSOZ}yW;*a^N$u^w0G`brpA6={xSZV zBk_;>ceGFBA6KEI6bJ<_m!EV0GN!dnr!)>9#s1|q>x~rrW5xFN$@`bDkS^=gKbrJE zD*o|$D|=i=;vZwB!~Zt^vE_v02JZsgFW;|Mz1f9#5Zn9 zwtLv_xYV1sy+-#dO}=qne4iOWPoEkWqia~q5#1u4)1q)Xj(9r)*FdeyF|?QWE| zW=6{gQ=GJ-`;+Y$JkQIvV|30?6p9^mInFh+xyNJ4Z!sUwe(SRqCS5zZhl)F1c#g8_ zkBu8Y7R40v$dz05#)?ZCGLL;|-rlMz`JnEdrkKPH!kNs$$ z#*Zb+_z}ePFrOpaKmI88j}ugQRS)<>ZF`5d;BB<0Y#lsvz_xY34g$L$?H8uKgSLpk zAH?4A&*n&>eBfA(9S6r+G<_syaRH4Te>^6e#8Y;|%ruN6p=Be3v4a@~(e}q`?6}l! zcywb8&!;6KgpXq~c6>QTfkH8heMdHSyv8n;-~+~v?=Mbb78inb!@Bx1?i+t=Dc2>u zzD8Zk{TFZ@XBKw80?gXXscjNy!$0YP))S+X58sHx!tZOsBg6lmE{B^d{Gxp|#q%L~ z{w;Yvn*99!7Op^(iOXmyMzFB|8#ii&yQl3L{~F>z(f+G9w2s?vCB5l$+)p;-BD@1} zTZi4#R*r}LuhJc1G;uy+6dcFT1D~e~Q$P zVrmP1j|*1NG|!F7z+oirtgp2B5qV&PwjhWLuj_!w9vm>e5Gq=cIQZ5%#B}MKzl>;4w0r8eDj)z8sWW^*J8veeQ^G-nsUa zxFRfkzkrr%uby8H0Z@@!w7+RCQr~>89b9g=s~TtIdi2$vto1U6EtHRHrU&tSr6)X) z8KqXwS6V%f#6^B~rM5V~Hn+Hv!}Pi8BwKEMH7;{Yt3 zX1OldGa9$4X((bs?(-Usa7+-wtg|B^p&OII83U{QdW z33*VP59BM{EO3`^GXAMJ*<-DH1VZu~srag`ttC?`@~&RtZu z2XR`6SpsfE{4Mq%{-Od0)TASCs@4<98-yGAHK4&g`PrL=KlGEz4&lp?@A;J{>sxL9 zdRgL+v<2_;LhSSitsV^8uEbFb+Wcj>?a2YeiHyLfh43d}^p##XWx#5>xWnz-uJt&A z)~A2y$y(vjhAaiycu>P(9QO+PX7Op5l$X5<)RU|Iaj6%`p?Sa*;bR$$u^?Z=qqpxN zD;VzM4*!~wXt=f4L)yPg#<)^j;Kl_@b+GRIB|dOeuTUr=nip#G`^rcwwFTLH9JYSc z;K20DEb{WXVtK`Dss(u)R3hf{!WFAi}^`LMF;qT3XLnSl^ zqL-=N`|~SYf#y^qVmWA~(&yTcT?zjoZg}D9c(_t~s0tVZdS34iU*Ha34p5B7|6Vfs z)$Gl+3{M8G6^Ip8;{3B^ILRles6wR8mg$>I z13cgfbx;s%zZ;FEH zATb2!MUazQlwX6BWqcJ{Fda+g4NuDShJW431MCEn`Le#y=68@a1$MTUHBG=w#wrPB zs@lfBa!65Vw&+)_BQ z(V{nS{cd|e@!bx3bZ<8RJg*y_JUJgR9&grUFs*K2mwDX`#!F`HopF^r zr*_s@PuPVqbO%c|@igmw3}dxhf7{4+3;+y|EV>EEk;G9Tqgf*~ z(k9$X){d2ArXHT0rnSPoS-6K-OvbH^#Xa1ate)Zu55XOuep9zSKHc99t59w9gtnTj zRv;_ra1(8Qd!!Y(BZ&Njdw>3I_(JLaPfuZiIiO@e)N_$T#=l|b?m?Kj)8#FW(J zHKKI%?&AxCKaK-S^?@v9Slt)}ig?q{m3UC)JX((%58zox zuh8ikyGGq8YLp-_j2kRgES&!&-i>Bb>=zwwF>{13+{Y8{=n0RqW;RqhB`~%S`B9>| zH#LE9N3;OOGAhG34Nv60m5z4IMrU}Vk}Pe>6pua<2nHs=RyMdn)1Gi^{2!Z++hd#K zqcwz08mDd@danjoG+T%TUn0YhJ93CTLH8|;^%9JOIK^pC;7tUC4*^ElLFOQq02Nni zF`N8_NY!4g74>Et2=8F5JsN-*ZVilXjb8n2@zEcmP`PYzoDb?6da{1d=1*a8eh!Fn zqD1LK(uDnOK`wc1fncNovjhmGMNd8=O{8HR`+y$E1G3%$F}z1&=+g{5$w`l+NRQ#k z3!NHz8nmG^_lyX8&pbFn_nw(CLQg*vDRPh*0q~4AR4C0+%CIJ2y`W{CS;yB*vef2} z7Uc~?8peww4C$Hl_>hpav4?D;_-=IKbA8Poqfe1Q5yI_02O78@`ZfEfBfjWOVNPH$ zgk&Tg0jP2ikk_>rk`kd~QV#8)mNt%t|q zY~;7ydab#5#pIcVdvK4Ki_?Hf@T=ZT}(v3_=C!hZ8Z1UvYD5imWIg`_3zoZ#P zuwp`M{=N*qLk5G712PrH6L>~=`E&MtqZs$l2_F8vYRs64JK*vRx}Dzab0}JkA@~|6p+tT^Z>P#e^Ofc4`9X&1LQO1DBH(eD#juHRR{)~?H#mE( z`@nv8(YG#l(FTM^hx!oP=N)zdgCPNm3r=Qe>l!SH1d@J_z)RFLW_+3#M8Irws-+JXU;$KeY+;UR#l+K=|fEgXxiEx3>u`lH-hdvzc9 zF+jd#D!~lBRu7GqD{Kzm^<;g3rCDQCL7y`TqRy*7GZ+u}Lfdh=^mtrp#j62>3b08C zin+B-I7>BKs%YiHJ{5z}7m+<7%OO`Pp18w{*eTAB4Np1f3pdB!!JCD8H{-DwK8}-F z^D>!haN*V8mJK^^V!6S05GYt*Z>ny{ELMB=TBCh@u!d0W$-o#yO_7SB&s9)6%3-B- zYnW;l=E+;W+9-qA&6(iou)ryhB@^Us2EeLzgDZO?t@{$wac~aqVjq*eKN`f9#ZFVt zR_f&?&UY%-R_1%1Tww90;li3PZys^JJ*dT*+zRu(>-@yI0$H#-IM`sivj9BE-&iaA z7sz#BIz)fDIcaZL7EGI;0sEP|XbIOnP1DEVo1!7$tu|kF*I1l2|0V{13byFcK^t|4 z0TN$icqU99?xssfy4m|ZZ{TPC)13J43tzU!7rqK(yaY$$L5siZpijSZk5`9YbRE=+ zuYB3tJXPD$bG1y@$Z*$oBg6i7ct0nm)_1@w6ck(sH(fWsJhORvnTM+{Yzc` za~PI*V6E&j)XRAnVR8Dm^M>>Idfr87dd@{@Y(Py~Aq40z;!Q)*5ONRFyn9V_M5KM1 zJ8S9iNO~^tPMDhZ!Wy^sLX|ta_O<(n6xx#7qOS&7ETv#jl!38|A4wjQ;t2$N>@v7jPUhT^grQ6$dZb_LdFa!zs z?xGqNw5;HP0oszv+@d{$@?HFMZ=98ZJ>V<^rcwCH$;e)s07j;N3gxq6Fk&pV&@Zu+ z%&`GEcwM-vW2=oe2g_5ut((zSbQ`8PrQ~%*Rd2`yiy!H>A9uYu`Ni6T3!q)Ir@%#! zxy6(njkgb;1I}sk-Bm^lj&~7|Hi7>(`l*{< zc~b6VsXKkuV-&=AtUYe>UxK_GEy;C^Tw zj?EosG<88*7A<$yv*&szj3?ndxE^4hNaSU3Z`Jk|9v9BFpIjE}8Yf1Pf1aW*3z>i$ z{6=`sZX^5}V{f!z5eMQZ-uaPn+PjS;m)P~PUS%7{aTr{S{HH3x(8onL{6%FlEWQ-G@k@IqT~Fxc!I_V2rD|bGO3C*{}Px1sSV77c9~F4>zK}e z+sS59<&(%!LET?gK|0R!-)berBp3i0nCHKBrKik1|4j-^VU$`>o&RRm>$+071erBhWpk#N{|axC0wm`@_$W3v(+d>rS$*=-+1KFN=tPG8QAl{&Sq zgWd9c(peniS!9ML1IZ`Bx;yeojshmqfq>=ZJ_;<(d=e{Jh0q8dT|UX8lgX!?=fCYD z4;^qj?i-WTwTIX39rvf=+R|T>`O|prYvGh~ht_J3R{7_$UK?zp(76k_b#X_=ARX@C z*uv12QRzOg?bp3X`dC9`$aTprUd>H1tjc|95z*I_&|!8aw+!B_9+n|usd^Z9-)YfxRAgcQ z^`BzQ8P+;YWEOYuP|gk*U2q4z23o`xiDtx-Ct@V2&M)KJ5TM{A?XcM>cEcR#&G`!3 z+!AfUvuG6A(s;B2ifm6M78%LVG$pPKi zx&*1fAn20%t=@ifQJ%UDZsWV7=2FRs@Yn$v?yPm%d=~q~#&`fYa*vM2o_&+)Y0ISD z4H|J^eY6%6Qq8Qym9<__C(@ya;Er;ijfHEYXc@M_`IX@`y@j;Q=e?0R9n+zMr5nGO zmY1XDdSodE-i*$&8@?S^N%DqDlQy5av$K8J%kwL>SJI}KJ=|pW&;&g+F?uKV@J5t2 zUo~`Ec%3~!M1I#)o8Kd;{U5L>@MGmRDIV5Dd&OmS^8=R@6KRTWni}tYMG)B&Srq*z ze-=PfyE6BitRJ@mU*p54!iLc=PAgX6q3waKy4>~E#_YsKD`OMbqW=mT-dXEr+$DYn zSi^mAJ3>*#XakkTK)i{D%e`6O&A5^*+*LgiwV3f+4bMS4Rel~sEZf{>!4J`K_eVtDmvcUtSoN-EC z_@oNxG-$QTU9`&O&Dl8P4$*L){$ zHujN7i3@99*G7ys!{e&*R4r@c$$rOO1@}r-Rd;W8jnB0aH{tNA^2z-U*w$pav*Glq z>h9KubwYy~-fY<8G;h|@TzyS$(bg93qHPB;*@DULa0@pr$l>ccdBay`5>PPw^u@} z2o~fP9ZH|kVMw@rbAhH_1z6_gteTM-L+!=vwbu87F2f_Oo9Ah-w9l{-?Es#ZYYD}? zoSK4Pz}PZGTija#(!FknyX9AILQX-sD zt1wKynZv_lPtO=0_MV<;3_H0AG$H>9sMrKQb&pPgjoda!GG2D&vU1n5c$aoB;$NM& zbAuotN>+lJ@+-8=VHsLG>?I>hGSDj|WrfkD7zy%AXf0`ilE`@68+nF5GQwg?$*Zl{ zKxBzB$n4nXex^Yr2BI)_VE1Q5VYnl*GdEa-0Iv8KlEN)sSGUWPZa`)9wdd$ZYA`77}d}a9gJnV*?!T1I78H7e~Uh|f7-j2PMZJ$bp4@Drf5P^?a1Qm!v zv?pNN+)f)6sN)GV(1KG>7Lgcp;)D6jBi1u{c*ZhR>5meuFk`sBb?ajWlRnVqRB3t< zEks77FJj8H#l9uEg@>B?U&LkLZ(vSjR^_5(NstM^_y(4*(gHosTLAyLW-xS<8h0cY zymDwS9~nKZ$I3zE%lZ^&TSEyI<^;E4_9}c&&wUL~q*X9r2A08E?cu6OdW5$kts~@{ zc{x=D-PNP`4b*f~q}C>15O1%fm00yr>bngspwI*In^?7FmNioLrzuM z9RL8!z!r?0s#UHOGxueEm#1$isspR4E||zV6C7Vr#8;$8oS6bUt#+u&)QgU^6-dvKrO(W9%ovFrD9qe3QqI5sxJkg2RH#8 zYwu`JmYrdD&Sf8zD=Q39WG;JN_!(jyZhW3{$yDtXoF^+gk>MZ(S^oij~s0eNhtU)>s{v!k5TK5g)rB9DJ0X| zamj@BrU+4zX{lOoypz1%Te04;HgSLezj9wEdSm(X^-Z}DRlc0{S`mvzDjWz75CRl5 zfOdL1mKrr%GKd2n*L!NYfeBGAH|qT;^Z*(dL<3LN3P{bZzU<|`2ujGoV*@K|TH45P zZ~*Pc#1hx?<7f&om}u$+v#HrXrKwKR6gAS3;k*Hb$33L((oR>io#Nwer>C^@0hWa0 zDLL+Tkedq-Jz%!8@VMLQgLVqs982l(wc#mRJ=muoRPs8`38sM)obJ=BK`Tyv@U);? zB1`BTyU5Zv$Pc#L{NR+~kq6}Y1}tH@$r7~r5H#2tg4tK$f*cm{6do;ag++tzb#>mB zb)Luwm|71VE@Z{dUI4ju@_@~S?@{!32$Y!Nb3sR|ZUe>#J#9639JMl^ z>sv21#_D#yZ1|1t$;8hcJlRm@(L&YI?qKj4?ra40v;xgx94&ISN2`5W-Z!!AI60Om z2Bv7v!7zj|3<8>~K!Dsx?qNv4Cfedk+T_yUa|4?(7{~zi9b4(~qrvSVIVS#2e#^22L|^w*gj-iea6ge3Io7qFpQ$tVmC7U#`M3tT{ZP}w!Q%+KZU#l|AX0t z@@}uq|5k$ky`RAU5OBFt@jtjpDev%3D*k7&{`EM8MOWyfA0DhEr=;k=(-5yWT z(uVTx3&^{Ak#{$BNRW4jAnzPG_$5yKK13be+o4u_rN1Ta;$Y9qIatu%<5~(GeNG1@ z?$nP2wh7|z+Bras4PGq}B6kVb1t$`N!RNlJwql1oMTas>9D$FJ3w|g)SFeTqTaiNk zttk+kIFz0WC$I(OHmtTF87B_LaRMT{4rC!Xq5bA=41#zOeWE2UTY(TW%*|z z&|*De&AbSu;^>rBGcT+*IrhGAl{S9>CKeru57{5Mm5z*<93cjVG1%%3=lNZFuJ9U6 zb(vE3py#bmG3hEbX;@EE5W=^O5yH3eNpFKT$o{n7@JusIm}kG_YKyBluuw}3EII`r zabBRtpSWtLa{T`*RxRIJwVSbOIMQtrM<&ru2s9OtdUR;<=2l*za<>MkEPw+X;MJTl z(gcPd_2Qw4zfL^$B3LgDLTu*Oc_O2PQEP}>0~lEq_)wJLNN{RJix9)Wzu&hYCM_dv zbaT+gw`LE4Kjn(;BYFznBgIwP16@^c68FTGWdX{$uO*y5MClr_EVQ;P3tN3HYvMyA zO1pEuEy%#$C3-Gkp%irp4k%${Tu|IbD3d~x;s%q#8e4IrLI=i$cPx_v74;EN)G0XJ zS%4@;Q+Ln}9eoPhg*J#TU``kTb3z{FRquhm?6178Rj^33p-u=auUeYv%Z5%!A%$Q% zbXNr-1zEKe3L2F6?6<-3U?W4+O*QQaXipyjWu0Nyt%|m_fRLEcJ};a;FfNvJ)+mDl zU?-S>w87}DL&PGtpPzCQQcle$R zw+pUP?p0PoP}jJ#4-*DnM*Qx@eb`hEVv;cJtnA>1EYZNf6d#2IkIRD}hGntTva5BH%a zBT56$Lsgb8M?h7mgsQ-;S*=@d3O4b*Y=LY9MKClg&qS-m05G(ZFMEUPv6b5e9k@!1#x`BSxkY&kUxK zff@!Z@)L0%8pbLuSd5jjG>o@XX&7Lx-!#rrVFypaQV%!AQV)aZOmp52U&}2NT{GJv zVjv@W3CNE6!&pUodq@;Qd#h}vp$baFssyEhmOG_1aA`n$cqdtD*bBH=Tz5^LUX!Ra zOt6#&?8TMRP=IBpY7*Zh6Wy=~EA3749xgfc>8h33B*U2JR2slVxJlj$r2)3QlP(QI zFNu>Ljd|^2SwxHdrY5|q5lumWNNe7yDKrJt`5Fgil3z19cA|YL3z`P@X-Uas3nDk_GemB+C8EtLtNN=`Wl5R zSi~_{J{n;YO~1%|*<>43)+t=UJH(Zx;2Gr8V@y76DVVD*1+&UhFvqq5`6L)ru0dxs zFvoEP24>>QG8}rWZ{b9(|I{c6t`(0ibZiV zwaO|=&NdFoNj}*}v`P|xB(KSMMg8^uoCN)BE%dYX+*D}up8+-Ih1&|=+T3f6Hvdn! zALY&+O2fGj;s1XD00Zu(e(nW$wvh$kL1R&-xMBgau>fQwtKusp3Xttu5f92n#fzcS zW0%?9Qh=Ztt%)l@5cLS%9MK0#kT$>HzbTMusjP7-KtIWHg&`&>K=7v|DL{jv|8#}^ zv+3CNAI$MTs{fqWQ2!xKiBi!qih#PGe-#!P|2I})deSO5H!%OD>#^VqdYCp_B7dVL z@|W3cyjwCGKW32+yZAB(8*d=;$979#BOnkL$ve$u$!y5woe76Q0?2R+J#LffbcnLZmQ5Kr9<*gOQ(L26#f_An?F^+~l zS#Ih~fsdV2txy7XPp!Q!ZT;rm3XTELjJLSJD@dhc^THk;lnFw zyQ{u_IjX$8jKAslOMimp&!f+FSO#jqc6aw{;jV50aS)G_!I@rXtFqg(5RrZ_ioPE9 zpXfo6d>pok*ia@P{ALY;DO{iO1RHVXD(|YQA2ArC;BRqZ zHh?U+U1&hwmG&3$bt4z==JxqCFb1y5r}~D5p^d;Wrt#U6-C>yy%v<6YjjiTmTJTr+5j2US;(&_-7Yg?^$t^t4Bsb$z?UBmZr*WVr z!?ULa&rmJKX*zc|;8LI(Vu*(VY^ahqBXf%}Qa4{4jxjv*jE@fI_H7$KOIvfIn zij1BSUC6iK43K~!qYtYgM;=wvl4fP(s#zJiYL>%A*t#0LYL>ol;Ki@;ix!e(ZWR#V zMmbqy?R$b4A*R}BujE%u=_mOcTIip+F$E~|O8#rO$0Ro`^cWw4@4Rnlj(opgeP7Zy zG*`agt-in6H*~Ljzg2yIt8eH&`A+L9-mmPNU#NwA_yT}70m1>A_*11X&3N12wtG$V z6VQj5560lv&@b^Q&j`bDI{1YNi{5?`+MtD4c2+F6i}4Hc*?VMS&HA7>cLatTUE&U4 zKeXu?8<)IuMi1?qckXB{v=Q&fjZwTYN(_{yl~EjHlmK&??1q zh$lHGV?@8P=VoZ35`1TEhT-A<=NR|NLxKBn%HeoV{p!F2v2LIPWE!Xtg{zUnir|yW zJO`=~16A+ujQo?DH2;b2X@MG5@&i1_Sbj?DG|z#Rd_oH@f-Q$xDlp4G%gbqjTJL^L(|b@-%v+N*nTapPIlO_z^C>B0TKA zF@2u6^z!=b3tSNv2Aq>$7#P9%_LcL{1A`#VW}{nhEwZ-2`H*J9(ZWl}#f)yM^I$m! z8#|GcwH8SW-iUi5;kdF+T$=#s;P0#IHWtzM=Q7~qR;P`Q1taqS7J9FrF8#U>E;N@dKeBeMMVa$k6ICMv3T z$}O6k<_fqSCFQ4W;4#3;UxoQh;e2jzR9^S$Ey9{)@g-sp_98=(-N(P60P*~&O*lLVwX@TQ3HerL~bX=Bu z!&6bkX?!P4eR~`ugh@m(XRN<*-6IMHGAqESA@AC5GW zC*X8To{3$SuJM`dH9{HIOs-@T_Dn8h6?D(EiJfq~?{D7kQj)Xdg_r$VZBw4%LU4ALfboNZQ~L zbi1_RZ7{#$M4><%@b+5chF8ht!Ay~jVxRql(~o_4)9PRsYWJ!R9#S3P{2cT6sgcmt zR0r`Kpj)Mb!)6Dr#12>&k0;VcZ^oO}BqoBFZ!s3w-JHX2!g5fDWK}dn{uVN9%9&ZD zhW%UxhmH5(>=|O#&ST^OOHAQI>Q`+t0-bm$#*0X^+en);f=fC9rZO$nWqZ5J3OwNK zau*`O;@$Ocq&tYBG7_iArV6Z|oKP#L5l=3Qqh|@aG>mOrR=*!ajdzj{$DAmKWA@@G zj{0EC3ZB<@T5}7>_5n)7F?I94jl6X2nR)TzwXLfKmAIxuVE z0(Vzq9)tRIwvGq##? zGXNQ9%m4{W#!OjuJrXHjd)=vmsMEGow_Z8lco&a%J?PivSl3s~V_j!+%ZOuLv(O!n zb>(^DmMzsfZR`{y?)hSyIGO4gQNFj4N8><28cuQdK=5r?+N0d}4T z?N#SNhnfT1S>zGP3pSQM#d|zQ8CYuT@5E1c-H+pE3CTUu`eJtu>M;$2Kk`t^f@TsJ zfl@EYxnxkzeC5WxruO{#vWcHW1>mW*A0bK71~7K3LeQRg6i!$ZL9Z1A%?Gg$hEZgX zRWsLf}^bM4sNb-a30yJp;60zXq$apAp zz=1Q+1#zGq{+cntI1}8n?o04W5I#}h0Hd6V-YboMFWYdAJ)}_J#}mhZ0+Ka$FA5YY z6p)%I6azL2n8|cR0UWi_+eCpq-mE?7Wg$r*bS3B^du{Y2{ApO1(ha{^L!Ckn;b>uY zOU|hUKg7BV_K9j?@>Zn6J&y$8=puX^Q`^rWZ&podZX@k3XS?r8yLrEYGKM2a9Ws+u z-}W^e_b#u#*BE8DeOf}>P=}^L?ZUxL;6j6Vi03eTq#AZ3tqWB4rdcCjMl7;ra>B7t zL)iLoe1Nst9oVO|GH){F@P*(@%ntmB6tOh9bIb%pa7c@FA~KQ?T8$6l6M8}F`%wW& zaO!Ncm%uMxbTK$(x!b9g+Z|iUi5N<$#XYp(o7gNz-^B+wYu0DNS+OA-w@^6iByc+r z*Vb(yt`ERoaJ_`r#kjWOK@;|SqeXqc6Kp-V6IFMgcbYLid$Z>aN&CYRBJwgW3q@b$ zzWHXR{k?QQbv6H0&~u=teL+1f^Fib#7p;KqUR|(0cAPmisMAK&e$$UmZIk{uR_|{LgQ}Y4xRM{yeRp z84ftw{L!8-vSQ}#WY86p{&8+A2BHON-$3OVcVr2zN5=U`NQRAr*RY&%cZ-E>qJ#pOa=a(9Yd__(t0xWDV;HiXChLm#&}`YgxypB{`? z>LAEqaJdl0UhKi-g(v%pnOwsOub7n0ZyKvDkxoWrT9T*rsUc82hIH1 zq@AaaigpNG&<;WA*2M_~+M$ICv{NC!g=+X4i$~ESuS|O29W*C`YU7 zM8x5lmmHgU$&v7~T6$Gxi1P}9Skg_@Rs;-IGU zpHHNwyoUZdN+_YIJ0P*X)Pf7~9Tepa4+Q=a+l;#vweT9KL^c3af`U)MRm8W|a}-?D zpB2L5qwoXCqw*L{q$DiXaHZgyE`-%~c%=Pls7mG0PZGhEwL+VJHt9oerSj75frn;V zCjq}cv^$C94Ac~(_~ED>(iliTTKY6aj`%7dj;6|(g-zO2Ad&^kS%`J)Bri<_IY7qf ziZzB=kSs!`kOxK|p7=C=EQ7lYlryYOnSF6<3d6R6A!&t0CU&s~SVRrp&QEyLLU zHw_48pPJZ7xvybI3w;X*kZ-0Oszg0#5kYEQf#IqI90)@|sVh+G3Y5A6rEY>!oOEEF zgdg5h>}6ab3J?R7re9C-RUC*7{<1I+mF;wZQh1f=4pgO{$e>VrBCj}53ExQAw@&vh z*Ym4DLWf@zyncOy;Pp-rlsob$M=Qd@81t;ik~!-^Xg5Dc1+)+ojQbmoMqWIn@U^?3 zLF4jb;otsm%8UE&ZGTkqqS^nK7ys|bi$%2FmX`fT<;BDogkt{sg3#5C9|~PP0{XGF zulm3KsJswWj*%+#xfOz2qp%!gfh*8eN__2Sr~}9_&YYv)7L!Q?N|5|rieDfG^UJ{h z`Ij3E{;f3s)?}#fwenrO7~7rM$Iu749i&8HrCe0;^y(5wWF zUe_M9MnM(3g!X=K)8{AQ3$4|N?)en{6c!)(3k12>^_@qb02?-IE%pFt_%5U$!5&VguaQRVdUU7dBpt)Fz(@@$nN_!>X$`U02U}QmcAN*=xiFBOkZRU9sNgTky_XZ?FO5%+zmbxUHgV&_*2P;L>jM0SJmNzwo$X zqvkIV53R619SYh*hH&WI;a9;Y8669a3irmF_aXxi)kg>8UJQ$bGAl6C!25m{iqa7i zVt}GmdnI{dMTb*P>^9!U)~7$jl{4PUj+f$Up+0ZW4_e}RB1MOVmXNWUf|l-hh_nQq z{g`QK3*BO|tde7;pYMOyDE(wN`LCg$8vyX3cQ>2=ue#yOeLO z#_dMv=aDsW`YC=YCH>5Msv-S+vba;)@zKxF)I&U%w?RMOLo}tLpA2EAW__4KGo%DD zaB~Zds>viRh^cR|rGmNEqkrIyJWtJD#fg9k>@fZ@bzglM+}4xvTnTCME#&B?rAezF z8GpK)n%{*;5dq~}Uj5s07b~}ZDcbev-#1=?aZCaa1v`S&GVcF3*Pp|H=Vv0C01xdY zgQ91@pAQAY!Whk|L5>4FOorJE!&D_1Yn>z9V%)Y|)i`X8h8VKt9|;=_MAzI}lz1z3 z&#Ny)BU;htY|7y`&4O=(PD~U=|J0cMI1~fEL6>Q9f8~fR$cz#SoS);pN5Q4|UIyPA zEbk?{Spi81O8mjj`JHR{3$ivEp9-s09rSF`9`7EO;63yxp0{zI(%B;Ko?7rT2QjTv$EP7w6D27Q`#aK|g?-!H8e{q&i3sCrqchP#SCugTsYF z!}*Owz4LmDmPy*7ixGz><>^MD3@RjiOG|?}NcWdhgAw!+KTk{NC|TFT8fB9It22TD zqh0ZF3~fKZ!-jx=PQ!LdWrC6+j{5<8q=0gYaf@T;GDq9p6WTUW9aSc~aLnEC0Ui}= zitRpXqC+JomvrbyaPD|liF2pacJ35CA-jWg+&2!8up!?rl*A391yDQ862gz; zLsj|Q7~jD^cY-`gRUdcDn~EC`KpVo1Cy}nei5Hrj80;~jK5pELuj=C-Q1x+lJSrR+ z*ENvw}+1$pELzXZM41W+IM0QPT?ZKdMQ+h^oT_t=;v)W@FWWqPkux=p)5cwoPq%~i0S|q z33qvJn}tYyh_pl`+odnyBQ(eZLfPbg52a{36^2UNqwKbiqCW1AML zV0E3v>#u(wzwgF|tHf3zm*P!6 z1=oOz_=32(3yKA4rX2;F(d%~&xRxE%M>#9@4R(bYf&KgoWyaZC42?K-%=bVyY*fYb zZ7yM>4S5)JIgF;%czl6ytk5%P#Z(T<{ECTjA0Oo*lyM$jVmwzV`k|T$*smG;*ji>{ z#Xe4vPRYQQr_vG^5z1jF+Y5Ye4Vzn+XdHG`n6My%3>tLSKGOe(rr`hs9@Zr?V5~~A4EnD=K z9dlDG{B7q$!pCmMePfck_VBvBMcd@32-wU(1ZN^VljGn2g|-OO2M-aZ{&P~o^Tk^n@LUdfJ_9LG5(lWo zw!f8Q4U~{@vh53ngPJCVGs3C4wn)V-#>$%%)9ye)qp}kB-JzKFJ*1N#$S3X9rk$oe zM(2dW{B!uK{fKdsIjUuRGg0R*=xZ~3=!-N6dmPU86KH5CbQ z2e*mMaLcxT_#(%v|L($&p(-P=bpx&-9%vInUo;0mrYGsYx{)=16#Hrk&2*XslyH!}^*0|`qn=No*hJev|9zVsd?+2H(0`!~H0(g>zh(!G z>c20sVVGex8jw ziVTsPS4?h%+fK5$?OS~PIJj;953PlpONL-CTt7?RU`Vr}gPZ$x^Kdlix);8nw9lb< zO}6T&UXrv`=TSEQ5Ogr}WK8yP83@v5AN_vQDEo-Mg_q-^&D>AmkRpdcm1)0JcEu38 zJH)mc>bfS^oOFj8a*6N=7)kdVOKwqIQ_i!Qjr+zsiyZoGTvJbASPP_|MD;elU#A_^ zv0t~(v)Ot(yQhBZ)M~-A@?|_0&yw?On&6hqHzmKKKD(3q_3vGQw#tqf*Jp2|KKp;z zdlT@gs;mD$QG!v#8?|7x4pC9T5n53Y!2}52NUoxQQY{q~5Um4ZqF4d^8v z1=cIKb`x0NturC@8=m_=yUNOQRUYHY_WTCQ-Q#(({EN<>y-(IvXwN2l6|))rUa8K; zj-4|+$9m_zh0dP+CEv5VE}z|X1uTXt<-}NOz}_68c=0hmbbAB;8+6(tX-j$`i1bp1Qy6xY9BZ?b=XKQ-*%a{8x(G`sXq_L2X|pPUFfp10_Pa6h5u36Yvs zqeNmX?5sg&YRy0pNLFs`?=W8+T7`{uwDuD^f9B-{sb~3BX23G|4DHRI22DOsP1%xD zdsWktb8)pQ|E%OJGxJ!6-n0Jvc4u#C4J$A@=Q%sH_9-z*70>H6)2YKg7o_FhQOddk z_>tNVgVrKM0Qg6%H3AX&CUJN5{na`|WOUtkoCv+RfOr${4@J@V#Jz9#!S#{MjTz~jALX78RQa8(=STB=6Y_LQ z+CQKfWx01|KF4J*r@sqqrG`YF%kw$wXhEb_E6g$P$N`#2zF+57Xp~qdGYONBJm-{6 zNWiqe^Fc%hrzw9GA$Z&aA*o%}RS3osZ>H_NPJar}VegeCp3H(x((9;2PI`^w*Jksb zhTvk$@+Z~wLrXJSJLgezq~=zmimu+yDR5*UanKi+N#eLEBby7;j!yY2viPw)@sSil zxi`GrVb9b%M|X-!~@a9!~QN;xK)~KO+uK}xAIhH z^_?o?K|a__gEGO}{*pCk#UVG7cGpB|-!>8Uu1w7heyz3Jbl~W^IiXCIa-^HIP`|l@i zI6AJukQ(qso=l{`8f_^2v@Im4@6(2pT@0yh!3_}iZp6~lbo{CZxz#;Jj#K3l4+UcJ zcj>BE8!3gmud8H)6tMr-#McKB068YUdYDdjmtAK5nRF=)YBy(Qwoo*8BXaQvs(2cI zHVYkAv0-H0%0O)GlM!3U#4{jBwpYFzsl7`TD^E^Wk(GT;D)ZFW|J==wIbfcNsYN{Z z7gSk!zRKmUY|k4hZ+brJ)|1c7XF<7`1?Aq^3(7mE{UfX=w}S63>&Y#{`&%lH&#oum zdEzFdRoY(rs_V(WUm-l|h}AD%Pc8($p4XGFX>#isN;$m?}k3Oz1vz~mMRr6UZ z%NBH>_tziZ-xhST){}QT#Yw8ndh!7T)A!&|>$0A__9Dm3*g1;RvE`S{{B%?6$ro7j z|2x-{`&o~I>FJm9r=7AqB&08zo__iD6J@rqyMam~8rF5wdChTq{4L^6y>Q zo^PZau2*b^ygJKol0@2M{ENNKj(?fk%el}#E3dXY;oFi|?=A~T;fv+f>Mhg$v~C90 z^S}OPT920fArFDw0bzdey!j3?59DnbXyigngEWv;hT|9q= z&zmUsET87D^S4mE_q(=5U8`B7G+J87I*k7^i(v#ot6c8gqAk4Il3qDEc(0g&c14JU zpSbKHwjEtbZOgo|+Bs;6RIdCZlm8ZCR9I$Lnhwj+(K+O?^2Addc5ORMJj;j@WMd%@ z1DweYw;=hk?U-h7b0eF~r|1RSoJoJ8eSAF8-aei*Q`F8giY??}2)E5um$P-QoDKC{ z>$tYEsXVrTt>?dF&-5y;zv23L%B1W6I1p0-Vk$sP1&FDS$MB~mwq#2_Zq*C%2TUxC zY(Kt;!;1#vDxmL^aTK`&6i6S>I<=Vj4`fHAYVpF6hB zs|NMK?r*P_a-wEFf8G9O5kOYxdMx)l1Im@`hT$t4v?6lF;k;K0wq<@%^bYXbsaWyy zJyX$|xB4p!>ekCDOQ4B-<}l{^ecMkQ_;F{AJs^XD^Zv#Qc+CJ6>cZK$OQ@8S*hLbl zCk4u~_ONzZDBJU)vaRn8^6RkOvV2d!TYen{+|X!!rqM%BQlol6qiwuyQ4>*@(joOD z!A!n8M&XIJic2T{&hN76Q2b z@$?ln)q0XTnO_0+Mxs;zTXkfE{kp8;WZw7-yMt}XUb=w2;!NXIgTix}IUHu_OMx-X z&()%OW_J_kQp|D1*%UVl{KQ0P%My4{oJP@iPp2@VoOBV46w4x znvxhZkYcO*pon6ND;830cEtjUjVgM{CVMg-a@x`oMTwAlN>7j+dCo6E`0Zy&d%FZ! z-*j>rWDZLglUH%A|G(5W-$H7eZLVho-#e2LTp3@$xHHr$iYS6&Tc+3^6u)F@n}5i@ zPLBNOJWEy3LW?AdDuY+ksR|~|6welC{Kdwvv&CUq`PW_mBISn)`86e2)BGv{B7R*k z)1;5xdP_~hn4PdvUniG_pIv)K`ZI(}<}(FBXY;ETrpvsZ_|?L{TWEC?Y1s~Q{Hg~1 zpO4u|Y1vff=L4UAP8sDj%}j=H?w7%)ZD zgpHz*7Wmi984`&xTHF=up-b3CBAclDWP&}kbW(whqjXYTjGQ2exG|s06cZ$Os`e(& zx71R#N-cGZ;Qt?hr`*9qhAEccf?fYE*;F+q&HNyFNG;bdPSmE+Ci#!kMP`7KY)UvJ z+0;OL=MF(29fIMop;{Mr90Dn)gu`-|SqJl{1=-ZfONYmXX}na*saae>`)pk@DW~Sz z(^xgR+UmkwZHYwe>W&x;GOwQTJ!`u0qCf<*;za=#6g9FzQ6s40N^8mK@}=5Ox}vlW zI=AypqREBoKsv|NAXFpm%=xh~;vv@>BewoLixD3c_16B5tgY9DJlAJPZ5FrHm(8$qi zDC3E^vZ34x&!u#v$NvOiaAPq|28=1df-GSth>5i3+~w44h84dmb7`UD)M(AT{G19*>cGIYiA*PR zH8XG}n*9C${V6jU6}PCI0!64rHxz_^MVyNW>2nIVPkgYTE~@rV(E!5 zR{7RE$|Y^Z7DHO=g7k-igHxuELqZFkR72_B{Yt7VIr8P1*1JaViCr+{XIZ^F@<;YX z9?$#<^t7uyn&5hw&d(}0O}2gTGWQw#K%*~tH1|iQ`0X}3t>iL&oiY0_u+Wz->Ca3a zsY}`Rfll%1**@6!3*^xbP97})GyXff?wm;zrZd*TRUiPPk+z-DTCGm&i;?>K-DI)BLA;uyFPJ7 z@ck*@D%<@N#f6&t_*7%NJ7^I#cMSZVR^pRS()4$1_xv04*D2V{cI_yctItgt32DMD zpxU}=>WwX-?$j^27k_z@_{i)RvbIh@>2Z1kL~bTQ=CkW2r9X>$3p1b1G4?u|{Bx_z z2DL`6dYSu}cX(NH+ufCLE)gjs6u4|S$z8YU#%}G-UbhtGVLMW|1Z#7S#|{T)+B0~R z>nB?C(bkoPCDo&HBJm5Tj*~=&+{f0sj-!UOc9chIY@VD+R*hFQI_L$RBtqLKTfkG~Xs{54}^tasru%k|8N{Pju(|AP~aeW!q^ zcOvK8e2r@`6IR}BXH%NR6J$!o6=eodkc7Jw8_DbhtfsME?B;Uwl~>{`50)87N$66{ zl3})uMSusj2*C9|EefP`t|jv0{}}*fiGO$WpBZ_x)g0tQ-XHQ9)1M*t@dWtHIxbJd zj|4q4%OXegzdM)9ynFQLK6}uXn{qR`k$24poqwLJ;PXYp_}HgC5Sk8|fiutLwP%^jP#0vQmNe*k@PVKN^MV@|X~a{~^T7v0su<8+ zk7q!?&cO!@4PbZvL3-Z$66zXOJYb5kqEADx;w9Bt3cdEYp8VPM-T3VV205GGy85$M zi>P3vw&RSE?ACLx5aYMNe-?hWtUUc0{AL~#`|KO{pQ%Cr@pJ8%5tZ?02mUkNEom3! z!gEW}tKIzB>VG!R9eg=MbP1?}(#=2MEnZI*@Z3f&@LawdYoiGKtvn2cY9cwsJ_)kC z2jpP>GZACxKQpltxWK*O_+Kq1nZykJXH)or*YE@Wn*Z#FR!IBLzIDLRgA-^n@SjCp zQD-<<8e9Blf-LZ#3AWARNR2;pT?0O`R9Hm^3aj|fa;%Af&*BcN4MHazS;#x&lb8(u znK4<$!|gC@vRwYNV*55&QAqpG)EA_lkc$6o8kf+2b{geGl0ACPe^!49qkn147*yaw zH{w+R859fnG$;xZ6<1oTf&XkQ4_BCAh8@lIila&WNptG3Nye%3CmE-X`iXJsBbQ}y z>a*jsm1I}{QjV<3&0c?+t>u3Bwa_u5-Fi#sYGpc`U&GI~FEf7CE%ccA>>KA-wct-& zTB!9Wl{pqD;8)!(F?|WY_QhH-eno%MYx%p?|7?DpcPS%w9|(hA72JT1tm6W|)^mYh z8|`7TNtZ;@Cy)SsZFYC-xkE>`xKCQ`q48^*E1JK1m3zC|E)BlDF@9}#MPrNgl)Z+x z_-p+7t`*Y!`mF;7zY4H`UjV+3?;*J)ZxtJen{&IEll=On| z>lZU5!@vj(=~SJ~eqcybBi+vIvY@qD^cC&c0xQl|F>{;{^ia*4Hrc9m++eRxZbV0} z=4vq*vJIQ;gsyfwq3h+;0%7^vXxdq%lR4N?M{*H4r=~GWbskqcSDnZ8GKYtM{&`$N zCWpHi786T_MVP9E3ry8&@9YR~=A6y+k@?Adc zl*>0P>d?yAYCe+A3XFc#pY*6#+U~_(PQ>@5oJbDfud&m$a~QkJ#u+;aP;m?DPv8Z` zRhgn7(bJXIs$-|cy{Kx1TOEdvM8t5Fs!FrdaB0`%$SY#TPDfp6?6e9#PP5Z3vxtW-`Y-%!`_aZ!x`o6InZ^^Fum4W%##G&p#ZwMexJxbg zXWVS-y(+WbJICIbJ+!11w8~!XTmG5#UiH6={;QDw17py<8}`K-ZrDv`6Z+4_Ae_P{ zXIs~@qcLE*VhvOJ;3b?CVYsR3KUqyYnr4?U=tB1DEIo1Y7k0M0*Fb7lr~fXqLR$ZQ z>wuyEBsl{8C%{7eH3ab{`yCAqF?y%Z0SIAAc zFpWg803Dj5VAUcrCh$XySs_&nYgkRV8GI%pLw$i^4feXp)nQP^{6wtQf-+L)G3ZZ> zHa-=UVng^;um#1znPN03uC&GiwI_>rMQOEko+^M>)rT~bUN4oJ9QmIzW71!pZ%lds z(jm>Hhn2vjJ@{`XNZ(}fXZQ8bH3BsqALY=<`e%tTp511ze=gV8S?iyp(w{+p0|mJ8 z=XYr|d;K$M_dWS<27Lj4_H+EX0A%=Q?3cA3Q|#DNqU?@s1eH5huj`qW>U=hHzBrq4 zIuK03oEi~~(_vg-&SEYwr%^*Dq&s9YV!2^UkugskF_>8@f(WLOI3fP;ls)n1w|mOo zn$}ZG)7vXufv6s_x;=v#&7xze#?AT)Q#U7 zHpy?hegVJbJAP9O{yW<$fL%rQv=4CnrZ&@3=~L8Px9}%*KbzyuKbP@Z0=nS1DF*i9 zXaV4Wl=YJK5b0RY>x6|bn19+Sy2kpTb;l(i8%8J4x2%?LOYYEf^7r7nl?q26ZO zJIRZ!Cku{I(MSB1*#(M0Tt z4)#rq+;tX1w$+iwVuA_WNttQ9T(Pt|xXQH8;Y=^5!>VpwQMw9hU92CWz`9tOk4rgH z_ZZ`;XJ`U<=-DuHnx`s{*qrsv^F-O4nG~*XUc&un+3AiW(tHvwD;YbTq^~pV^pC^S zpQYC~HRbxd8X+%exW2g;v>)?EvA(&7t#1aWF0;Nlt{XeGNAF1I5Yws4-^;KQ>#j;k zb*zt(>Dk%3rYmc20*4`xPV=PKz6|G~DHSdqOs+4nu8r zn?HUv`*ihTX~VNiyihm$^wIC9Kl>lBPisCX%*5wq+ouJL<7U~XB{QLbtHIL$*{7iF z|BtakFHB8cUNY{}D%*>;EL(zIH7W)-5jTz<0{AD)N4B?dFVi{tBy$? zIdI8Q)aUPoArfz`95~*abV&aA5t9zguiSOKcj$rRy(16t^W000mb`aLS?9x*zs2YJ z919^e%L`@pP7U0ygdas~R`5Ujaq4bts4V#xC?n6k^_aAmhg%L%CY* z)N=RuB9L(k-g<3m)yNaGZX@5RaUL~c^buo6OmI7X?ZI(+a9rgj!N3m-27Z_u_(7;% z2L2QVepLQ3BPNZ=uRQJ;@6Ztp{3w50_i|KO%}NITp~@ROb|PmiBYY2mW*f9n@XAaj zPpH^cDfPT6@?Ua{9-~8c%t-u)Ol@4$J0vl%XG+O>obu0Pjue~+n7!U;lv4QvsHEc5 zsCQ~%bi|JeE00k|+ZoDRTJFs&h;}|u@-Jze@b}}r%l6#}0q;w{_M@=ve*T}%$YrJP zp3ca1%Yb-WGCmg8-dFjQ)(@joO^!T$1njafW-QmM%w zmlq?e{xyV(4-Pv+J`!ucX5HX){mH!HM_S!9V|A!5)lFSiH*IoO%~)ufItNSssm`#< z5Wf=vdLT#Y+VtW_`H_O&kwK-c{%%+7k|XeN{~j#4uBuX3?vfKZsg?JuA_GbDr`ZS- zjLKm#xR(5!`bE34W`2wy<`?b$?fe3UZ5PGar-xvcw?|oq;`fz9>@kZ2Wr<@8wY9h; zvVHGz%LWfs1Y7&6=vHOB|IqX^ayssgCWr2-#eth@ccFoi1EqF$Jct=oAElLZRaf-q ztLI1X<`TZ@$oD%Bp26fvuUFG@#kRbD`T|~`Y?TasfU>$do?GQdz7*j72l!1k`m^?5 z2J&kP$r`{}%~8yp?!sh^N>1f4@gbMvykZVe+Ku}=^-PtI+KNn49{C!*a*6Bkgv}Y` zwT`hlemW=}02-f%?5?!QYD{Ayv zaF%zON2iwvZFlI88w#Q4p%*rGM(r7otD~9)k9XD6vDqbMo({AgvFiYb%s2N9kh!8) zVQ#eZ9y{;ak|3<{-zjj-ZmTW|gG|07SDeL=fWa1r!2`GhR?gLKF1t&Bs8K9{&a&a- ziX!nF_$k;O4X#Tv*xfRX-DdKx^+1j1gxI|vGX9F#ZKw#bdz_pApTTY#S~BBiQ2n!G zU7ri}n=eB3>CbQMEFbPi;;+#+S`dOqcSGW_`w0iuBV6kJTXC^* zbj~bCA7)&>6&kGg&r!?@*T2?K+Ut&SD8ZORaXfi5U_Gcza>C#@ciqqXvGe>fl)z{R7H+UGwYz2p(RizUx1QtINW zAK1}IiF4~BwLb^$X!24vus!AXBUfGzta)L`njCBdmcE*z_+WO(oBuSQ^Jf%AMwVd1 z)tOKR)W_I=_IY?(W9Xb=$h6(=%2X%2TgNd!bbCLz|T(R>r&o!!dggN@zrX@xj={ zN7WBhGxl!us=^w{FR$9HrqWvCVcrn-y{U~IL$eh=`tLl_IS2Ww`AvD^EOOGnQBvK> znI3EPgGlWXeyRuLr@u9K$bB6LWNN4{O`h4wxgQ+w@e82gEAo9Upp-t3=P&Ew zaXN;e$g+f2LUfiXoFl1CqfKt?7|0A$$-dLn0ZZ%jYD@TCl6Viz5vd)^*OvEttK!>4 z9D9@`D?5v;KZPP{-76^KN=nIX--C`obZ}lZG%;8?zjsm2?*`EXD{20}c9(~g3?H;# z%><*mhkVzYq7X}X{n0rgh5X~g?i4bl+&hgqB@FIW!ZV}--$j&CGhW81tkAmxt7_vW zB)p}n{bjm^2|){iA)1z{)BuTr=2CtY{iVk=Ahr)Q&$+F$fXq-%ehL3e7TG(VP@ zfzYlj$e62<+Sq$EF@ZnhlVcA;V{e8PZATkE^WzXh_30Kccx6ZjisZdW?Y~5Eckw3; z|Iz?A{-$x0@~hHyAKJCb;+{h%~_Mwg^Sl)2}Qdtw+)&5DWj_It! ztN6Gq@pRW;R;<9i6U+TLa>bvlu9BRJ9m_Zs#Om`u#?8zT9y;s0GnTtHaz!m4$saW0 zjH21QqL_;OK_m^vbUBD0nJ&H0ezKe@=bT)9>FAt_op|G{VE>k&x~!m5Xb?P?*`BVSBEwLyPD>zx^a`~KM@mDyOZ9r3H zd&l|IlCLgC3XU#_Y%dqeQmxKH)vf-gcXoDGSG8GcIbzLd6w+^xLsU;PSVyl{U($;(YM3s zL$$rgso1*Xtn%d0NBFkP8|D9eFG;_{M5tG&s8ctZgm^D+`2nt_NbO(sAUX7(dXVgU zwOzV2Q<7<>#$GUQthQR>vuV04QCb}J;=&|FyoVOSMR71it=m(?n`==-6pJV-GJvJg zsJ)Eg+bJz5TUn~0c_#jq`O;~r0h(}yo8s1Jk@&1xBq zSWYxDdNtNub+)H4=sqj-{#&PG=LC#in`iwCSHG*-7VKKHfK&gaYCVP~Q-7vce%Y9va}umF zZMs{xKaka}U-M%OIl5(FX25!JhZ#AE)j9wqR?YeA?sTFVb+yk$;>>oCm}|O0*~+<3 z0;enhCz@DQK4^X9iv2W}iFm!}aJWS}MB-12s698REkLb*_$Tj))b8WpsSYSZ6Rw?R ze}*@*4!g#uxwmQy@Zwdr`TdvM4-D;HzwECsS)p;>QnafUi;kY%Cx?IzFS%MEjrL_%eczlnks_?mHXP~5wfSBBJf z%=R;KQkA^wVW!n1Z-GJi;oLsf3K)`1!iJ;vVruW0 z@;MmoIGC5i=qK?vW)UPNV+6&_2!bZf8i@u%?fW6juRSy|Xu`q$;p$_U@o(^(3Qg*@ zM!hNd<=$Ld1WyjV^}sn<20Z5{4qscb{W0E=FPqomegCqvSp0g;sj|UQI<<+h2~kw|XOR+rF2r(0e;WbPx&*>wo1n?NADozzdKyk=TKoQF zO>1qhNi=DD=WTL(6B4y!ATzT+@ZR5Ece`*`t-E_*>kd@P$lvO&AMdn!crWxIiQ*rz zll&}i`W0MxoZ4W+b#FLY@j)=`rM&34sN*F43=wyZ0qUUaI9U%t+1veT<`jK+qMmd? zUh$8GeAnLne5dw$(OyTMzW<(mZ*oH8mPL&D_B#mht_L#Y{rFP>c~?^t$tX?6g5Ej>#1r1^E6H03E_twm#ChD)8RMNVpcS-BoypCX`v<36_S=k(x?DvxaXEIajJ7%NZ+J2C8<+wc%zeE>0u~Cdr$)k6+pI2**G=3qJE#X) zrQ(ps{LA*uleCv>ub#k}1=Us6{Bov9P7r%Bpm&EX7(H0J07ig5E}jL7nJBd~QPQLj z7LcmJv~ZV2#dhb;Y)H7xJucCQI?89O46a48!HB%K*^D!t(sP&~&%F64XvJB`Lks(f zijw;I60wW#Uq2mayN1}u2lJYWhUpS!lV~WmI~OCLSRA#xFy?;(cWjB6W>Ckc*qz%a zkw{LnyI@ycgO-~J47W>SVsUw5{4jF+4~`}-9mq)yMP$P-B-v*6utLSF{4*i;)Kft0 zh)omwjuFI`Ifq_kY`cU>l#dvw&!P~7O%Q0*!~{cQ`jxxfWe+SilB6r+X~s^{ZN^RZ zUA&{PTvd&y_7Qh7gFpKy*erQ&ohUvMzYo-xc{pO+z?6A0Fkq=G%Dl-S!UnI*s{|jG zG=w9WL5n54h~bH1JT>GoFNR}fGK(G!ju32I;fP{TNZk{u^g?R8v3woiC-NB`VZ00?irmKX z>5L%asS&ETxS2cR`11W9BHjK(?+LltPfcXzGjM`_lFa-0+L<~0a<1-H#;dvD2Vh_q z*V%jHJ`MNCp8-}dAI~(Lo%l9@Ow2?P3|bUAMeyo;T^?>Pm)x4Cpv(Ei+{lPWqsgJK zZ*MFkl2gDkO=B`pp0wTANK-?xPKtgBo2?Zb z`FnSCvj0h6&9;UuJ~3AaJTWw6u0r-v!Xg`98%k{r5CL1tV{ z6#nODUuRI2D1m_uRM9B9P1M{fLb5)~IlWGkCPu1VyDgZ;(0qVv#|h#00TImG9TRYD z=Ank!FC#EDq>`!nVDHQa1@zXB>fv_&!&^~fukfAP+9zo1RIWXquRVWVzI>RhR;?^; zgcRVdUW7kL3=F;E29#bYYN`4*N!JHUc(0)Ki0bl`v1rVFd9PnIMOjl!SE>$PFE-n$c$;G4Xva}gyT5=*7 z^KS&ncmoh}*xdjhH0X>01<~0VORgzJggMuIREs~(3rtaqBPTod%v4;eQ6yh385DPHV~Vxy=lwo#lwactevDRx=>1HEu~qdThIzx>a}_Cg=y zV(1IE<^-dpDPYnKA%0Dgmg&=kwmv2YyW)b#ZAoE{Y)`|vc#DtVZ=!NlGXEFFS?;I?&~2wTlY@J2OZn!?o49qh6=gX0%5WaEv98L^PV$2bd+e@FAnHVz)1E<)ONJnozL9wNkiG*1fWwJC7 z0j}k^h=9fgDQFUYxN|)Ysm4)pNKvle@qpS~pB)KylU_+THgSy}vh)61F=vuV-Pyi4 zzcOJaw*x1{p@T|RM1uoKhD3vdN47+R14iaVgM&mCMSyx46`(Rp|7XXL0K-T-S5o%9T$=#I~l*8g^B)|L;9$qh|R87Nr}vn2}@q={8aSX~Nx? zt^cx2{l#JZ8GnX5H-LC=kJDN_aeLh~x58_eo#5jlBNN+6x%0B?e2* z$&tU_>dc%w`vRL^^`KsBglxuwTm}*arcT-phbm)rLa!OXrXRg^{FzW&8q+9sab8(7sT zOP*Q)FhVqLH~(s0v2Z0D24PpIMzeQr8!iD~%5N?&ZSb6-gfP|+`N!^^qZO4}otOyS z>lt((sSQpF5hfh%$4_G7(x|Tz3uPhF0S85=-&;^5gWP}4zD~HsurCSBvb`KIuXF=u zt=-#+6b_h;Cj!i)JjDSakaaxZhSibzcY-1ev1Z=r>I~(yJI-)Wl#??J{%VGVth33y zQ;vd$Lytn$(;;Rm_IE3MztU(WX0+ik&|u@mYGz7IvaA`celu{~RY+sDS;0S^Tl2+@ zCYV3YWu`f;AS(Cy(?|&LrfO0r8(DRM-jdgTS?Cvz>IwP)SpRQ>TqiyhVhr*b zK#u3_{mES*zkyqW{MRC~0P<--J{QOhV1E~Yr);x>U0L8xUuE5^UgcJ;g=(KarnqI_RLA2$P*)xh}opzz_@}n&k zr_DKYMnzEtI%(yYJFikHmP+9Z9vvOwSyb~$N zyY#O!a{^AatttrOVTTB52--{@SR9lDRRxTyy)wqK{`0v=-(WqZkP4mC$4iRAOA^N( zS&|qxye#n}V&!JC41b=~aGL~LWT1%#Huj7gSXws^!DlllUOCNMmaq*!^OqMw2iY1o z6o9sH36B#;=HJvg-FkEb*A9YO7l|#AQ{rj$^m3kOhUT4-49!Iob|Ef7QZ6UcneFLJ zu%@u0T+;9!_SR(WiZc6YE@?6Gyxki+1D7}t(fSvSTGIHMpZ_BF%$z0m(Jy~B zJtw7opB8<2rx?ut;k)$x(yRyL_26uLyf-8JY41R~U7pNa$_A)ta`Mx69+RA;jpvyFlDk({VZP zQtt-epx`c`g>VRG1g+h~)v9nSY{v$V>)d1Oq_rgl`Rn5muD=P}WRn7R&{4>*7W<;( z5Ua;MJ}3RypTVy>eyDfd*S^Q|26!a({3k!orqnWRR(mkUdJJJLU4Dqhe%{}K9|qzQ zX^Q|}>o@TGjxG6EWM8MsoGQ;E@&i9L^bJ&VGx8$nN0Rjg}X`F}Lz)~ESbt}y``gaqTXugJlzg-Otw0vl!DLeM^@2@}MUyNl(D?_NG&d`4s;+9x z5#fHF&ToZMtmxOR=d-Qn2$jSZ(C^1ToZe+UTJez+p{|dHboy6A5LSa>E;xPHu$ON~ zV2!+K5H&36QiH`;g3tNus_9sOQZH}lzJZyz%(|O*knUwB&NDM{YkvZ50ql1;-B)Yf zpk_;5EUvJt!x+v$2QJ!AGTdw;uvpE;I#{K$4oo&-0!jM#+h2k$9TJ>386q-=EktAv zTL{%0wh)myY$2kF5Ro}_3n8e2pw~7~^m_jCY8r9K3%zB@yqgipFk3w!o%X1F*vwm# zL;LSzy5t1}EVBKer=&}&nouP5B`pHgzjrN)q^c>Wq8~4qNez8+U(|=aI@wldF!9pp ziNybdCQQA^pL9MFVOV~2g=0HD_3~B?2#|aNFauDV?$fnki+3PHwAlJneu$qCNR93m z_$U5~RIPAyq*iq4-%yS{B(8CW;V^E^yz1Z){n_CobyU_$zLcAW%#gHljB%PVdNS|y z{e&5Kf905g8cVK&x#X-EGfd@Tl~eQi(`9(IkOSx|_OanLbIncN+z1Ehngq5joB0P` zY=hhgqaax(YjBIXYH*Ph%5rLh+{zV6VS}qdZsxw{K^9VjUCd6Ws!#rJ*1-x{^MPdE zKc$2Ne{?c$#v?+BbM7UF?xZ-JWWV;QHv9)aVZ)F3G+$sq0r$Kr3TVWR2$sH~+o6xJ zHteWi(seW_Vm1j2eVK&S>H|y7iPCDW^v%(~^Orm2Zf+r)8ibV3YMgKyf;#k~4+M^Z z;+6xSnM+gQ*I$B9QY|(Gltd31ITBxhZza{ppKktU(dz;*NoX~~#jWT`r_$*c_W_fp zUYyZ+2X=9ezxR=W(A83LJA}lrel;Z%`sbUemPw*(wW`s7t7Jo`BlbL(0HPnaxFScaUxmV?c^s!$8K)9OpW}M(ohYINX>mR#Snt16h zIe||rmbkcJNNaiGQj}G2N|z89&}0@(EN}=h+7L~MHlPWk4d^|j4VnuKzfkwuDlJcq zE|NoMZ7_n+on?gb+b;TQ1R5 z_UIy-(SKBc{@Xd`T|~qkE)2Ol1kstiV6)3*U8JP(dNS|nqAp5MvybjdaN9XM2c#{H zvf0K&nnsN%%M%x7h_RYhx@*DSho`mRDfcr_P7Aj0Zes8UlS~ZGTcr^UwV=(E?rIOT z;6c2Q7VJ%j+$3sJQu1%)x_9-XeuwQz1k3|8?BA>*u=Lg$nR6H8mAZ#NVLa1k?T@%X zk()}Z@Zi5n_i3?Jv9-Tyz2TpD&UppMWCfQn6gWUO_^mK0SeX_KEhJ&0lA!KC>i#JD)Jjrxr=#+nkCeZ9Ob;LjT~y5c>8!xAGK*xjvBlbzD*B zh&H$GEY|_Wf#ICirWnp6X0wc7c`wj>T}-)@&LSmvSgl%g!kthQl#v*w=M4Az+~cJ1 z?fqo~^8JN8Q20VoBtBKDKo)}j0Zg#2ocHPqq1;8(xC1?0_=0nFCSAykJ99@Y&^l@ujhcBE6NH+P^=KVFkPIkoswo1fyH zm}Rbsy#IbfNH$hz7kx&Pd4G0~d^*40J?gh%7qc*#q*bo=e=?Uu!BzFSWTHwkS@WXs zlDrF1cuSNLh1WzW(IT#pNfcfbjYJE$7Dm1Ns8^hi@X>9)v)Q(RX%_G(vlgkS&#Cup zS|7c)Q=pHQI-pxquWG16+0;y zxpGKgB8+8NWFmC*P1|fkcqAhJC-ur^V$hT$z(0Cqm-)2M)W*b$JHNN@-5o;K7tN=4 zD3pf(iu37P`gfmCJ7Y0D8w%&s|335U&!@XmiYPXmymXmCKZ@{2(>OVpw|A?M5Y9;! zeaDDq_hXD`#z?)|3^ABNoAo&Vsc;6}P7@+3sBJmHu8wwgsDXC$@Ee~&ANrcW$(ljm zaF&rNO_>X_orzE}P6qVo=X;t`wz)DnvbR;(Z$kgj##-_6^kDVCybrtoJFGv$21jY4 zeKdbE(c0mDZp348m-YK(-afC%U}7G!JcV0hMk6A#8<6zDUYBTM0-_$y?9s!O&v<LYepmITZQh7ZptEDk!oQ~MVt85e!`r?S=Gaxdjzy#X@oWsuqr*i{N zGYI7w41yQUhBy1bq@VKzC5P_3#w3@jHCKs_i!#$fi^5So#dgdx=hI;2+mkl!am6?HG_2bK|w+m7g;2_IBOT&9g7Q82A z;B9Z;9C$yKE7QR{@s2dSs~x<@k1=>Jx+@!A(`2_l(hXk!W#F|}GCqC=Q58)gapOy2UaQ!cx-#A=jc;8NGKNVT{g8$SDEXI=B)#G<_Or6W4a96zB z1B;2H-};yQMCa0}Hg;uPZ;~U}3nS4hCeTzs%L$qaaE^yf1!9^i&_~6(q9Bx+KAZ}` z;VufYTs8_S>gbnGgU(r`2-b<%v{JE)Ufk%PmUCw@O$M9ch&THlqBhtJSN$JAzdbkg z55eR@H9%x5nxfUe{thJ@sJQ4ZO$L;4?sxwnv5t3GnRhI}g!u(d;^(9om~&yb44aws znq}UJ`Lw6rXQvs^{^V=-N^gL!_+HSy;@4sccBTQs_JE)~3&eC76dKax$H9?Yc{ z6%ratwwd|Moz<7lFd!z>-pBC63wzF4<3>@<;EPMrWk<1>|HGlm@`9i_~r-L#{7>{N^o! zTxdOGV^6OeHX`vlsx=-8^Pt5Z(*XF}RznvgL$jm==|pI+K{~{mbsQK=o--iVj=XZ( z58RQB1H>lQRonJz_Uo6nkTi=Q9H|ZZ(u>0i*ll&k*Ysnr~Whs??^W4A7jiG zYe{bV5I=!(~n)g8ZxDUrMz*0r~~Vf_JErrQPOgUFI+To!onhL^Tgo<$5* z>TtgJvIG5tY_Q(nBv`eVQ+MhL{;>P=Jx%7EJc=gm5FFbFdLxprV<3L-MZEV5bf*o_ zm+S8CC%DrF=>O8)cX$`+({TjBBwYo{uMZ}YMO#EAZ?^M3Mjji(`FlN+lhe`HZ{mmk z@A#vb6<9X+St+&+{s^w2KFpH;8#SDXcN9YF9ZppmP=76PdEnkzCkUvttZJcX=2UoO zAkvf&c;Orkf%*vCTdZpZGrirOqc`QrgW_mB&0iR@CV#_!sDC&V7;lDiqcv5nY*U!On*UW`?fu}7n zh6A6laPiJ+$(76V{ohiM>$f0M`>IIX>pMMHwnyF!UE=ql<5orDO-AzJ)C|8u4L?(} zI+_QZ$<>VGZVITA!!q%b^p75r8Fj{kky^)>>q%2dE@QdFYFY`Cy+s~q@D#P5-79z?YVXio|xSSER7s!$cs^ zvbyt%c9ZpDi-j)UErdNebYza1T=OQI3A3POCSzvHi2g?_uwAS-IWD0-Bp}Gqf2%Ui zmPmXp&r)v+f@E+EX$ji4v@zFgYVkUB_3@Qpd zw`S|I!4hBRoBrd^N#~whFAG~lq1Zrl?wkJpFLu?rZ~Ai&FrBMj``bPxnfT6FZ^nay z*fMW#@Yg{);-6Qzmd0O+G%!noE}!JqB0MjUYX6*Z~80tcT8<#J^U(TY6Cy^ zBuu@h|2RMMALb9gRG$w7P`c8wRmT<```EJ$ej(3{A|kHP+%nZPt(CN z&ut+N#uPo;m^ANk-DjMGTl;q+Z*lsKiY4c<4A|+v{g{H0Nrj?x%Ztb%)G^)3wYm8i z!S2wuV&%(=)ZIWsL+-N>?=B8o6PU@ona^u#V2lkrin03`rG&u;I8ZGintvRLROvK4 zA?wqES&F%~27V9XwAal(*RG!`eR5vS?F(IKFQE;2Q;&R#{VM+ zj&__QO>rNe>AH+7C^^;^jQ?s6&HZc3{aMZcH_=Gu?by4!KQ2A%JC0lP1wP0l>?0&6*({686SImT;I^_F zmVXJWdLH$Tw!Wfg%igXac$(vfNA~d_L;s#`~mRY{d-_TE}mPQu2TC07%s$9D6)svp($X*pWL2 z^42_D<=5>A%$SOWtI#sD_&UR3-S9ns-7IG0rHKd26C954Fu{qeRMN9gqKT*dg^xI1 zY2d2rlDZONFN;`P+22-@yMLFyqg{j#@v!>Cl1O}^`o%et+(S-{W?d&0WQG;6!0sCA z?XIET?iSbC-QqgCTUu>*ORKrldMS6TezE|_UD6un=x2M_Fk25fOPR}NCo5dLtrC_m zdIic;Fg%+@aZ^OKXOvw=x+LSO4@Op7ckneGUr8QQwo5+9le*-Cy!Mi9loQD|%3~w9 z#~3AmKfVhadwrX9VUt2M(a>U@jknq**`|w^SFiVW zgymfkAW7z3Wxp#R+j=nGa#N6&#-I1JL|alrz@|I?=2o7@Xg5*PAOr(X5zesCLW(d) zTtiL~{)pGPVi83RZ!~c~6>8X(zLRg#8BEDrm7jWcYYhR~lwfayEk@F)5$+f{dn<@@dc}j8UG`qDyT`nI?nGB$M(H6hZRGN%;ko^Cd_< zmv1Xkk)Iz;d?(-KX2Nz}>wh8%z$sAvyROjacTm8ZZef(#7&8sC|7elvAscdyZtcBD zFDlpIlN~z#PwfCq$ogoosf(9)!`ntL3v_YxQY4(<7O+cluwkfgwY|@quZtbBHNYw^ z2#5vtF-!UQClyGwD2rGkwb#&QnWre74fngL8ZpdI^HAM7P@UkqyY(tB;h_0x1{xcC zCOi%ri3O;8j)UgHG&Fy;$zykD?s>v#Wuv*$=74-7wI2%$p;TMrUww^^B{tHI)RrO~ z>5Y0o1}#jqxQHWaF1(~`o-MlvrVAtzd#HH|~J-{2X$maJ`Yw&bm1AnX4{?HM=D13;}&}?S0-Bx)}M8^^?wb zAFv%B|19||HcD9()qpT&8Vna$6ivGl^v>_S?Uqd0^&awi(MH&fkQ>EenNf5k9ggBa zy&z$byBHTH0xk>|m|R*#cW`Xri%Z;Tp;`Tdag7KJb&U1`(B9j*Y{ODsDh}rcWzv1LSTXa zrV1CDdLK>Es+{Q(w1Oy zl@>)kb3*i}UCuVS^|jR3ra+#NpW0HjXU`?XRN(WB8_n=Gse*ThhhPrDx5$hiXL~^1 zl5+khrA}&zNSI65rJ;!n+OZf>(CCWvzF~nYO5N1EqO?t&D}n|SC)vp$0WYWH2j9w& zVPRtrmtsM$O>Ka?%adldm3gCwAr1^^@0h`XNm%BcFc79QpuIUo$V~&<`w0TqEWwyJ zn)M_z17qGcG4BNG&9?stpTi0tQ(VUSa2ZqVGBRqFkx?s_7(>G9iMYwfldxLDk&~JM zG}vrTq$lTSM7)M3yC~_~i9+gcb(=Wx2#UXQMV40@u5-oxDgM+I_o68OFyHP%@h7gh z!%Ws-qKRX-iLUHzO}S2`psr;S437GIC}pQ8dfMsvFJ7IYY@&8fgka z%V?4qZK2A`6Q}2=u2lgHYp5NDr&!T2Ji&^F;iwf2!^KuK3`-aW7#?iJ5W@qx!@`y@ z{1O&W1o8>~{Fm7vyy8 zm6^TZAFv&0sHtAx*+pk{ad^x_6@_J9Z!}xQ%S;;cD^r@^@6*JL{{>7aX;(!{^ozPZ zu4HG;bE#GL+KE|`w{W%ODVs$w)I{=G}y zAGbcYVm&S@nrW?AOEa0gkQb>b^6b*VHcC z=}F>3lmU8ry>E)(EnS?Rp2Zl$n4%z<(utY8XY}3_!5VgOAh=f9@6vi&is0M_B%c;$ z*?5&_fDthi{2$Ue#gNV^hICFbq;rbh==`(tda9JbKXX&c@6CK|u(At%KX=>mhMD05>64~f&K$)|(43N9 z`)hDu^VCfFU~;Nx1D&vu{#N=QGe~3X_fBmg`-f4$&Q}KKt^&B3Z_1niZnC0@hej)! zcvxUX6A$$i1MwjHEhB(s)FB?`>QjcA0YmtH{%HY07u2Iks}RO=P}0jR`&z99_O-JX zL(5F9p(NBA7n`rRw2RQIOQho>=hNsAefXcA{T9_NG{uW`Z4%X%v`_(3yfXujSItLx zE<209NG{em_;>g8+bH5B^V#cKLn_6&}HKm?}O{tIFn|c+;Xx8Zc;$b2m z#Ens+Cj9f32I77O1xeqjTuXFp=u#1-?`y34YZ8yTNk`P9k#0=py&b@B4H)q5BmcOLokS1U_iGOzPx z{k98(|BL0X?w0G7YVg|-T6PEv9&rZOfB9a4!~xgp?dczZIuU5Q~;HIP$4Fsz(=gwsIMCxHO7 z_4A|UnSTDw^;!M&&v;PQ$_BsWzo&D+y1JdZOZ;F#I>{n&k~g6Ms0*!#l1M`W{J~VL z$?2(PyEL@eCE3bl=F0e3YRi@EY|~>$`*(y=(#00ivueHc;(^F;n$FfgF|XGP*(_FC zwayb5?C&7#fZ9WrWaE%Q?v^wX@gv+j)m&de?d&2o|_IlM>D< z7J`bFz)fi}Hj8ik+nbC)O^hkPXv69Y7%A2UR?0!1lNw|qCy;MinhjiQ@hKuEZ{Y-8 znCd@phrC3$M7hy*^lI4dF7!w+Z+7OsIkS1x88Nw+#UMu<+$Rj<`B!`J!lnq~5IU|cmf)VsD zy)P$cW$De-uZksR{ME}S_kgXOZ8=6n2L-gHzT>3#n&(Ze7*U@7$>}+%SKbsJZz(XI zU1+T9I^yq0JGPkqyx-PK`9Z3f`K%x#_u05(6kr#gSi;HHpZX1b`gDhC^d_J>n@_2& z(cgg5pwR5U;RKf&Xd0{t_|!Bs{hUdXuxm&8=(i}79P2W10^3S@}K(%PU~mn7(6OJbJ~?r}?Oldr8DxH|D~rbc3RIk=*$Im=1@PREwnlXUK$QOYPu`jN zSt9FaBl(#=UrT?b%H2=qs>ai^KI_kC9fx-Npd{;q_s~2YJ7zvGnA&-WfuZ`Z%GBR6 zFZj&8>X_U0c8&urj z2iS$r>$H<_T3yMa$JEviw*I=bTItF4y<3S%c~$JM{VS~*u;SIxv~4{e?h0-GU{_e+ z??)lsRb$$}IXlUic1OyZMr(<)+OK3Jh@Y}#V>UFsWOkt922hD#L6hC`S%l{Y4s^4v zRb`2HiIMZC0_R<`piQ@+{Aq8%RwUS^e8y@rtAEk?D-|_ao@mrXi1G8cWRi%~hmdvr z#T^`Vi`3_Ci^{nO!&XYHdx*U;Lsr?v5)|IS>YCQJ|~H>Zri?M}d#5jDs)a1?V|jsBr6` z(L@w2nKWduw#2W3O*o43EL%Cwt#GHc6Hhr9aNJ-T;lQ79!`!uZ9@o?wJtKaDzDSdV z=qg*;TVE0IYI*NcFb=qJ`=ApBeKeUj;KtJ#9P2lR05Rm2q1$_Hc>Cs(9R2YnZub_kf#iQ~>k&^r=E8*C>SwL;>Jb=y@io&j`L$u%P z^WSmk0mSUBR9qTL?E$$XeQxc3bsQB=K0@ih9BlH7g=WcYLM~cJ0OD_ z{{-*shi#zI$l46FbP>-Z?m-b1`#1Bz4jSngr8rSh&UFV6Eim1m^%n~r)qy#B-s=A( zO2|MtcO3c|C}9{!q0o_~X~LyKAj~S&r%U zpf}SIHWC##a`oT%bGSdj;(3~ZGab+K$x|p<#q)^vLEn42Pe+Il&$AvD#tn8#S@I%W zZ-k>JV+7{K>WDbTK6B?!Cfr7wV3SR7j7O5#j&N50A#5WeN0b%ml*TJ!{$FbWHzi6$!>{n-cG+|lmCJl6{98D9(o%+*(JgVJnQ z9L!URF`nY*3UeD2QJmtQ(vdL*<_YMMutSJ)@jA%{%_$g?Mt}Kxr(?QTT8_0y{182M zK|i!jsMhD_a%(0IrKKZDzZOup@LlyU>uMdvli$Y7u#8wk4}VgoPrqUNS=diWQr3vl z$i?bPT7(e)&fgI5Q$?aPrNJVGcj)ljiSn{n6U!vnL0)UKToe%)qzzC|pgV{rE9sTdNjj!0LnA9o8v#;d`X{&J3Za*G<$4>_1rmji z+n7$@$Hw$r&&D)JZDs@a8o9)}q&AzeI2_Zaj0ufm9)?j91EO5Q(!}1#oHF#noc)S{Pp|*TFnz&SY`5BFG}{o46KoWsV%XS60s-R3jFbV|(+XW2>7Oe^h7Oe^h z7Oe^hnN)0DsZyL0hL#FOW1^0BsPL12hzk2YWtTvrPG0LD{Jx}`u}(OE?qHIyFd!yW zLouru%F;#*pam(NYKv(jzZl?&6sr+hV91eE-pOb(?uI$yI&_r)?KgBUW0z5NVi$w= z|0C{8;G?Rp{}Uh*BlrS}1{E1KYE;0WMuUK4gy0NJA_`PoP}T^_&J3b#!DKY!_%s!; zv`URtTdY-6D;Q8DERvx9H7>2V5^L2vMg=z(xBS1~bKaYo1h8sre|*Ticb9jUbIv{Y z+;h)87nYCwz+r@|enZPgl21wyjK>-Ld8a<+4xK@RFd=6O7OYdC47U3}Bi6GW5BpFS zcVE7NTJ4dQy0ZJny|QL=NhvYf{(+@J>>X+uD7rVBwkt6rA?EhSGco@5onKeHh;DH7 zZ$*5_zsP>oZ_B@jvCId#i~G45$O}((g|Czu~2$!2{7Q^3ro5 zh;c}RijRCjh$G7*#BtnBBo5a>mhjTwFKfk1yP|(OKc0F1zPyxdGYalD5_(&`Kmgo~eQCjN%il@B|H-56~06RIT^(#Tj3!ZI5ngA6f4|c13fZ|PqV_g z8t9c#+|vr5pn=?s;?u405gIrnqqw&fK3D^1WfY%jg=wvYzMq{@oM(l1XdpkM_#7;c zG;nT4aUU!EcMbH*DDG>8>oss*Msa^D{G z29#VhyORWZ!T>hp3C6_;HK*{B|8c=e%RRc;c zi!`9*GD`zWE)zAN+(O$>k`#wICOn*Pv!Nqw*Wz zbeT?bj`$(O6PHU=$y~-&PZ5BHcp){ta12u%sR&wU&RUKP;L^+Le_&6kCB1~BQbZ9% znLYlUX+h=o0Gdz6GeU6mfA zUoP}ni7i(HN^B=+K#7gYLS$27J6HosY~P|Jq$siN(0~%#KQ*AlhErC|ro@I_QU;XR zp45O6+anrKV!KxZN^Cr4j&GFMs4PT)#1>kJ7ZO@1gclN7XbN6PV4?ANA#sH+!wU&3 zbP--iR3RT;NKl~xcp))`&c+J~Dby1$B%)9@UPwTpqwzxG33bK`2`6+gUPv@Jv<)A= zXbp5VDH!$C9B`6wWG>_)HHF?FC52wyFBMIJ@%fLTB3JBH;})T*PN?YzY09yLab(Yy z%xiP6w)j}6w*~W}<3=#AZVx7y*Vf{Fm{)j?)Xm#mE&wI+HW#?mgOG?P#bi(-T<)pV zj#p5kit6e!4pazAydaqpp`?hNfsuxBuvr-59>2Zl@HO25(=Q$X#S+FvkqgqjkxMdT zcOnNelBhWt>_wh6hcct@fu`dSKQ|tq6W^SHZj20F2ZfHpRl?#U*SUj&RbY&y$Ij8> zIdru6%r%)>ygzazyvwG?x=4<^oRtY6-CwlJodsMD@2(~OD?pNZI|_1=r;P8O7w3KK z3RIr>#S(_9NDTcw2%*D3k8Gsk6&RAEqj&|9+TIO*pJ#vAr<E0^`9-P+nKT^=(t#qgy^J@A-lca_$F(QMo#dn>W__=zYg0QM z;XF)K$J@=HnSZugUY<;(wEue5#|ojSo-&RmXpIqU$^skT5G^ zT~i{3Z~3BW&us-UP{Kb+$T)2i!%@H)eu(8FpGWS}_4NbzE@02be*bQBDAxKo7}p69 zoeLD0cMjqa4xcOjHKizny`LF{Cb>2moBT4#)zyN0wk5w>gJriKcr zN5v4tf=eeQ(VjTNkLy?0nQ<*%IaH7rOH3XV=Bk$mheu;rg=hR#V^4t-puX*`OHgB9!v7LlcFJB%s$a4WT|B&5nY*m+85B&wFnPJL0mhd3&J z8Q_?)5?;8lYAvjSrV;(2*YQwIQ*rM%VW~s#?N~0W5fQyy-5x*UX-~&?AK%862P?^$ zP+T>h6?oQg|Kdv6u6bmrizNnK0szw8A_^ z5TnIyQ+HX-?l$*e6^+$wQ)jbrDHO)1-w7)qTB~8(#jK+4$sPDxOuOz}K84jpL;J1g z)&T_th`1L(NFgQXq!20)V96D?2<2;tycwZf4b?E@3Q2YjBO_uO6T25F=C{k(5J2^! zCbZVM_;X|*w099wOgdVgSiZ^mIv<=b*!|CV1|Ro)G$jRBsf|R=guYDEJ8wezIw?n4uPP$j_lCVD6iN*rR{QM+~#W~Ns@DsQmLMR8=OjrbFe_DB2G`|PxtZ$q;X z&93)F(~AE9{K;x!AqXH~=M^G?8t|>Z5e+z0mJQI}bLaiZtGbdmp<@CnJA^^G(JZ?c zs&42TmLNaCPMDTS2JrhdGATLD`jZvkiYb+0T`iItW>Z%bqZt#A#MP9d%WRNsKx>Z+#VqQ^)1< zfa$J1a=SV6JyGaamMy3NOveZfk}=Bh`dU0Ody4uG14#7IIe3C8i5d{&ih4%JExkgJ zdkC@lfJxFm(XyxvMAaSDfymg-^>|W;v{#-`EA2LaaiTuZC?5=zT^DneYV7=F3^2t< zn~@_y?s|Ur0RF8$JDnpLn-f39ztt5OFphsK&mGSG(E-ZuecaC||69oXPWiRJ{^9ad z3w}oVcPGjp6E9!*!A97knQjlscrQd!5@kwHdhNP2hltJ2IKNf zDaMvJe&Y$e4BRbqj?BY#V)rCcOzf;W z(QZ{2aa3+M?Upzkc|Gpr&=JRq5+g2}_V#*=I7&x`t5`ej?+nN1BJ4g?g1E>cvM4=K z_=$|BoKeX>fESY6(81J-C%*#YV+b0QqtP-fUX+Qo4MgW=ayKdv9g~T@_3~`W!OqS+ zMzpwCigtTz*i1-VR(S=ugu4UpJ-0lYJMmU|9-1ASiX@y1088gfWCiC~xl&*=!|}}v zMnnEp$Ln1niMZPrKA-JOfiwUG`&55umEIh06M0X+JMAOyCvakxl zZ;16{ap9owRDBkY^MGzLlBX6yY%`t zlp6bt+XK;VxA6UKE=uf0>4Z(Xc@h3<36w)H2ykHYW@&J;@2VOLyG0?6W(1r?NzMmxmvCYlv0z;)3`t zk5xWMs&{vK&igflUCDIWsi^+Mq(l++RZi8Y z_k&ndxE_f}O0@t?)Etip^n8N@}}JH#82*Z?*|+$x(qw3+*K^&zp~IPZt0#aj%rW zLX}PQ6GC>fwcodxD0Z87@nO?EbM?(wrHsSRK3{o~zgpsa^$@=*G`;y%5B-XT-2zFn zsTYa>kE=8v+=fgZ(}9_;$M6F+aZWeq^+3cVL^QEB&efk{p@h^)Bv&Z0`*%Vx8rEgG zyBu3CiSBZ&QbRf9r@Au7T0p0daH*#03=*EJp-jywRY2hzHk|L z3!K%(h9ce+-2@i|xP*~^uj23KJ^IdY>-{*jA1wPAQaMg{lHkKpkQYK8U!RRu*>VkJ zVFA`4w5|?p7BQL*Y(VK)bXA*=-@#JF2i&Q_nT?>#P!tyekr@RLuvQjvd=*8fWaoex z2D0-@;4X+0RxYOLT7R?y+*)F!WYD%ZCH544c5O%vo?HaC3Ry+h?jGe^GdlQE;gO?* zss27M&N;rf2r>^W0+;#>d09}p%z^Sj?_Es`AZ!G$h5DlbmDdzSCuC=uLbOX-NZgyZ z(PqeEY-#W@EDvEajJdxim|NJpwkWbUc|B0nXG^f_Q2VTQL+pNS{AIPH)=(n=RjI#u zYv`W==zN;eglwNihtcD`))NcrOCoat*9En{$XxUh|9$CLrr}u1TxhKdJb}n02r_NC zR>L=7Z_Zk+Y;%4~o4L9T7-iSoNJRHPgzs149V5=}_zXhuX#*03!x3|JIkJe)oI^v@ zUR0ZrZ(sm*Q1XU9LvHYbcwYl0o0E|_(Zd7SFHK$L$eZHN5B>%jPTp_#peR5uU+tF) zGDRpO8V{zQFEM=t7M&Ywq6PURii+FOTO`6by@hhjl||OxA~ReoSp?!+Ygy!p_K-y! zqmiF$=^@U-*~Rt- z53x$^Yi=B+L86rNMhpHf_$&bC;`XU4STFIpMDe+d;dnV%KMn)QAiaDGTJP8-W|p0Y zMdI`P0B6V@@-&zKxedNt#@XA2D|YQe7yx2nc$}2)coLKwwB5}gAG|f8p+4vAkW0?8 zHZ$RDZsSp_Ec&8SJi$R75tBsXsG~_Is*4v=akh;xCU1;q?Db z2g|l5`{I{l!XZn}8&G zg2vo28bg1(`4$O02@leu$dRRD$ugG1rFhhv?(3U2v|wgR(2oW7C{iHKPH-28($DeT zXwAH!qKtQ06nqS9q2qM&k~Dv=F5y<}WM! zG@8}>`>eq6U; z_NEA7NmzFgF`g*&!K+>YUeomz^e;DKAr|z%Y!5!iE9ie2Hx2OW!K=|%?7Ac-jxcti+lwd1D^b zW44FU6K5ApH*ehZ5}$SM5gXvITQw=+tyaZ1_yUK?3Q)gQek2+c&+E4qK2y|Zhh@`f z!e`5|JC~nMY+6lg)5|B^h)DVdL(;T;mI{y#NJ)mw9 zg;jnGGpV!aK|^FHjopWU051=1CGh;IuUVy32%vHbH|^lwwWH)X zOmYm&p*+kTzV zws_evW1Z7`Am|35)x3K*JE#P0m7j)j2%F)#fP^oKGYwl8%9v%Ch=+0adnl{0_b0J1 zo>pdIrFDv+3a?do6%b-5SgVWn83{Os;5U6hfA?sC9;rSf!Vujsmn?8x?%^sY%|1pY&v~v?%ae!i`NN62*o`~^ z%LVp_X5oBnq~KJnEEwbk{?XxaS}{9@sgUqS;YluihdehiAEUia^gKLWf452g+qVHp zdgn5&Fno5M_UUUSUWe)Ha=ebx*DAb@(btu+3xrXr z?hVUfR3l)}W}*RXIPA)ClJS#v=(IEuhyDa)WqV+b`H8ldy&|b!`#QPm16dLb)q*KJ zu#N9HCnyh*`A`mP@s@tu&I+G`7Jw^GtF6IIPC~1Vy~Z+==1mnn?6jKsGHRvrIw?XY zP-pU7my1GOpgp#i&N3BRxLS!RIB>#;h-k|c0wSd;T;y=dFwMYeRADHGQwlUTEA}?I zta?4dL?|=_Z?Fc*Q9FiTXfC4m$MW(V8nTn$DK5oTD)a)7RHC8hBB57g<9D6rSe1i} zZVpU>^$3EQH{kIFW?urZLTf2%h>mmk;cQq&L=0Ie8di>-M z8ALJ{2bV^7qv6;2YrloxNYQhVLfkDHs^yq_?Yapmu(*jLvgj4aa~ONNE*2vSz;=|( zh|d7LW5_t7QXZf<386t156r+rXO>8KCf*}1`n`0YSKxN z?8+8lri>wfWlW+!?4tP`9&Uairj!6jnA22xT^tkyja9xtWSt%6D!65giT44xB4g+jT7La=F-KaEW*Vzdfw+hc#_ZWg>*#(|vH zsa%+x5=7b|kQ0C?QY|EmXYLiz2dg8mhd|@SP@x5^nkG&WSpm+NuwCb z5*;}4V*Sf-90ky{d@xI8iE+peDy<+>YlD6{f&^*E7o{M9eTnl*mZss zmm-oqgQDb!C)PnY|2-Awzv~>;wrJqY_gfrwe2k4-Gb%5)k7wY;0bc}mJ|ZoP7TmEM ztCRf;#y}oGl_)YYwF)R?m6+^g2LngEus_E}n!o1izRUo$0=qlRMLm%2hTyJ;NdbFR zx_-*EwcI*mXTKs6i3Q%@)mijDkYi|bI1=C=4m6Ae_~pzVz%OU^0RH{oFtM)+w)K3H zBxT6)r;$O9K1^73g;gqC@Zhg=786F8mw%>Wg`mN)18~o=qG|3q)_lCmn3V?V@l0u> zYR2Sfp&ojHU0Cd8Ff>$H3J8!UEUY6i<^|QbpJKIe0GTT7yiF^F1B_@A4lw6JasX1S zz}y-B?Z;sF(^QccqfxC`I@=xicXzT+bobl zzui2cgP*g|36A#^v8k)utdr14C*SRwkH|dViJFgR-2Qi8eR4PUilYM8-4Fs@7-owW ziiCZzX#i`0KKb~>enJg}ZC|vS+n{FTI+#vujorwvlQ8P;9F)!yfRaOku!$E%?LIpP z3w98@z&?lX&p0ExFTEw}eqELS=?jI%wxOdvFu{S`8iAzPU4q#gVuIPbi-_6QD*v8W zlCe{{s*GKFWam}Qbn*LC1_qC-m2}}}g`dIzi*Y_Uz<$mO)=l`&AW-eJWeg|7f7mpE z|9BVv@KcbFd!Pz@2|oq-zMtWzpnz7IC!p{j@KdmHhJZ`_6e!+W`YEXYgxV^-x8Ci# zh?E5o)MVKFa()WtulcX~Dd-{#9EituTIa`vGQdvrUi__4#+VO&ej{1n_i-6e>J(n$~y$m7_AKTuM`8Td)uN0PXo+&Rx4Wu2smu+CFu49CmBJayg_ zou~TCFibmS4$@_x_+>-{?EY;K!Sn2ck*~#hc3+!oT*_WMiLKvOlysh*C(ytk5G_8buZJkN?`YJutel^m6sYC5A(nP1lq4onXtmi-a z&lncumKOI^xi@3VbF_D;*qNS&Nvp-7_MMza?2hNH6y4g9e?YDAL+z>K zbuM*wni9;{%Mp8xg_rw*~oHjKAFG$u2x}{EZrtH2yaHxbfHS<@ors!oT70 z_!-z%G?OCZ}@%kpbcDgfI)jV2krfdL3{l~9khSL^N033F?^gcTvu2ROe8C_kGzLf%kd>F zG3!nDd#TCxfN7~FTgL+_UDx}%$t`S2HQ5yWbj7KsMRb!}xSse)X?eM6vL<_+YO+`T z8bBsjk*gr=w1*i^<|>mWC|98`L=KM%gt5YeD!p27Cm8&EO6j{=c1=ZBlUvv?BG!gHO*nhAVKkNYF_Hhb`oALCn!*>A7!;M%C4yssZ zxG1#O#pJPy7+cHJ;>Mf6H#*47=H)ij53bSng2TV~nMPEOwOS441~5QefbEPf-q-e#Kl1;O)&QRq>~<0Eye{7R zIiRikd{Dl6t)+E%h*w3n(|n3unS`4-=&R@^F1AWnx7UpYJV*=SFVR2H!p`nGg-k#~ z@7fkV&C)?3$y#g2(j7E%rY>fx@tXTb@;{g}*?FJX!u%G#Da@~GfG|Hc34Eg3S=IL* zM$X4bUHb{m;HcZ}F6XQLc07RLfI1<5(1mXdx)_Qd>|9T0=`Nk?;B@YHW0bwUif0pA zC6={e1UMuXIEhc-nc#gt65G`r~*+FXzA0WU04C8rD5)(OaxNd z7!^_({<@G#s6R=ig^Ad~#as*~nTXv8Yamto{{CxHNJ|s3nHa>e5Pp6Lp9@$i@p*~j zGsJKLpB+u^l{#5}vV(E?W~DhBQYV{imGg9p?>~2J zr%Ylw3riB`AZglZ!7)FK?Hk_y#jxF!0dWodwuQL1Kg=JBB?!<>%pbxvhGM=xBACDQ zHNpJ6zWZR_3bev}#Z@lm@87d8=EdH#<&Crn`z<+-yOY?Y^PF#d(X{JXJ!zny(!flH zlWCyG6-on(`IRGggCTQA$^2^wCmY!irF91OyN`!x$Rrd7jN@d0ZkL+heY;n$i-5!9 z=sKBMqpMQL3L#faeUPVjH`9XK^{0*aU8b;_JbJu}!Lf=~c-O-zcG~q<60B+^p!-_R z{G5*BF^ZsekrtXcZ;BXSf$0OPXHhp7;7N5e<}03)7q#b2AC6GiD8jOmk_K!CBNQ{>Gj#6$l*lX;2CQl;Lp^gP zeF3I)tv~;Dp`L1%2&zEs!%_Q4)GpM6+J$;hyKGvZcA=hHJki~unLnsRmX!fuN$UCV zYH5+khj!Y#D@Z`PlD6~i3JVSOctvQa_#B}j_5@o6{J1G zrT{H65B%$MG<McJH~`m9*vG$%NayK+ zya&q!->%@>w zNHDQwe*bM~pKd@JkcSCWI=kipaA0t_pRTqe2TU3Vu{mPjo%T(sLtpg62*Uq@;RJnk zG>;6|8Rv6QB?Jeyh6Z|OA>toItFeYJKv9$;{)Q-NGzcepBzCEz*d-NXCEasX7c|1w zF^$Mh>SUcR#Ho|c7~<5)Vez$?yBbg-CM#hT>W2%1Tgq_m_=(t=$}HsJ9tPLr;d&lC zb{upQFigtPe4Jw9WjJeK=bB|v|BzGau{)UNLB|WnyUyxQZNgx4my05t^X+ErpIRKn zYl9#MZ22t&aAbq8Y(oLsPl-Yg<_TAX|8bN$#KR+aR(WsoZWW-!%6YWlW=IacV`Ht% z^K-3EqUCSup!OHuU7J%wLkMgzXXY_)y!$->F5Z;dTIDYQGXy^bS)wB=8C&jA!gPO>hkh1qweblj~j1bNEwi<6ge zJM5Nh@r$FT9Z@H@|K=T#}H$vAQc zPZ5Tb8smy+<_j!)g`835C9BhQ3ckWS+7aH95nujG~OHLPEO4+G}G>1a1$tR$puhEWg#?J`qSmT zTU>j2|4>!gvpb1(4OWfKv36>-&PvUVTRWySonc1NPd~1F$q}s<#t|hVllH;h=B6%) zcLt)Kl``ku!+|LL*F1I!2o`IhjYT*V+Zm;pj`(ryC(1s~^hMi~`z~A%h@KOOgp5hS zFkbHg$kn#yUTF8hU~$tbkN6fgCbLqU6xk{#MM5WoyXKH_@)WSusQ}K?H)raZFT4Li zrGP|aumg#HV(!=F^@t0J0Yd~5G{;-eXx@c+KvQS8PrNtAn5n-<8_J+Ch9N5j>cMTR|m&q@ee-7o>x*9yGyA`>7VvtMF;T7OJpeQJffb54~t zs&o9b2w-#;6kMsQc3j=ga4m$q82GLSni?!D0oG;0J|Z&eaif#HDuwmhtJt-;Vcp#z z0=9z+le1_)CT1bxqedkTELUAdBs`c?j#HgeGkLI2W7)J}`pO26;wzUgt^(Q-SO#W- z{{rdC)s#U?VG%iyA%*GYmK3I2UQS^SgFcAmCT(z%a&?3V>4mv2K{MHk%j9(=+P3Us zd8K=|RYUNKqxjgw3ZE~pMYXtKj~8_Wpv>WA&w3O9)rIMi4P1;lb7w<@mAD69f?Q1S$5k>dD10rn$0{mAC3nqaG|6qOboy9hNM zZ{f-nU6Q3(#95-|eOoNtolI=)VIWxZ0dgj#;JHedU1l(0CEpdfV-9rnZ^{Xl* z0s5|p;}NnDJIi7^8i1iCV8eYgz@`cySjkr`YXi`o1c<4~yc}O-wujn^*g4o%NY((f zuxFUW5$$rAOwtF|4TvK@Sz0Fiqze3mDdzBU@{=m%CyhXOfx}10Pk=)?2oAazYuj2p zJ&3Qtll){QuwUJJ-JlzGt5`bC2+bT!C|n1mTjg!g2u_O+Aqq={EM$RPX)Ub{^zDDb zK{HdVr5n;W1k-S#TvIxwf->X-O?U(nyLixW*-|nNMu2f_RmPEn5V%b)AI`)aQA-vO zzebXrfUE)yk*W~#X=tv7hDk`+$S8e=u)2KdnKa@D*og8DkL1;YB5~f4D=ie^P6|`r;jj_Nyeb^E*e*W+?;uUO3YBC@ zZYN=Fr)}&e!p$CrR6|VH$XG$8vjxh-nbnMV2ErU}sFUWp1gIjIJ6lj)tm+>eTEL(q zf|UyumSUJS1aQ3*#@Mz1I0<-AV?bQ8iA0Af0hKOmL`@is+vK5aBcfO2M#O{e<@SaXUM{(|dnJ%fWI zEu#>Lr4>QTg$>z4UWYbGY+)DK!frEVAjd? zpl-(!**S}(jt>q-CY%VD*Z`Y&lHBLGjmQFxMowIn&=ITnEIkMMfF;?yv zJ*bj|B0h+Sh8Q078m7~2wg!oG z4_W@3SR5p%J4@@)mXBIe0_ze;F?7pfcuj>C7We9HlHe%rAXzJ?o@5#nyc!n$YnsTcRTH)BjGuW z-x2a!8Z$b_id8FN=Uw=T@a1}fUHJ0X8-y>D20(bDQ5dk2n4$ z5l`$+;1KHkQ5aTbn}@+~YC&JuKkNSezsmi>Keha066H6Z`@`j51PuY&_0!t_6tw`_ z{!+JmFZM&x1!wES&YN_-vo?me{#)UCitA#l{10R(c3xRh;`Df8SQCGrlz6d|7@R^m zgTv4BXE&?s8&a45j7dzvsksc4G!VpfRBlm~(+N znR9`(pT2sp;oRbwo&rp=EW?i6CoSZIR`6<^n}F992PwRGtC+U-nsu#vv~5M}9&Pz! z>mD8M!0MOlQPO$Bmi@t{jH~y-)cr3wEsXc8^INU^)p&pFejWO1>we9DTw{L0e#M>l zxaYG--9FlUZ~z~@iVdhv4P5|I!8jLEA<1xIMv?&oCO?pc8KeRV>EHn(lEpoBWg@J{ z44T@+7xHDBeV32kl)QQzl;ls@Ij^bvPcQiCRQXG`DcU&@?FDv5ZcQu3hv09oOhWBL zeZANeY7;7gVc<5(q48Xh!{Bb+?Y|RBNA0Sgod_i#5V@=Q&`y~97V;#d+LlHg^?6Y(W(=7# z;dcP9I&VTYlXCzxy#Owdhaws^%UtnMa>D|RZ4+x+I|N>{!z@idlul2>JV0*FLF>Ki zPiL3-qg{IWR;No`HnB@JLGP4c@z|*ovCnX_uf{VwH13*-D+ z3u%+a&h|{3&Yg)&d^fpd^7yeqewXg6nKE%~iD&%8S=h>t(S-sKArrnm&y%=bhOMR+ zi9ME6prELs>Et_gWff=-|EaIFR_b~^>qxMhJ9@fDAK58WhG63Sle>N~pqrw|i-nQR z0Mkl;= zN=4ljEvmq?3OjfWvE6JkmR0B~AR!7+1(13F3c0*XfYYLOXlIp%am7+-KK$E0@9R^K zn;yzHS>+c)9x_kfl9BRccNDyyKT3L+APyAEI<4{mhOBSRoXOLtfP^MMYks6}O>oxO z$7gv$z zlA|7+`xUkn>wFtbAKsSfk6xKoVoj?rv3As!SotaS0lQ>*Z)gDKyzD=2`xob1(~mh1 z4w^QVSiub?gRIwf7Gi-ljy|1gL2Vc+)$p}ngYb$5gyF*JsV#7>P4I!%MD013;iR*kL-)5;xT0TYvhq<#=6&<*$ouEPK?Le4# zt}}a{jESXNCu5$GmYPr6j!W^^9Yi_8Uw4x`6RQ6+PG!l9-Lg%XK&h(CjCUSW+v{fX zsqG*^5%Exi@KOg9NU^A?#`Fq<8Rz4DJ%5xLKMPI0hz~sH3)bsQ=3utDzBOY#1HGKg z5z6tcnFR*znLN#dkjJ;iGj5`1?CjYS5z6wd={4T#nHriMLd-C{! z)00?sK3H}vjNM(#UYyGUy8n-P%3-gRf`I-U*NKupazqit3kn=Xk>ac(xI>J+L4M>+ zQ0@B1$>sgCK`vS7pBaGTAF+oe*X#t4z9x{)nlKLJu8V&h83`Rs+K+YAnNMa{J=cTs zx%-#of=0#{e4CPEzf*=C;>5hR2tfhmA5go9RO6;h9`Ct!;`M0vk-nN)Qvtsjp>ZlU zL4=w*c1p=~6`Ll{o*kMv%QFdL6Y69oCbu6DLgBkEg#^L76ImCmdEonT3xZh;`szwu zI*Gl4&s0KUikXq^N=QVv8H*q`;1^$uP3V8+xJi<8Fp}UoP8`8V-H-PL!5nTrI)&N< zsvAg8=8;^~2Vr_)FKj=*fV8-MxqIFmB7N!F&7dSmNAI9gf8-x@2WPJ(5BAxQrQ>1R zPgRfnRQ~y+H_=CdKYH6-=HPlhQq<^c-U_tJM%oLunN4l7DA1Pk4pLKcBjDZx z#VZN7M^ND26B36K=Cp}dk5w|A_$U+3AAvckwVZ7*I z(uTkp%bYVYn6x1>dZu|sB^u(4o|X;SQjn9}3RdN|g6}b2HEJ$lE6$F$Vh@z?(h5sj zG3Dy%vnB^8O+`(;d~1de8|wFropLoo7}1FKjGZ>YgAhjatchO9j1WNOnLYXHX=8&S zga9hEH+bDdid_WN)XB4DMbI?Qyn))1Dxc?8eg_ccTa)XVK0Y`xNJfClrLHq_Ssg0Z z0zJJELgmB*urm%JRz7L$9IzMWbnvua@FXFK{dYkl?@23(7N_8;>VNg--?7-#X0k8EpJ%(r6xINezDcdt1m--OQI~Sp+XT`z%YXk+%e@7xfNsNvR zj@Q1Ok$YAj@5a^lVUdZE*-)1_J0d;G##v?0@`PwP2x>I`Qv{B$6*8n*>}m%Bv)uhmq` zd!u(g#X8k0&%A{6GBMC=9~$AeR}-Yzef2G_TZtLoAHjVU7n2XnJ;J|u3qM36m*ZU} zcHy}`IYg3oW^b_bY?NhYOhVzh$c`N=TzwUl#_=Wot*2p$pUDJA56}+p$__bJ%-HTO z&m(=9i{n9#XEQJ!WXH@|@gN~>PDC)SPZd^%a;jK@m zqoZD{a2uQwJo7M}60}!=F&85qE~IMV*(zP_SO+7fC^{Ybkf~T^^nWxt_Yp`-Vpt{7NYavJ=Z*q(-2JsK6_?rMVR>z zzZZ|S>rt9nz`4u)CiuLsc}qo@Um;T;JT%iNWU3fl?T;Shj}}7#5v~!fvR#V@?QszU z<2Td|F;lIF{LyyVatQ^(x@jQ$HuPZ4++6voH|q$l_2o?%T>tSU2QQU;$;HcZzU1Sj z3Z{4~Qvgy3jNCK8w%;f|px|e{kV4p@T6Bn(3lC!2#$Hb)Wm)*hV>dKux48{TrRypn zjHZUN;T9ZUx1mrIoQ-2ekPA|S*VIe_=6rU?%X^iiG-cLsQxl=@dO{n9i~(DAN>vdv zFmp@WwlJnEN|Ebj*fLYSp(AA`HczZrfvgYBU5I4M#-GX-?lza>*>pG>#|EsW;6j1n zvy&-DY=akH5>&Dj3wh)r7#Tvdk~$Vnb)P~@A)|zyxKG9)?jMK~;l#T-)%!$h)8&vz z_`DWRm=r=hY2B!UoJPHXao=>E3NS)P>kt8h+$NYHZ9-}2pas#-UQlCRsimnd5nV5x zV{E-y$Jp{+K`4s~vr6;Z1|cUd$TD+SOnGxK8_}7JJ{r-P<|#+M!^IzS+l~rQtn11j;Cr;UFM1Icxniqi+U}N>lTetmS0yW_GG@gZd1)XpK@Wn=nAyj9?hG0SP}Qu=jjXk>bQ@FLUydaxruK2bsGow*J>iXe(Iq@8yNupd`r z4mk-eR}M>=haXavNtuW5O?@5S(bOO7R46qSCA@y6CP%lLe!!!Z= z$AQp;4)j=^a4supKGwTk@s;c^B5bxwlalqx1N$EQ+32 zWIs`jxeOzRnVUM6R00L{5GtgZG<2d~_H`E9T#vzyJv8TF6BLf0{q{Sku2~smWeUFz zOAyNlhffHH;X9azY)bOogLe)>zJvT_dy?;DKkQ)=hjRKaJE~CCJ$xOK3(tLY2O1s9 zS~~z3K#K?}PP|+MU=RLOZ|Qe%<9h~TlXHMpdYx91Vmy+|3U@}jJJAaLsznnBB1zBd z=!~f9b#Smu!8#m`6@_opShIW%i1Y}wMTxWzf&w=>Fz~IJ9`uw<4^5+H@K8ugg+oU| z^GpE-($cJnGeeVSQESL!R=P+Un9ibHAw}L>Qy#I?f(NY-YO&=c*xCyDe7os?0tSQK z|E3eTS*+3%;|;U@D9N!BapsGoUEzXNny-#Xk{5i7Kh{Dy+Jik3 z1UmyTG?TxUkh(<=#Gp+;#^YN_0GZ)Y0c;;YC zRs#hEuCa+T5HScb5Qk>L@Xr&woeex81fciEn*x1v&;j}_i1MwOFmW2!E?lcXP=_*B z7O^TrVv$dEtRq88wpkvoE+EWaKNM?Se5~jh8wyV1+5_m>Qjj|<2}P{fMUlL>MiJo^ zmrj_&+}Fj`?{lrWQVPKKk;^nWAk3$Km$A=x5Zo9(xR`YBy2im#*QBy&CuNpUe=u;Q zBcYXrAGgMIdWR;RMVGBQ60&M=fQt}4*e*t3ElD0F>(&O!m9wHQrN>sV8xPF}-2327 z;T}Lxh2`QBgLd{?Wd9W1+!=^ku!1xGvJI24=a?R_ zyUZWMVKdrbHzVg%T=i_{4M7ZeNjrovtTOQs-JZ7wi&eCy&U>+U_%#O&_x{S%o(LUH z+2#V7B&_bGNRQ8-wAYvV{I(x&K%mw)VsyN|0Xb6NKd+Sf2Av}H_3)rR3k7*=peu;i zm%;jm{mA;#lj>`CRlL3%wZ50NzOe|QeE)girM_{O3w>4~1bVp@2CELj_My+}Cze6} zEATaM0KM!1Ei93W(ym9_ zT@ga9yR!u%Hyi_q=m>Hk0@z>E76d#3j3UE3(r2d~iw}o^pe?*VkI#nT`4NgAW_l=& z<|a+|3G!}ze}%T!;&3anFZC4JGjl;M1#X+s&}Emhg%i={p6f&|=r#~BXzU+UO1K}7 zR^turyrz@1G9Ouoq3x+?-9ls>HXI#bV1@=TAQ2cR0W+HoU%Z*qLQ>n~`c{#L*vq}ck}DTDANg_ui4&VwigoFDmB^?7&;>*c30xFWuU#-2ux&7 zF-sX9ln7@aj85F_eow{{yFBszVCFxZ`R%k@x&k%Q%MFPFeys(3fC6Gi@jE;1Bp^ZV z&W-&xk?&JP#-2-bdoBw;HW7YJ%em5pCV5-z<;3@o9gqB_{iyK z1M3qT9mPhKmVc~Uem9mcS5#^GmHhs;MER#O%=H{Pw2ANaY%4DE;rmmGcJDk6nu|V2 z$U}l`|Htl2q;6yC(N2?oN0bgtRPiVh0sBKnIb4vdh1mAQ$M>?TE{X8#n*Wf0?JdCC5R5jh7c)ob_AG6Q ze*P_*3x5xL1j9b;q(ruuQAfFK*Xim-teTs&_%0LgYsCucmPA`_LS0SgJGt9v$J(G{ zF>yAkDES*CBeb{aS5AM)a${VYJD**wD1FXNPiOi)iS!X{#NXKn2gM9OlL-Gys~zgX z6GJs6c2(m0yHI}|d9(R3*8px0wQ2_Ls zq^<2Fd5JrSvzen~H6Pr*{)A3H=ZmsfIK=&>%jJznAfco0FRtp^zs0ZO8lRP)Xd1r-kP+ zc+SV)8%TQ&y2TB6zYovu2=mOrUy$cQJfFqi?Rd|`T4^Qn(A_4z|I9|-u6WWXBwbTk z$afW+|2Wd8Zn`*w*qpJnNYm&jtxcpbvx6Z_jgGSp1BZ#gAk0 zJUJvLd!PGGdDhpbVa`yPip+wAaJ#d8eKz>43*fe4&%vT$_gMqCiE$k4XuZ-Xuj5GQ zb@Qu{@bF7Z;xn**tp@X`$Gne{7gU*fs2s{o7+5A%Z$sU5@#)+^4fgWYu&wx4>L;gR zi*P8W{2X#7I0n^oA&{fnDR@e!|yu*#@GfXW!gM^hUDeVVND zvB>K0^S0fnlgIsRr`%`>$jMs5Vh5NPD+27jOJRylXg0)4)5K56HC zvZWo)VKr|OF$S%cF74Ue1ueJ2=L5IU%GUBWz|CNBjO&HC*jN??9rX6REI2ORf>t@z zyls_x&@wd9sb&Q{Ko5%S>`)3U)K|3Y>QqJdyXEgo_ZCz(ot}_cDg*YlaI{cZKd7P~ zlqcwIq{&1u-8@D)!2q+W~9fp8bK?30k{QGYHOU_cvDgTS$mC;%BHms3#Nx|7Lu^D zWR(wN!6TUJws@UFdZ0iWsB1Ow1k!I@@mbTB-vxAzWm4WD^s>Ve)U-6e~(}Nao7R*)wQU6zx?VCr~U+f)n&|o!mn;l z{mJ}lg!9RM`PG7b`4xrwefZVsz5gA*`XuH5f?r*ST7O}FwY1nBML&^W&HumUS8wrd z3po$;U*=b3@q+)${OZ(r!9R^(Z5-T+U(Iam@T<8En|rMD#*}>2pyPT zO};|;RUh!bxISa}FkkelOy4PAST|n5$)@a^Mb=HH;muEb{q3+JGpW6BElgyuuPl~o z-FP9Aim*Q)=(E8py9@!?=3~PZK3USeky>wQed(Zzb{UY&8ZldPd!?yj^oRY@LpQ*3z3DKX zj~(oT@kPZIxy?AVbx7~6m~0wNdQZqywDxd39@+hO4Fs0FWMOvyaf9&QMc)tQ`ziYV z5%YAD_b!b0MP3YG@!6!Qhco9r;1f{SA~j(oHWbr>D{ z>Z`FSqhqIk&EHGE9osTL&*MeY{<&!e!6E6$MpzNZet_;?=Sjo1 zn^nK!Ev2yQV$M7?ptU}d+VmXQ9HGNwM=eM(U#8=OXfD4A;TssDpeFkCxgZnIZLn$a zM=zxQvjM?+u?6Tvi{i*e8snC2&T)Z>DcR0@1h8UJz0eF806b2(Kn9PV1C)eN%61cw zN*1N7cwKU-4uP`~n-Df#`yxG$=pp4t(@sc$;rVuszy3&}i5sjGHL|^E;5O4x0Xz$Y z&_GWTlq@uljkq0mEwGvEQIN6F$mIPSr@p&3#=(BYzo~D`f$F>Ge66p$Q{RQG@1ExI zZhg=X4e4(GU ziBgv^eOAhT=;tf1wlw6F^Z;{y_5Ju3^aI`mivv5aveyD!0&gBXngwAaM(n4O(Kkr- zn{NJ{n*aKLm*0om{_KvYEuD;FL34E%WWq)q1FPfd2YmsGyD$r{O-m%zgH-NbW6jx~ zy21UPx6|_etY1iZRF|L-D^cEEKcPIgKQnr0|Bw2S{cq6x*Z;fx+TM($_R3ZZ?pbe} z=>Hu*zW;7}b5E1@?(O<-+N<@i&>93@qBjA&(&F`B`y=c3l`YCl4;@7{137Wh9gKa_ zVWC64Lede*#QqxETs9yjIFFRZQ31DzeL->~2Y}6Py9gbK&dWr&kl}g_XEDXMH~6BnQSh$d5x(efSOdV!z?~Cfe;)yc6c0jsu*J>n zbuydBkcG_SM(_=!HytLKq*afehgO}D)G9~I72zYZ;+yfhe=Fl38yCLt zo59nq)dMHmKG_D?TBF+l8~XJM_OMphmhI^oJgRKZiP)wG_u7D^YtxxYtz_g|P@y*+ zi|%@;0C*buoTn#&*d6x~&F0(T=$QTFO2nBereQ~1v?Fi_WQ!$yoFrwtqU=ue8g2boZ}IB-EpX`ZOab0z6@g)J1bapqkzde?EO5_ z8MTQ1p=J3WnE9>C@047=S$8oz)og6AMDzCE1pc@`ZC{mM3Yr}Pm6*S5Gv?9{&AK*Y zA(r*a_QNw2KrR;?AH@O=Pam7|bOB=Gm>GwnfdhBfIrh1%ru)Xj+rCpExA>?hK59Ay zuxDjekKj-uXrP7*Y(U=N3zLsVnltgE{dM85JOP%fw(omdeux$YDz*)Xz(CmBb{6L9 z+R)LUBy4Rro6R7$r%5$#d*O-C89rEg&r@gh=Jyv7;7?W{UrI2~7k#n{FC3N}0Ke^v z0dNd1Z$Nw{`^nv{rlZZT;QF65880=L75xom z5eV<$(hzedvb5|!@I_n|Q+)}%x%ldsdH{S)IH)zg9vjvYU*|)+>LQB_qa}9Bkvop4 z-G5O;S@?u)9Kbf-z8gQc;3qLyTz?fJHw7&+LXnq7$MR5ILLZCy9d5{0w+ClCr)*DZ z=qMao^O4V;BBq-s`0RN;bAA9V00Yz%%QfmmN)A%Mbw=TXf&AR#i|P13&@B0c4}Np4#Tw3sd1#u)Pq zatqwt^h9Zr{(zR2iM+|BjoPO)#+d8e(%ke!X_9`4mNrRCyO20N5jd-MN;^+*mXDDn zG2}T{j*cCVkCHNVl}v}V%JiK-1KaOcjwXROjpYyAgluUVz@J|H>BgT9_yNt0GFKAs z_LC$BgHsHAPbY8(>pM|l&eeAU()7}Ig25cm_r;so2@ZCOKpZQFk)Mr+)BePGPNMv- z5Hea&ep#JwbnF7O+D)KG>GV(r4$>l_7ZQ?1#)SOg@N*GDk{SBP-;UWoLmvoE-*U+R z8p8@LcX>kWxZPBbCK!5q=X1<|teq=7Dr4t4E4y2fF%X^Y!90>f-_~ao*(K>soq@b^AQakzvd!?v z^9ja&bU7DW4_d7;e{N7Z-Zr_OZ)o5+HFopI%Xk}10clB%a_mM0MA6S8^GRG zDeL3>x2t_>s1442P##6OUjb&BIH|2Jw@1fb$3Td;&z&#PKYn&_ygXTrUX_U@TNe9u zcEBE=*_2U<{uHo3CwX@b%HEk8+(AQR^s6@bKKm7~#?0mzehCNAMFd?5DdQkligD|R zUC5TiMW;Bv(eO-`sHBX&g*xn^wv{VgfPBcmXU&8f;jzJ8fuf}LbH1C}s@dnD+38J( zB`R_8acsQZf{#SIpTv-9dL2hW1a{q8_$N!I_9en8_OYN#Y7gn9tZt0y3d;juS>Kf4 zC=dz&I!^%FQwZhYf7_nZq&=V!X-{i^X}irKNZ&QklN!7drRSpbe4^_dl%CmiNXd`K z*CrqF1!~J7g;Oe2d~v+|32D0q79^90JI{U!vK$tNUL3O_d_g7&#wIRZVI*$2O9E4+ z0!EJHW(i6@k&G^h0+QAXz+@mgfU?;(tbAJv>PMh>_{)dnw%gEVCOLI?Lc)rDdI4F~ zrWVQOb&1?=9t4kRmDp^aLZZKHi z)poYkYE=MIM0DsvUcrJ!w)Isx|0{ zb|$=uCDZdfP+Y!$9cDBBD{ZoL{sMjb$S@~7RF8Z@{mL6-MX!8VlafNCL!Z?|HJlF%niLygJIqS^dqpmd5WLu5~4EdvpQ9<|K95V=)>uy~X6 zi8;#Y#ko7sfm=Rm*#VcI9H8ZAI4wVpEk6<(RJ#3x$^C9azks5TXzDIJN0`leKr|4& z&ch7%F~cO(?T!P<@%H)X4j3Xe8BJhPtytsJlDysAMxKGmyod5tHRJhhMa6PrisM`)SXC3^6*mCvv3Ope9d~`Yc`n06TxV~ zd$RP1k!Oy??JP~(9q3SnmF5b6t)`Ix+SW1(wm`V?7BZjKhw?iW*;j+6n@#tl_rmYh zhfVNjD`2OT5--@KvZ&~S2Gc-R;rTEzU%UFp1E?N*Iiu_tj|4`TGTKpZx^Fm7HU`mWtF$_MvM*u)Ch3mU|xGJ*1vN^f-VFu+#~jZpzrj@QF5 za!|!Yol%{*iHL)HtidCQ3>S6G96&-*w4|UYI?YG>sN}RVl<>=^q9S(u@uY$xY2Jo}RA7{!uCwFbyX@8^l?iP0q9*c&U+i?9) zr0`>(y{-}8qQA|r;0Pe!;i*VmH$|7xf)U5o_V58`%WQ;mS&sM@b6p2kAeP3L*s`p| zYnHw)$E!zQtEl!2PKD9nU|2z|gcH1K_qd_>f}{8SqFQL0D@ZJORub2EF2{2lo>h1@ z(kRN@d`8!l-f!adWAp8~SZ-r8Z1HCHSGY0G$e1VY6j>S_%aPjOF>R+ICh9oWMLF)3 z=qy?t>`HBNfK?md`2HcfCaQQ?R#r`sm8e@$ehz|6~X;Db2R#6my5RaeDNYt?v zU6FzY;S75^;pI4@(yPXO&b8-}5XOUEo)rm!ZpHlwJmP_xSLO4oNC@W;_qGX+#%*fB zbAYx=tCNhMl^8$x7RUGKXgN{@LdF>2;qoZ`^@@c-r8)g{XIy=0?mx#x5qnCn9T-(( zmpH)EJH22A`|vf0aUEN8)H-hUS#X$ykFq&v#^`G`UU`}ov1pMy?5gluz*zTyyxf9P z8Iyr?8Nd#?5OnjUvCt@IR4phqox)7nZf0WKnGM@Hq*T5lehkKz;-`iVvLoOg@N*&f z`E75-4;je-na~UxiLFIj@S9l>R72b#% zL2b&d=1L=4174sVKXeSfT38+9$$QhWF#*htc?n=vnayPi%xthG6MUxye`-nZlRg&K zBsJF+mI_D*V`T43@^NxUzc`DK)*a{PD>$8i)>GL2=rVn{^9RVtoj*Xc?)-sn+k%%! z5g?)N-{ssbW|cAEQhh=06(ILYfCnXr;Y=0Kuo7Vz{eL9*nn6gz9V{M#vL(ItMH$Yr!=<;lS`%EU1mHM(T_zI1 z&z$<>s9Pygz$D;nAn=9Zfm=;T&f*5Puon0N?hY{Z)7chaPirkZ=lCKo!Lf)Rb~zi~P4lIGCSbw7eN#7> zZ-~fE&!Xga5Dz{6J}+41RggW4q9+wab0DskXVV3q_uMcap*Q`}rP*`w=I^_VkI=LJ z=&BhEN1w{((>xEp0Phayb5T8Zq5tf+pUUPS@WY!g)Bl0gi5*2 znpgw{SXNQr1zA>@_WfM0Os76O6R@fA!$l3AwNGY(*>P|J;q$Zh_@ZZJAyDg!j$oie zmia4Ad?hNe%8x@)T!2Ge7piYM*3U~t{B|haf%vb4j>XQt11ODSTStI{5%ldK^JOi4QCMS2uQ*#`0l>?{Z^TYb+mDIPAtgp|N~e zVIC3^=+|g0A6EEM#1f!fJ^-M6m=MfHlDm*6dFE$(&_R#+)1O*)@JJ_h3{uCKy%@jA z-|mI(nwaE?2_RMuPT=;b@>i+f=JISCUZh!-$bs(iVTCu!XG^my_*vg&d|2U!5ow+V z|8Xk_*IMD_lJlwT<;)pf#RoMd!%;X1hFPuh*={8(k&H_Cu)?FAN~-v2-(`GQVIM2G zv{fZ%BC-iSM-oMbJ@WCO>;m!(I2!Uti}1R)O@Xy^OF{ZSp!h5Mtc|a1XB*$aWcb>U z@JCn%E435=Tm|Ob`@U~32bsAIeHQ6NM?ITluj0e(f>O-wF)8Yg$RiLdz%WB+_^`tC zdc~oXj}SV;hZUYDk*jhU2PE)m7QEdOfR`Xob*i|k7t770^&5vik5%G=_4g0FeX;Ok^Ug+`1r&AYK?CBY1#;WHirlG%8U%aI*&* zSCOz9hzA-3N$?Dwc!LM_7}TsN#sm3(zt#O_-Xs$)Wx@Y1pU>p=dwslqRn=A1)z#H{ zAMLo{mtS4fcz#f@d4f3~!XG!KB?49vF+5WT8t4SxhmNkq(b!wwpU7qHp4ovpiK-h; zkH?rj$c=Dz>Z5GfL56V#za3?atsPOQ&V@e~yjSrIyIU*KEdTN`Y>Ux;(MO^|$%=QCsHzmXDrJ@0j@< zs4ZshZw%iyJrUQK*qF@cu>J(G@G&6da(8_XNP&Eq+1?FzVqI@WpNyh2VuSxcG1<_k zcXYuwIg=+MV2{yvswV;~48#^Q3-pe)&rsFrFIwN_f7&nqrTk2*K69mNt=~Q4U^u*2 z!Qnl&Xhdvm-H^=u4gK&0h5nnlGT2skY{sFP`D-@}ENUA&uxMZ`OSY&xHZy-CO0Lac z`OP62`LETpV*`sku~MW3inPp*MTcf45+qI5Hf{Wd);q-DkIV$#=>%{Fb;{(LaI(XYz=8RuHtYIH@9n(2smZC@&lWQQRvYn z7(pf{IByf&-ir~zp`c%^H!aj$L3O+yC}}HSlqTmjZt@6clVhAsp2j9aW5w=o#G+|u1GXC^N0yd%Ud0Be^^2W9is*}(pdF3x}bB+`;ds634 zp$tGL-0VaW!Rmex^NRFKQz=K?AU>qXdS+O1>9zhHF)Q;+pkfmkBVqgWI zs^g^K?EJ>1{DY<-bY!mE9PX@-YlOeREIi?KHQRqvKAW*)wnea?n?C?=L}i?=MvF<#C~LF&sZ1elHYd;n;{soS%GBU&$9V6qs^){J>N!GUS#EypN!qAKyL`yp@Q?|e6bgjwm zh5e^*=D7MJ?$9r-rgt3ZKitG{!lvo9v7TPtDS$3QE-32u*JiXS>NQAlg=+=loj}tWB{4A%<``GF8Dq6r^+)q6RjZXJi z`1N{W#(~+f>pa%b49;+{UBr`G>*1CqguIG<550}gj>QQas}izPUv{soN_4MWne0ie z$%%ar58GjvcaA)7@3BxPwI&wLD z8pdm2z8Z}Mkc^mf{71LWPW`|WTbsS|g#^4gJM{&;AW^?H*@G^|u18k8?9`X=9R49I zle1G-xl;kOs(7?IeFb`e*N(=dfE!#6$SnA&)%5oL{fD&{Xj&@)uz|hSPEV{$Nv%qK z!@i$!{T=4(CpZ%{;p+bXh6E(+~jWaotu!;5VQTC zNFT1{2TbnM+S?bC1K0AwEhhIF)WX{xT(?#4L9M(eA`#bnP@K1;;ltkcNF306&;ed@ z=J?)&Y(IMO$8uxtB|+|m5rrJBsjE@-ehz4qg^=x;&vJ190dUsf5~et4nS=ZF9?;L_ zyARK0wm{+9m}ml-l${a3q|4Idep{#*Xf(1w?7#gp$d z((9>~RAo;b=!@~hs_h$6t00G9gB+IGYv?d2?*SvcJ+l3y-B3c@-mXwWGO&b} zp^BS~UiXU1PGh9#@|A9h*Y+fN62$q3ms#=$DTFF_k3O}-_s99>7?vF zqmsO7Sb_ozxjs>?)maG0fIwM&Mx}V+A$UzPvXa%~l4ZZcsi20}vnhdRQTPoxK0*R- zK2A&EnYIL8Ay%xBP_-dMn2wOc<2I-RBO7?sG>`>v81x8}4&B0`jatB{(UKg;DT7oI zaLXZArhp1m&8mrJo1ol2gzU2 z>bW%|$xQp|E{8r;qi(qx<};W~VKMcO{LmVHG@>QEh2we;LuAJI@X3#LXG!V5?pkSC zDg`(x_J2x7_e8@=4k_`B>w~^;RXHzUDrc>7mR~F7KT-F-GBLbA*N!KEJ(PM$6Csm} zXG+g2-3;piN&Dk_)3CHSyOu`;qj|QU`bO&7%t}z%b{zPjmVDqQ1pDGkYSn*G8>d6K zeQ#WQepc$|02ceRVkN19)&hP$&L)SL8bXM%!$Cj(p>m}fIaR+JC&u_kzM_G)IttK6 z&_M=$eo^(nS7kEFd>C)Fo%Gl!1kOB`s%xETzykh{4JO~IJ|L_ph?DLYT!S76RIwE_ zWKaMoC3lkK!mkl3tXi~&q*;hpH(jPr$+6aCTd!wZZ)ICQh`|_NcP49#p)Leia1(4B zf>O0ob#nQ(p`|dCztP9xWm)wE@;UDdkTawoIcUiMd0ZICW2z>`1lO^Rox%C*D|Z*p zFL!JL=P7u^S-{-p;QS__)Eu0T@B!vy5@Ssv?Q z?=bj+I{rncehUBj-cUc#qazptHXS@W5tf5QZ#Op?96Va;4uh=D=shUI+W}$Y-P@~0 zF;HF5PmFWDjc?ql@>t_<41VJu3@J1y#d{(egMk68{TMgH$NPtZfWbh3VT_wK>QgA! zc<}*-^m6@yaSL*Mk?9cE7Y0OLSNP;EM57HB4KZgS0i+99Fo$ttYv1w*|FY3(Ul;a zLt6D2(8`uPXT-7(4r`3O-@q;-{03=V15$kl@N-`kL?(JSJXypv9E9d1sdpvIDW-Sf z<*wy7bN({9&rQ5|=R~|!Jr37ubo>ec^rnYF6TJ)g-+O^OFk?z~V9pec#__sOS=j;E zZsiUc zi(fNfQun&o>>}OjR@uoOb(QXdvtwL^C-M~{zto%ctoKRqa6GcholsY7Cr_;N*~yNw zR%zdL2{Mcqx^QTaGgc(p1xF)c=XVY=Y?pm^Qm~KXE-iS96}>M+8tNuwNQYq(J8nl;|g8@3#SDp_pyb{(18?+sQ;~jVLLB>zA z^OA!7afgpe4EAz7ZWBDoao0Y0jN>jL$Y5}G0|y0T9e2kDx4>p^=N%vX!f|&*@Lk8< z8Ns!VyPm;k9CwEY7vm0{Ix_e#$Ky`HyB&AQ!6IGgnBa{_xc%d?C*vA`ZxFzWU|9YW zJpQThlE*q9Cx$<&Hed6!%@cF1tHDPv#BpRZld>)FUM$1lnv#k4r3TNCrkn_OB@Rk- zwHus>E6zh0oQz_p2NN8{fG>}K5MB(m-x3-DBA_rbGQ~_5KP~t%{10t1GQ~aqbCW$F z0grz?NMU?B`VNx0#@(n1Ov95g=}*DrA5?Q8rsXpQ|7iBq;LT_@wF)(GmlC`dcg3Hh zW89Iu6u%n$y!agnYVC*LJ4j!K>m9gWfa?%k3-IfSbP}%5Iocg1rr@b+$D=QBU0UY={Dd#)Ws5Q6(Jc&<95hcP+bc zQeeQg{9j&TBb5F{nWr+0B zegaYiCWrmU&>3ekCjw27etiogWpTOoG`xcjtbW3;$ow8GTv^8F2IF5=yftAB8-K7(+W z#O+82OYl#9067$-O@;p6blb&Bsl{6;>Q|~`Al>RNRVUD~c7pnZZuw)?0^XgcGO;VL zZiv`x2KDo1h%C>>)^iNWTQO^ZmT_|aFIcBU^q=2wS!ulx{}N9^>6u)Elk7gj{*<}| zcq_6gA%=+V8)1t86)1?o_2qK9~FGw(2?kn_RPDH zzBG697?7);bbI_gJ)E#>H!;<+vI9uQmxO+J{EL%u;i|M3(Z9uSj6UcwIHDm`M10C* z;oA2E$cyd}n1H|M?z+--)8lwaB{tK;2V^SD#A{(QMnt|hJl4lB9>;SO881J7Nq2sC zqINd%uMqDc``{Rg>A)Cv1Wryk$CBz1p3styC*?@ejE`jH7S|kot_K`#aezlL&Pc#w zIS%rG!z~7Q&Vqsdk@pUS0~@Xn;QD5;Kn93*HQZO7$U&G$tEI=f0z3_809nJ6aEuQ` z)Af)uS@`ymWtgHv6&a2(f(<|nMCyk(ku?CUa`>3Zu6G7Zz}$TbGOElxGZ*)>1{V4A z@pX`v{+u^0e<9LV!Cd@bQ?LmCTX0f6cQxt2F|W?{W5L)G2Q^yTt%dObt*7hyY}g(d zlrlcMYqe|M-KZa;hpjL~sjnBwDX^p(n7f2(0&+;V9OwyNEk~^khULmU_ym(Q+Ohn; zL_uCbKHKzbr%+4ICihrRaM8wNJ;T)+kM(FNF2O7mmvxxy<4sf2j&*3Tv%I|TeY%!hcU6K(sl>2-w#v#dPXc0n`w2HN=Ca_0+3x4acX*72$}%QUf1@-F z?V-%ObmrZT%;}-bYjoyPN9M>-=2)G1#^*PL-kI`?{m!#=X7wTTMbI5OD3sYrXa48) zaLsRiwrjS~nO8ZQT^Gvy0_$4%l=#|k%_l>dH9GUY|yiI3j zz8B6M7s{NbGdnxpnGwnyp)-d%dV72*QzGvM(t7_R+-&Pm=8?MQRUd^jgFo3o*hW?r zNZa7Zd?l2*L1$j!c;}K(<|>`p^W$){cZM<_(wR%+!&vc#GA*6?>u-qJWl%O{p537< zb!La{;mjeSOor^!Rko^KeUVPN>{UU9NNVa$Q2@?$zZwMK8DQ5ZynVk{W2=(JqsuzX4)JeP|aL zfdcLA0!M@kJYyH=fdUD30c<=W6xhOjb^*ACa)@kIG@lcA-Vxxf3Jf;`*A2pq#npBI z8FVe~Q*f=pH5u0`T)||>r0Fv`1PpyZd?kPi#sO;rJ%@%F(Oma+SOXUOirLRPcXKYv z+iYY-F4O~c!_xmk==qq2z~juB0uRZ2ovcE#NGEHMEY`_dBp2u;Ufh6ls{hN5h{+Rs zQ0Vp~vtL?)DQ4+ROh;n+&qK08A1!1EM+Eb$hu_6>9Z*^QXLb_$R_*pDWaN?jR>Xks z0$hlQr|z~GI&!-z1pCdG3>Zgf3`W;8gwGR(W|s+Mn%_sc4+sI0+8JGd=@S7W@DxQv zgVbyoFy7M|u(n5*fA#`3_W3?|4_wfPF;OtP6kcnm~d zgW20tBBDr4wc0OR;GzAp1tftK>8vL6yr*uLCeo9%}o29uq(SOv!H{!2CX08A&zGQ_Qdi(G^81ZPpE zZdco09g67X4IbCvhExzU_S?NS)OH&Tay~7~dW{;4Z_?n_*3ccGAFTNg91M|KMU2kG z4OmLCYJd+WbIbTZG>T&Nxp_7p&%)dwJRjEf&AFRvNC{R2)!>5Opp4aWk2Roz>*6uS zR`Rysg?JdXli>3*OOSXDc#qbN{WziYym+@&qLpT?LjTB0`L4n*L9glt^jxC!YhRvY z_#qtr+eH2+9I^@oU?FB-MtmAyh2Ziac;o>{1E|UK$~A110{aWZJqaxg$z(iEF~zzw zd(D9Kn5Qz3zzm=P^$=f?6NF#^-{bF(9@F_5k?X>60)ynFN*9sCfgphkJHScoVm}uoa?q|4b_OYYMxtWG z1Koc4B=z(XzCo6vxli0IN_UiZ$WzB_8d`#As#^*^pO7xfriUs#YlXf;7=i?cCqBh7 zh|^cF`l#PA%JB|Y;kB%3-m|Pfzoqeeit(P{dGZ3;przWg0rIT2l7LLEW(+s5FDaCj z4_03!mRCP^mRX}RkY0c*1Q6}LwC|pq;;|UlWOAb08jm3~2$b8Jgd2PX|I|3V(lI=K zYhi}RxBQeq!j|V74G+9VS9ezrGQ(q#86L1a2I5M7;PBu}2ASb8NDq%eq2WMBuI6$)7>@^tKi#741o#m&#gmHFz66zM7zOGEN~s9Sd=W+JlIjj* zc02w%jAgiw>}oGZS5L9K+8GHl@bS83kP8R9I#cR^uj8@0r_9MwL;4l>+rx*k z2p7S86;+wWj$*w~)8xiI!1VO)i?NkU-OX4qR-K{W*1C8x*)eR!-5aDRhm z;E$iV@;S|dYLwk;HHpnNkM8tts}?@Gu6f5JElbaON0p2~FWUMJp|*1@m4h=H+%gWK zIm#NpYwn|(dcibgGokR1UJWiE&+taz?sl$%Q;=d4u|Ma)g}3W(?q~2>{L6QZu5xwF z;;-BcCQl%%JoBk!WV-!)@qg8Y;7oIrN0=g5Qqy_`RjBf+cv6(`%E<_Z<_l+uS%tRd`c@buc?^1VY? z%ubB)W`serCToE-iceY~UeRb>{q5wwoBx3k8R+}PYH$~g@((1qQ4j#c)`b#&upD-A#v;k` zp)BMU1qv}ISw|oXt=%A75ZYhQ*03EUMjeaR(EK^#S)IV=Xmo*8+4L`FB`m?Sr;||@ zn$niPOX;I^>5ue#CmfN_(7V%S{JFGkaFaHb6Pt7=oL@@FUG#b0<_m=U_N;IEcd znLj%vChtTH6wytGb+~q4nLITS+XFJCvV1bXG(8KH@Q&l@tRJALN_R2oY(V3r=uJv!ki1i` zij1pqw;YF|#@TbV+6oHc%#tfRo78u` zs^G?CWK3rUVy{pv9o-umqraa+`}z6jHZeikUQjnt%|o@IFw}rpm!B@?J0P-#LM#PS z*f9+=^^b#K)e%TRt(TonX1}{%Z^ez+Gmfpq98j)hGU5mNecaqX5W5bMyhJBg86FwD zgKxAEQ$YZlPHa~%k%8bVZd!pE33NsECV0aZS7O{3!zaaPV?`k0h;P7$-bmdp{&#f) z)L49=LkIf#r#7-6cP$vi%&L(7a|+(dmhMMO$T|5yxDDZJr6nkv_Rxf~m5mK5L<0DpkA5Qxo72AgEAlL?SJVAHkB(nv!i%5~T>7vFLYQyc$|6Po&h{rWE<2lR<_3 zL+$w*fe8MDNCkK)92jcEp{#H&AfXcRQU@THHV7bHg*%&+~Hw&UQC|@C344}y;@IJ zz=pvJ&PK~PH7qG7_Dk2i{`g=mO&0=@qPLyN{$k9K=gi|nsCTlOtWJR70g-AR|7DIV z3l@Q_tfcJN^h?i2k>NX?-e~ z0MmLE@;LYwp`)j~A*OX7;1YaBG6cx#>(*pi>{P6Gx<_*=tbCjB77K@wE)r$Y4(o1< zsj~Tf^lt*E_siaCE9+%5g%0+Rb{EPQ;=KThyqA`e<3uTtpbA{gU!M8X_Tb++gkJq2 zVhByet)O;*w3YBBbsTN3AU~Sy#`@!A*NldEaHfRVq2x@*+!;3wxc*%GqGqLjt)d8roLrRaD%?1KTCYKL9|B=y8@qOXCMuD&X1N0!s@ zFcA&lVJ#jKKFPTC`?wEW;KPM14Iiyg;AFcVAX8ULfE6YK%xul@1#I(+-;(LNaS(Xv zc=FM6Q?iPtf{)htb6yVf(a9OYz}`Mt7%90^bVlkg!5r@x2WP#G4-oaYZ#M8a;j?qtEb#RjA8-qrQ!sAaVtDKrQ>sjtk`4_t&*tlAKJsN{u4Jl66sN8fI2i3W8v!YytflXZqz>8|cq_ zORLD?nFYl^V9Kh5P(!fYJcXzHgE6MY<+}wb-JZ7+OQGQggFHybG2XMPyw?Fou+c&B zw}3CGqtr|NSx;sbQ5DrnO99)%1OoRYE@2DsZo#Nef+xE;KT(wd`+}vq5ih92DH4rp zUZZQK?4%|DUa6LM(`a16Yr*Pt2Z?CWTB+unBDdm7b>_o`S~>#x*P2Ib@u&%YreLzY zz(Yohbp~r>nbz3Br4s?WaEiC1OK+8I|44Wya00kVjcp`HvdUe) zLID=cj1ndWmPe|R{s9mlgpUqPWMWq^J_Ec&fftQX0X*Ox7|DU5h!|n8QSWJWQ;84FsrAB7BfQZ3e12B~6|qTy zBkU=MayeN2^#P0*2_kwjHYDLI5I5sAT5TL57=ef>VMGM)s>f)Gcm&%7y!Rs>1zVzF zL7Af=H3n6QvlN}lPQ93NCc<~HBwjrQksz2Kk9;-eo*j<2o#68$9Q)J^J~>zfpVk45 z#>f8vpCjRx^atVdmJ^%e^HwmaM)=%v%8v25>YH7`XAd;o1fNByN_>scnZ)N0CphrA z07h8mrz2k#fsZ%KKj&^<0Eu8$9IIuD!9jsF@4tRZbHEA;98W+p^pU9Qf(>n;0q}XO zmrFk}5Lz(!XCO(Dha{}4Itr3r-c$N17?BRVr!+NX)iCK78E3DX2A7M03tN2r z+NgxDITa!ZHYUzRO~)X3c?Sdivd3CN^IOc8pj}W}LJ;#6`O;I=^OohE!&6T&8vwJB zaDb4<3Pm7~%W;7r4I+6FzrpXLmm@ff-}kE|5JJm*XI5pfKOlw(FchUYG{0`@Vfl$g6+xP;i`pdD{gxYsHoz;ZiC%2ZLgurSC5~yu`F1PQLanq6w{ijs zqk$D@!0p$e`(DS0$6`W0pftNGuP?e>BOeD|3L7EB92W5(9 z?O-}tcVxI?I5Wrk7WteT-k3Eh#(+C>1$sw9d-)gk1ZL>-6c<7lYlR7KwuCT%aiWua z7Eg#$Kz0Kzt`tF=tDPWmV3Ee0c6!qI3lMpzNRysWX<$V>i8WA>fsCix;QiuIBv8Op zzFB$Bq(hS!8zBtxArwmKfraY=TtV7gI2ev)Yq)t^!&5**xq1M=+DGv-1g8C#Bn|Cm zwE)R56JMorjwOE-qbEq76k^k|wT4SF$G{a68SF|_dJYXDT28ccT)|J6eZ0Xp8hmcY zh!=dydO*IqtZNhW4f+b`3#1MGITs-RQN6oKKwreST8oP1BK8$P5AX4n;)&hQKn088 z`>Ry<=i!{8S%GnI4Vb~~P6s3aG^A9V6D7_ja@TpjO2adGkz)TTSd z@wM<$XwBdjv+!jg0DdPpMLIt>WDDaRq(#v~lopHF7vPh90d_NRvCVOXPh+c++geB} zLR@BHYGC#CoTWUB*I`8$n#^qIwcb+DXrjDpalBkAV&t--0ThA`kUOwfa=9uWHH*+Y zJ<=pVX1I3^x_4hK3iS?=8>95j=K)gzET^DN@aS6b3yqDO8nBiz@)X`J{t7{Xf5k9) zGP@Essd5i2{5)bF>(S`>Rb}Ae#pG7_ib}j5-&`f#7g6dqyw}pvJFJooQY4_{qGdeJ z=IqC5b%50+_6jL<)L~Ft{H+nU1EbnUu!CD=;DT*x7~>^wNn#TS){G=M2aI9G7$kA# zYzo%qCP?z!?j9>JMUtb^JyuCBl7I=(;t{vlA$SVHv#tk!nSmyTqs2(7GAj;s#WLE9 zV9mXYLpOjxDSyEXAb1264I9O7*TD5e@oE&dQLF*Ah`oexV!r_+eu*J2T;c`33lpVR zi<9KCD47@kiei@R)AzS?bMfW@qSQpk`uG2A2J87U{!qIfwe4{ga*?i##JHvdFSwOn zE+cgyxKsqjDb;t3b+JzXVe92<4c04&bzr8R4+ClA{~pFVBaWzvhXBG7vx*Zvy-47P zPni`cV-2p?S%Gq$1jz~#fvgPV)ZhvsLB})-32~nT3(=)TPMGFOq^YP_CK6N}cp;n? z2z%|cz?8b|IC6D)>d;^Ydb!Le$~K9u=XE9#U&|k)ui?ssu-{fapE=>U>al z3f=*})N&e4PnyA1i=~Kq8HRp_4%fBWppm8Mp!nqFw+9qF!LQ z4hIkrMA{mjj4L2HJSkW$Ck~h>)miz}yDTgO7BsXqAa(gp5bhv+5PJs_K_H||fRmJo z7o$OA7GBU6i>-(P@ov{3JgN5e0VC~2Qh*D{21perjV}%@2hW%fp-fWJ{T2eSi=5o{uF3}@XM+D1u4Md!*?W!wF3-4M)TEdXjB(boR zcSfT^yiIavo5$&)90{eu_fcNmh<-RU=VW#ZqNZ>nq>ww1@ZEz%sW?9&wmM{`j~_4M zvf7u6BsnKzjv|Q^%KGw=bO++bzXMrn`HFZ4VT+5Y#ZZGRy2e+^6f(=q6L5+3=a5TG z6#Sw4+_{s38+GcfLZ0Qw9K=i-PUd$aU}u**$a5NIX2C8}d)H(GxCCW`har3+8_=$B z3N6)|$Oe#dl?HhYE=D$hAw+PAMzW#D!Z4TM%AD$ZFg`_`XN`rGgFleM2E`+@Bw3PP zbf_XplJHovRwN>c_=WIZ@Wo3KHYI505D787wE~p3P&_h(lW+i8Gg2THk|7?FASx0) z&?|#?igG=>RDA^9%%#<`FJb~FEdwVxxTB|E`vwXgrOh#k`nux%DSpWnt$Ov(MvJF{o z$5XIR6S$eo!vt<7|1g1@wSW}w2Y@TyZ5t+7nTkPN0#Z~8rKNn(RkbcORp1J`?e9`v>dtl4^)ij-eP~|2T>xM>_m|jVm*Bs&>-zlV>ze5E zpRC&V`uy?BBK7&Bc<+|p46jt{3iavj2xOaaFeg5MfVV=!} z2#)4Y@YFMST=8)7ov`kK0i@vMey_tRB2Y9?=eY)pa`xV z>hssNV0Zri(C0Tn&KiCGskzZ$e@y#mu>bMxFzn|_y-0oj%fp(}=f|@2AEwVQK|dV& z{4jRQq0b+87g4$=`uuG#?TJ1g-!Hm8KR#c`GeVzVeJBANq0j&Qt^H1)pLj=@ONc&y zRSSH|KG)|Hpgr1j8_RSPeSXp*(df3{n_;?LJ4cWb(&u|fjR<~`h~m4a&!10BhxPey zJMI&Ge#*VV%8WjL`Dadj{*uQ;pKrgdf%^RV^NHUm`urDHM%CvJo?z?qc}GO(^JmT2 zeSLoEx*hBDcOc)^wX^Qpxjugp$~UXe4`gFdxDT5R42AXiukQ@&^Ba+l(C2IUpsVUR z%T$3rf6CoqeSWEjL^J~ z^Kv%CnP2MKx+$107R&rgw%CWJi@&h*vZ}sS-E}l+3)UUl&-^2mo+6IifGg&QBiHN6 zp_rR!R>HJf%t}?bCSlf`=$sSkwJUb8Q9v@iKMmXIG2=p5Zp&K_pANh#X9FgRna~?x zkA^EdezJC$g(9#m1hP;ps|r^X#ez~G3%wG{WVyPs1c1WU*m0}WFn~$?N1AE>B7g|> zcCY=m;r8oi?zsKGr0zlckIfJDzu3`!Mg)8UalQkjZGcI>ov z4Z6=6fXP{CGrW3l;&C?vpJRLNLH{>nAQ|}AUK55-35r(B>}pf8ZYU z|KxE06CM4JMxS$s?m_#na3E{?Ecb@t6RrJY$L>Mqs+T2zArcU02{(J5S!N0qs|Iy$dd;K1?zZuJ4HvL0p?TG(u zoVo|?-x_W|cPH(~-n0kppB!#K(b0Zm{7$-5+TJz%&eAX^exIGb>-f#QeGmG7C3eo* z{2%Yy5&V}Tg81(9|8V>D({|i`>O*_b{$sa=`d{p5zcKvZ*0|j@_&4Z23;#!(yE?ws z)zM12oAPmUAk_cbTpK>vxDe=j9<1f+7?1+UpaNNwL;JBHe;R+^qW9$8yY_ua;qUt^ z8+M$iVaGs^HolMjWDmZtZTS1@uQuN&=c$HvgzP6Hh2IUe3R9UqHEd|%ySF`7S z5fih0dzTojKxDUhF}uyHSS$F?+du*LDD`>)bGK?)l;$cL)}eI&&6&Q^HE6z7Sa4&H zuqLQ`BP*R~mTGZXk#q>oVE&wEEZwC5`(q}r(jjv?Wk5X6RR4COQ0GITE`q|m0E%)3 zuEn^fbD?>WBDZI6-$ zd<+|b7r_*{Xx~8{I36D|3lFmkeof3f4*zjR#q3%{SuglC+2uPKZL8A|HK;C8RW{(# zMy2AyBH7kzxEv&UZ> z@JoUlb}}%>O@Aq}g%h8aTE!68CfLs0)g0IkPa<^});=7zp)+tRwjpkN0mO0`?;&p5 zT)JDf>Rj0sgjUx>jgPFf{RLAAt4ZNX-Rw$-pppbjgDrwsRoAv~brv2--l}hqb1Si73kE??UtHvrC=w)hVB50n6GyTl??PZ2-)$92ZRwA^*Me zpFzv;p1?vZ3#soOhNPNZ6zj!-znEx>+a8%D1r!(j>99u@NpC%Rf(+n@D#aB-iNwG| ziX+64whFLAj&bGo$65EA6}@sf!6|Mo@0}}p1Fz64dbep0J>lN|73?JV9)ldS+gJ)` z67nZFhw^7qF?c3c`L8PFN4N_6(*4g`I0cxu{k3eDyu;9b$W>Irynw9^1J&VSio9iU zvRo>XLK^M<(n^dxaSE5;7p7!Htu;7Bq{EBbWgxy zd@{P7i==VSn-iOvDjk5A{N?=*cc<_1Lc+VuHQ3 zE09P{+exnzszf3k)M1d$P6J5%3_RqA8A8LQk{FF}b3`k(?6QAxIZO6AW!Qz5CvRO%`|s)2OQhMT z{(D4=$^sjNh^$3g`|mNO9{ITgAS+KDnn}SkV9(mCPbKJjhJ3_BFQCciDqWX3j=FFUEf^K#V~j%Gau4i3W(crOI~WAxLc;63o@gY2&Bj+0azYT>u)?8zkX#nFgkq2R^1TiZC3-PAyq zMxBb{jeAp>6)DI>etHyewh_v zW>BLG<>HbZ82lZ45gS}LZv^aA^3xG2*Gf#CMCJM+9z!LNFmM)O9sg8klyzHf2ywYZc&nWMO{HCSe)cl5Se%*F^N79kq#0GqOZUucarFR zF#ch95jYSxl1S7Gv|h?OmT?=_{>1oPb!IJoebWmzh*1L?Z{tw*C zp(>~V1&l$g*Q$f7Q8DcN+bgTcoe*}NULf_JwZNc7QCfi z;4bP38We)Hg;OK-q}`0LaFP|}qduo_f_Q|NG7)dfnLvizX=!Seq|2QqL93#>+zAze z7*lWu-&V3%ygga&Bu1b|`$>ZOlK2quu32wqZll}2XE$U=iTdXR@Cv^u5$YbMn@Fo) zwnURwZ$BB9Ru}4e>F6H#%@*nnMp`|Oy1`dOk%0EC$pTbPR;Pzc1&0d=p2H=`_^Lvo zesPb-7nc$2nqEn*6IL5CkKDLE0`(w)*0ZqxI%xa$v=92JJ?$$+QX`R$EqddoJwwld z2?T_{tUu0_%y}2Ps*|v(I?-+6_ z3i!&A1{iK&rvfW@rz*b_5HcMcES*Is4DXjw%N_(YC^TTgpb9<+czI&Ka?^&1S%no? zz!!TtDp}VF3U3ami!8!`PWN6$GJ@5cE+4fjTFpa409?WLgUith^!{RPC@LX->@J4; zX3)rKYF1rO(vbjS==d-oB-Ek+;feo-fZ&ilf&YMx3dHgilQ#q{aKPz+Me({B4z`%Q z?tmpz>Pp=V(~f2ap&0~s(7`IyYvaO1{Q}cXi24NGN-bXIXeEZ7F)G+Cx}FfVd<0YK zn|k>OrXBTamePhwBGIedq;0dxov)punHO5+Zcjqd3|1|spMp&T;xR5pIZU!-mAf2Q zhyd9v0flR1DejXsPMWTA2T#J06&Pjp_$m+$-Vyhps3e-)192N(5Kb!~4x~-LRXim= zcvn0n&OVELOJ>`YtC^M57S(e@;3h$z@Dq?%><*-THx&*Nk~O^HVskp9I6NP9o_3Jn zOgrrDysjR!^dA0civ$UwZV=Mg=TSFCKO-jVP7mih;F?jGUMp!w}z@GASYSxDFQ z)$f#koWTbttNTowaLL9utK0IVN+r{WII6d18gDopZ%~s_2a6kp=&<9w7&~4hB@O1}DfX8sNE-V~t|Z0&GE0(T zf5}I3&+IR+j25nMR1&BC<>b0%>@R;ql}Mz6Iz-_|7*2EqS|C4z59Lk>4Y;oY_2FR+ ziO^b1&Vp9f3rX7cm)iC_w7;yqyd~)S&tre-F(pg^Vt+}0Z~wEu5H0G(kwONRSi)jkXZCHEh?-Lsnn|8Bg^t+l3gJDQpw!iW!G`2I?8q;Ns9o zU`llo>z_PzjD(*al93=Is6f|iG=jeTBH9RAsq2aQGDO#t5foORm*{$p)MpFzno*x; zMNyyM8IDge>hsj^{y_ElO4&}S=f(cN;3a-x?&?OS3uK`&#w8QVV0)q1{n7q#$High zEcS={-wfFwGDt=t`$M|i+4hI-a%bBgQsmCIKP2NWY=20SyGHhhL_Wm%BdoVm`vbyE z!lYGsDV?y()Pk_3{lk*XsDy!X0inLMvT2Pm zQlnWTMUE9zFFj#C!fD!YnIIu0#4-jZUr=|YEb2C~M}W3!NdU&I#88?$G%Jmb{=yH) zr~T%Id)usp7jZmDAl9IoS*AadJUTW6XuM(Qx|OzF3fcBHRWf2?EGdN~iEiELrkmlIcUX6B)6MXyqnRmaCT!iQ z9};HGpEGS(vvh`nO1X6_OgmaRj-4^qoyT-Nqu|~66WN7cU~7xI!7+RgVMrM%dYo-Y zxo4@p#{6-ikMZRtD7=hOX7qIM6 zQOo9`Y~9s5tC7Aimd(J}(e)hN4;|G{wLpt@>sv2uWKQ{l4^CD?vg|6kB$R%LO@S(+ z>8wHtyZUmb@rLSbm{U5SPS~Z>K0ki$<|+ldu7mf|z8>d~q*o}i7iVfTvVq|6h* z=?;B-G@Ib?wR6Ckl?cZ@JbX=dv;;5aYsIkzqdhRY3{H^?R8P!m_3?P{jzczrU(Ee2 zAHB&t1c@pp+8_~wOz%nVmEW|)mr~tU3-9L!9VQWUjqwB^j%#s;uns@qPMxwaLhXL- z0e~K^nuXXVgfC54#{E@#2jcOptivuqCuWlEpcs=R1f)>b9zt#J3=bha(oC%eQ*@2! z1FRfR9)Uk>8cIhd3_I*^$eg+cNFpE@U}C%yeGrC!9;YFjg)(qmZ_KH+#++J%E6u4@ z#+*uXYZASKnr<2*mSxirUV$cMR|`y>SsS=!fGe8L%EuK=8;3G#g~ppK3op>iPxeM8 z_#RNp(W{Cel_$rFx;6$6wM*INwW6-!RlC3KDfk9Nh{I3p=CdY>|8a!>6~0IN2LrO@ zHd+E{o9`yg%20rVFf+8HpNW#077!gBkN0Mj%zuIgY{wCQ1v^1*6$gF;vsxK$O%Fi= zyn}5oFqYOcAz=8skm9g{PiixPGV}g|jq)Ikt196aTniszgp#V*fc$XmJ=%C0$KI>5 zBW2gwzKP- zXhuzc4Zd}4)i1B&5~uQTffB&#wu-K?f%9bI~s~btn4RDVIMS_Pe&l2YN*UWL5a#}rynED0F1P+go2XHGAV>rS49vRe+e;Xj zm82QWqzyrQs|Ul^`fB)EUz(g_%}kM4W7o$APema;yqmW3prf6W0m3kI#h|EFC!9%L zt?oEcQ$U;jUemOBCa%;UZq7u^`BnsrF5!%tc~=P(oTE)%-Jy0N6CpEgG_{emIg1Pd z#oY<^fELrxqVj>SH@ChM4;JcN-^nK>Mvaeo&K+nwv^SdN)a^Hr%clS!`z}7_j9jz& z7==R8z1xKzQVR6 z;$x<+!_+QXe9V8Lu#MtBCO+oJzg&&U`i|mbzBQ~FtcT+1wAbR(4N8Coz0DPsE}x zW`6(93C;YvP>An(EXhL(A$N8=mgKDs98o9Am@u&<+u=ri+DisHW6vDOOvaLQzbd+! zGqzqAbUzq`x`IJ7i|i>%BvIMRpobf#)s~zp3hk{FNzIk%+Y*W-3Qs%=N}T^n53wmU z-kB((YwyQn6Ln~SbgwamKKx2F3Z08NmQA4t>CYnnx{tkvK}k(Rt>Crt4aTPtv(6pG zN`}pzY-2CR!#w_+FjtV(hEtvquE5!FcY;|TLY^W?PPg}JJj{RC@i1S7US?xpCDToK zM3s{4byhOMjZVw z$VcaL0X7wf7~(sNhj}c@Hyb~v6&r(s{Z<+F=;zat$HKc|=vx~i?+ zO%=q?`TATbFLkFm>P})B&3ny<`2(^!LNELNpnP_5De$|rwL4Qv;8BjMEh-JD7 zkC^m)Gz|314`X00G)|EqMt|=iH6r*!B8u;x{(e5u8rI*xeR-eg?`n{+E~CG9qaD}M z2eSs!T3sOe`^dXQe}Cfu;x~%^{>2ed_4h@6ZT&rOO@#h_R`Txa?@Q+fIp3+wM2k&e*cYxw~2FT0p3jDHDlA@oV~_oa@y zib#9=Zyz zLqm?!EoH_2NsM1C<4ggN(Xcj=$rfNd%w-!0X(E@!6Xa4cMlRlB_z^6?iayqWCYA9N zOop-A-aYS7{LgUtz5sD!-SYeNNeE(v#0Dk~K;ji7)SG!cE;H{^_5QUu1u-hY*`p1t*6%tWwmtd^ZsoShBsfoUVi5ti3v8Sb`^Et?Q~Pk;!H1Z_7o|D|49X zZyv%ZJFLCwai?eD=5s8yAx)7e0Jk}s49E9rVb0v%}pRQ7-xh4w;6 zwu-X>Poce9cfLkVMnZrQyb1479oWg|xbM+nA^*=zgTkv(M5FM;GeaokN;k3RS+@i1 z{dgsrU{)2DvQ1R1tq7$d;QRSF13s5;KAO^pyjwXKAmVh9`7EHN0bOgC^iGvciyTI9 ziP!+hU`d>018)}zx8nEx7k3iM?t4ivl%0kkJV*i+Tnzw0(3#eDiy%s$dK|0V{;O)F zUl-eNGbnwfq6tbLxdwg_<~%;_C`B5=0;-HxOU5ghbQP4C^~gXRI(8C{5A5>5BHdLJ z=uSEuU~f^Q95tl7dT%g#?CdIf?v@Xzs6=r!;04juGo{b~D=WEW)^}XSc1Kd{}msBz1%p zJ2atuFP0T(&~%$<6af=OXHf)~(vJDnvTX?CjL=O&g8*r=Tvnt=^A+9Y&YV|Rk|7TR zZn@|<+Q^mr= z1bhU(WeW1J^IUqb!Hr-A6Zp^scA?~8%$?@WxOxy}c}O|X&FFaW-k1aLjj1W2=y<^b zlrX21ZdLQ!i=Ik1*DqE1W5RoC)Wb|bd;75y{4o-s9+Hf|do;A6c(#)R{X7HX7=>R# zVbLVPydFx^>fbUvQ>~BM!T#C>A$h9fo7JLsbPdI0@UXNrsyUi45!Z~F>c|TyP)V1u z-tqWMK%UYxD<4;iQcaEGDWw6<0B2?aXh1TO1U1SgAxSuc(5ODxqSOxF*dGkS?T@=* zs4>r80zu;r#O3kcX`a2bqc+c8h8{yY)}V`q&qFMh@oPfkigysgZB7>4E|*0ayy%0maopTx zAJW8tqh;ale`CD5>6nQzj{xc|T)w05EspICmI*8ox8etwLM`!jg!WU37wR=!y{S`= zJ#ZC%r<%Bsj4cwvT+p@8DlJ1&vk1DLng~+V*-Tt1#88u=#6wLHfD^16O6me|dj!VN zXO^NT3U31HxqOz4ZzItonWU3dNG9rJC6e(vNhTPhljw~cP}#s%LMK}mo+=}pP3x6= z>u)l`7oaq1?B0Qmji?H2F$M2de}!g=NjmWX6ue7iA|Q9_S+Sl;+9Bod#zIA~9K}+r zf(tn^#B&P?5WU_E8Hg)BjdKYN@M;NuViwpZ@M{S>9cxaly`PxbLj&F0@D5|#%2Et! z&;W@T-2i2-;2_efmEM{tOUCw5lO-fX;Fg4lPhGEsR5sHA!}Gc{;3*{}hPY*8SP z)S}1P=f+^U@oKUHHl`2QW5GtoCr2hGUP&tQEDaV6eiC!Q{S&1%|q@2uHBuQES7aoKeBVH$b2w@}5 z$&8vG$??6yp?4s)Y@YiX+pQKA09_)x%}EoYW;bzn`;9W`<;OxcEX@|v&C}E`~Q z_(3}QV?aV)nV1~i;%T}esm0`B%ateysD07Nw&~`nC;8=uQ-xPrk3(R#U^o1$!?0qM z3KF7YOt!$pj&kpfB#@L?P*PApJ&G{9b%&{ThebRs!BZAqgu?2FLmSyc9OwJ(L>_uC zZz2y59PvMqhr_fyywYvt;dCtzFX6pY9**vy<>Aa-mWMxe+nGEJMv;e|@SZfwVA%FkcI&aRAKy&l|^Ix zH(dsK$iT{Aoes$Y>G&x5Mil8dJ!KcAI`hjgqq(s3R~e?-@IT~;=cj@Qm2JJ!3AAdRigzXc)4C^G}7^| z{vsV87%tLr_IJ%l$F_(+9z{A1=weI9`xi%*j)ze?9^Jfj{2XR`3cM%VfuzFHF@U23 zARV`~jd(f}Pg(e86jtvdZ};{OmQSQmH0uSwctG`gd%a-mf1<1xaJQiBAIxV$_76gC zMD8CPH*v@71z%qhv0iW+Zk_7|*6~ERtU@18Mz`zx2VWU0s*@;Ezi++ZCSug=AM998 z4)G^iFUUJqgc;{5dcEMWJ7i#E3i|uk3kJ8^$$Eh(p`zHPc`gz~j&o?N7cj%@9Q;Mp zIX>T;>jkOMsPuY))|f2`0SDgC7h}@202i1l#vd!HSrvO}2b_@|bfNWvU!tgHg$Y#6 z7U>y`%nLC?;Vd+?Ua)uyTf{@TtQaE~o<7h0B3EHDF{xa=@mDSYxC#RRn0ou7D2o8O zcqpS|J#jjJyI}j#vaJ9>uW%(}CF$h0Rge?Bs^;vU-Ay zs$e$UEqv`Us)Ias1988(njw1>x62;I?KqI*7v!jqvHcHw6ffl^PHn(0HW&;_ZLnHv zut>mlg)^@rJZ0A#778MuYplCw=?6Bvf^Bi$4C%{>c3;GFT(0i;8>N24k)cy3w86Id z8klfiLw8cEa;#0kC4%ZnO>NqXC@E~4Hg<4on>J=Twhgutgb)L?q5lzvVglyAgA8Cy zXIeGw%*G38$JTrMoOWz&BMaHFX|Y+4o;0>&>+WUg4SW%HY+7>~Py_wa-D_;e9wwdE zcI@jP6(vR<8HhN$3;uljX8Fg*}9AQ|@+Xt$*Z5VfU=A zt@SJX!tRSfLB(uEOpC@^Ps5LGsyDryC1uR2hHa{6_rj)n>ALnp-%V5fVnOO;Y_gmx zW_nsLd7w?$RDUN*giQ6pZ5LznBy=g7>f=f@Hnz>zminA{Sn9#VFnS{x!nnU`HS84R ziyDTZ+oq$|wvNCvby-WNwx!SabnbuO_5G1Aoi7qCh0qBE@&P$@^#IO5_+;Phk32rz z7%Z~%{>YBpL=0v z{?$)*Xa?*1seg6H_QIJ3>*8O1{7u4{^(u=c5wF0V%dnPO2FgGZ3pYA~zaL9Mdg~p8 zGNc;}=yD1PR*Y~g8}6YW$oV7Xtf#{-2_?HN(T(rqi!F%d#=FnDiseq8 zI?TTTxBb84se`&9eV!CP=71jwk#{>TI8 zvEe;jzNyBH9qY>?-mqlKxYAAcN3M>guozbg!AlT=H3xcJV90EaJRD!{aQ#?5(x^qoxq1bOVUL`ve>jJ#yH5hxVb?z7C6#+94-9yQ zRLmM*DN}e-W}aZ>^XliLJ6FFLBcnXRx%wor2Sy0hcy#}NwK?*!i%I<2!SV#@USsmS zO?NByi7&<;>vS zO*Tiqe1z~VGIDnyF5waxk5zJ)HuF@mL8>uggFNtKu|XOIkrgs4$>UVf<_@qy@_9^N zSA3E5J&@KP^zgJ4=x}d@bM+_Ri6-oCvN^IlH%F#N-5fdMFBr2s*c^EV^6~0ibV8{^ zcJ5r=3gw%1uKscu8iPG^`LDo`7(e6LZZX=m-%*Hkgmd)_KIp36`_WW^7fmfp4k#~m zM>y)bnMU(t(7Y-`g|N9)&QIPm{r&u*P4xFAXYPCbed5WH`uhdEck1t(e!e)y2RqTF zFakkb&H`P*$A$9`I3=VDAqs85n87<(wTcc7=}Nn=zdwxE*~*>q!}(+N_pcH{z57$> z?~gy+RDU0J!+xf}*WvVy#`^nTZf!{kLU1)8D^8s2Qy9r~3Q&Heq2c z`uoJ|0AX7#-ADR+9GPbm@qF1W(ZutBAz|_S>edi-g!V`FkXn)ZpHQV){eAv{A_qlw z?NEO|=NfirZ|d)@_&I;5{yyrQ2>t!XY`~5@*XZxtNDO!S`y*|31{;>!B^$82Fs&CJe%TQ#1@5H#m%e$E03Ze?MGmL@Ml ztC5b--=E-vuIdOJt*j00#VYZ@u>L;ZQMZU`G`|4ND^=H2f8WXe$e4lD)Q!KxK_`Rm z_O`!6Ys_%>Xn*8Y{der|unj8&4#UucxOMtF+!PxUEXQlRP7UbPn0RWD-4852+%S70(F$V2`PyS6_vQT9hB$^J-q6nqNe_8`(UP$>H&-(rIMBcDY= zJ<-SPk9;~KifhD3Jd}ZS8YHn^czy!4jBCW17%Cyxh_CJquRb@~AL&iQ>hm%#^lIEa zMO{C%Kl1f!n%f`wIIA#Du5*7RT_4W!5VU)^Ir8e6W^?4xV49fDMQo0oH%Amb=hmbP z`vEkKHb*{M7P)|a|4$v7ETHd|&5`Hn&ey1HBpjO~e?B{k<3I@>3jVGJv(xzNw*3+t zf2RNmbR0Ns!46ROeh+fMtg0xRBR>in@a=SS=0k30oWS0FlvpI6f4NXvb zYv280bL0t@=xT0^aoAcp;$bx9h__>m{@>gj*<1Et1d_l$wY$Z+my5J1f?O`9B=+az z|A{t7&iv5fadFoSvpMn>CZN5&zv<%e=E%3FN8cRzQE!Z66kd$NwpwWYN=4-pbuXT& z;6|tV_j~*=Zs{!&HidG>_+NZ`?7p|(9@N3uZ^vl=i(7?Z||PGpV@Cuf~wiretQQDX;I@-w?bhX z#eadBKkoB+B(hBOHT)Rc9GiqOT6kCIM2gv&Mpv>?(7Np zlznB=z0-EdIOZevLep(Krkj{_y}8loc4%stZr_7)ClW>G8bxY=)QI30$tb>iE*X~- z(_xeD_8a~OCf$N2E*WDQNcZ}f$w1tF{e_l|ONJ*wOuAX8iAnbuY>Tk_tI?cUNw%kc zK=ke?Cf#23m&80R1qx?Im~=hsnlb4fLzj#$QC%`tp0;C??%$D*&gFuCsgXE_b7%3Y zr=fhaCfyNi3`%$B4}hVtNq1X4$D@A7f02$b>2BbIu4>RbrV3m#`hG9v%I~~67_4z&r8GZgr(1AM;*Ms*?eSQ>9H{U&f zjE2o2-KiOWjMtji=R4qawzBto_4y5)qw3)cZxP3Rus zV!7POmKL0^AcNT|p)nluX&S;Y-f09!V1te~3D0KrkU#aB^Y=4-{(^T6_jMJ9;#IG_ zycvD|3>3Ce{Kx3?Q%fBBJn`HF>z91h0%X0A>L8|?)T}_7)U`tT{DFI}&*LMo*KJZM z=(P+cy7F*D8|`9iEz($*SbjDqw*nDZuOQa34aH#nwJ*b17k&QCF@UhGrdkpZ1LhaJ zPVdsu{?rZp^j-F+meSgvTGmzkCH1Ut`~;);Q+wYgmK!^)zBeVBY<{9^ST^^SdXf74 zKc!ZLe9lLeX7%~of+7TWuFpR`g5CKY`aF(7t4q%DZ55lY$2D*R>Kj*W!{GY!Z)S)8l=25$z?JUM7&87z((6FKD!fe=&I0tR{8r&~vR z@tbHb@W+PI?D9QL_1Afl%O5$5c<)RSk=DivczSvhjDI;f8pcSzsV5kpYR@8; zqE;{mcj{e~bgUB2VnvFW3$>o#R}s~+D|$Ee{AEY)ww@0hMbq(bd4nGwspHpA;%7&= zj=y@sUeoc(@G)I&Dlfn!A~;7Qd2#z^Va_2s{=FlFbL<

B=w=18ONC8Pn2p{--U8;%>o+iPf;fGFw3`BZ4eb}HJv>au;BK%Z!{4R~=>Sdcb7xWU4@ zVLofhqBLK2vc7xGyZducPxT(}79|fQ^j{}PnFir@?YUUX^lOyQyvDL_rA$wrgEH+Z z23hdB2Me_$Ss6_Qu#^W5XguRl&1$**H0!msoy@GGJG`Uzdu50Z~t;a74#`1JuxnF?O= z+pX{`2`DHE`L$Kv9I>^`S9qB{w)%OK*Cn>_yk$o?{sxT%yvu#{ghfA4@(66r3#7G$ zz&0-sd*Kn5kRIPDJnA4|{!*+)5e{<|mPS=Ih&cm&$fjrJ{MHfnKck1H%^N)G0WfEp zbhV+DpZjVK2U`nPt)HnR83$T3h(q3QZ|!7*+uC;kh8bN@;ah9%_hg+x1@A8hRdE@H zxwB@YcXPq4oYC(zaYqZ0e@W5)7_*RX7;f0c$~FLImPp{EUGjLKgAcf~VDD9>VolN1 z-E|Ujw~$D(JNq@+x=%=Zd!u_o&vQ1cL+OfeF}a*=*zXEY^C#ta}-B_EZxkbJ-} zS+aY9Jj4qUP2SBWF*A8L4J~x^ZFm6waz3ys7};UuCR+$6nvj;lu!5E%BYDt`!2(9| zd|}(csBiw{%9;2RX4{D}lCw6@gfl14Gvx=4lSVX_7nd{lo zj72OmQAhrS>o}&>G&A^~YHZShe^EOI{;Cc%;FD$I2_Ofesp>ROOo2P5TfZv~gfn>! zr_9ZdintD#`%CIwqwPozW_0N7ONw9iS(#kG!j~JBlv_9OXnhKtPzR( z&B8L4x+C7$5xC(v^Yu|uuMz1!*9c68B}cQ9Bi<#W%=&{t3-j~K z&CeZRZlFJZ?l|+@bm3Ulqu|)>%CYysJ#!dEWHeFu?in7(=)~lbDy*W!NKFoB#{LXpF9dSvHOq92`2Ap`u<>rc$vXbkEKLoaqi)ckCk@a>cT z0pBLE^`s`93?7=lke^r~1K1;cwB0peom}Qa0&_hm7$prOuk`d$=f&5npEcR( z)z5M0u4zcBG^T>5Lt5ZCI1G)iZ|%Y|DV84(;JZBvWl~FWiB{U?sG|46wjdeffR#_JpaoPU%fkiI$gz zf5BItEbRFuqIo^roxkV*`8OwEg1|jbrUc865&~^|4~iIAVz??jga91CRE51Dl-WcVdW(j4N@2&JX7#6(;kqv zPl+(+e1^8Ed%b#FC`wX+aoN4a=mIh)F_6U_brBfxU zld#3>b@Xs4lZS56J+)4}k~62oR6Fr>&p7#0opmHP)y`@#cZ?C&SLl{vUy`JU;`MJV z3gaUo)mg3}XwI3r4v0T#60!kWLEA*Td^JC9$2ld4Lwlms!RJLNuyp}sM&g;O)SM2L zjYHlTY2=Ut=F!(x$De1J?O;JpKx45K0HGz@+3+Bj(#lg4-fnl+;cONBDGDBoX<;F= zy1){LZRW8pxC~uFo%z_{zN;N^9i*XJlGKUX=Jgb(vtgjV@#P5tZ}!?de-O={YoQ>W z&pp2@42$)UOaJ^$S)%bPRQn(cooxKd?6W=P2n)k_lp=S4H=1PZD|3tn!xn+P+Du4d z5sh4rT?j9-2O}YMSIf9f^ z)dsla-p={c*}Trt?$m^|bOPp`Ey5Vigt@Dc-Sgqg-1#k*{Ho`6l}0n&R3D0RrH)QL zfIf0IprDVu@~CN7I&-ONZH0F;GcNE2pnnb$C;SXEO_4%6o{;7#q$z~7 z(1pY%$3{s1H6RIquR)2kVu0HVj8sUXmHfz?;490oZ_2}6ZwxVqPG){$dv!S60E_%+B>^H1F*HOWT^zz9M?}o49Twx{LyOP8-dQTgI7 z5uB{r8yO;|+!5y7>2mD?Y87iYv69hrA1KF#-hfGLh|mA-jA$n{s}D;&hz38qN5b2m zz}4x#!6)}f_(q>4=A{`E1IV2Q3(}mSUv#iY_8;$sJU#(xAla+%Zr&(&BzrGU9&d#3 zI%0^my*MLd*(DP(4$u{!t~4EjDAbU*w*te>ehfGJqA9HFr1OETkvh=SALHvpYbm@- z$P=eLS{C7#JO0ceTC29J7F|CE2j2(5YcQ}0n8>G)2&wk2l^QpOar-iEe=lwUO@?WI zp5UaVU1j$7zG+UH-Mnvlc+Gh4n}baA#dB`{HhyQl@8$gdi}$^P-y7u{jA`x-;~U4e zHL)btOf35B1fiz4sRNO`OD?Znk7i$B@$Y}&&mbpBQx#vYpqWG-?DL7spGrE!QWbAA z?l{Jc_u__-&+O*W&rz`%?|m2Z`-^AY@|W;C>wTB<`!C*i8NWAr-&6R#+WRi&_e1h6 z{OJe&0{*diUeXC zPokMM#6pCY@N7k!r7kZEzs%uY7FMEW+1JZLN%ydb+>i0Hu%0!`r$}b8urYX9_+?%Y z(GbEY3YsPDWnp{qvPkQ>)5}6>(JU!1OPgfbQ*b7`_+=J&StwAP(iDYo%a3-(ut!Fn)6vFkVHBXL=Z=`4i*ercN=whGabrit#UaHv=fU z9xmkD(+~&79FI4r8iE%f1 zaiW24-{5K(3a`1z`=(@?tGsW~K$m*oqJidm-xL^gqW8@zHb;8jqJj34@2zQ|^9N6G zIzRW=co+v;>#yA2@Gz@d!eCZ`Qri(A$*8R>{Q~%P(PVJ^qmGXVmJ!ZmNW@kGMu$~x z%kjRlH$VZCP~2MuRS~G?;Q>g~q#BCO)2qYiqLG#Fzo0rB#vMHOvr*w9&->A-XL*UY zf}>x+f@96d6-fXGA1U}4kgFg0#afYTqa=zHD2X;oQx}QG#u4jKi>$?-6gjOb*!r+DIve8X47UO= zgB@0fVcE=oVp!%MZV%6;!^49a5a1@q?;?_2?E(gr#FHk?o<{w<_IVZCk zFmPV$LA)&LJ*F~~)=3IucEAhnPCz}C)5vt}%i7WE2Q`ubAk@>F`q27umWR3rBCDm3 z@}w;fJ^pKbo%pcSSAES$9(zfhssa#JRobblYgTww#hch@?03;-pw-^Jw{ULq?cm(G z%DGy+n|=22bIvz^vcq&Nzj&T0rBa*J_^5^eQ4R3zscB#^u^kraCRtek{{wmennj zk8v+eLz%3MXH2ZSK*k|=atr4j0Jw&itC~aK6B+Llgq3DzMR*Mn%35-aukdcJ%|qyu z@e6=ZWIO})+-G(cYfNOk4>CTWGCpA{Wn72UhxCYy51J`_k&F8<@68PbI0}JNZ*7~| z%ivmCPOncIT!u4(IOk^Ou{Cmh`4LKmu`n73MqqjRt4zj{?8<`_4}c`I@xu|Z@~oQz z{}6aG6lgrq#)RFNOKl8K0A!x9xtRPz4|AOPvP>%C0#MV#gR?*p@(WE@PlLJ< zF;=)vs&r>-vimTD!kl8>ev;+q_Wn9dMct=xw=C0k0RV~tf^E~_xuv5?$jcDjd!zRPg?{*=g?8H-tSi54NuuQ+=?<B}9@2@v_mOBaxPv9$p8bNp_YoCa)AzpL zC2Gs7@|%d6r&a(8Y~lLb&`uA>ySe6VX{V|fe9joHZ1D+Esz7Q+oo0=ho(>EY&7NEv zL%(B`ASIgGj`~?P75V%B66s&qMWrgfz+}0OwC{NbsKt*~Xg{jGKvDH1RrU8!8VLP-2j=Mekn|`FI)*$80^vtU+J}Qh>paCC2s1BO32_4!iM}lTc7_MFkwl`ea;Yr#oL>HR3P)@ z#+z5bKPS7k==}3)M&X}WFD6=qqxTZ{vH!gRjoDYI0)H`d0r$2${AZKLSvOJ!PyjS5il!mE8j%BUF?-`Q+~}L|ziHEdYaR zC-IFY8QWt13X$`(#?h~%$QRC<8bvmC2MIm^-;$rT?v&d2N)1{ly5nuB4DQW6v4ASK zNUr|%(}&C$XJE%<=r+3_n1eKF4k)XL$6$0*MvC3sXqu)$-*b*y-l7Yu2YHnfQiZSxjXK+MF1`+w`{mEX5UedJ5B!?IxKW;)(fD4y06vc>H(fZ{!#vOuYbRQs}}n z+z?F^OAszLqag5@FG&D+d^R!EOG8!Xr75*(L;<>RsPnuul{SrNLN^VSU!Z<26)W*t12uK(% zvj7d=1W-HiA~Kdi!M||kQiiSkbmCPwZ97UvjGDldQP?^cM{W0ujeTaS^Xy(dMs~` zVYN|sp`b4U>B-0zd$nb`hDS@~sht*ziyOlalx5CT#}q>{&arNXT%AP-<6deny`m_{@G2}mJD9FS)cpHy&H7Z3N3G@$2c znuai+N!*W&Z5(`=3_oP5db62FaAJ0YX;BF4W-$!`-*3w&qfvpQr3W%AVbf=nE-FzB z!XLs2qpW%UuNt>Mwe7Vx@-ncpX=bqL4%r8i#qo_}62&~^9MjgVk*CmLxLSn!A0tmK zo%2+*H%$pRWaDQzm>T<6S;1M|awN>+-22PsVJQsm0cw0X5W|Usk-kGVCZ3Ic9z*>g z{m&UqnV23KT+HgEboAi~vMKj?w<97i+iO%TFh&Q=DHb@>d-1(){0}ugjq1bCj~XmT zemThrWFU^CI2gfV|2gvOtR?vTVovrObK`2!QVkJnb;+3C+y01yyZZFaOg$U=`IlEe_36TzeOHe+kL!0|{=H8pR-*~Yg zw?YCt*?PF{%HKg0z=P)b9?~TuF!b<_g@nUUYBt+e%cpzozcUH~x4$cAec(Q3$AyjO zfKWt1r7EIUxIvhltkg$cakMCgNYqiXrZhSgr-tD$1M}RjJBUoo&=}{$gHcjjSv%?# zoy!6{ONkPq!$0FcHf(eGgl#FtP{>{Ii(d=PjE zw6Dli!F-^V&&DCp)9BJOLi}9%%kt@o456$giO6Qb&2^O|ZEOx(HUz7XV$$f>rbo8W zP=c^>?{#i|ym3n)#(E=!ZQ?^?Vj4>qRSx|I55i$Z1BptGJaMFh88}1WF->ewgnopy z-0w2AvTL-E-5`_jN2e_B8@I9mLSaPGxk5y&cjjL zs}7>}f_Tqphrh4%?9vagOD9d}dg5uCzA%v^892KFIgGfNK|(VYAoVS7qaMd+MlL*g z>7B%;J^Mgl{#mPj{cYPDI;AmNt8YCYcBnP-xiEYVFKZAHog&|z#oAn`{?TMUH!mXq z39O9$irPl1+Sgx#$v)w}4<%v-YiRaxTdcWWwG>i`X$dW(D=COmbon$yk$M zC_1WjZ;wSkvxr_kdV1ThgQw~mt!i|&a-{QMZj+VkJpCa3i=)3#`Otn(>lDv-WoM8s z;I;B^`IQXBGu->=Fc!RX+G)?bT7t&rRC=ybKcg5A((+DFTCDWUBN?hF9R9lc#5@d1l>S><+gR#DDbSF4 z8&I7B4XHf+(1kRb{+96$8gwNYBccei2%SUq7Rb`^*Hpt<96S;aTrw05ojPcA`8oB2 zE8h9^`Q_vo{jY<=HPH?Y2&-tcAn;aNPmX;|6~l4i;V;3 zOF-q~UEX{Yd9r?Dvsr7-L zy;$qxWh_RQzyuVyrhm4(ydWSk3SXsb-AZRiUv^6Y4bM{QhSJZ7GBW!#3Jpk#uNP<7?}N$C+Bqln(U_nsJ(i@qLVse-JWZjqhXp zd)Rm-AXTeoa`%t|Mb{^BpyyPPr1fDaMt^(5-iLVOSKD2;BbIN)&35th`5d}o3h}FW zx*V?{E8iZBZ!Wj?GgflhwC+f#hN^P$lq76=zz?m8248w#FzFZvl{YIIS~anF{3opw zi*r+*L}DMk^nUy^atn!MK;$OglZiEHI0#NUYj&h54Yo#uZX75pQ3!A|$gSW}^nT*7 zb63c__O<^$48>YQ7wwfS8(0>|iu)7JgOaPbpoLxIPT*1|H(OCyB6ZXjqnSZh2YPgh zHcR2G<)0LaVG%RLb%P~^GtfMEB634GxNVM`X9t%?gH7v(!A%cip?ul?Br?>*`>n_3)HFU7 zhx%EK?U!Gy_b&6Fmya%S4p~D2aj6YQ|7Od_s$yM&56A_U&iRPss1UHZpHk{wwNeU6 z@aO|p;Ygl-Lq^B|hSO7LluDCw`d6R+lY__Xq5322k%agV={r#osy5UEAB1|+AiW+p zn=}r>c>BQYivA;y+v9V+BWY_wnVs=;tzSPT=;=W7FaJcqz--@-D$UgoEB{5Uj~M|p zO7QOLjTo?EOS;RWK5YmONrVB@hy@6>tsYej|u5ge_sVDL-mLkMWas3stp*n8H z*Uz?Z+tq{JSdtJoJJi?Ow+Z$8+PA&x=i9gW^%vyo(8>MmN_6f}6WJ4pDiyrQ`94Cw z=Q`hVuzo6dlJmWb#vko`Z=>Jk&i7{=Po;u;JKyii_=+kuaP-q)-*uOwJo5DxzHaz2 zOFZ^U*k=q3k2$)DX^wY4pJJlJ$%0Fg0o*vVX+z{CZIafwMHILuBZ4ki4!Feyh5DHf zX$BBNH_KLUi0}^xW)=iP$_$ur&h1WDC(tQcKD|b z4G*`jOX7fCuzY!IRdAEMkHL|h+sXezR|3y!0_JGfD&X2Wk|qAHkQs+nz^mu-q<8=Ir}F;9(`rv`cM zU>?p_n*LW@3Ttd09C?e?3eCOC5sxA8hBcT?$9YBe9ICOo{Qwi(=9TVj&6rY{@IOdl z`GvA#3c)ch0`*r*65h+0s@R)o&nL9~S!v9hY+%v1W5flFDDfg#xQ{PK#D$Fbe65>< zB^Y4DMU42HM97MsXBc=f12;0zN&@f={CQj<;pYpp-zcGy(>63Jvn5o|u!iYH=PZ+t$7;Md$wx^||gY=_Y z^CkG3li)49s9nw$GKSI{S~VWi=ofCJ$AdxfGzLKO!&Pov1Bi_WsfrB?QF!q?9<^F% zMB>IiKMwVR$i49yj5E5N?QX?SVHnjDd5s3ZZcFEIOwb3sUD3n~xXuzdVqG**dn0Kn zp{yDfs_17y#{`H)SkcNWxu?ePq-f$wu2ogVW3ZC+4A6z$F}(-j$kFBSJp(L$1fu;_ znl}}W1d*&MhhQCu%;-CRfCtw8V@9hF5Vui?u>y#w%ojO;OHewg3&!Ry24u(>mhN_e zbec0`bEhG4Kqv18LOl|=Jy2}COuK)ZW58^KiqIT;2z{xFi;!duTZOr7jTJ@?TK2Wk z5k_+`ZBCYGtfD!z2-Ti1h8VZ{{N>;j$bJ}Z0WyD^4UyqMZXEs|jQViQPDdWgL>_6s zQN}zo7~O_Q|9IdxO>I2cb%Y6yv4|bxoClIvtnVNsV|Lm}9Q&+SnKee4VKaT@G?yie z(Du^2xe2e)WN?>j{4REhQF46KwOLj;(j%+D~$R*fNK!^oxs>HKZiH+5XJ~I_qv)jVp zCMn`s#xyP3boC0;KS9ZLsJxCy&$dYKXN?H;v6aZN++47u1R!f{g=xnJOFGFG@B(Hn z)2zA65r{mo<>rclWS2167hpb$m5U%535L3Wo~d4e&BH6P%73|O0G#Y>@y=kPG2UAX zSc7YdNsyg``okJ-(b`OoBqN&>ktL9w*RRU+<6zVGl4$e#CM1D3=aj%4;wU>bJD*@Czy-M0CQ}HlS zf}NOY^CD^x@iRs|%!sQbLR`x88TbeTFJNH7^hKV3XAsS!u)QA5w&=`{qJ5wMODC`Z zuoI{|W#KPctCkea#h5!#+QPw?Hz$*)Ph8y~qKL&uE+lg}P7m`Rl9D%`#rP4vPuz}( z$xn_A-#%7n?Os9)j~MCIFm*eJB#Jk5U3Q!3_7nT$qE`%f5fT4HYJ{#*M((YVUVmCf z{l)oEmqf5Iz$@fHA|wcI6|*NoAhVA5&ZQOu;ezriy?$zv{9#@5;lz|%N>kTi!+la>KuW!m9G=Wk zL5@EITYK-%aLQUtJTb&lz9j!%Lv) zj}CLfNSM&48Pnpz9ld<{@JEOJ7+LP|Oz1u5@Be|`#2nSpBSqkXd~novPqE4CtY2P# z65pIp-?x-MA1G;*@&~`Q{2ZIHZ>91UYv1*^ZBy>l+iRl3xNa_kwPYB@EseZ}rDcD?q3h!%-2GA%tGKqw^zTN%qwE1Reb7bTNpONOx&{d^-|y$ zlosu8=69=zYYq`rtS)F4)}vzU?K#|vwFkp6%7^7b3$uRV_rZ#eF*5D>O{||#y?l>WzM*&)BaR-@(KDqqv}q z;=-CZddAx|V<$5{R+tg%2e7_y%c#uxrDkkr#)iU-SiKN1_cCL_c03&)_~wqR`Ke7J zfVSSRucCDN@ZOKGG-?v_{?X~xeHa4ErUJ~-qWx8WgyrWnn4Vf1dCJ%JVONQ=N$36q z5Xcz8=?IQiIg)aL;EZY=00)x&sg(wt5Sd@BW(-x6*Fqh8-f15cKCxh+zN{9L7Q;_! z2n7oPEm+@Y=W|7eOIu;dA$l~hlnGd4Feb)H)Qq@k4v6g`7&uEImK2u$$g8C-HxK;) z7A&}h+ji5_n28f4)n!V-w-|##<;M7MqC| zNv>`mGQa;FTpU=#15Xze1zBJd91Nv1s=87CPV?q8Ku2-^=K`O9rF#Lr0=SivqYAlN zhb!Q|gLV+biQ|m3<6-kE)A@s7#XmC-lKH!VQDRmx=Doj-60?Fa*Nm3uHpX=L@+8}Z zg80)MbT=~gUi!N%6>cm?-WM}=i7(a;Zc`O=8MEC8d}i0t3RKR-e|@cxZ1ay-3WI=i zCnoL~kr**WjCudBqvZK$E@G}5k;jZ55d<*(OnlD>FlGl|VwVeaGu+P%*UP*_K~4RV zG2?vsY_;wr1(WKB$32R>j~({947`Y0H;&|%3Jo@DM9soCFdu`pzXeDSV9r}5r(&>U zoR)bIEHn9k=&S4Id-TFVvmapOLonk;aNT_Ta$zbI`}s40XTK2?n!}km)xr}!qY1q% z&k`Nygarm5N>(ylW8>kxb<;B8$41?x!sZ@6y35^CFU2YzDouu-;5=A}n3^>Jh1|6pQ zK5@D^>e&ts+!e&uKPF>w*|+BSw`tFyuZbDw4nX>aI2hn@kyAi7JBWDWn^>u9X6dJH zUdlLnR=Zk-m)}2Ov3+D{F;+iEjJGocizp(4PJae__y5a&JI6LvW3!CL=KhZ9Ie}lU zA-bK<5FMXyi2Chs%O7@zbP`OTQS9^|`J)wYyo*NS8xvty3>{kbrh|U7>q<0du_GG$ z%y#;L877YOxpju4k#y{21Yj2)1K4AB#eSqIxI~V10h?h?+MNDdF;!#V*VKC;GK0uI zM0S}9jr1(td^@%V^SZYG^yH70LIQhTBk!pkH=1PZJv7rloX%!8p$iWfvC|-7CcIhK zlgtofHB~Vafk=4*;|?FBK+=Yt10M!9K*6rSoHx9gsfq)b;6lzVBZ0XFS7@nR`urc1 zKkEZcRBxUMf&hSo4PYY{ZCzv?NXA|Uy4{qpLzS>s@h}hOl&~YfDU6HZ5H*KenN>E? zpE3Z_GN9&J=4kmys2MPuQ6_68y8e?y;}*0`jKn#%lKC7n?ka$Q{gRp>2Z~)dt{D@8 z!xsATv(OYqG+BalNv7*TI=eQKR&}L$UaM&(Ge?^%sY|as%zkj*_NslODIRFd)Wtnz zOr4r^8bF~3`4|TxVF5%x3b+#0yi#@$6Xl$hz;_(+{WoMSw`)Ej`!k{fgrM?V3TsLf zN0jE&u1xVqiYemFv*K&`Pd5|4>%u~^$I@h zd~ou52!w#!x~?=Z0kZpj{0_qJX#A@2I|sj?;&%;xH{rJozu(~ZJN%x+uMa;*_C1%J zJKrPv!}S?}>Ck7iPf&wapIvZ@Nc=^3K%Y%N6;)gZCl_5Kiywm=*=$)wRp4-~^KmRb&T&4dVdgj=)G*b~2Q|!W z=Ytw%;Z%jD6>~}3J>cm(FvL zh+6N%`X~AYz^}e!Y&{xvs!HnT9z0M#o2tRNemG0XRZj8`p_2nwIpBr21zjX&Li-JO zNf3nDNBx!It@Y30JbNpT9)M0&go&??^@7SvRyKby49Mm@&ara)tt{ps%PJ2Lmh~w` zbD$L~c3{>DtkB8J%4-!!yL$3TcdFu_D4TgwQnEbKQ5JihWw=;+%O@x_6)J@uDUU-L z`gkFEVFNfFZTS0=w~2Ybu(V*%5)LfJT1F}1WsJIoY|`&qeqZl=i^$egvItSGxx%ub zmtj8t&Jt@LunEmw&dV>|tT@arRWXU+-YR6^3*aKDmVF#Z^(A?gaC54=%TPOzD)SU$ z;v?3pW4-UU)SoL)bQb}Pm8YXm5_vis56IK)Cj)Vl-r)2t^7O*j!k<3#ih9;ZmnWDi zP-XGHv2n8vHVL{u44<`?H~**W?Ssz5s$WJO`#ax$bXNQ1`%p3=u#!cDYTyLsy0^!{ z2*GGzL`Y3Bdd)tQL26|2mei*afL@Pr6WPflGIZlF5C{QJ2Ns_TKxxQ(7oJ^sc1X&9 zFdovyHNn&R7Q>uD_E#j3DY58?0q-GzxLjt;1&suhru&uqS6Wdw+}5?h6mt@UMr{gq zYYIl~=Y)m;a|~j#^PzIsH+$Zo?7z{PJU19b1g7jIuDzCLdv_r>|J{J?HyJsp0l;OZ z+wX+W0Q?|*${ti!nVpYv?f){_lku^(;sbe(E~ z>&z>GYoEZhraG<05ACO@SUitVD*WR4M{=4H3a|7vZ!Qt9SMXPJd?sf1O173n=L&hW zFPFB{B43zYNTkXofS%NrN_p*;xKw8wzPP{7{Qe}lf(wHg+|S1(y#W*mH#*_YRVv^> zwi;7Bh-40cDVO~$<_Dph=3`a^;S!LVa5hu9-DFY;OI0kJMHMhbUy7xM!p9lqz{gYtPWcMK%Ss%>4vmJ3eNDfvcCo$8(K$30qGDUF_ z5-2y9p6ulPE%T=27DAL~o|L(z7LPKN7C^}%nP7>g+9fuXiW0)#aV@7}zbFs;V^JyM zCOphzGDqwbu}q7&fVrPgk{INlyQVF3Cv)xxx|g=JBB^V=!x5n+Ot#k{94W75%C7~7 z6VsqEmoVntyqG49IgK$JeKDzu84S9S)2_WOVWeU;qbB(poi3~h#h*}Su(Cv9%#~SM zi&eRnOi2z$2hxAA!JMZY5XKcGfEXrI8quyf-+}hr6rDbX3wpl|bPXn)0K3R5h1pf; zQJTfmFR$4Ownl|zw!nbOwqOp$Rw_iH6vZ)jo$6HNotU+7FsCZa2~v^eCxSZ$d7T*C zp+(MM{Vrp!_cNlsOk;Lt%td)IQ#58AV@^U$_De;!Lc%+X@i6bWlJ0~+%K#ysuCENwA}U|XZjPx6^3ta-Sy~0TL}nB3;k; zteetptk{30`ZF1b7PSac+&%{sxe|LQ4U~<1gXJl{I2mv`WCnHHxE&US@bG%MQ2zkkNW&@RfWz1g?lU^&X6cJ;Hr>#*ZWi7Cq$3~=#O~!?7 zO#l|C_vK*#pzlNIjmYCcYh_F_)ust*xq$2|xb?FWw5a62*&cVVYR`FqPJ!75b=3@E z{5z!NDrOqcXj^Gr%zJ|?B>&WjBb#@+=IvzO={k>K+X1tI)<+q$DK93iG50a%313XA zUGl`AF5ze{w5p{K31u+X%A^PS3hXAuu)cy7xVi)#r5TST+3)62zW^LD&2D=u&!fIE zEG4fd_(qvWaB7Fy0Qw^o&+JT|tk;Z|C$)rnva7*g=MciyY^q{Eg}MWw?w1FZ*#LEz zP`eS6y&@0lJc(|vA@E~d;Ej2}pGDO|9-k(NXaB-VcSzRU6+vJ(wRva>5NKPO=LDja zOSoM{7tO~vArIeKitiHUJWXkuAksTj!E0>ZQl)8)}Iy=Ezr;~b^NV3uojxlwp6 zY;0V^l1ut=(u10HED@-GZlxO}-P*cQVwo_~^i;T^ag3>Fho130NT&tt12P33Wt3}39l2g=pTDC-d@S^JOy7rmg7X9?vLmnaK1JSB zN8iQhR7EEqCd_x?$sk-UrIL#qHa#bi&ts;@9e)V%fhPC_b6B||#5srK>4L$$`E&}l z_;a)z{zhTvJ1soMHnKBrm|veF!!+Jg+p~Z z>NUc8y*iG1wLW%d{?_Bq_sAa`J2P*60hq4-DbQyykvF+0v}({KMF5@EUJWI@lbw(;&aw`bZ zrpO8NPG)+aEY7Ub9hByD zFmG9(mWZW;w{(=GMa%k@vkXWoPho_tLB)BMt!)ye54H+>o*57}spbfWm7S}pIY>q{ z`7<1TTIdN>d53J-vtFT0w?r3igxp~3OhNm@`7+${AbS(oIAVh`{{a=@tWGEtU+4T9 zNAa_ma8v%jKEF1;xy<#k3LjV^o}pM4`lYU`BN6TCf{i&|JD-Va1#jRE{qtU`-CaL1 z7vq9CmC9m8CtxBo#PzfpxF@ywd};kB27%~^)x-JQdrM@*PtcRWxm9wK%}LAybmSnGq3OM zK{-guNfKrgk}UZU?LQz9+>ZaSms~e{(v|Hl&~fx%9Xbc#!(?J2mPyQc(;gQfjJdEH zH`J`v{+6y&mJcL}7#j!>E|Xm*u{qA9Ye-VlyNT_7Zk%g~6+dIR zTQy=f2rI^b4#uD~sIyoGH`f|^B~a3SC_}6O{T@yMCtJtJzy~50*?$Ag-$w0L|ZEH6arZGGPWxIAB+n zVgd@;EzqF_>O*LtzD(0$&vvqdeX~h%D8lsv*jtIGBnDzJ257?w#avSW)%Ob-wlu6KIS!zI>%qnzRFoY&vS&irU)SslPks>Z%v?ZW%$slg~H{-W%z%NO4f-W;2TxvWPa!5`truLZF(zE2Xo7fRlf)k@y^K z2K_nqmHnt)S;D}}m|oh$@`7_ss!fWo)C18JXeAz9=qTZ)?Zs<9m%a6riICJEPT)@9 zEaKHQ)dMn*L0L@C6Vf?})Jx(6IplG~4QUOYCpGlT-=yaVwF|lEt7QsaO-Nc{itnN+H9=xdD}<+&g{#rRt$;dM zZf5L8oGlGZo$ThL2b>O=A4_Z-^-W=wU7M>90VzD9QEK_)=u25o3~%o|DFd4twHdmtXP`X*p9^#mEe~ze zsHrXHVhm|PYa5cc;eJ+daxHd2j;6~Ht7uSEab2;|IJZWin!#lkxkQn3Wb)3vrTGq! zmbCh?MDZdE;OS>wWlvS4I80_e8v}H`>mR^+iaMupV7i&dh4n^OqCgnAH7-X}htdw1 ze_zWp1eQrKdsj~Y{>_xyLRkq?|DyDKR=G~$k-1`*4B?X8HVOkLmaW+w87R<{7=bWD z9cvgFst58+cWa05|B25eN9q79+Lf}pSU%8~^JueJr6sTg1TMGl#du$#upM<$ldn#e z53{GzqD@hel&#+mQ@>QE4te^c!<==k)gRU-ISF1ONSvHRhlH?sOK~P8Wsn!7#{1yP zSe8%3JRcD_??F@=`f`7Ll{@;_>zqX?OHI{W!)-5EO&nTsj5av!gM8KTs8-qFw^c`B z$HnSE2Ddr}|6_F^HLD{d)gd3MZwE0rEFI=VE5|L;L+W7khn$#BuzM$>Ql5BY{tb00 zm4G0z;QBS13kfJ5()q9lHTJz6>_b{xQ3XX8lMhIp3Xl4Djj;my55Yz89?U+$>eVe{ zdHr#GGvwSkPrl!_h(Y#n&XC_5#NLJ);3=6r?i+_7s@aT!%K-&D(nFc(HF5zac_T}{ zFGF<3{G3&%C4@EUA2rw0tjKr+)sZa;kzh}eG<~v*-<2pSo|Y{G0G-L*N#Nf?HRwo2HtO2BJLI)HPYJXT_Qtutsji$ zGFWn+XCT+Q_gPR3@f+QLDs4^T!%_d>%s(E-nt)z&!-uR+0>V#xFpm9H;=tI@)Q5T{ zjYFO+44DW>>p}$D?I`-)d2Y~U3LII;YIuB(40`tlm4i)P;=__d?gvdZ;&L3#4Vnx1is7cE zX%Ta&H6z%I#^D?JldY^L4CWK^B3b8pICab$rgm#$MOpt`8QYiotJuDq#IOQq?N9^~ zEk5A)pxcWY(U-$t_YOpt<;NK&A`dw8(&;&IFU>gN&TtI#h)(PhHP-+Y7a+4W!18`i z!R8*6wh}R7U9c|8{Q8%+u(cw4BlJq6g>NZpB)@3qiV?G%{Ll+Z3|8|B+%37+kc8tb zcYrVDB|KzJwhlO~;tMf4_P>pP*@@?i7vH?O12i}+GgG)&6wRqO@(5`IXt2;RaQn>a z`mqRW9Oyv}1 zmec@6U{H!e&F&8V{kFB3lh@N3g9^ZF@zQ2%=sIs?1+?=S!^GEvtxFH6zj=dIgQh^wJzfLZTbKb5bVP?dbIj7yOPbz+ z3;o5!iyYjwVeq;*qG?L-KpMK)OI$ZQx_PD|?=f)OX zUJdVzQ{O&W4vLy$AGGdmUdyo+`7alH#QJlrH|8;_1(6IY**O`WaBxy-Yvipf=_1dF z0Cv~Q>KWN8`PS0NTjJw{^n#eY@ub_nWcf1uLe1+8<%lEgh3U%Z7@V3CjbB|H;1zzS zvG}M2oUf#b;4@hGA`BN*FNk} zmJ%+7r=)`cyb#KD)#2m=$Yl!d`uRU01IBn;Dk1Rb%VNNvXIe__%yjLUI@mHp?4YrW z5PN!1SZBCEt;2H!rfV~kU}(r|Z!HZ_a`D0er4ML}K6| zm*WK20xK0%#(W(lv5g(c80Y#?e{=fHZt!yF&a)X-NCtKvFz+xD*AYUS3t+7P@GlNX zJIH|`Z8pZ8bQGpL5l#V7^(Ek6?+GdRT5&U8CWI zXUlN2sum5OLOe^O{EEyc za~E2l8Ja2w@E<<8pcs71^fp5V<=hDoVZNbl^iyTNfy9#d3NX=}qD=Ov z%D+EPR7hLVImZJ6xcOYcHxbEb3)pHfmog8ZgWE~%EOt<@gPH-OwOsR- z_s_>W0iWFFf^K9Jo%kJP_y_cQr`el&r+sxA&4n3M@zcIRM%7?SN`X$ZU+9N1OJ(5H z$w)>V{h^SS>6-2SR%9}~^+=l6X4B>yaCn8FZ(q%Z!T{L$@Op6S<;J z~coU#J*R_u<1JKH%g4{V;%92ao_%kg0SUauLP>D!6+6 zNae2Uqq}OMW%$0#7UJv}LLHsI3;j8NueAQOj98GNN6wG9)RDcG0Z7!XoZ;&23-_0J~><;d& zI*YDcz3eOv+&lkBE%l``vz;33_1rE%Y5}oU*O5jDj+LLOCH!E+;||ck=IUpWM;%NN zf2N-=MOZKJH;3_`0|Uc=nK2=_;@EPDO9;YA7|w;}VMt>|bG&^R5=H~u;je8}R8&1t zvzR4af9rjJWq^ z#)rZy`XC)=wjQLLt#B?oCC_Wai-8qmQqXcx?Hu)Zuh`3}?d9{&SRpIm8G7Cxf1et~ z=^=`bFnxzrI8Da-Lh4BEdhe?WjaTFO@4`PiJOtV|G(Q0zphV)$VcoXb`Z6A`mFrVQ z4&{T>-srdCKqpO9V}MQSGskP{`ed{G;&y2Ck8G-W-4TL3Y6sqV_mzbJD{Ke7*QquP zv*j=Jf1J#VuY&DmdgC%q?;@?{(tOkEf0@*gSlJvEJN;&Pl_1RJIlMD)GR+$oFwzEJ zpiy|_4DU66V@cu-nR7+t$>{=>4eH4EJ71?k#*=Ji{XCsW3iR_%-1PlE`VmM5uXC{H z#Dvaff8jJfL$`uogNvXMl#0<1cD$T9G@id~e|WH?#kYqSWgt_)6Xs_Z`}x@sun~up zwn*lQZvhAw;kvExGz>$?VI2?zM752K$z|Q7(NIYykD{m^)ggHZ01hDu zu%h-nOt$=2CdF{I91H4Ay~qxR$1>fC!CF~}pb`Hy+KtGPm;d)0e}enwNK>wDRB_3R_!dY}U&#qfio z>2rC*RU_U-d=<|~4AC(#?Gd+#V<36aqu0p(?DU2(v-tjN|H3wgom=T#3$&5B)q3-V zXN9^$Jd#N!v2%@C&IzK8d9nUOhtCWyPs7k)6-IbGhkjFKSrHyre$)QbT0b63JzV7- zksD~hDpvbutsccfBok|u=abFSvZ`Kijy+tCEGFgf8*jE6oXJT!GDDJClF3P{(4CG3 zBS2SE*fWKsjaG2>({E4yp!U;+&unh|8u9v#wErL7Pam>>oINFzBlPLbvmt=}HC=u5 z0bu@0`<8MyTB^fSF*qe{Bw2GWw-<02M zynPdhjr+Dm8ljgmg<8`XywvOYbfU2uH*SsQ*RuH|zv!ao$J-Mc&#VBzz9kw6B*O{? zo2o6rVP;ni%EY+Rcpa-AVAX~_lbJoD_xN34)3#(&PDV0(osB^amB?2#H3uRg&uDrMn`Q3l zcqSNpZs2br{zcS`s^JY!pps@QN63VjFtJxDSUgZJKaJ~K=2&&*pax|^bXS>WoV|`> zg1vfVvNsC>P&>3y%n6<`-Sq0% z3h~Q{DET@x{DkzOvll_%u&yFzAQ+W(RjnpkGm_er=l8Hv;%LJ!2M+tpoh&|?C7BG) zp>D#n-&!KiwZuALb^P7n^(nc6APFDR_oa3XXAG$ZkPo#IV1da3Ua|7w4zy6hrD4E) z5mScec^DOtZ$0^AgPbK?k3q^Gj9ynFHj5z7ko>BZP%J$xHBh_TspfRBKxsdG9g<10-Fz>aH(aGa5Onx9~W=xOF@_Sx#I5z(i>OD;~nH8W<;4(5}x9vmbD^U1>m zLX=5rnWQ9OjK#QKgtUGZ5DGqUA? z5@KznN5=e;5t4j?!V&(fN2M$W-V|$XGS_G<6Gr4eXbZUUlaeyNh)@nfTX)7_VZWhe=DxP$2Y)z!OVp? z=U!wgKG%ny@)u8R0-|9^qRYxvN5zt`{8f(NIS3vp4kR*t;F6lD#{ zdg-dOikbwg#t~UTfn+3x!0Ip69ipqH3Jhvi&+E{@_c{T@w?q{K`nVw>n1JFtP;AX) zHq4x8fDJqUm*ppzJ#ZLP$6z8A*z@fhbSSLaVjJDQOrm91^pHjKEBf#QvsmIo8k=Dc z=U1fl6KyoJr+#YEPxO$O8vVqB2v9K1PwyOug1HW<68eXydD<7;J<07T?k n9BjB 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

Oj3tQFg*dr%MQ`e7(pM=$Ir4u=zEF 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%0Amk(aW#i(6Krkbp8kM&=6Pqc&Ok;{AL4;TO#Ohl zGl)L|@gUpKYd*w0BT&FS4OrRZ(4nEnynzTO_&wLw+>`>7w;7pDwo#E5hIy4=73-2wfw&!p=-Z4-zr+`jkaH6$~}u8+kQ8{ zT{z2{545=t0D0E@T?4lL%Df`bBT`gl#4caD!s+oeUtuuD{H@qDbi`u^XZVVOV{(uA zh&^mXxqLy!oVTlJ5jn(YN9Ps7((YOtdd&`y3!e=NR9K0YxwYKr?1vI&wITx89xF2`cgCm5fH)Tv)%s7=(!0JuSoszQSzwQ)O{^Z%~iJ}a`7VDh)ry!N^#|B&oR z_q8{Zk7)>vS+LQcDgl8^B2~nU=02P0Ic5S@Gwoq`*e!C5c#v5!UnYm&y9tv+90=tE z{m_M&98PX=lg|==QfAcxKRIl)Jod1_10D|qIUug5Nr5`J$T@T?SC>Xc{Tv3B zn6iG?+^_<)e2lW)W5(Rat%2o1dtlGv>eGn&;1RPPR99+!Dv%C~V()8SY8J6mH$v>Y zRP58C0(0Q^oY?Gv?VS5f=mNc(R$@Qg3FudjR(Bw{OpE-|{)d=JNGn5akO@0$0_#kr zxp*7YQP|q#b1nZEgF2GIW%YII;*)!4pxocRU8~rkW?SX@cRv8vf8@L*UAi0+m<1?A zT`34HD((ZW(TE{NEY}<&jp5joZPl8$eg{;P3Dl^bGHRRk*4YjMRF||J7nW0xI5$RD zXFc`%`^0`EE{RbKd0+7ay2x~NIZD?~mDmjmTbwb8Mo>-UT1ao8k<+&pjr5MHk=3_3 zjf}ra%JJD7ppn0+Mt%Y9n2VsP5gOSJh3iOP5F(96yCVvK{oAM-ne2rOX#_l9SO($X z%D72|D_-yqh~_i+2@(^E3Y}J523Z~sbe@-i>LUfO^Wp_u1px(sxi&^uhUY^v!0Z3J z3=-?l^*n@1#_`}#!aceyD4F#XCo?%dtQ*SYSMhmEA?w!@jrB%)682-kgdwzFGZf5k z>}j#}vhQ?Gjb!b(*{QOTRUlAhNNyyIh`@}#MiwtPERr!)2Fw_y=qPQrz6@avQ&}#< zpQJ5upxIas7LjZo@G@LoVm4nRg;u=aaZQDyjA4$J#|QG|wZGy8S4T3eM`8*9LNdj0 z{8X(kBL%P-q}C1OWt`vzfqXi0R)H`@IcCrb@`L4g?`ZmAszAeyiUQmHfm=arA88Fm_Z4gZ2h|Qgmfz*57ne7R;QZ8y6UMjHvI` zqxBbl9Bk*k(!R@0+ZJM(>PuaxW{$!~lh6<54&Yj(umO{Px=nTwl0jn_pI(Kz6uV*$ z;vtRfH)hO=W!k+SYJPi}n9jEAU^@5GF7SplOy|_go#_nq{BK<0O((xIXxnt|7tF}% z;LmT65q8FO+yswI!~sodphuEisex_`T5v>qsyR*>*pLiNQwB=Nz+>Na41{{K)4@P) zf1x(A^ti+qR49~Wq-p;q(o%hqb73jyp`fxzrkf>`oXAEL&1+4MIp5gIefj!Oc85^r z^PwlgM=~Gu3m_!DWp_~RiWhuI`2gMq{8?-9=3gxz|6WfUmNheq7e@75B(XOwL>%bB zSqGl&L7|c6fLbanp`P#P@|ZSahSW-hREqR9MAsVM4RavW^R7zCh2Z6#P!QG_M6gJB6xeluZX?b9%XMZ za_$2(i>o`U66vabbArbD(eSMx47U1FdcD%R)}01Ga1<^ur2dA4>LJI?Czb`whds4k{ zePSE9u41xu>4or{rI1DktRbs=-lg8^E)$&CZ^Mw-ybLwqi)lQjdKJ!^CF+`tyKnBSn0VTf&n{uXw7&w^cm62jIuJ8O*i&NQ#C7T z9#E$JGg4Jgo2?49l!G;997}6yT3OP-^Rxrz`Lg$9A_H#fuK_o;-Y^LNlA^Bb< zpCI{50`i;srHdWd?o#?y-MU990l0l}!GWZ0T7G!YxsyJ1{PO{kwr}y{3amH@Cbyu9Gqbv+7w7LA^QT7 zg-0Os2q_1o(?O~U!8hF3JORvd4A5-?UG>8kOwP9&hRnmL!O%JMn6DqEhkjrITN=w_ z^?V`#L0Fx&&CFtXfqG(cN)@g@r5dgQ?tBc(f5|w&;AWE@nM;p`^={laux(zI zg~ISGkC=Zu!3%_64ma&AK>_oIzEp zG-@wYT%5E8=aHx{S_!0Fd0=ZnUUOIekQS1;LOp0+g1jk5Y=#!~ZGL^d*KML(c z*s4BvgFvf>u#q$!8%ZzM>*YC~kd~dJm#>Y#ywezbcNSVIUf4Tj-IR3_#Ek@3*?=K7 zh~v3vv%jyz^&yO=pk9tCq#N73h27ZNL7rL}GCLn`Q`8JB0dpMlEH%yF(-T~e?q;0n@MqRAu(tO=9tk776hhOV)nuqq&E^*Tm zz@p;z;6s-Km0Wd1Z3@m31150hO`ZEM}@RcY88H*rDQf;Y)97HAtZAxZPn7_}+ zi%c?Fvc$lDTE~j}&-@PPy>g+_8#{Q35W`V+mG{>WF}ZC18?h4F3>mhz=q318z8ykz z`aC!|-|-4y+62W!3x%Etm^N(&H;Sv%>;R#lt`3xa78y;d0W@kl)@9_Q4^5pWb{-P& z#`lk&5>F41o^Uy)2q&=uys?J>@zlfq2NQTQfxi}@6u0@3l&|^=Q5#b6X1f>U#$vwx zRz&(=eI+t$_IaLGlGAK**jS|Qyb^Qv*-~P58~7me*xAxz7kw8k_8iv0bm;-$$!tH{ zwb;-UZN(hlVsW-t_R)vTvqxzcSQ$W0_^Lwoc917g{bJ_a84AW!pQqa0)b!a?i$u}f z1kadXfK9z`GGQ6JzzIvp)zYS$A?O# zek&xQ!jNRxtLe5=ia^nB%=z-4=gJ@b8K-A{^`c+MeKU zoMOKFOsNq+ZbXgPiAE<~I_)yH2h?dKG65rdK|U^+S@KeUfP8N zQ2B5(CEh9EHwi{#!#%yUou@AQEp&YLa0#SiW#AaIX(-jO`pIUf#Uw5t zmid-D-UQRG*OPhOp#w>~%zthc{$Y1&Ixuie??3U}17qlYn_46*?AD{eBy80mCCD-E zPw&4438pvwc7r6Y4idAEVJcLG3{du_s#dow9cP|7PbYq32hRnIJpEFCq(}DhrGo6s zimbpQ8#{QY#ncZ>xSJ@L8Ujq^Dl8~($!}fz)JgNHO-n+>!B$(Upmx$bh>c)A#||hD^y~-bQjPuXVp0_Lqm-c zaA}Q7?nsKnCVVSO5|yfWK}ySDz-$Bvn>lLQcT-I(&2AfDvhG%vIIu;>9^V=;q(Dpg zuCmZb7WPsWegeOF0}50{amdUb8TBI#?Ku{Dg`gacK*OMM9_ov20AP-XLD7VnAZAY9 z0P9OKhF~2J1`*$58l8in`af4>mQ4cNoI~{ruHKeuv8!evMX#9z4Cdup(bS9eVDlj6 zO_#2P-y9UM88Y#2L4D5rZi}%+uQp!GBl=Fpva;x)5(`G~%Ri34%$D$S?swJW@2v|D z&YZnU7yjv<(0P;~{qgHff7-pF^k}({-W>{?zq0EFz2f!c53e8K!ji$e=j`gyte-R6 zbVI!|ck=cc=Vg8x!jJE7v48RBZ#eIgV{2j=*uB!SWz92+m(74ZTNZO#^Wg=8A3cM| zA3h(exUwvL;4tQL#Q^|%1xzh3zg6MtHoAWE<=s_rioAO~JW}4z zD&Itwt2XmMzHLU4FI`x5UsQkPf&TL4{Z*d4sar~NHwRm- z#PlDqtH$m^$YhOOCo%2mFkOUo87$x{iw(W08m!+}VTt8X>2!7GO3KS~H-$GxxQyeAP!{RLrd=zY%DHub7m^43$wGe2` zj;*Jfla<0Tr0}3p_!=oJgN!3O((_5-eXSNSBT|xRI}P1tzw_Qj1*Cn4Oo?(UYk8~z zBZ8`K2R3U?7I{`-7PRCMrM8+gqHhG$Lh`JGI&-$)8!}77jMw9$E&FrfV3Kg~^SNOT zCRq+}%Dghf!6b98a&R&^SgahJK@MJm9!6-i2^Rl?YS?$8rows*5)kJb1vQiY0!6ej+4q_5~*qC^6MZKTP5a4<~J|eLX1Nf zu;?6d?EdkVU=KT@$uUxqrkXZfr@|XujTb<|Wh9m^ZDffKL2{L_$gjfR3dQHjL2!Ok z_J>eMaVv}0+=R2`VhFUk@2@C#CQ6RjfpTY}ygfh}Iv9{3%3s4&*tUcaddz))QH|e>Etd`oLtj<&McebiW{Qax6NA`i`YD` zQOuVT^UI3)Qeu7^Qj93#TZnlgFy}VM547+j(E@KsnUCM2Rb{32H1rkaeiT_hX>Fsl zHYP2eA%|u*CaspyXzfi}k2s4nkG6}$bL`}COoYaHJI*+|Dcn@^%!#6*htC6UIlYrE zeHbNRb`5ZcH1rbGmOBx+IVLP!E0v-j=B3Eiii;H48ASGPW%LXp`vU|RQ7c-BY&?+7 zZ(8{?IK{0`GYidkx?#Dw8f>x<3v+KlS>~JXmZFB3wzbC>4J?6ikf6wU2PPXz&E{m-Xp%is`BmopxYKw`3b-p#!CA zN=9ShDX3=fNIq0DIK^C`Ilsl6J8I5vG3P4~N||o~v$lJj&zy3Fe>IY_@CVG_|HXBl z)xm;7p1G@Z`z`CWck7$@iyhon>>$rop}k>#Adi>8$5tH}$MI;T=0D)WnWy?<^OgqD zr^(>tns11LE}a80r>U4}l$UuM;;Wb;Yjq2>mb(~LL#-7*98s0A7V9~)Cw6NU>As3| zM=Qs{R+nNTDw8<7 zfWYX-7=1LOf2q-!NlB|)PWrMuCH;F3`uCUhzT6dMfTLgJ2@X`MW#%b`H%&DceqFS3 zI*=}rqlW3yOHmQbs}O92Ru-T}v|9>MtI{|$`~s!+ z?{h%y8^n_?-H6oY2Gl|ge+yE3TPhi*87++!nD6##ki`#6GSe*Umk|>T@!=)5obUXa zNOV1EoT@Z_isCUFjz;4bC?^?ANN*0A8hJox?K?sDO1m|LjsFUDE2lwwRWsD|OfmZ@ zt*?;Q8A@w9Y26ArN3{E+Kx=SEZj*|JN=&IRk3e4~XQ!B+x;Diz-*3)FIiC-t=KL*W zJpzVl|0f9KnP@Xhfdl3{Z_A2$#+(gLUNemDw^q3MLqG_$WqQC%Pt~U8U!m#3Vdk4B zh$4>y$t5qTaI@hzOCaE#QxE&97&#t#CRDdEtyjAA3i!=qP^qd8J8rIjI31NE_uj@-7RBH@BfR89glM2ZKP3pI zuoy-1JhN-#8H8?ZP&iT^o=2lPhx&k&q5Hw3vyQ~?F&fz0Hyr^{N^nPuR>n$%ku^(IJYZkn;+rGxLOP8PNylB zNyKuHVmX^wIs+^rRUJz#uWuwAf-9JUB*vo3zK$g2t{~a9L&R5Sih@?04)k&&H(k0R z(H|b54^_G~&|2<$9({>9@HEZ?WSdJgfad_OHUH_o&LF)Jc5MdpGa=3yIyF8QPYcng4omqLU0fm5jJ;bTNq zcYYhp%ZM#q`X~6!mI3qF4R+>f8T6N%1q`N9v(09t+?p_2U1w?MK*N$y9I=Z{9Rj3ghz$~rWuSkP>w zbNT+MQn%4{vfIY|=V(#D9YouvXjj2+wg}LM231R;mE4Jf7Cq2@xNFD3Bj2bPFu#0L zk3~;4rzpx}i88GylSKI}Bv9p?<8^ugQI2yct5?HJbmWD<1LEuukf240*oOJUw|fZX8Kj)I=51f$W{pafey=wm8NINF(NwpY}f5%mL#dL~g{ z9iR@?tjR>(7cA{GR$!2~@>C4+9!5@c@g^Mk1>IpuqHY@E7cst@@y~9=crNoCUSVee zmxpnMv!>>u-w2~BN%Sqnn)5nySuswsMxvM!NE6cpET`>oc@>$tP$^@4R>?B$zd3l5 zpo%~7t5Pz>U~zYG zj4uMN;srltM4vuHJ-=yD4%iwnnOL*}o>bE!bJxMbX`9GA#r*h4(cBMaf${`a-*jmP zelvbF%8x>wgU3M*W4?PX((-Y2bYuje$K8_0z?@Z(Q5i)xP7#fah9dBQ;l^A@!lVS+ z!}R8z7~j+f&RvMp%~3d4D-|N>Xr7kpil*?0diu@J)YEI0YML(7e-f)SxS7Aa8F<4h z=N;m@In(Yx`N_bfg zl$wlQ8@l&04h{uG;$s?44~VbjM3E&Uo!7zU>BB|12fhiCvy|jUB)L;SGE~2Q%gShl z8$8<ko21!fkfA#XngUpa;&qWdBNd$U=8X9@K~5qR5kP+n?{sRa zd&8+v%keHOl)5oI1MW(etS|ER7Rq>4BdgY;_r{!OVTz9KnHIUI9 zTi*z!y^LevsgBOW3|t8e@Ong43Cmcl!+UR za*%|hx-o7ItFp{i9jWRlPwv}JHG3+b+mg>ml+Op@H#ebNv^+z69!5TO6*!(rNtM#w z1oDaX51hOrYchlHRkq@tD4t%^`lby0yCjfcKu)dV6}!5OnRcS~K83kuFkl!V|L71= z-ZftXQ~V+Tx`Hw?wGPZGQ#e-YD#g#B(Ogn3pDL*by_ue;m&w5r3@fpJRV|uhigI(d zs!@|CX}1G4mRmJqr+2E^Od0w31TgZvGIBkbGM5C5gtW5*8Q~cN(Sj5NjWElq%q&$bQQ(cEN}2d&sUY z{*3E|-~gi^o)QOYj{DL7^F`{4mh4#C9bMPsP@xzTJ~9Z6KCo11zDc@-B)nR}L(~mTbt$ zDKeaS!i`q*UJYX0$}l**MsZ(C+=ZMZrAx`Jc^jOMs0p_aw{EEL5jdVg#wA(QLo6Ep z=Fg~wPKQn-W2li+MOSjfg1K;J`Flo+yEn8yv2MD^`1Wz&qeS_*0X&&=M&skl0=>QFLmBvYnjb|;xwKqfRSzaRR|{SFvWv4%yR z^QK@MlzZxU&qz=B_M<*vb9;(8R59;O%o7!J27Yr76g)zaCjj%{l|Tu7H1f7{=O1ae zGzg`lJz<}FnYrvWQK~Lr>!JN2Q;$!s;~E@QJH_-(6TLlN1+u#-*^@|ipV7$v0a9{_ z-mu|9s4PfjP~w*%_Y->~x0&_vMvNH1eELiPpWKJQf{z5)Yfc7b4z}ux z@uzwD=xMaG$PQ<4p1VBgA7v1FkeQ$?k0Z-dm1VMTu7CzdG>Topvg?i~Kr3kWyl;-a z{&pNV2sT$SrgG!oV7y_^n}S_-rWhtp+@oixg!rB9^g z;LrSuTkS0N>7$rI*i?*FW=#c>5{Qc$6tbUgScsETwzq#9_sm9gWKSN=YLS;$EN;|d zb5IZrXLU^ct%~7@e@>r;C zHq<$yR5oW*b0U4$VUnYG?D0_4sR}zn$rH0wrNvZ2_uAY35vM(qLoyt z(h?3D;u7joN?TfWX*H>$sZ<)%)8i1d6h+W6K@mfV(nzT$rHFe_937W+oFZeYVwC=W zzxQ2h?|qUm^L^j*@AIT*@3q%{@9SOfde>z;K~eb0wtF zh3nlxk!=Zan;^H1fsF!tup!Y%$xtSER*ea-Ee<0e@s!wR4CaDXz)XJ(s{>FmhK6Gg z{Im@NM`6JoM2B4tT2{;lEv8~KTfM(n%3D>?07LaQG`I$tM1$&pN4R0c0&>h;Z2b|- zooIF%Dq84Go^Mi~6Sy{WAPeO=poIgVnyQNRDP^1}iI{idr;DNqqaSa@T_Nk9Y#lmti)xG7)5BdUV}(<^LFrwtPhiS-Tlw;uBuz`94;*y()f}<~VGK|@ecz}H|JGoSt=Euj9j;mtKfr-!AQJ52SG=qYvsib>A7L$v>$l+ zbfv@2j(gbIV4QvX{lD6`?}@xETX_Nut?24?(uyD|w4zJphUeEPCT-6^8cK&w7{Yk_ zV1xOFLa`6h>Tgk>0ui*E#3*rxt)Ln6+8%Z;CvG)waNOp$hWHN$0(*n> z(~($V2!@jgDiBX?q?9EjvJM6*5G%iE+U{2c*Uv}Oe(iLBhoTq)E0CQ>E_X$)vmDCMxLMO zKaU`dwwOq%pX z-_=y8bX^F@u0BYDllw*^IFWO0qgjvO+I)Vn3r=o8ZMXoYAaBHo2@Qnr$3H-`q*<9W zC(!`x5g|0*hu1VvUPE z%#(f0I|MN6!b7fyz7Ty?uS03$ zk&65&*7yeE(3tEZANis~e70jK2HTb|#Gj#DK!1Sm-c+E_y|D3Vt&8#N1r$*eC_`6( zk8w8PxN*vkqdJD|5Ks$3$4s*=NTEIUNR)H;Xj4krMNIfDo!pzOEe3$a$*e5~@&Y3N zr$s*0{0)O*4EJ6y1Z!t0Yi+nT86Im%nwbwUJ8}~B(aVL9Da=ih6 z_s=p~ZfAS`SW2xw{$KjLPUkNL&O`8zU}S*Ko}u3U*4f`$`K6T(9#0jt%&lnQx(wM( zdl#evsW$O6ofa;hlF}MiI?{~G6-ibd1xbo7qgfG3@)bx}jRZ3Vu5C<%cwO7LF%2Gx zW`Zbd*qllE*e^2@6ZAArEsJggFpq0loh`e4B+Bm6vRW|}xJ}w}`40H0OF`tw(-t!3 zoj|2>==;fNhPSe*x6QQbO^rNxS#Rd!jrq*V-L}7Q@*Ge!t^&=lnpNP+`~nV@lfV?{ zLuecEm*G_biYB@kCJL~{^I@Vm&;A0JQXQ#4ClV-T*9r7e0)5B>8Zfj|2=sCV>YM_N zcl<<1r!s7cVZCt0+d`gLC zd(>q3`&wRx2IDbwW1g1Y9)Y^M!8t*o4GK23+PZwT|N!4B8vnfmgtJP?(&czmE%6#NhEouO0hg#04$po z%ahbY0#ZvPAC(Gg^Q1=#CgfC00!x>_R@2ecgtKj&P!b5VMRYm1NG^;nkJmM+1W*-skGbnA8 zkKsnM8bP4x0I^*Z{2-(qZvyEaQJFUlPcd7D2Z?eD#%?ohA4f|2kdxws&|M9-<6My0`LMYE9=tiE~VnV}EiW3Ys>S{Y%xPaesId9J?Qk1BH&jB>d@=dqSt9aufvmHTg(r&+Uumn-=tJifTRts zxf(Y@-gN?K%NYWw22X1w<62Q;I$ltXq{SC0|21Y9KG9v(gfn~=n_XWNqMJmQh`Io# z2|b><{w0)aBz6JIblUUWk5MXf1vruO`*YPm@og%h2f-SJ#2&NB{2fBk*Y^f7wf>`8 zbLL?82;=A_G!nekVqz2@gT0GEFfJOPhQ4`7rENqNbLAJvIboL9JdEL9q-aSnO7kt+ z+DoCc7q=G1*^D=&2GW!SXQ_~~<~j?gaXiSPw&i99Z@A@{vn807={a2wn6d(|!*S@J_ z)vhrMJ3sWId4m&4lHY@p1DP969e4t9F)Imju3Bhu(AYRr_ZHqimRSOKY zJ<*q!v0rh?T09@|C{%0^CTxn;o9`8WM)@LV4aZ7rq8z>+3ONiP8kFf-c%(9A7MT1N zn2UE8cN<0R#(wNuqggKx!<%pJ;W~=Ixa=Bi4tCy=%WXs*Uk>S%W#}|tkmKyr5;m9M zYmw{omCb{c*pl#l+;qxgOQ(aBkhkcZZ)46(vb*#k?WT5wn5;2Z$pw?ZCWKG9d!Ct! zfgWM6Tact?BE;!K=wp8%=6RGU-AyENEo`!pduSn%^|a5Gkd$_vfjRBTmTgN9*+VIWc|-1g7Mtg5NgYlU;Sd)j-D15^rR)lQvooZ^YnXE&WG#$T zvJeIogYmVyue<5Q0)(({CElPIxV;f$|3O5^MILfDRPXqMXPJ7(AKZ=5JNzIYQnjWK zy&KH+rNS3s-YMp(XCyz4aX+$Yba>FmaJeF(m^v#vNK}Axl6qpHrLv4iJS!}T)*kje z0vG|#BcOwfnZtJlM}eH8T6j8N>pc?RtKM_(ruPLNu5YjSCZM48h>&-JlWzk8Sx%EA(lcDB=9fi+d4+5X^ z3FK&24R|(3L08)Q26XZbm``v*R=K1DY%#;Kx-f^p)Q=zjz@Hdc4&9Zp{ts8q|ACD^ z@P7!n=>N{~{fQsa4Esvf@kmHR5q2K$2|e!oW7m!(78z;Q{z;^9Hnk4FPOVR%GzP;O zy2K)EKQ_wI541CoE-$5fFgXXX6O}fC{)XiR=28VNqTWk^_a^Xnp#lXSNE2S?15b=* zA8rG-WzAeOBRao2isjTf+98&m{8K$_(6T|DO5pFf^y z6$s9^P&R=jN+ZpKJBXBq(q^!Uf>IibYqPD#NFZW+2BLFPI^G3e*czOo>l^(q*ve^8 zRZI;Qo40a3@fnB@WqIZh#oBlvu!a=t23(s(5Nj9l6#}a+(RHFTW{X|9lV>(;FAU5e zC@i}p19uSA2_C4KDCKw>(=tDTtN2wCw@Ad6PGV{m!eBxuRS2boknTain9f0XiV$>( z4Yer2Q#zWdF@5naw1&;0Co90%0RV^$2ubQifX{+!yk zBt6UWF&NCk29ZhO4#u?jQ~E-iIr=djv=22OVre91GcF<4iHh|mT$@oI)=HFGL2LwX ziRso7TR=a)gHeo~DssTkDl_hE=Sc0GCAJlWkuo4vL(LV6DTSEG3HTd8Odo)65Z6x9LdNG*+ZUKa zA+FSCcwWLPWo#}H<8v(2hw~WFhiJxbAsA3WKmN*~q!_@?4{@w|oxgWvEM7L`m+j)z z8KaQIfj3M$`JB<5+f2jUd?clyXcNzUkOznR4~VGCgm{A^2BaiSh^v3F^FvWidFrvs zZsyaimhpS6WVg{ZWmYd_|4!;m2A7jU5qoxXaeF8nW#UrU2y5C^b{JqFEOoY)kR&EG z6Wb1Ma+hcl%Oyo?KcNv>#2O|OgJ!ZHf4(;^*gEFyV_gjGGta!)Uo?8(e$ePwJZ&JF zwFcKF51Q`cT{gg&;$= zy474p0c(KP5kCg?Fv6i=G_5~jEmx7)L(KKm@~K4&c~nnobEJGBU5+WJ7Zr(PD?2%) zwIW3eSH+U+{YmRJ(E*lW2d$ioje2jzlE7_zLcn4ENi_b+w!-XV1Hf#Ww&8biZHgf5 zE*fu#1mcMD*y>_(0J_RHQkbi9I5VYb5DDFn$ zcp9;0yiu&9sB&(;Os9?o3V`RiLXxy?HG}(t65l>{P&6C%0h&xj)0b$j=?=}lL{khj ziLP+3PKLW;8xhe0!revTK8b6ycXx1Khuq@a0m^-fUON_>cwm&+M9i$ka$?Y}$$gxE zsPGRY{JjnlwDb#D-nt3<5BwK>uwA`q4ta30STA|#2?29?x9>vag!5pSKS-CdrkRG=jU zdawe$ia-rG?!wt^1j+*|EY097Es5eGN^z}lhJ~B*CA!K;VLvP#+i#h4<}kK?igW#5 zz&TiP_9V_S4`+apJ&E%;&ke|-w6$QQ-lPq8Ogx`1l8F%DFa`K`T$_D7fC1}$1LBHr zhT+O8it_{BB{ZRUF&y*(Euqvk7=|o14;F$|ZG>YLMJ`bsp(su!iYD;VMNU(R;x?d= zcsOQ$K~|2NglAi8!-BuX%h>ViEU26I9BO{(BaFP111u$qC5~%zwudEfDq|Y3BnCkh z)7Wub)dYZ~6)Q`zKY6pch^avP@a!WtV>zeHGE`M8(H*%lv+z*VaJ?g^txg-rR}hb% zy$39hQOsU{m5U~mtrra@LoaGgZ@s8Dzb=(Jb!L-X$Vj(?o%DbB-cn|`VoRiS3q0tW zQ1~bF)n<Iw*ei#1JxPqfRgI3a-*tUU>x6wUKo;&+6Z^C07q7?w1!b2l^*mfA=Jw5RE_H~Q53VQ24ji4 z7@-Ia8liOh{+RGvvBgvzi)B3BtcOO=%iT6e{(oHL*Eq(mhn%}HM(!eMJ4KGd5BbDq zF3b<%VAbZLW$YaB`7wS#0@a{anSZsHj4b35AN?D=dBq@Hn?2tgLR~kQPci1Fli~Fa z7$t>^YUTQNjn?PO%@n<5X4hoLaP`cW6Qf<|tO}jv23a(Ev>Qn!dy(AI7MXk9u*0 zFq@9eeclAKe7$EJB9y$nCn+heK`i`wleC7kc!_v=5P|tXS>9QbSVuN&Kh=WzTq96# zCV@wKWR40N%>G9RlM>mn6iapa&T}8{^8QIT?|nx`JvFlu=!aLbnE>44VmL zHGnzwKJ6oL1ep}TUy?5EK)zfd56dQ_l#z4QtX`ZBln=ceXv;zq3VWfQ&*zE4(yc-v zFj_>ayRRD}3PDXVBZ!`UQ*Ex*{PvnY-ZmlxA~~4YHCgKMo3X4BEe(W28ww*jZ0A42 zQnyF0!@N&RWpmhlHzqTdg{uz+d^Ffef6)dTDel0`Q+Y;2AIx1H1Eg^;n?JuggfRVo zo#$_5KM~e$ntfK$COHm-vz|#?N9Gt`AE661@9!%Q5rlH$-5-Zx0zrZ@dN|l-F|D@E zv|0P)Y+Z|4kc)SNV?9K?T8aDD{&D|OpK*LB`~lDO zh~{*EzJ&T``92-}bUE{#FPZaETfO;3o&5bECm;DfmyY61J#E6vb@++VO3)2eKuP6> z-?V7^p7l79hhevLJ%~j)-A0AAnJKL96n31{LYKgAZE=De@8C{Deq3_r!}M$&JL&5O z247ECB%Z#Ll5YWhEB~_pCoSGbTn_gGHRp$-<(tg@C}0L)PFg%6ywG;?UD=b>8ZR zKjAy5-Y2C}GfrOREimE4c#?g){V_@O2dH0Vsh1&r(1UpMcRA8NB)&t;Dk)3YcY*m9 zTfNa-XK}FgE+~Y+uj62=^tYZi)DC2AQ&POFZQ^QyBBoZDQZ~fhMG6bqviMCaZd{RN zSd8~VwAhem zvEiakXe~+$3@%8^rp^Xs`vb~LZ6;i5Tn=0tOl}IkKv_!j6_xW0coYK^U zG!!Yqd^nm44bPYhM;#yr&?9lYt)7!ou19;Zsl3c?!GoCNSLu=1MIoB;kOv*Ce0xXI zpmL&Vfufp~Ywo+lHYyyIfx4hW$iiGUH^Z^5W$P~%1ng75PzPC4NB{TsW(I+M6` z68nWa13*B=2tLxWF$my@zPM@d+a_yQJ$*1O{%5HGxW*JN(unXKp<1>N6KIRspPrks zhU{rei+>Fnd%Wey6I28ER>nQhev_yDb4RPq>WBH*5Cpii89CCI?I#D_tFd}(m0uB? z-%z1ekSTp$*;G`nx0UPs%Ckz)HP&M~w9d2*-qtoj6hu&P)s9f+Dtv47XMAh)4q5LA ztw`z&6^iT34VbP(%fgBZJYP_Bhh10E&K)7x;+F>(IWPsjY2^C7wNXXT+O~IHn5-5- zZ%YwS-Dq8}aEm;NXf>DY$%Y8=rY;oyHJQoV$wiwP2!V?;UOlaw{snypC)u!d6s=2o zbmzL^I10=Vob>^^R$}0gofiNlMd) zyMd-1IS!3xrIDs*z`JIG0z6*e(-cn=B9gt6$;4P1S}q%DHvcHR&L!Mk74BoWHs^V8 zai)&rwQm5f%ojnKu%329E2KXzFb^rb!GtHrqC~UC5#Dwlyjy*E&q1Je@-s1BWfydz zm;vmg*|zHnOtAuP!^o#`KP9vm0WXJOQ~*J{wjgIYAKvPAB@E> zlDfu%wu+b;g3K(XhqG*$HFYL5tXxRI;$;9L*X?1Mk&ofoiOvn)s8S?PN~ z{^ZqRvy(*;t$@~QW`jrCc%IqeUt;6;>;ls%QqwWGHrH%&rgIH6Y2&MXVNdZVk~Ayl z!+@z!4z!A_4QF-H>qN8>VfOaP9|XY&A~-=2{Dla1@el+u!K-1&i9o=B1;BGLYfH%t zH5V(SAF=`IB!zS&A-xF})XJ~-Nxg=U0`tIaCVkf~)4!eL2Xs=5#ec`2B5oV06;G!J}KiK-#QbN?K4=7vp*x#Eh=D5$UXM7y3>neY2Fl*KutQ_UH>p=L3k$Nr$n56m7?9q8lQT&^- zfd5{_A0_^`z^!r>5bbQ>cb$hFgCRg))5|(+wkIz>Kg&8HtVhL3dwkR*aky1Ak{4Lp zfGO{fbs>M5zgB9k^;n(UWX#m3iJJ_LQZV?wSBA~@qvM^aG9)#~aNz%{<>4J8v$U(pJ&I-OGV?!S6hsqd1 zeE%1A6u7bDb>}m068KQ{cM)mVt#~nbn8|>M0Fjo2ON9g(iLsU0?#b69-k@-j*Gu~L&Qz7Rxu$b_iWDaK!ld?s zvAVS%tmPMDnFlmBKDF>8g+r6UJNvWwfFO*a;D{-h?3A)hxkNLFAXVCr7NJSQB>b!s zDIC!~e9ykC{z?6G?DIP&?(z>_Y~i}hZ1uv(Kg)4AYPU!OsOt8!)87{VYDRnI4pt*0OTek=41e~tCySfykU2I%*U z{Xu9&@JK?yqJodvf&RLadzLDmZ@;uNdCU&@^i9@o-K&n}cjU&mJ-wH4rCS+Vj$w9@ z$#^Ec>hs_DI2;<<*+RRq$Dscuzr-V^lI&A_!D3UQ>P$1@^cX4SBg~6mOQdkZcIc_U zz+xE;M^iG;Q|}*lJ#}D+{Ps7f?4}K@ri2&x7Ii`D@FA2KQuDs1lG;?zK0JL1aZtg1 z2&V$`zgQl^^pSFhsLh}8V3Jy$&o+46Mr3kUmCn=qd|#MQRl_+UV1llS+7R-m-$W0( z6#{7dN(69xe+b|g6+i}rVfMpJkA^A}fys_3-hxy-0i-*;_(ePAK+A8Bo$c{=^y8W2 z&CVpfBu2hysKD&51lIKffmp{u4J`n%rW%@40s|Tv1OlB$JPLHd_?&_W&pC2ckgl)p zHle-Vi->;5-*s<)&`_r7H;*2kb5Fkel|*uZIps?c_WEtXi>xw>X1xKv%yZyTc?m4t znFtLyUa)J8847HZTBBT*c)&YoXfS8N3hmwV9itu?s&*=LMX>auBo(B=P$ zg;&O8|H|?<`B~H|KhYNaG*@$L3;D-doCbFpUD=LH$TS7O%-xS-4Nh})y?Yv2DF7nN z3BU~7jnb5Nu~I@nlxH+oZ?v`Jmxw=*2axQ9zDH29I~@+mp121kP%X4E^!{Z#N>=dL zMKK*BFRum`Ly!pX9gcRR)4WHwq$9==9;M7uS~fV>vqTal4tX$lHLV0zbZni!s6*OsG;LBr@VvW7+VUx5P}7gsI?#;qhq9pg9g~zF zRsV%};YCC$(D$&}ec)P7!?k(l0q38X6ZQMqp<=djqHex!E8_+h%8}dE>7Mcl<1E71 zVX5z);=hP}71QmYcMg?EXU%C<*+$-zFP+bq`oBQL>@HYsto&BZ8q2)w-vAM5k;nV&wD9$;B-^Z?3R)^c2%^Km|p_ALAP2ls5V0jWVf00|5A z6mfbY)AU#gARZ~&zjM8Q+1XMlf@KC7!78>!J{Q){R00kn0o)UV#x#@!eEL~81cW~a z0c%k!0fXTeBr??l@p32}JxZB5Dn$(IRwO)hjc)E8YWgXrRcXLfp_pF9wJGy3W%#V_ z2~3F#m3+iYSd?FOg1cjq6)M!>`B3xpCnCZrgj=O>uO!^vJh*B8Y)LcZDqG|<^5Rrc zo7sVTAZ_;qBsM6r{SW6dXun>o^~S}!cmB%E4>a~I(p;K8}y zhx0Dv;NbA=249RJcHYt(>(0ZbP8p9Wu-R5!f6@v;wLrT~cm=zgi;+A^a9-44*;&&} z8dMWHF@suYII`Ft$Mmk^sLSLmg}ZleW5+^ItRmrZGV}5MXh8ts#cYK^AK>y?gOcPc z@yb!A>0=SVI>2fipaOUY*CrPNRzY6s3*a3Zo>g!BA!*)>e9%B}KKM+9bUh*EDx@$W zeF_mPq(GP&4njH?kX~$%SB4#pS5{zF1@ZU2bPLeB%+dJ%=upAy+{*kqzE_3$>9Tyt z20Mg?r4R(Yr+MmGg0OyLK4T71Syh9CAMh^>y4eDq6QKBMX5P?jg!z7!3uft^&|XLp zS`h+_)6LsS53}vVY(C6$Et^smyv>CNYs-erxRcmxc|8K{2yTrOpkMszDj?RIZ1bUa zBea9dU3-Ab5I~!IC@A&BX)MHg(iAhFgq1RmOVc8l>T!PY$P^6(2rDiAickZn4OBTKaX&xIa8S+n*Xd1)5Ro@S9F{$Ul z*=`C-C|9p!BR5a*zPXZ^_)pUv=<8;qA=KdS0sK9Uzcu*7s==*o`0F$un+bb|2jY3t zY4L{%L~ziDzzK5D4U8xhCnzh)Fl`pYB27z64PG&W9uX~|CVW5E1X>`_&#^PTC)sAW ze=`Wmsldegiurs$Z?SUKqo|1uT4%g)X@>4<%mz9pI;j z6DpY*o5ajmn1W>na5rrop0c7H{k6HugX{c35$|1w@&Ym z3_gEvVwdNf5%k_)j^%;L@5|Gw1~#meGR>sfyYhi%GxvjdRKRF(PRf%tf zp5>Y1tmhkM6q_q!Q!lTw3#(%wO|y{dW}Kv#ao=1ilqe>w+F+nJUXij(+PbHz?sbCP@iOZhmG?^zw0TnH8U;5 zOmlj9XXZwbIAKjzTM%)!IiyRqEJq;>RI+wq`N7@6d^;>ZxXaZ${!ko)uz&Lwr-z7q zOLXZk@F%}f()%y&OVmI)D<6&~!Ur6#nmLR30R6N3h^QwhodTdD083t-W`9faU5qp0 zZp1hgo0oq$N2`YN@e81#{KR0nQiA?Oyj&S$ZofkaqC5wI4wXxDVZL`wuOJ8AfPiv@ zU0$@5gKwbJKpV~Y`x<|JFhtuQe@k(F9DZ%SGDrNCOmH4$=D#g&W#PZ!R^EiB;qwjx zDW?4$=cED?oOi#6$}Vnt%h3jUs%DiibSh9_#}U{&3hYx{n+H8$fzausATV|iFOprT zARVu)_yDh)#6pN7OdWFFo}X*NT&d6+B#I@jNPWG> zWu_Uu2|hv;i5B6%h4clJq2=x7$qqLO?pBY;@>ygCG1In*JL3LORY~#1Ag@36=TBfh zBh8XGMSOKXL40NOIMJ-Pacz1*k*ctOtv>;ox*ZUkHkQzyJFic1YlH+UqWJcUlPw{Jdu;Q24(Mh3p&CWc;Vsv>o;%yT zP$e7?Z`_}%mo{uNH+0zf05I+KeA-XL@aBGj$F#u7UrRlVB~dRe-qYzgk}`KzuRCy8 zj{XkzQvzIInMsxwtExg%03z|UCA_BUyHpdsR#l>@)dXTNx26#54s$NE8r7AHp1iFa z!#Cx&(~q{7U1Pz!C-^OGGt<_{g6uMm51QsX=Qz!iq4?4c}>F<915}pUwT40&Mron3^D_Mm_ zSGt7)VKR76f`=D3i%`;-2ndJ z`v?E-`+U;P``yjwYKUF`Jz_tuR5yp+h}e%x=q|*TuGem~mr#ZNk&6{&9&{>!{Fy+` z3lm6SeBj45gRF+}%cv14Rh#+T?`CE`B}>QtE+6$`a75br_0(05C10MXg&Lg~>~z*g zVSche?DNj^_x9T-N+FyFH%1khxoad&h<=AoeK5E~X!HiIO}yE4>Ve38;aV?FNZ7>_ z;7SfwL7TN4>x%Q%!0@Eg1pI$X-yqWW`71)-x8H)k0;O*h={vqV`Zl$6OCPl1uj+sn zxFY_)p^yFne6h_^UiqZw6s2bz>5=)+Xx3_6o97_MF0uc_06jZ8Kz7+>Kt8|cpL~Dm z(GVgHudf!Fe7F%bOi`JfP8x=FM?(yPa?wh*PeaJbBtS>9|D3zAmK_O2z#$M^o;$Fv zxrk4od4xxwBaRDK&qneRx5m89+f@-Mz#+qoA0*0nie$3>bY1jXhC~diPq25QAyX=_ zW;s~LT39Ry!n#;siB?>iTM&_^xU6}Xse%4x*hkWxvZ2*VU@h?splyxsqx8hglONl@ zdhw@HxfOK9Ohj*5$AO*4z z+?*5i6(Ovn@c?lt@D(>Px{%oyIguA$1eFU}3zxD`0O;ft8?7bh2vWxK?L(|2#u4+V zXUsJ1+0jmAx~AT|Z%erH5X_XC6|NdU(bKjt; zE_kUMcQFj@+8N39c%Qt1wd4{W0_Q*LWv5;t%$cq$9XKtsDP1jsEem7eyq`eGQQeRFO=Dcnl^SyZY!R$jSM~ z2~L4F`CecyR8W@_)L{xLhoD}C)YaVwq+1>U6>zoFoM;0gO^U&sJrxF>E!Tf?{&-Bd zxW$r%ffcuEl@*xR8im6Tz5-c=O4b7)(H!QH73j4;1>26p%cvQ#pjps4BmV+3M}aLM zuwxWhDS>?j-n;O4O8{7oW6ar%-ILT}uDzfK2fsS%=@d=|;yrXMusM42bb#o<(NhK6 z%rE+$Bgf+Q`qZkcbFek^JFdtt?%-{@+)7U>iO}K>p0BbH`$NB5Q1l(%Tu}7AtaAyr zR=2*SoAxU6^IqRNiw$-L9fC0*LP%Zu_jwSvm2CWjV1xZLd>Dm0 z((I-14k5gY6y9Eh7xv%<3}|Qoo~{|w*dtOnt2JQ4SB_#l(s=(sz)&RwMoJd12zqe*hS^;LwqtLtvvkU;#O91ZR$kJ-s$vNx}j$ zLjUR6Xt(Wgkc?J)*>X#;=`HXs-*8j@YseK+XDxDgI2=%4sL-qqmAwP#08 zRYN7np^5yqLRi~|tSwO1_JGXHMUY8-Q(g z^56wTwF>fcqAGL3G2C0l4yV9epujF8uv-<_TmoAQeJF8Q(eARDWdUG3L;*sAz$+_J z!+{REih%r+x)|pVyZZNr27sb%z51NU?ETL{7G_&%4ns-S5Ra^Y1N;PxJ02&45Osi8 zY3vDL6$&g&U|0h}U|)k@^Cfs!9s>fa2>`R3tjQw@b36w4f?fT${zs-oX%F8u2yg$6 zft<&coI^>@86G(S-co&X;)|6AWpDAnrRm6qvY2@M8*B-q2$(VAiZU&M2(D3_HxTDj zigN|TVKzWCT|^LtkexgOYOW24;P=%W$Om<4AI@Z|BppUsY53=CPdEOovhd@lYqSKMS1N`Zi2;2ZF}w~b7z2rP;ruoqLoj~Q$&deW z{N&rW%O`Q1Y1j4?n6I7@-hcQMl*z1pG^>!5o#as#;QeO^#OcKMpSK|}R{wdY0{bh0 zy`gOW3oM&d4_Ls)mj!?Y{AYb91t;6NpObOzcYJsLkMT@%(Q1I=EF3|y-Kfoe@ssL_ z-+OFJDJ$^|^)-C}gLrGX2<4Mcz{f?sL|x_NV>r~bKAsOBMG8#C@gW{u%N#Doa76sks zJ*?{YX)+ctAC z1PIdF%t>!ZWh9aj0rp5-jKbDNjMq}kfHQPx+9Po)3zb{R#J3vGgz5_%!?QiWYnR$O zGUouFUDQ4%BKduD^>?m1qO^6Cp5T6fX3Gy*+_{$OT<3`;DF{!R-*xec6@691VnXxh zivtdTPXN6g#DPHWkn-Rs1yD)wQQtft-@5fkP729qrvN@BG2TvW;Q$zX?PY#Zq5^Zi zFs%v28>?o|4{7sAEGSCUr9z1Pc`DLI%xmG$qQpA9(Mt$?6k?T+2=z9w<3jY3g=L!P8dEC>U8^VD=vedIb;YUK4Vl6V>XMa43t^B&Smt?w|9Np()HL!@c ze27OkTEC^+@&dYLFD}*ij{DG>tN;an%G+rsEquNHv zIX(D(>6$W1KFY?V2C<-Rld0=6CO%z9WEYj8yrYQ=KYA8&2nC^!B^ZgB1r@1baK)Nc#XfAB#QV)V0lcm07@e);39u;{_sLhW zTA=h+-6-A)hC1Spp$c9!X4FgUjFOMpKFUOv2@!X^3nGRn5x2lL%)daKjb!`{828eY z9nYr=U_EiWd^I~8y*{g1I=wn~f4tt;y8GdJzu4U$p!ZDwBJZ1LetuLaN+U%hl%lN= zk-4Bdiu!?~_<}ydBBj3*rGGKcsB~(Vui&t8^unP#_bBX#-vR8=3j0CAPV-;~R^-$} z5Aj0M1nf-$ z=0OcA?kZpB14+PRsFk1w$==0L)SbUd*n_5#&X1PYnybE6dh*Q5M?`jO-v;>86#UDO zquJL3U+05w1=I19SWAKLzX~-EQs7M}YXWe557q-dUV&dq;A0i|MFidgo|N{7ec&?) z{GW6%3VgxWc`4?NCaV~A&UI$xSB~ddthG_c~~5_P8kv6|t}GY>v2l6m4Sz@Mb>X$5B6?%+QIam9x!@pWeLF$iVF z6U|-8=`DWGU{0PnMInwO#7h+7nS}TpI8kwMONOO*A|YFO) z4NV%(hkL&Lr+9OfSz;fdabVL8I#zgq$^UQ@ZAtX3suK=hZv{QqC_T-Pra7QHdfo-w z@l!#M%z4NtD9>D{5F&(dy+Wuags;J=auhhf=T<_%XG@%dQ~!jT-!=wY9^zf?meBI{ zQP=|sdx63}fUqMT>_ESBIAJ4HBJ5UeSb^Rw8-2fBYgB_eUgOxe3Gk*SQLs&bg8Tm_ z@_Fn{P_RfT_#1R*`g#;R=IiTe2rWKDC}7*?30~6IhytFa>kk)IS|Yaf2$d=s&kU;i z>NhjwGgK1tdFu8ec2vqqC>!7P7QGMLUlZ?nCQWJEp0wSov~5e;E`!um@&VeiN!#r( zLV%}JIAA4e&RCh$v}(+S|B$97n-puz#PQlJI0sl`Hjmaj_GC4tVHC~{iqf)m$sqRs zJtU&K{tb}xHzj8_6lXpKnMzJz$zT}ri}&%#seJ)8zmScP5S_$(*t4g7!;!0`ZAlXxUCu0d}@_Ag;IO``C#+GIkXZsFtRZdBFYZF|Fu*k z^yNArZBeA3L0V>%hx8&J=|=FFxU6a=VWi?Hw=9baCjFF(MSdv*8n6MT6PsA$Ep zu6tuTRz9EFit(-3ay@+(m}$lFIP3%M-g6$8%5y;AsYbG*cT!MArTJCfR9i@G^kaq} zSMVCp+(H;P)oRB-g~9xhzxY6g@OY2QrtzUq@0*0Ua^ECu*T&1pPBSfCzRB8Zc24v~ z)I#CFJWkVWDgDE@ zk8uO*$BdZecbSwQ^0rh$9t$abYPN;_6AyoQ`6GEFwR~5Wf@DA~t(QKi4ll7KrNz0c z%RX*1)0Z$;wwjR6o?Edxj<&%S2&>nsE3j;@HoM#^I8^}{z=r^V2K5#QuBuq3=PdHv zexakl(t&UK?uouBo!V79!&!{qwE&bg6Z^f+kEIB<_BJn)xV3KHRGv9qFmdH~+qy*oG z{7e(JJIVlz(@e-c?mR-HzLDm!`=sS=T#J?~>A7guCS04W`(4Yu5@=|9IK;f^0dKS$ zUoC?hftPKX3mm+03U3MF-A@9eSxX7;m0AaHsSj^j0A88EgPETAEIl3C>y_)IS=38Y z;fE?$0tA|odM!s1yw^(Pb;X!1oa$b zq+T&V-b8{riJ+vfMh6H*=@DtWoF!|FS(2?Kef*LfE%|Zm&s*8YvthXRK1Z1?vG2X< zm)Q4Ky7%h*_a4?-EV1w1;g{I=s-*<#y0Jk5mKun&)m*1Hh}&^y3D|VKq}|>5&@h`z-tun zAOfcRy8zw-;m5zykxPyFG>=L679ugH4&pU4{I!wt)m3YHnEH{rELobBkii^JhPudnnXw+Dhrnp(oNk#8cs<2 zC=0c!{>{jilW@}?3>6f$$brGN=H^mums|%%ocNRAuhk5L1*!BNy<4RB4bnl4Un=S! zm>T+1cc>d7(s-SWiU1ONR*>fK+cm|WXU- zRQZ%F;s6;Xo4*0qa+qbidR>y z>R}$nOpKb=tU@#9P-_MJ%GIn)DBU~^Zz-|DJe|3gCpesMwYk}Qaxdw@CyVe-4xf~J zPv+?p+ERfs(3OrxDcir$vx_S|*p>=}o~{&Q7O5)`zJ+JD z-twh8MbW8905$ev{2tBf%Vf}j5Nj9Bya$=aUz9+ls9x4TPXX9=S>4+pQDqtTK}bQQ zk_E5_+?9jMQY;u&+d5fM-h^~d<2H)&cBX!wz008tc)$yZa*W1CganC|LY~F-Tq_GME{`yvVwgj2lzlS%}Y|Y+3$Y zTzA;0+ah%I~qrzco%%eota9?h2TK@;l$>cURZ}XSO)(rE=>{T_dAn zWV^oCi&pbcJ*WI`v{Q0(S68Ac#~ArWd}0J1p$O5z z>#H?D;~>HrIV-oCKYglkgEv*o$vL74EGaw2n_nK(ZSd%|(7Mj_v7i&m0DU3*2$Yn< z3S^~LtC@}gE#xo9ygOR?6yw`Z{u8ZOd`idn-_l#(nO+wBKD}K;<1eU?@$lS@gXDdF z-x*?d)3(87qRmB3Bo6~3I(7cm+230GD-$oxMU}kOc@`4c{p<=#WsX5Bj72ViZ=p2g zU*`LlgY0FqeBF&zo2zr(V^Jc4^eYjMK>QiicN3JBW}9E*vd-LtVfxU`};!Ic&CFE>#xV% z4reuUJI8QkEx8QKXZCQeoyaX?UWc%53vs?n#=NhjL>O+u8E>qIv__85U7TsIdQ0pz zgQsMGMfaS;#5%|+X5K#p9&7R7wc%GoKb2#6A>V$i1<&}?uOdRiGc){GVOV@-A%(I- z_yU(~C=0z4!=uICBkuUI-&H(56W?qsUX1VhA>BLlR*}jKWVIR-DwRdda4mtfY;Wu@ zkU4GfPZ&y!0y_kFEQ;|O zir2Fksjo#W7PFB($T$Li$Bd&_>GO!xQV=+`5O0L5i6|ofD@75ZD>MNu(`ppVhIa(h z{%xdROOkQ+6j_2*iqt8ELTWyy1!HhfVx1wPdgKV zZE|^7%EjpMzJ9MYzCqR(SJc8Q+zll__R?O;i>g-AQc}_O8g7!d_frGf-k!9WXx1*z zq3z{hwxmnjd+ipqy)TeGiJw4l&DGg}B64c3&a{^bnjbA0r=XV*bgqJK#I9BRJA(N9ML&=!uBc+5=6)Mka3rY2W7Q%dv(%2|04FK z4|>A)A{O_Yt~k`9TIVk5a8EYhiH1I#W~r$`CvhUsObIn-xV4I+N^J4i~!Q-z}& zgd;}jPB^Xwssf7YW}Iw}yHU8f;Tdpop>k1&Yx4xS>%zs^FcqJRQ&Dfl1ak2}3Ai{1 zP6;9{g%aq*)s=EIZv+AN=bx7hDuC$Ub1b@m-2-E@eCShbQrbdKYMK>HQu zXbB%S_i7Pm6w%Ufb)l5n>O-_Ge_NC0*9dy5vo0)1Ob z=$#FrFuU6sA@rl|=GA9F22WH_)L6o1uc)51_`~#?uA~VemsTSJ71aF1EuCC=5m~UW zM4}>t$Rgo()dut?#0^*b!+g>E;HRMXC93z+aBa?pJ#^7~8jK;nhmZo2cNUV18YDB4 z7Vj;N{SQTU95}b0pl!xL5NG`zL<4h;Fnn&+{%UB8F#ykjYg!zO8d4GnrMp%yZ!)XA zYSpYpDNPg3wKq)7xIx2J32Pg=0LcWtOtbz?hpUiI7y1(&{a5-MPyKa)TMW$)1y7x5 zMzMTlmeEBqmQiCIQ1XVuy&CctC3;GYUkz4lF57Ps_e!|n@~cgRzK20PIG>Mf0jE<{_o?9r&-3Whin~hc^f^BCf|glDAiq zgYjfR5xo4pqUmIJG@*DNo&610=(EXAOVmA{Wi<9m4_9viZ&fS#KSGbAg$lh{Vy76Z zJER8xM?5^Z=^%MUUyR7Zf}+Z@JV!iStVevN+2j#E7N8TD9;*xenJB#rbbi)gw_xSc64G6#>Y@vX<< zlY66WnZ1sOPmaiF1?A7NybsI!vfPbbu#!XjzHoIrXv3ZSaHf)OL(6!G-qn1+AKzb# z#gXoj%w0;Y1ZE=KhvSP`cRSX-hjnd-P<961k_O^@s=8LGSiTd>_eFU`aui<9j42jx{&-L@(Go6RpR`@HVLn8Q zt{P4fwjie-rc%ix&7oCdU(0}}ad*l;n)MW}&F%A?eFfH2kAl&;6~}t8o-7?`H*^~c z@6+oA-noRgm%^Jsc*lD1CZW{Y>px-K4&Gc=P9{%|&L+KfFL8OWLB=BBk$LHj@27G@ zMdIi{YxN!u{P;JdS-pd;fT5D2=%#95dqC0xZ(Wb?%|BCq>1ay--}nC(I(_nc^ufFt zm*nFV!}7Tz=zl#5L7$|8-eVaA{RtGHop0cnxcQJidZrH4ONoz$*;q+?=Y5uR5_W2=Gh=cqsuM%dCzqsr9VFcDRJf>Vm}MlCJpLPy#~Zy57D^> z^sWfWHb@?%sSUDN;l1`S;LTKceF<+lw4v|bjdtAn4t4fp1dLil%1K~a4EIS^+BV1rQ}e1iTGnfT%);CrH4 z6X2aocy|!qWupPl8gc@QD2kiFH^#MaBA_VAkWd}}B!3=F8~5QTnGkXO=FlI!ScnP$ ze>TD6z~2;exsq#yTyN%r=lGd5h1ux+_`6Fg@S^jFy!CA4q=}83-~j|(_p^|3a~1k4 z3dGxnRH#k_KvjEO%P#tKw=f43u_ruKuCPAnRCeof@>@*#k0pPIZzC9z7#5)9ltomN zU%=rZ;yj5KkC2&fm=k~$%0xLp@tAmzzFH5~f)LY?vH9{t$T?D7PmSh%zP;x!G3BO| zjh0LKh7~d5;M{1|R}bNkZ8}18!r4%%<0F(SugeUrC;xrr+vYL%RX&9l8YDIGwYntn zC-pXNze?b|cwfTpFyQtS1|4iT`Q~~Y%dXcDNg6^hdy@+b$p^K%+-l=dpq9-vI&2>n zP9O^(NFf%LHH*GbgrH`%zrHMZ{)GG3Xp(v%6;&^GC4X~`xU5(H3Kt{OTsW2s*XGpO z&c#Fk-}d>xR(LK8hXD?}hKh8@u6Xj}atSq{$RP8}jhr%h7v@)n`F1+E(pckS*q=$A z-UnSjpU44w_Pa4iBcr6eFJYMPfB+|r+L)=!=b4Z3{D~hw{Vu!iVe9b-!!kPu#|g)J>3loo^mb5&QO82>Eu%n$M*3J-MCrr8OzEc8-x8tZDXPn-aVZ_q@uuB}B^^8-n|q5z}5!ReVsb%Jj&X*NgHr^6Z3>=J+yc`2+4l%je7y zL_7u8=E-u`@&l{m&%MfP`8IV*gUmNO-pvlS7&^ke?`m!UPANjD15}^R5LD0I3smXa z8~lcAbF7Cd&=>x5rjKf*gA>U|>o8{^W#GKoK6r%2@mu+sM1+=0WHN38Qh*{qc@&p$g^G4)qWO{fIyI=Ysxnv67WUn#P9>>kKsZ?6vrp#Wum7ZaRmyv4EGtG9}eW)6nM!%66NNGKQ2=W};WpEO3Lb zih%_3Af#LlpaA(>xnQLGqqN6rX=>RHc-BKan6Orea`;>)>s=fanZeYfSYdRb99N!+ z`bt752fx9-??<2~FV}gh{0C(}K?VQ>lJ9`L#&Y4KFkky1->jeTp5a5TSet)0oMtJ? z%ss>4G<}M4(Z;amWxD|UK@$8@AcKMe8RtQ?A+rpDAjHB!l*~wZjId(_c7;}T6lTo( z9&bZ~F>@eFj^sj%jCmisvYlA=Afy17=E{0VJt=$2m3?fJA8_qnoWwlL=#muf#7>(&khy8@Rx}A4MKOHQ2DBCX? zY0Txq@ymCD<9W*Q{)AmJ&2b!Xu)jbImg9JVYP~&DzTW&}8Fw^oiSMsvB=BDVXl4u- z0?V;~8R2Sl*m*ag@H|_HAp=9flmv$ce7gJE{1j6dcnWAK39l`@$~&qYDBDbvMJbyD z*tbWAMTs)SzCT{Lf8=0srWz*{m|rdvX5U{7W)~{6NARTyP`kP{4*acpxAU1zoI~TBI0_|1I)Lv-@|90!Ib-I>VM9=59bbu*uQNA1tZ(3K5lNVg!aTJ5g#JxiUtCH{!)?O?F77B0k6Zg*{3_eZ$PLH@cXRHrPY!RAidzA zFcTqMZ9+~9alPNwim?_oYVj2P2nPzsK$cA=I!9uII+WGv!7+fElBmGLI#d4;(j5NR zQ9~2Zfd-vx0%LE?PYjkqCe|1@3bY&f%M~A)m3Yz|73Q=B(F6R@4_|{=Th@mbJb43s$vQTto zr9#|#4%k0OA<8S!<$R(LuS> zU}Cqk@AJmMVbLAr!#B)3w?XDs{#PyOjoBb-He5ZFm?LS+zEkVK@uL{;mg5_@@?h?2 zS`xl-d*R?ADS`gL&v&ptzyt$~41a~tJceQo)95yl+u3f4G}e0;qOs=Ch@x3_xHdB{ zabBPnrPd4Vg_dm_tE6{5c#%rNgPp-C_{rkV>D_sN~FDGvlv?=+(hA5mfAA0X2=FLJF#eph6y~3Y1!D z{R<+D|AsIGS=X6jCJo00ZVfR7X4SOxe7uFVY|z<@9Y6W|B| zD7kC^gLf=gC_>ThGS95LNMv#@A)c=gXA|O34`P7C&mgGyH)<>77k;%E36vtHBHAc7 zQ(W(OpP_(z67WO?ybl3?3>K7kuG_Z4zJY*mNdk;x=wR}AzRGkw;(+dG`qGisANkHxTzI!L6&{G0;u2D%kKsfEGTVwGpz%slh(BoWbYBE4FX zo<*eFdq@Lk^}PVO#cj-62d~!?HCN2WTjt9B;dZ$6SuOuTLXtgVSR8jyY3<<6Zo$_n zhtL-Sy{xX2z0`|CJS^=wlhMHbVj$-m_B{DVFh~@-$1e#7j33`j%}{9 zua%3%U^N@~R`A3jv-1JWi#&~t)Umr2*cEJj#hC<4ZoX$$s%q6$~Kn{K_@Ed0dMr1m`zoxm>|DmenctT9JUiw?DZQ+ zp5yc3U{Qwr{E?6Ga!QZ!W{k(yMH%B2H6+r}u=q<0X@Xa4Fdq!`k)p809DAsj@A1cR zUjFyAP}Rm+K$wHSZ2V=Sb2Q;{EDXRm%fTHMd$b%AE?y1IGgPMq)bY2uXsO)FhU<}L z)CHoQU8B&>C9D?BnuKffFtnzY6j(EGI#kwNw2AM>CHpEe8)>#6^@bHm@7)L>)Z|de9l62aRITcMe1?3U8%b zLWlM0!Ib?{HaFbYo4dA%$Eh>7;387AG+ZQKQml}Apr#(+DQj|-A@t3ViY4=9h zcF6{`vJTp40&Hr9GT?8LmT)g2jDMs6X8AZd({4VSE`4c@xb%^x@_do~SrN#7At52N zfNNu*lP(Ip4GM8Xr#?vE3c$yiu5t$h;ro9IFr5HN0{}iufOmKR0|CqE0KjLE>JWha z5dyKl8EO7;o)GuK0>HXQVT~iK6FpeWz*twh8K&rnyF_3WAu~~grUO{abGAz`H?T}% zH7y4JisCGyknRoqH^n$~|2Bxv9D(clg zU~rgcG8JDu41CL!r3J({t2=!A0AKu^o+6hTGYs=-K&72=o>?vpuL6&4mNtBpC(bcfTo@WkJY!2_>ILu(spW?g zB-~pq8e%0HV(XX*Me7i_Wusx|K&81n?w4&i-JBUu$1WTK;nCFHzSU%Iy^b4(q!Oo% zEa>8NtSToN|I9EhGVm<`Zrpo#R*XA_{Oa;R|;@19VLhkX$(d5M`H=uNl zxpha8L`L=QpbH3Vz{_Ir(!hBz8PJbGthny4E>`>j%7!O=?Jq$1nIgQD2+#Hq1~idI zghy((<^a=E0Wg4G#n=&+kMsW&=u86rLV@l~plRI!t%uIzhP9wOP>T?&6w=46-TT=t zq93CG_a(r%0$hV@^EAZOrOljAfb`!YmU?r=PqOzvqdHv%nIaPCp%i~W@)px2pn9nJ z`fL$J6H;^TWPl5Z%9UxRm@aO+W-kX5eSyk)fCv5{M1rmfpkSSP(6ckgS zkOGAi8~h3_hDxDc1|ul6;t(j|R-iQDG??SZkuc<16flBAP`m^+H0>qjq^(U*lrUV3 z79=3T4k;SANCP7Mz3*Ckf5RCH-mCXM|L30vdiJpPn)cfB-s=NZ>om#j=SZX1BfIF7 z&w6)uC#B&CA>%hjhBiUXsqvGSNsrPB2?xzfUtmO>JEG5O<^8&gKc)8Hf;x}`)%4Ww zA#8q$y3vY`jP6&lvAFwnllfxAIw}OB4=SSnS_MSYXtC+3=M&NO0iwvD@R2B@j1Dt{ zW*ZJ&Xc?!NUo94{zE5P8ima5#W(LS2qrxz4)p4~9$jrNkh|oaOFlx~(BH`3LI~fHT9Xzvby!S`71Io2lABuTsox}~3`9{aMS7;oi0M%s zZ92??*EvQE-~bt~ZQ#h{x;-$PiY#8?(;5b7C&!)UPj5paW&aQ72>TCR529zNo(?6^ zGXkO!J-rE;M!+RjagGr8R?&eqc9P)m&gy^NHBv7XWHX&?Y0iK+m zteph-Re1DdG99NQ`yo8$P5~{O5Gb{w7i&TvJcdc=R?Ijt49v*9kM{i*eDJHxe_kXq z4>W_NbCsnTWa-?1rHDCBAWM8n27Bn?++dUw9WD`8;}_Oa4W5R~7Fva(Z&UP3iT*-G z{{+Hj9Gb|H_#WtaWRglO!vRrN0W*4xHg+SBw$1b&s>6LHbkGHQ_`iL*jCX_+f9=pn zo2jjEYM-J^yx0ULzMxDjAQQ{-F>xT7SV^b=J)h<+=rC9A=@72NVLryqTZvHi1=CaC zLD+mKAHrWjlOxj71B7vbwjQDaae{9JqTkZEG>7B$tEzOi65pG|zoOEtB=PS-${dx} zk@y2@FkR-NF&zw7wK7GF>O?Ur?2f$jNs;N{l|Y+Rw3S4AW`LGcVmtYG3xbYbAUA*D z&l2mllcoJ1P$-x{5lBN?WGl&M!S+KML|V z0e)0n95$KJgU~lvHww^En>ph1Ffbl>Jn&};^q5Wwz+T*a)aFej#R1aYKdpr)Pre#!2&PQi%{Pxw{=(7SliGhSNU182-?g0X%k zjD8%P4Pc$tV}6R`i&X8;u+4K~?KAwOH7~2d>EFeRerEo*pPZG!1>ZhMx4qE->}=3{ z82yIcE5mYc=26#S%V-TWVqV;voAOv{Z#j@>rDP;rX=i`WH1rP_+4AVGeF`#Bms~2* z0)`S-@{+-jIUe3CgN~j13PWbEOC_n5a>(3H9`Nj&=@gr&{`+-Gs80ucl zk6U@Rjvt4uVv$6mBbV#YI%Mv^yWOIe$I)k`=t+*aT*!*sx!xb4?TOzm)6b2@$#J8t`e9&q?I7G~n}& z&@9$L53ohr;K(eyO4Od5xOwFa&mLytx)ROgcyos0K7_dcq_{f~Ha~@Ka(cWAfqUdd z8KW?du6c!%fk8J$4{|avSa>qdA@1ew7l@IS0sAxo- zO0lzkRc}bUeT3^2)49a7n_}96uz3lb=NR zD&lvS12JD_LiFp2IGqo1H4)o8l@4(Skn(t{&;0OaMS83moG)_UOQd@%(vJ{nbv~qj zfHFqE0A;d2g140+dGREx)&>lNF1#KwaliV6e7ri%FcyvSf;-{%d=aqIH>gnU3(Vt!3M5ZW;fM&&2^)(*cL-)mAU-r@D)tbKDIsrdSu zkKJ_p{Xn1@#4;G~-VdQZbU$ZjhGfO-?w`~Et{nfD#pewW8(#{QTa?H}8GfQ>mck~m zUaGUJ?g&8`>Y&>m4sOxPX~5_#^QF^88^!+$Z5%}=(o+vc*gOp_n$CbOi$lXU(O-GTt`=P!ZHT_E-?oh`5+50IO zMBSDNY^J}~FdrYkslfUhCO5<=eh2OEfc?$b-yZwRc_!gH?Qe(uZL`0v^6S1O^dh$~ zMjpj*Zzg?OCKp384dcU~7dbB(>C&mdm^rpddZE%)&jW+D(5>s55H`R2^fnn9i${_U z_^T^9*OUkB*yj9#B=g)-Ubp)zR+$_Av^S9SF6R6XcjVJE&uN^MfJfeUFBM!Xi${)E zT;s@_Ia%^v2=ewr9wyBZzl)5y{seqxLcp4XO3MdX#D`~CV-44 zMjpgZe+xE*wu`RNcbIM0L7o=6RBsl?>fgX1(71~NA&B$rKZ^D+F~{umK=ZE}#k@&2 zCYETlM+WmiwOEEwkz?o(25k3?tiqc z4#C2elD}Gn#0Q>$^V6Eth6s9aYai<_aQ0yr>okNq(Dg-^=IX6t3rta4xOACR%_0bF2ruZMt(~C8d#58Fg3cAj1iw55PwMqZm~jM71DR_=5M1yTrLlZ zA-;Wu5N`~K|2xa^ZVQJLycxmw_Rt+*e`Drz0F@DX{1b257SIgfQ97>61OAW$e5nlfgVOYa*R&b zj7gGlLL>vX0E>@~#K{{@a4fm*2G)_z$y!O-90&nui^U^fWwp@M_*7ri)M?Wdn{5{Q7C;+r1CW6Uqw={bPWI)xc4L*f z`(rYM+}(gqTJAdHc$P(Wshya>@uu|Cc3fX`8bCQ|IqG?tv}DYo8t5_mYoH6Qv=yV_ z*}%5;cOYV>O_l}lkU8RCxEF4`=1m!-#}E8#+LeOV!>(q8A|`v8ow)9zW(hO_`E}@yn8>h~R%Z_vw=-pZ1(Mdb;2-mY zU3gQ)dVG-D^aaFx|8#9@mJncd+iBEdWr8c{w+q8~<@*6?DyLtRTlQmM5*H+^$)yyP zAl!Gcp_L|I3)9xZ=VD^U6W+Gh;4LoEc+qCDP#pHF2=FE3i(JXfB>06>SyrKl*)lo5 zEXfT;$qkdtQ}c4U`Z3C(xmgAH)?-|nT$Vn#R|(uYG3X^X7vX~~(j}yK+kRg)^jZAH zPtHorpS9U5or~R+nb+;&wh&{EA& zmdhxH$hhJQUff9}TYho*=A1i;%)p&Q;KH56UzZ%M_6C0MjK6p06$kWPE5^-{IGM*0 zJmxxhu3EDkCBZPmO-&5r&quDjUX9#uwB-TkFJEqcvxhjujU(`Tno!t`KFcN)Lnw4F z23ZSfm$wKF`Qt4G z`TVoF;gb|nZb4$Q!)IrK^7JX3S+zU0T$@2Iwx)_l_F|8t_kp0QMT6!ZFu{5{-rPQ0 z27(orVIYvppXsSLAZ&_GakKTv7TkR`Sc~&cjrj>V#q9=A=ph9@Fb0o2YUnhLPt!th zz>?Z*=Wc^$4?W#=gCX`qL?qgPQgoreU{0HJ`kj?eu5K6+cUeH(Rk5 za{&G-trruR8{8MJ%3J?LPAkXN zw7DmVQY$|XrE)QXv2h{7<~}G}mq1@esvTd?g{G~=(I)xovk{Wwww2Vmw;YqsLG$=d zxP{=hk!1<#~inMLu4Bd2)VUzz^+Dco{OaS-fPokD6@# zWUtNK5pgkH(U5slB^fZU z)^YN*DX8|Eyz{51{{-6~#p)m1wm1R1<5DnFO6{hn?n7oO0%jt%_)8eBv&H>G4Y2O( z&>Q3W_Pqb%HmyC*D6qei(>|j7R4PBalAjMMKi@;xv_WY(ZR5oE@IX_&y;{_>;u5fPsIqe`*(u7$&VA6CQxEKuO_i$YYC_eSn|=$sqd^3(Z{nWI zF_75(yfU;8tn(UCl*L=Q?|>kZY>=~ç&JKU@w*B_0R=Z2uYd1`m*(bU-Euo1x) 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%0AQf8;)x&+)OwuIRExxDo0bP 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

Z+)*x?#4hdYJMDb^5|x{gf-crYq~P)c4rBF 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�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 z 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ª&m)OB1%fkegG9iM&<0 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

  • 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
    Y&S$uJ9I0pP5GA_^k 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
    x0U+|JR*8J^tjs_d+KdQiq= z^MO}LGY1umDbSFpPzn!g2Nm82GfLI!i}5gZAZe;@4&(5_zk$O>!C@CLVfcD5SB*)T9WF-Ys3 zy5VdwJ)6cO+~>MS)#)QT#g7oq-L(goJs9Z08N#wkIh~!3ckbgr` zG@VBotMb4e=s?t9_JK{}pBB_dbvXxq>2gQ5rX z{!9Asm_=ivT@QbF(-T4LM~~jLGK>A0T7C88(@o;da%UMCgJ7wcjdH$E!vj5#Kcgd0 zhNJ_V&V6n6*|-Coauou9_(QDc+Gv+Iy?CS-&(S=9W>4|}1xr$DRIw-hec)LE$B9)# zs5ZBAIpi&OWCL#=OP8zE%}3B_mErqx71^coILO_xIj7?F))euxoDndWRe>oKt(U;-Q!-H|B80Cs^-l^(# z26|ghZjsCVi5Q`PS_Qxu_$7Q_od}Tx^B9%+5O+gozm0BU0-5EFD_V(eq9WH%H!*EC zcN4|xxqPw+wtAE6-$GC~5l^aBsR$)C2VhLQ7JW+o*j48Owy}srs+|0eIn*Nl}tHd8B zr+i+8{?Rj!Z+eEPt_z|-%Dhr4t6j~X5$ix}EuW{f;(u-ayUDIk40@aI@BbP`@F4B^|n%fJ*Rwbps95 zjE2k0rno$-NSu1P@<$R)IH3R;jc@$NJ+GL*Mg8k|JYdHEC4YdXC3ohO5dlaeTs6Fd z!|aSreltNj^+*3-^bZNg$U=MnP~)jL`iH$I1??Zgw(LjUT1tiOl6MHt9 zgWTnZjx^=ah>!e_Z%xOS?+zXz++=*Y5{=mZ_%eX|bZvZDbE-MMaHb98i?brllU}Bt zIN_)^wnR?nK5^UY=o4QhQ@n9eZ=g@S`vJXA>|oBP;%91O%e|zIj4ccC$my>2Rx)>e!iU_0Hh1-L zK7b+`o@xB3%vMGSmutX2?`jD{l)W|0D zT5?61f1n_Zx5lKyI{X;@RjNMrAfQ9mP)oX(J1faY$VByY66ZfKZ9?obR85%1;GIv3 z|0RmIA;q`CAOY_?JgJS@4**eJUz*WYsSVWJOc)WRgKRUCKz1jD(y_b=8v^D`} z*+|;$g4Sa1E>pWl!JggTYx5h~+e;+Yy#k4KB5?{ye9Vw&u{YTw(X@B}&!)Zk39Ykt z{4I^_Ex3>Ey_&SUU)UH%{MJEh8^4P{k=@?g<~Fi-kVriCG9*qHiTlak=M0G!dz}`E zroG31GVOgjzIFCqKdzCz3#YQZ{~+zgiFOU7-7#ow<98V-vfF##oJRHz7l|E7Vx~xZ zog}_tNVM2H$|BLUH^yS`tEU9Bm-;(PzE%!o*PAhZ>q2#%M+vE2Xc{%1oL%|b+NfT* zLSNBx>eZnO=r#>rbX&EU-G8S6)J;U8T|-sx;N8)MBI$mg`1d1-t=O`N?A7)G>f(9HgvCfE4w`RlKsI zjh9AN0c$LrJ*9+}35-Tn6L&Gj7ytTG)@)1LKXku|6+6Ct5q895z65P%VTP<`08|0b zV#k>lJFX);)SNbu#N!F2=xL>`THQm^-Q_$Ad*kvTdCh5%tPWuj1$MxOHte*9btk|i zWCi@2lVjAFjK_|H+O>vEvYyZ&VTNv)OSoNYeSZfpva1g6)9U!GOE@3mJff zLEMHHU_dk(FqjMwV=FBwA4Kj}aw-f?6iL#;g`Vy}*9uKX)p4aLRaNl6`4`dtG!i{_pzH=91+8;~y zYrk*v2%b|()K7)FA1|lD{E>@UdwMz4ACPRxw`jkg1JWAsGZmI-y-_ zZQS;OAC=G|`UIxD!bC>Q{?b;Zt&TZjrx?jbES?X77JfpUg*Q<80 z*6JE&7q9Va!zYp=lyLCzk@Y*S2!hXMDltJ2jBPyJ82v{`_*7;wKA+L{M2gXY&xycF z4Y|_~K0gAqfcX53r-R}HeWF(UD#;$}ewLgY_5Cc<@ag~gewKEciuV01oBB7}&oV&o z542o(xs$?KtO`}rA9K)y8+nnUJ!=q06ZyHj91ou^Gj{SZw7MMh9HS~d>AO@fJSZUr za;?cjup@KrZMdX9J!g*@Tj=@RM*XQfo#GS;1Uio9eJo7}pOLs z;ih2b@3_6-2Kq!=w1D#Y<+19TzLYT}%#xp^I>t~PpPr36w8u67rvAzs^~IcCND-P% z(VA~3e(Jezkg*0RV`GXp`F@C1^B-cZwfKj^M?@8;vPk1<^Tt$M_Ud$AJqCr z?8d5Ti-+}nRz`oCU&rHzmj6dxmi}LU zn??5$G2XbT_^ezL{j~Q3lg##xd?CA+-XH4eMI3)pcWVvCRb&~vAOx~@0Wm%EP=z)A z)z?3o*uS0Zzbu&jR3cjtYMuS##eUjs`IFc`8=sZy4uAFo6urL-X8%7l`=^Cz|E!+a zE&21MLF^w(C9(yf*4cl%*uNh3E3yAcd{!>_g~VBw@$djZ3Bmpsl6C&kNW$TN*6C#b zCBf{c64`=K>+HWx?5E9|wPJrEJ}Vde!fro63B~@wI{!iK&p=;CeIEBoP1ZBHf0U^b zFT#~O--mMOaQ4ck2D2}ksJwSmbz1(^g(uOe=N6+yDcRGQjGh=fY-n+?l)6;hL0mj4 zRu%M?jf-9Rj{K5iu{s^~xShz<=N79?X*C!L-ZwbRpahWKejAN9M!t*sR;+dP&7rj} zp7zmq(nb|z@HixWtZBg&s7g9pJnPAbrZwvk`K4H|#)5^n(>wit#FCf3T&*r&M7d0a zU7%*p}%m0wB_5RU!6tzC z)9uFrPT|<^`HJknFo^w=sl-Al(K`EY7W=V}uw;|iKZEipS-{0^Kb#^2`|En@_IC@< z{_YgLwWAYd0`Y&C?Uxd*v;QWspY~LiiTxkap2{rXVz(bo5sLj7BBlK&glGSjKgs^V zLF`{aB^FAF*4aN+?591S zFC|)M{}{2K_Ig%`{dKh0GYh!b?T1r@Vt;Sle!LqLj{WBxAo~XevA;c)px)On_{`OR2p_FKy{iDQw?5Qi+CieG&FQ_cwVz(bo z5rX|68vJ(&&;D6#fBzu%k7fI%MCI!;v3~{IFC|)M|Mg-&?XRp9`!i^NWfpL;+YhG*#r|Hp|DPP5{m-97{!a(11{(io zQi+99qILFPC-!3vOkYRMqJ5EBz{PGqoFWAK>(0>aj}6cMEo}d}LF`|__DhM@*?+Cr zPy0f@68?v>{lLX;Kb#^I`xABhW5Tn4-C-L4=tP%5{69-27D|cM*`FcyV^dPe4zd4g zv;~y~T?K)+Vfj=U(4|JR;E{hyR*o&D)z|1#LWOYC1j8}zb(i`{-WMF{qfGvZ%9 zbE)P04`utwivro-jY=$(60Ng;q}We;K))0F-=TdSS-{0^Kb#^I`;GVq2S9}r|J}v* zlNSZDe+1hvC0b|yRboGF(EMKP-%9(4vVe=-emF%a_8aj}`|#|4p6w?u3S|FGwqHuL z&i*UKe%fQXTkQV@Z9!!L7rXs%icswD1+ByP_S2rr z8nHi`?FTM)`{5L!*l)x?CxmDJQMRAFD3JZ%u>De^b@sc&e%gcigV=u-`T~^&T?#eUjBxkv0zLtmh>fQ#LJI7KM-8~MMe z@a(^t?I$k^WPb|VFC|)M|KG&^LfHSK*gqb9fyx3dcKhKJq1bQa|02V)-^2Ek7X`9^ zGTSdDT4%pg?5E9?d&T~_=nGU9aIxDDrwGMb7 z+J3C5*1ZJ$vOIQN>szhOm##{oH0?&?eFgf$w`|rr0e`CLaDY!!8MWol12rr{5Nbc+ zvl;|61vSeq;_m>ZhFa~rfY@9;?}Qy$$N$zDU^y#&gUl6ly8efLJ%O)B(y}>Dhl#4w zuj5PyQ_>Bvy;@!WpRZ}B0}g_rcb_j)XNsC_NX_A*=4GU&XPB<$cetv(Ky#r*%@d)f zCZ0BDWsCT(BEA&jOG$j$<&45B&q4eM5x*Os)wzcFU8eXdK%=AZCfbE2p6wFxP7z-W z@x>(m4iSF^iO&%6c_jWbSS29uF~!fYh#$$~8Id3MGa}e^kXuADPZpW`pM}iPBJ*65 zIn$8&k|{IEBC~-C%f7h9?0ar!A!;a6`@i{u_TS;+s6xD!KoWSTNpF;|M|tetNKQd%)%}s3yn)Ur`!lPSWHqhumbK0gaP|MrxtUvJW$ zrs~&qkL2Tf#UtPAyQ5Ki`sxx^^W8;I(<5qLPHGM{)U>pxpW$k{np;hWx3s6hBHn0E z*&_Zr691Hlufb=v3+RZ$TiVm37V-C(;w|kdrypx?w5K=`f8bvb|E!3gL*jD{@s{?~ z*CPHTvpt>Bhh-Y=Y2#2vWC_VE6q)Cd%zlPUOMBW5m~=$eQekONXh+zRMX%9Pds?!C z+Y>I1TF&jM{cvtilWvywWO(N+X-s+pp~kfN?`R;~<~DKv>rk*sOM0COzSgv0zosqe zfYvUJIvckL>_Rg4&(5i1`z_nmS~$d%JC_0z>LRc$*cfRtFJ^!*djt~xo*J&Vkx%z!-_3=v=VphOISwGavLm!%+buhb=`>P$I_hJCDn9el3 zF@=#BOp1>Y#lOR6RRV(q2}|Rf3}3IEPo)3>9mAm>xPf8NT0>OrUASo(;$jNsutx&0 z^RDKS3sCU_s`$GhT=BZ6QSo@Gcmh@IG%B_<%X+|A8^aYNx}Y=Th=YqsBo0|~f8z3v zD#d`iQN>@wwP-CVs&*%;$Ek6A*1#}n8GLG<);RL;_;R)BUXrt(PSZpC$m8}=dl|Qn zzmJjj5mo!7coDWV_QXRn(0I~|(LPqBS=vX0?=IAahM|`##cLZyDD~lnE;t`hYa9_i zr%B=vO|LAj9}U($Zz_L;iOWW?YI188U&e`Z*FqP!b15B%$0x5qi@5ur!V5+Z0wOj3 zzdyhZKAG?qTwFVgE}nGk2Ly0SwRyvwvODM2N z-bz*6g`Rd1%*e^0CzYB*)bcB&y!#fLs_7)657q2%nVBMCX7+8&%#rJxxcpSiJf`6u z+asJ*GgFzfcH%UGfu;F}(F9gzUy8~=7*lg2%B$4I_h}fQ`xMSzLiZDK9~R*C4?O;u zbEV!gB<5t0ZSf}KTkb3+>}?Y@GWIGMFWYtTzJ3q>gIv0ZVIXUlBheB)cpu%*oOXl2b=0r98)M@(hLJio3xj!S>yk%#_(PHV3Q!YapaoH z?Ao6qNJmbp>Q9;s#o zRWs12CdNEEXBXVJ_BP0)!_;bceo4K_?u)hl)EhPW^)B30aCMY?tni)BrTLADGjM&q zS$eoxI#n-C-TJoZtk@3`OJcUEGfg5nlbI~*Zf9QYW^|m20Hn~S;8toukA4gV_2bd$ zvmB3pVQqgYJzpI`?nzvAEgy}9$)zfj2eQx59(d*z2JSrL zf$uI0?mn)D;jD*sp7jr*u==9U0qRNU3Ia~gD!Pc!;i;kM3cXR85R(5_sw*aqvN;!v z$a@Wur<)=xStKc|PVWnm?s?UGh4fW-Qzh6$L16sVvrT7Y0|H7r) zI|pnN?w)4|B#+F1y`75X=|@mJ|F5o^Wv|M^3$=$Me1DfG2~W=|M%CNtVR>>SKiNim zlH{P;n~WzrQ6%6)d!T#eMq{*fGHv9q)S~zQIBv~n z8Shi)HmEmCa9W7=I(eEg--)HcUOSH+2ePVFMkzBkHRR*>Zn!)ds(kPIlb6^ic;Ifo zp5l#Lu!~$4!mROz_I|h#Y?$TW-f)PtO}ynJm`(q)ypNBN+gXnTnEA&j@S#mk3^b}& z{ZI_!e}gZ9h8)aW@qQ(~*ZV$4>_NGIy4oNZNW87R--jc6q8kI68mzt(|1a0q_y2Nz zXa6tOmumG7{2B$jQX(~3IRc_VY3KV@@|~aMj`cv`YDe}+1aioXIq?UF>t6;|5$WgF zAFqTE%n=bv((g_nrpPVTj@g$3k8$V?zc-9u=zvF*l1H$o;2AzN*f>naeE-+*XI5t) zPSivl3Kc6y_K6Uuw2IkP%_b8dzlF0}P;n(yOwS=EQtJAyyf~`mXpDL2?I?f_6lZAM zf7&*lUB9UR$VXXzZkZ!{kQn2N#@`w_VhNbhH-vrogLhxO$$!p8Ms7T+Qx7Rl(^aUi zl4xz!Jg^zl2+~JuUzy;i-g>r-zNX4zsn?A99x?$!(T1sHhBx_3ssp>&asJZJsDpD< zm_2pU8(rA3O(u2kSW4N?(PeIB2;`ien7HB}*t4h^*rpbCyNOMz*TI^nkyp&|(`rIbjUPmygX zjVXzYrfFSNEuV?Q_jtWRo>}p${>*Yz2{VeVI^WYorTiJuj@jooxyUE_4uJ-cII5Uy z@3%?)-a&pSB*J$ZUiQx4*v8Fg)WSf+WVb8Y*TFQ;i${y00e(ZGqFv16y)mNjV(>VP z)yz3S{5nGXbs(Qgftcc9`=x-aRoNIjte zg$Tfhkx6n^^QSKORD*69`c|JaEE*X)AJ2#7QjJ_fKB?(=kU{>6-vhFo-w8u%lsB1Q z&99_P(#wD0bQQg4=uB5Qx6i4MMvl6N3?J{rL^&M{j&Qm1H=aU2??k5x(4bS{@(fsu z*Wnzh>n|sA7SnX{*KwIRcq}U0{CqD@P07xKnWxybfgEak9af zYE-8aOpS`1N+&GCN|^Ll?%ad;eLU!V-n*DQWuHnRaQ%7od&Ak?ETXv$aKe~Zg zf9plvK!fjWe7Tpt$Z*?$^Gv-_x5$M=E)lIO0Tpn-mKjgXsiOq99}3OH;Bpk8+(DuC zS8@p2?*-v}?@Tlfxy7?y`bZ4FeT~Vy)Z)m-iWttG(%YsuDjtAwA2kwvdK-1f33XpbYZX0ovK zJd)z_YKt^gs^crrVLgSd$Fqm2-%exCS(^*b;dGxj?lRP@ZtTgPLj#3)&SBt%nyRj1 z&-oJ$S4(I5xyJJkECGYa+^E`iTxAYyUQcnYN~Q0-EJpn+yox-_Lzjve?=1asT8kPw zEIONmW855{8cQOxyL;xzv?IO9Ga`254{g6vXmdqFhjq=N-@qxt4>{n^eAoCd25xrs z`$GET`My}{;!%}2TCwj@U{d7B&Y(w-X6);jPG>su$HbhAwU4Qe=``*aA;?QbC6!Pp zHHSJLDwpAyj&p|jCZzC97vNjjgW;R?5a8P`4evNUtN7EKz^8Sn4Y-MhR}6G(Ibo$~ z;h0XpwKg9LM?m@lN^-c`UYSUJ3dRonq?333odhUP7XfI@>Us2?u!vbbA|a&$&f}(` zjZm52L$WjXJ~9q0MOBS_8V z+$bY_Ga!d)c1)*%1Hi)3+71H(TE2_#0tD;bA-Fq+(al|sHbxx>etbZ#PyB_^ZcTP#KdR`n@f5wH{>i>O8r1YD#-b>?sP9@F>Sa z^>Cs{nGu=&r)B;`&rkF?Cc2%!#jMW#Oy9-5lCME`PDE0k4$x;WLt<_(}Uoh{wKlf=lD%(=qR2Fc>Nv0sm0&s z@820AEm@MWO|!%}5$As7iGfoGw7;kR5Ko{B}28PTe;frpYx_C{j?qKrn8 z{M`AD9GAK`fw8%G2CzvMY%YOOY6oFPp|p+-ZFhjh7vd(cd7!(2O>GW|<9u*(3hwft z@%QsMswor^L+}TFOCv^lA%t8+!^Pl(`Y=b^2My)=urv%X6bEtW;J`-?M6zi`6`Ldo zQd~ecir=4;t`>t%X)HbB+k!I1($z{C?rQm?bhY$R>uQU&uD06fYU!rd)zZxjC`>o0 zt4)h%q+%ZcQdbF5oq?Kqix9LTrFFGe;3kkthm+Oz;Bg5`BT95TUtnj-K^*-8hVRn*8bKYM!AK!6xZTqH6htL0IldjdeQ_tHjK1F5^ zq#xv?ZUg0}c2)aHHbnR+BA2VFU1L_)tFvTeT<*KVH%v`Fg-uIF?Ijb$w2NS-`hrZh zn${M-;|czr!%diWKYXNi7?s!gh$&b>ZbH3~j3h-oztBdKI9-RB)l(DHQcX23P2D2R zM5H9p-Vw(ty^;f!?h}=kLOpd^0F_Pn~VY&PPC0d=w8m)f$l}y5QNP|{CI{-*Rj8;BMqB0 z5Rs08()dv?xOmLW!EA|8LqftGEiHgYE6TyXKMn5x475}a!2NkA7WoWTn3A8RTZ`z{ zINU;bYwXxr0NbrI1T8-Rg7x!o)n+_L1D3N+ra4F<=hUx7M`L)#w4ID^1Jf@lk|yhu zu@l|(BogD+9~ig(Pz4am;}-q?Bd#8VrX={_THG)MpK1!Gp$xm{HT_cc@r%~ajrDRx zo94dl%$&V`KRA0C!qDRW2L9A=aA{jr{1rs%yYN02$H(taRcPY|%`ooT&REM-{&*6@LcY)#ffuoF$Je^u}#^mQ((BT2!Fj(3Z9J9aNB0 z0xs27qh=QY`Pp}8F2PadO3 zNTZ#L8I<0dM#eMAmQ{3c!8IU;NM48XYT3=Aj#1jSg5K!&O!3=UNHN4z!0$O8n&>9K z{3~X)^RJCH(J`yj|Jrysx_t%Q)9|+p@;5*EhfclC{KFS#>@{YdG8fhI4;Wq>%|(A< zuxNm$(WO{RMF6)E33@6*KcTr;@(_=I6ILE#rD%i@+Lnhv4uXG~v`Afi&R(9?UZVyejH9;_4%f2Y@Jh)v^k8AOOv5WrS~Cp=o!B?71?43}#5Y#pv#L9ZeWTLw z4K34f&rtRaZ!Cu9brdZ%$~3Ith|bJ3{4DX*eE3Q!AVs7{|A=??-R%DlG7YK0G7Zte zG7SlcY@8h#zRvdozH0=&JMme)O|Wu!uQjbd$WgsV5!UDX!7~kC z(+CkD({L{C1Y4`wE+iKM^4bRa%sugaO8f{4$ zP|cW71jsb-25)&N!SWDPMh>P)rr{z2U3S=TrlBA$f&kKI2lSJZnx#lD(dNJf{I%_j zL=1k*OHx6L%IJ+QfSTnnm2)EVIUF>V+xBA*TLlT5&vTCrBLfeQfmQhRSDa) zWXSGV^lY@*N=t@JISl|cPKFdhhd}YAEg!Oy&!AAP$%i}y5n<#*67_fz>esWo=Uk;0 zL^II0+zFt0;)34~00^pq2%vK4q4Xh9OMaX_ncMBZK!qMwmJthj>C^-`T@5fpIs~af z?!o_yXV$((!1n*NaT>%3uku8O;`DJ&4P3Hb4NsJDJ5#9>SkG0EQ?gu~@pkB}G8*eS z6hd@=9EB$@V1(X^i{gP-U(_BBDYT&2;9u2UO z{nX@Y$ho|b%6}xUkN6F~uJ-@wFTt`>hCHGn!vPxFi+MY;U|yM+w;GzN`-mPLSgrfi z@+{jXv3W5tPp4t5Ib<%t)0}77jm=}wvJg_LB{N@X$+LWZ1qREld-OrRQJ$rP=vaZL zOYt=Rks#zhkVovxO6AYUY$n%I4mSvpYmvbQ;{4@WWU!%|esV1|*i=WcKfDGIN@!6Q zeZV6CPo)x&Y-;1drfMRi^#ky%Jx1L(kG_6#Eqv&RJGl?Tghxt7(M5YDwM z)N?Hhja&;p*>Wu($+%(9wH(oJP_E^_k!;$h(75D)nD!<#QFpX!Vw%?Po-d}gBh${% zO{3gbOu;hvBPV>0?zMKppFi8RJ{xlFP<)qa+tbaG)*K;BS-+Y;E|^5 zh#V^knx+MJFbU(p5ifIVs-?oMAfH?dz7SLJwyAaSOv^Mv$C^Ws1QDlXXrYsY!s#ii zh|c8W9=hJow`GL0piT*GT7%vrV1sHKK<}*+Sns7Epmu{O2eGL%it9NHan&s;iQ~s@&OKRJlyWiYnishLTf7l@h3>W)QS~ARH#Dbb~5B?Aa&t(BGPRpdRE- zLdvB~hN!iDQKvcw?%gPtay8vLn{LJ8mYGZ8w{G?PdLsHm?e~P#HwbQn=T9#9w8i<8 zg%H|&{^Z-uhG1*{M0@`czyJJ*@sl-BxDW&KV)v+pn8VEnlgPq2^W^WmEX;N2WBI%Z z+9w|Oc`x^33Q8ulVYeAL9$Z~0TwM;J)Yb@OU3lcNyru8}2-J?J*Q49TJea~`xhjw+ z7r>vMLDR29;|g!vb1sw(+A#%M^tM<=4D1r4WnJ{YF$I4?XE=KyHVl#p8003;=LADp zqLK2Tc+62tFDw}kW)E|DkvQ{=S}e`_lT*bfqiQKsWr4hPJGmquDUnn>ug<(m-@dAE zQeh=B_{At*utnvaZ-?((NxqY|iF?iY98Y4L7bT{M^!YArPa+ghXLr-Q;7|rDDia=MRNm>SZ;|}B{wT#b zGZHBNyA8VEM7q!4$hzn8XqN&(dC*r@xS{VG@vLulqSP=7H?@WCEJk0_$b#R_clzv$v*x;O?GJq!?jvw(i8KwC|W+Lzzx=elD&azlTwQN8%diH&}( zJ5AR2!pJ94|4^?s>^Z{Id~=J)wHsV)R&p;wdn`Vy69sL>L8E0i3BSRp9`8&c3~hl@ zvY|?qr}n^OfP$_V=@-Op*7d{zws;M}n(8n5WcNT_)sE~qt`hH4Q2yiTH@;?FjT{@j zN`xL3>tuab;Isk>+N)jI<3u+ME#&7gct1K#UyR2ar|1SCthDNv+DJdzPe*|s_M9ot z4}zH?Xaa6kdQyAfB{D=B9ce9RYrble-Oo1+iX))o_Y`ZOAPK2_EHxpiOX(nrH-`gm`Gx~pGAV$LElJxd@)=0`QworO=}Ch7!; zIchC65H+Wa2eulQwr3Ek(&t#>O8cB>`P|p?IaT|N28F$8*$Cih{sT9D7dQ|fQMH}8 zKDw-LyX3$0M6CHlteR~+u@gc?kSmt!2Wk90e@3GDM54N7`!1~xZK;pyNYtL7zf?zG zM>aJs`Z&NbeJFnvI#8PFh{QhYHFU&)x`bCcsr{3q^yRg_5sJhr7M-xy?n&Ae+jxg{BUd!r@0_|=MlkAM4_o33 z?H!#}LuerO%uA&|?s)@vSkA?}HES~fqIz!=m@S`|fXhr&{(36m$cZVRH&VM+ThFsE zesxFPj8;suF6}<*b<|dx_hIf=S7RQR9Yeo~Hm@($mcO3!*Z;9iS~k>;PpzI=PRK>zR?L;y$2mMf;9iLk=+F_sNv+OWYwBl$&m94f2tiP9xe6 zQ#hatfzZ-#zo*888Sl@3aM1AUSOg7^Ge~jQ-vleJZrG_s3#)-U&H0h^IDB~Laf>s( z3aO;54uA1T!0+s2gFhRQj&6P|a8o}Fv|D~7tLUZsx~6W|5L5U>60SPhgvS)DAzv(? z7mX+J$zo?;cvDvxw)S-xre0V}-LC*to~re0`qu&4lj7ynS7C6}e11lPBl||v0;)&0 z7JBJjDHVCK-5A=EhLDSj>Q!0_>hyghC5e)uc;i}|hu6V;E7pX^XiVgI$Qg?~s;TAPPJ zC4*zhXrM~lCe`28SW!*2!H8dfw!oNWnqqboA0>-D9ZlErUFDL_U=&rfi7M*!h1TJU z9&T5vjw4O)v5&{-EKd)YvGzoJH@L)5hVpe`znA8#&JVr3wUTco|~VMLL=if7RZAyX0rA z!il89phhZOgTV^HCuif3U!|^tPGu2B^PZB0`Lq7JEn7 z&|i+hu}3tLfY;C1&>~iWy@m`uhVcegE%$X4)lyUG8^oYo&T@6fg-vQ`9DZju-mhr- z%XxkL`%8x5FO=`qew!FIQ;c2#Zz$5dp#oGO$f7-G^f8uF1u6gG&N}r5bk^MKdE;)w zXZ7;$dS{)7r?t*{>YQA!5bc z?GFAWLIsG44k(rpt)6@0Yn%;H=1X7>t#_t+`3}9-GuxoLGhToxYpl0~`5D9s?;pJ$ zFXUwbaLng&VBRSBIkqrUfGA*>LTgM^=$H(Lv|Ai7N7~THL(T#~D81pR&Ehsjw^D}y zl*;LssW!9T_t-A? zHdT#4kzyk>Z7KR6l1uMCc$2S$?6p7RySnZJ>I%_d8x{RTib6wry9SIJlGPkdY*g)B zF66AppV6aD&h3y~Blgld7Tz2eN2nO-K_dVTBRw1!?nG}3)T zQnbsRmK5tMPfJRGaEH2~Kqdnb+FOQ=(R`oKM7^ks-r|qTz83NLVS4U`4U`kauT0V_ z7MK!c-E3VjG2R!W`F8{N$@GrppG)A&H1DBZsK3aU>VZH8Gs*eRs_Z`enGP>L{0TH#dlNpZvy0ddFx#PKY^FkJCuY5RtBpOsL4z*FKxg1ohq>Wdn;#S2=$nuV z(ATFZ-*LI<$CGvBJ7|L}*5&Zh0P-C_{#C_`y;}NX?{8J?(?+{RJcFi1JyH8#QPP(F z(3P}hLheLxOfGLoYTOkAdQ*GDUs4)ccw!gjW_D@x7pPZp8zt;o0G$&E2UICYj+N}@^h2ajta~ekh8D_ z%uA%6EPp-yab%By48Gu9Mdx^^#N$|c0u|PD0Uex?zn*R%f2h5DX!EeOKpF~oyi`D& zv$$Oenr^7OoQ_D!ve(@x7ebbss?aydh1B$wAktbLZ8WmxLI|U#xsa;PsPr75O2)vI zcq)ZLG=MeAh0N!vxOF<2NctAj(Swb#iYf4u3z<=5bVfUDY+2wI-1Z} zaleJT3{&X)oAq4Cw?FZae+M+zcj|2-D~9jWhkQ#eE0t<}-=z5q! z-amMVXY>_3z2AEhPe&_!MkSI{=hdJJwL@zt#@+ppZm4h$sc?NG74+$SFgv0olWb?XG<8{twT^#ZG+X=o_MfY@SHkCop-u8nGvjwpa=%8 z^&&mFveA?N=k|A<+eAX+a1XOQGu+enQ|WU9Z`3`f`tzSTb$MiiHKetKggROJEL=aJ zjdn^JvvK;!v+*~7;O^o=C%TL8$m_guWARya`BCpKs4i`WP_oyU6xY7YE=pTA5d%AE zgyYGaJ{K=#49&T?q<6I9j~qal=XMtI3Nl{a%q>(GB=FgbSh%;k<|Wb&7OS$wUy##c zo-_EkHpf|j8fa=?I_*UMgw3kh0xmm<=i~2u)Ik0s8h-SDX!{oUyr=vBCrv}@mQW$K zj-bfYB~>A`>Ir>#kPx(FD5XW`GMOgCB_y7PJbgS^oZCOQSu^e7p=OUAdCC)>?SBjkKcoTw4GeMBFl1sgyQ&M^k{U98`D zTLS-{8=iA(N0FkrG4p2(khPOE^I(Zzbhk z^;?-F;e;N96E1p3%;~Qu!JM#}m*zC)WSG;sjAKr|aKd%(dgdhi{@{Sya6&r+33*;1 zVJo@mWsngPwxa?zgTjhaLBWiAQtEG4uwb50&;hgoT~H6QOlvo*w`yc!MBi1aZSpQr z1BHQ@h#C}ATtp2@^jD$0+QpD z!9hWHIo#Z8GF^+Ih5zaciNH+>>=zzDSuhmILKukDvYHH-iUBbe3?WcWyumVCt&F*j zb%-%B15V(0x9=G5Fxhw?#5;!UJZH(@+IaM$u03?ddW0s4z4M_EgG?B;y{a!z6jCmi zmrk?mC*5AZgxKEnx1{(@6vaP}tfvbmKxXs&+fMOkduJ`yz$Tp7-dq4nl%pFl1{}{U z&t3A&)oNgY#W=0Uq#z?30>&PE$1`t9G;CqOW78&K;7T$ehij(`p24%3;xgb1czj4> z<&nqtLkw(5a#y)V|8L_Tc6{0}xVi{}nLn|449|~i{3kgLg@ss93VXxT1!tU!fN$YQ zfo5SjO3JZI^Qf3eFlyUlA~8(BI^n=kI<4B_}I7&>)54 z1Pq~sl8Bb7n%EvAwi6$fmI{?OIR4)Q&?*{F0@yvCL}8tcPNE8BcN$oiwFJn;vHcZR z2UxEFhS>^CHGh3w6#C%_P^h$f>4HN*)SLxH4^ikBtRajcrb|~N!wQ~gV`4uBXLfGC zR~;m1T9!N1xJr*&f)|?`l;CY7_zRJ;U>Tmx+iwg*FewDBgStzK1t-*_q|WuMrjvT{ zZyZCJ4&P>JeX#zK1e}8{nsXkJ)~$3-x-&20hj8kXwFlJCGBR)sW%xSv^O=)TKkF6R zUq6eS`f2)Bsx5eJ^JK>m&YA>)j~03l`whVZMH???K|p?1+mIUE`MgAbi9^pH&qNN^ z(Qb3405#wYX?UrNJrQ2p5g%725wA)-f yL{aH-v5p3gf4x3tyXS20um=a!$ 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%0DTq^s1TlLlUji56D*)Zr;#0x| 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

    jv z+76+hGqBv1vAJNC@3UA=9dM}NUhSgcW92zl#!-kV8e>f3OGNFzS$Zyk3R2(u zY%d0@i3tuZgJHkW*Bix_73?94a#&xt+JEcv_BKe7Ct^*lYYncqs8#=v{1Xz27Znr$ z_cr9Xzt2Kdo!{@ywQkQT-k`cSp$NJR6y~l{2D-xcr9GJ8*8rF{FOcC(E{1h^o}XW7 z{KfK{eu4aMLN-}T)7i1NL#)8o22Tj_ud`}7=mH1Ns3!J1oD=-5SigEbwmnq(uhDh* z*cXTfR=cprMd#k^Z5HeB-qi()Fu`FZtzJNYcXd%n2n(D=r(ejQO=|qqw*!qN+xdI- zylM|XJAQ`{AXF3}VqWRH3(03Ky_VH| z0Ieaj9P+1G<~3++>|f8%-;LKVnE&DnD%uAk-};0@j9|u*$b31~W*}l3ggESuMH}v!9&G1cq3y zw@;w2*A|!Sz56Ui?HTY0y$heqFbcK!7A#cGK$SDF#uGAp73vctB+1v1V7)zGYl4eDL9)d#U;;bwKIaa#_-d9)oqvUID3b5z9U5oM zcGqB=jY(PpDQtiyCoE1=IC;C=)qvP9?3UrQWHij+~9=qN)C8>8z4V zu@TA1gdRphj;iG>uH*Y%S%s&2EkkyY3HRPobh4L2&E4X(ZVXeH1So87H9rzr=|f>5 zFFUc>rF@&UG!5^8bK(3Tljc$g_C`*_@(71B@t-G^wY0lTDP_kHUm{x1`N#Eqrk z%*Zr6@~6J=U2-A1=xK0{K^p$Pp_TKJ6X>ibz!`%H;Gf|z z`D-2O(uw;)nfO||TDlDLHokO3_6PF>FNIP>i7~SQk9==nMAt1BWuQ~?ajqUS$>2$; zC4sgw1K@VwLPSvVHGTwRV>Vjpv{tx`Qc|RjS&3OYZFL99cvtK+ zI;tx0Hl_p(elgS+r{if*s0415m195po~fTWJ`NU292Kb7{1`s=e2#9Po8Q4PB7yN6-9zo9aELM=?*n*;}XS3XA zvx@d&soR@t_4O(a1X#rI9b;t|C_A&=n=21lXiPwWshFyfoAK31OvMEi zso$&fzt2*(;4{7$iKDQ1^hCMgh9SqjF}w6_xqRrk$r<`FoRc){bTleDy$1d6$XKDi zCRg+CYf zAQk341^2+DXU9eLRu{P9B7vWavqBVYUDwBhwG*c)srW9f1xvP5{dA?pAB%U5`nz9& zH^}i^@t=xyeW+L?Neshekyf3TR)GG{ zp8SpC2;Y_R*h+qD4~IrkjuSsPGQM8KNAPg7?z|bjWG(JraAL~O=g4{j)wsZ<dyLjX?WdER~1QtQ|qoN!Y?-+L!zoi4WX4#s+x zu@oE$%3k$7h@by8vjFKVITkY6IdE&o&E_VoXSta7i+5ot;2D=or}u8?)_^2`Nn4F6 z^@@7*xCAZs2YTd06pQ0U5@JzhV8j~V!!og%6-Z3-%4PiR{fD0FahWig)OraIy;#EW zI)e;4&&@bmu-ccbC(Y$s{d)yO#^h@*i9w|YD9lx4bT3Cktdi_$r!)xf&<@`~G9M%b zwfH4=Aw^;&@8>vna83@21RK*I7Z^xmjNwzr`k5Z+kq_|>#~34=FW$%Ix$2hH& zV&kv~xpn9`4X$t?58SEU`y3^fD=4rm`53SGy0X6dArtcBijwV--#qlZ&6OS86C7N1 z>_tiI)%Y<3&XqKrZC2#BbY-LzG}CXHG<+-VNVa=;t$WZJNN>x1Ggus2M)#0~hv}PF z>WFDsV+O~xdO9c05x$aHAHdy4-wqZx*yNpau z@bd%my!8}!pjA1Ae3eRpdJpQKrVMQxpJ-JiCAUy3VmwR~T>JgarI;ygn{Ne37~d)+ z-zf6$!Sq{7Uc)PewJxtN!S(2eA0BxWq8+=QU;NS|c&1s98Ys+;OYlsV#~u7Dgm(r| zB?*zPGTuS8{0S1i2AH)N4^U0Aspzg!mmBs4LrCcrE_a?C)hS~H>CG}r8tNdfziS

    -PtX1VE0H%C?P;;U~n1yG9*zH9&UQLM3A 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

    ?yJ7DReq|& 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�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

    AJj6P}2i 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%0AuT zG0U#Jr4ujZyniFcm%_Ry18XbHO7$1H#meC-Pp(CH)CWjM;Br~clHJGtyA^pIK_$Jz z$_Gi=#9jDi%J96sh`52-pPnb*rd?mxH0e}uB)^LiOB36H<@Rqp@(YuiD7Qj+gbKCxhZ(}&?6Q(r*NBA;c zgFKVZ60-vb=0|@TZns;|6(pRL3{PHy_|{NzB37POJ^^TDI_v4X{6q30KOnu0N^?T9 zly<$HgsHDa_!4c8DcUpAi;BOdt=}Xj~-+G<^kKXOVYj9*JD*2Pt=+=x}&a*`KgD2wt)-)n*HIb zQK?8@itSpB$0kn zqB@Q=dG05nyB%LwQ_PA;9v0?+g?5RgOcS}7J`!$nSJJ~We|=(OO$^+B#90) zwv3SNHUU#_)sOB7X~F;3)wd@i)osnSlgL$1=$0p@5ndvKEa4c-(dukm8m0Aw46cDg z$fU1-(-T=Vz^ai1f`E}dOeSeQABRVi&G7WJJl(0j=hLk|XV9g+*t~NExWO|3Y)GPA zd6QTr=f10kTkeU=T`p51^QhpDO#FRv@DD+@+a_lsSe=_;$1N**X;#8s0qZ+V1};sn zR;A8*&?6y*dPsx!`f!vE>$7B51nQ@Cy5yK=HILUyk>JqB<>nNU0|Y6th_oQYNmnWS z3Z4XHAB5>T@mlW#ree0R8Or3_STsfYUtEMnB4@S`8Nb^2J9*;Fs_;;@!AI=H9);U+ zsZS$2K99FP&ISSeH4nzHy{%4nA#p+lV>mL-uYWcrc4-LB$+bas(Rxta;%V?tXXbW? zR#FsnwQD@GEEINbhl)BI5(o3!HV8$SJ~roIfNeIn4n;v%-`h7x$`tP8Z!y$qo9kt# zB{=ks%8gV6>xk%DOirJinXKtnQM)>GDZpyFAUv(wj^m>%)6} zL$0Z@)&AM#uc&*SwuSUGpYV(`79|p7%-RjS{&Ca=653Ft$=HozP+~evH&`jr1JTE6 zFY5<5P(F#GkrcGO-r?caHG&gfTXZnS;TmR0o)D7AbS5k6>*p7Zwbm%ZhY#!kp8t99 zMTUiKtzHosJ|y34&rhsNJ~`nWTkU?1&TPGj!nKNGCMlUE3qM zJxXnp&8pM)o(T&J%o&AM@0W0b`0J=XUG-GZ+f$PziO?=>yqd^_d};}fX^T``U71Un z7WRkL0ak>i_AwPr@Yx?l9!c_R1rZ0p+?6+$BKgcymJhpDJz$qk-j-(t^1-wu(b0_ zKA95E`isY z!ktrF_Vzk2(1Vm$&Q6n=cpwu}gXziK4`sPfiYw%<$)1?XnJ@O%Dab@>416j~38My& z3d^9FptGV*WP|R$aC=l-5&kM@;XoZmsK7ycddCl*HeC(k{jTJBW1rnJAmtV*uRn-C z=u)2bHI0TVIhJoZftaC8->Cx0rU4||B527EjmGh2hjk-C4QxmI<8Ay9kX;{yd9}9q zO7tZ9Y(%Ilb(u=1Yo;hwdc3bTC4QdkyAs1mr$&-XX??gFYY$*Fk;1Y zYMOVh=8A)>$oRim@a8z1naYFB)9yXv^}Z*&sFD}}Z*Mi`KE2<1%;r14ovhI_9LUSA z++pbE3Az5{0r>S(q(`EVS8g;X%L>H-8_XI;E+i?=k&2lwN+I0@d-A%}vFRQsB4@(r z(I+r|<=h|`Tx8K9oOc0rEF^CT34jjz2NVYIDRCHJcjP?s(3{>5+upkcbA;I?GDt6I zCxm5Oh5iTfq5ozgsJ8yst}K z$=k0g7r)}r{TjqIg1kI8K-EES`yoFt6gTn+1R*vCy6w@@?3%FC%A&TbQd)&)Mtebv zs@zwRy8Au>PX{%B{-VSp8%0B=n_y}{p$o{9X*0S!-c5A{TSH?mA2VPCU3#wn_q(-|DaRB>$+LLqWN2pe&9mseU; zQnN-?3N2Vr5kX91fV@@3`xwND*PpQ415x&Y*-xH^|cz9x2!pt9Bo=Rl3GYxA?NO`#uGa+v)s z@-K6-g^du00H*<~hk780S*ZT1s#OQ@Y4|e8%;Olrlu180j$+t$Z0jU2z)-O^+-a=ZQ+Jd@`y-aejY@WC z{IdH%v|X8oTMh2T%)fbP*3*lsl|qRk1;KS{9;HAUwHMf@4t9JpB$q{Z2Z8}(24r#i zm&3mO)<_S@6Z@UXAY<}wXme7m*6U98{@e?t#xnfNvYL(vxHP~f z-Red?y~$1QrEh9XiddcbqHLrcFICg4-O&iT-b$)cclY_WW=YbmC=Vj?Z~%#mLP&vB4rdFjjp zaxZhs`GrWX3G)<#?(92!UXLm2+wF=59PF%seDQ(P2wO=ow7gD}8W&n8?rFK%$1X72E_D8!NPHcG<#v)cnTfb)*X@>*) zrqISjC{|s6?R`h01Dnq?#?~P>EkInp_U35)>9;O1ui<<_=hBiVB=zSGmvOv8{~n}g zTy5O+A6P1gAbXo|cPxJ)z8!N^HFqJmTg|BQDp}ASS!w6)Sa)Q)OUW=PyZj83eMjIv zhV;>IIngR6OyT#M1ISx;^!5ayTT6o(C1Lpm(M%iGd{oLi)}>uRrF`+Bh@gOicPvpU zBT0#t#CodD&L)vc7keZV3l4sa{KUb8G|~{kDLecfgI9;^_)>HRz!Cy40&J3-d+up( zKlIu{@1QLM3FHmfpOaqVjpV42&Zd|Bt!j}vy?X|(UIN$ZwS&U*3wyOiVjndG}S@Tsfk%o zI2io)Lhh8EM-3&v36Lj(v$4}UA{>{vlfWifY-0NNb$Dq9o2%C)2~ zfznbQ)#x8FQ`PH(xHUz0PxwgQTXEK{ynVchA#*rz$%^g?$DS!gUHGqBgyMcE z(I3AZ+jNK@eb$H!nTuFP>Jx)Dgqmc!V6H>eV9v|^)v#I(fkSPykj&-R1o_xGXES^= z4Oki+0ziD`Xkrnj03QmUH#=vI{+t%`p7SEPY{1gtcEn&-GM=?Gp3(Dn4*$tAm2{Ji$)GOkQw` zoF%HAu!K*2ThP$y(Vdbw+hp(dO-8yQs$&Oh;rsZLqIl7<#=oi{)dIHl4|+K{!@Y6V zl=_laPtTZrd|^@{5oZlveAK4Jr!l4(n@uN0dSV(;$e9hMr5s`w49iGf&xou0_XzIY z_o8ebt2}>(=gtVdgC{=0DvFNe_w}ig070d` zQ0|l*-w=Jqx-q;bx1n=AB`9uaF!CJGvx^J;RU3P^QFAfu{)5q(pto`kXSW|KAYWtQ zs56Vmtp(YM`D!8PGy#pZDIksJ!joF%Z;~AN5kPM#k19s-74l*|>UGl<8GV6$eJj%Nf+(S7}2 zM_lPdII+T_wUqA?-ADGyg#bMU@t-Qq9uYHyBPrt29Yk``bDiMuIPp`)k4AUiJ{;m8 z-1S*RuIibEYWgqR00r64FgYw}5vCHsrF76VNtOPKR>foRy&6Pp0SZK#cij8dml*OR z46JH*;D^nn)7$70*K&X3&W%p@CJo0Z`=9|6wkXHo|5QVA(`X?mrriFIb^y!tf9Wl- z1Bfsi#iiW>IeZkTrL=Qt{s#BbHGV}`!q4x*S{q>ihtxs5XSU=*_Bp1@*aHi(%uPOISvS5o0aoChfe`=~v zjg|`8s*tv3urdqn+5OwLcze_QQZcmBi(X-53)T9$&qyGSBE5DCByBjVzP#7kkjQ~% zEnbh)2E#v9K2VomotxWy@(x>!(kjJ;KAXcwQm>T<87OGoz3VY}R3!9*N++Tx^PTud zet4XbHY_>ELm4@ECTnr@)NiWp4g)q)<$A=73^8=e&}hS7C}fPG7E-%64c*d!xHt_F1y>D|WqTJ7ru8*q^JhwbAS6np9RIbq--!Kc zlc3ZQhBqWk;{zcShIPCDeog!|9~-&^XCkq|5RXPGeCe!ej1Z=?Hc-%@b*I4mt1>?0 zJeQGg2EGaYDfC{D&QW7GsJbQYiFVv6{UY8zDqwQ)HrX!Iek>pOvfCIw0?z19dDR$ZlfQdm_W zrw*j}sq70qByXke5nXzZX?)ED~3Bl~}+Qv{QRY)MoTUE~MNe2^wRHkdT-=kLq<3{B_Q7!%%PTRa>B>hcRK?gWRbVws zqZUVb4d6}r{gg0boT(&X)U@cYXkA0MR-uj!Y(NF_Czxm$a}<8J5)VmvbVl97+XW0e zz(SZBm6p6Ad9ynkiwZ6vD@L<(rB+QPM_p#*cZ4}U()%8cOtEWp5SNI1$ zs`B&>tBDrJTCdqT0feLci112ec8EW7a!OCvWh(a~@p^1xrFRvR6QtGnaO>H%)hM#N z*XP|@H!=$x42Fy7F{;}>7sP1w(E{IDRD=AI6@Hq{5BtFCD+)VD8@T33~`)6$XAa^=|<3Ch}J6@TrIA6ctTIhHuP ze~qdMqK?UGzPa;cRqs?b*99HY>U53Q6U3>}XrOaRZ3q|OVJg$+MgTS1gBSs>Xr%l- zYH6S?(8;8^p#p=e>&N*o3pS)nl*0$Fn4b?{nI?0Yg~p4uap0|gMk`uky;@1+N6omy zGab;<{rdTn#we~hESY(aG$|uuNQ3oZA&zsum&uG?R;MrS6^Y?@S4GIBp(!YDMc}>= z%+)J)+E!fIil`mg=@cR^6?8nZd~yz3m)~X#sc?2({Zss3BCWW!wXV|M`g8wntDU|~ zZ-Hmk>(@(HYDu!#4*G$pf&NCqL2#Vg!v#oIkqIb$`*L#hHRq@fRA1dhyuY7cq zc3(o87`ohPJMU$4mY~O~DUuHu+>YK=n{{&5!Hh`Vz&!I_d!f}I~+HC?Xw9;nK+ByMj%I@=|Rw#0h`&*Mx z*z9?=2(#fa)=a0tG&F@7td`|p%Oy|p;r1c_IaiR9j})HrC*M=Zzy_{ldd|h^ScB1Q zC8d(k-h$4YoyWJ6Zh2X5%qO0^F_LiP;h-s=s)H~Kw?yWJH+32qzxN5Pj%6%A^-a-$ zm(}4l6TD^{&EO!+X~@6eyEh7Fo9({uD1qEl&gG^igM8<73}c#(xYFPRHb^4e6UvXX zx*k6YT*&Cwj(@|4e3B%syp6Zxp1WfE{YJXZ%Xj3c>r39Q?y!v0H@4n(dFYtL3;Rc5 zYXnS`vI&+S_ccEfizM86-pAZkq0MQJRWgbe@!wDw4V4wbx=6?bvRf(075{{ReKx9L z_S<_zFpeUY!=9z&y+cvW5$3h(YddbD2(2rn@YKkh#+IF%f2lfZ=Q&#*Wc+&f&2X~Mt6Btrw zG)aTR;MJe@TXlGkU0eD$M z$M7TIx)~1RAc)9Pv9E9X<3$!EoM1kJgu#_va~D&U19Np51C>cT@Tmez3jjtZa9Q|L-=w2&cnq*zPw{k5AUr4YNIC^Ip&hlsSc9ZRHvkzlzVgqRP zJJ$>&RiHK}&PjQLc=1(is$ea74bsKO)&1KT11&Tw2d9mXvx?)5d)&QgH9|8&YGg$YG!EZkX9syCPzSHP5?i33}u^ikYu&(*TyHQr(uCQ*BW z1QIaBOhOa_#uK3;&1scjj?1ZcJvsu4|YR06#@@NV&JRek~Z8*h^t%ecA zx3Et0>cp3Pmni{w9QwI_#p}NLUwFhK$Rq_#q7~E}Mk?%%{ftE?@J<=t`xW6E9T`*q zwDi_yNZEAwW697OvK3IrHPT6}M%Kx-rm1=pgA07eLO5C?X#4=sBnRo?FUZeh50xK8 z#v8EFB9BCl>>2kseY&xKcwhQ6o8MRg8KM2$lnF|0UpcdU#3r~>?p!rbYYLMa^<57T zJ!y|-pR6xY^mI&YAk~3qR7fsO%hc2%&@EgD%EDAiNvKc=QlzZg@yZ$sNhXuWV*+bZ zL7d%W%UF_^qLC$cyGD4~NN_1wKc_n(e9>@g*3{0R=(X#Q!ofHL!7&(-Yx5=nzlq~i z4ekc=N?_DTaJhWxclL;EcrJistl?TW)EvP+)#1;ZMld1d<%2%#42axyI z>6G1k@LZ#1e^`7*O>7G`^+?f)k35qd^ci1JcvIf$$fs$9~`WU22_V>EitdAv7K1+s{Dcelw z+@xPfABk}0qFQQ9Q?@IMvN@eg$!qMVG1?%!)@FAh9gq=rhU~S?N@Eakb0}kSXq&<) zA$;y6O=#Gkq0{Sfz&qWI+Z;$PVN%#+8dTTew5!C%#H^L?07h&Is_oJ?6_7`FLxw;p zVG!CsH0UL-RPxp({f*iApEZb!MtrYE2dB;sbIUP$mw`&p!hmZDrFz3yWHV@(sx+Ow zrt_QfYE;<8Gn@WmYF;}Nw*(AEZwTYm1S3iF8=%{)2@U{cXrfh10pxc*gJ|o_()g14fB;G zjh3o;rJHU^uAr7#Q^LIYx9PvH2b0o!TW#FIIz2KXaQ`e>J9a(_oS5qky32YQOP`MC z81FW0DG=TqA$Quuf^wGVe%dy8rEt<0whLCboH3lu@R0sh~-lNYdnzoU2A4$7>Vw ze4%uVQA~Y@`3kj8|GUZ=sgR9V6t=Qnti<>jg5(w;R7b_kqe+8*GLH0H0ztMs^hR^( z^Mw!(P~WdB+*L3JFLrnqSEeNyLAey!Tjf0xp-7Dfd|ehR7&Z87?kAT~x?5fwv4wl; z9&D#R<6ijGl3}z`BfAyhuQbyE@uPK-h?Ek%`X%`@Qozk?e^u;%=i36P;90h5fOUJc zy>z{g`Q8#<9PU?yOU787hWDv{PiYS}rH`{<^q;_XWDbte=mBEt+e zXP`mY(8gzy3nr;WLSy&`&+!w9$0VK&O^!^2suz%7JtEaAq}7SZqDdDwy^iPg;op*i zlG>&o3O+bHNh#&76OH{gQJG4^^07n=hOAXszoe`HJH9us`k<=zs|f5BY3M3_dph1v2YQdhe+<%1!zZ^Tud@`BJmD+gQ&6 z3s5_E4B3_+JRwLf>J=E^?yy(0|2cs2;LRk-x#at!Mq0@>3vAm)UZk$7AOET-8N+qu z%7&{ArvejafBcNaaj6o${F2MyzR#NP%Y(JS__?4xS5VbK4gUO6NB+-MA>+XA=SbpO zRLh^k4^H%DfYG=tQf#@)a4MEOCaEORyec*{;Em-fJSf{B@dwrR{z;9ax&1)#AA&0V zvEb*fATTc$y-67*%haV8PCXocPlLqj0g^eH-}xWt*J>o&EK z;Bg$1AJw}iTYH}3%z&n0JMHz3dVU-qxSu2Wn0c-pOf!8Cc zX!B2L+TTR_TM~a}_uH9qPkAbD8;+i2z<`8t67>+0zT|2w7d}a#2Vzi zcvrA@Jz8rRw1B^KWIa$F#+;_1*|kb^dXImT6pIAqZ3L_p;n+AC7t$7M z96$;8edm;pe`B_;rj+n3DvmfX!ER3VcZ9xB808PvWpauopVmf^Y{2k;{|kdU=8&(N z11~gSlyiFWIEr6+Ka3OuM}Db+mU~9E8f`Z28;CY|4^{LM+T zr>ZT8hjpiCY%#ZPpRv%z?;1xC%d!Tz;S6;%w0^F!S50xn89)64?R$&dz)l&wF;6rD z-L)WNjHgm;rjz})(Bmw~i$N1#vjH{X_(DFUCEZpry+ytke$mAf?*NaH_!2rTrq1|ObrAJ4iBj)vVV#HMS?Bxx*}ov0OonD zDp&P3ju(i6Bv!*d5iuQ7x%lz#6&{92o)s6=;1blKD!4K6Qv+i7aR`*rKia4b_L-fH zC)^gNN{}4IsP{2NIUKc}_2{r*wXMB0`jW|yqP_UkoD}*b@YB$#Blj@%TvnTm;*+6V zVIIYEZ#_sVZQa5R>JlW&r2iMW9zi^2P@XB?>d$mKJpz(?N)MT{DLq`Vr&-UusR)wa zrQFP;W-0mdLlk@hNbpy+Kzuia(_ltu&1S;^;3qm5;%n^~8z}=JW7s&Chk{6{y-UZ3 zrkS#Yrbx`Y(IhuJh7u8PulVVVEVR)>X|%753A>|2;IE9-U=SniCr!99I(1enRM)=U z{7~KV%P`onK^7kaB_|#X%N>R6r`vU|wcw8&tRNx92v>DXvcon;9o!N4S2>v)XeMPt z__M8noY}@}AJl+-Tf>SEgc^T1^bwdEbAV_SwbL9>d}oN}-v>&{r68fsU+~x?@ty+* z)^QHIA4Www%@yKsE0I7lQyuWqGMljq7zqECx2nWfJcfGMGAEkEx38S-DwqvpF|1y* zpQ9i?T;Gh2Gu!CRW`beyfHwVdEr6L7PI6Fgn>+Ei*TG$TI|n%-^=>)jj2$0CO+q2< zr+}uRH*2pN(3Vy=zh%1MkMeD;?$qJern z{^Dv0egZNeUS^ZCBz?)d4aRDo%<|0CQAz6)b1@hoFC={ zedz{`awU^QLcHG^iyJxxemU8}ZU^_;X2<0#?yJWNffOFPfOPRN^?2th-HV-DAbQy~ z1k_e%1!VBJZVn;%wu_4B)#}-w>@D#Q2Wp4RI|Y@5P2)^Jr#Mrm5?^6^rwt4Hit)5%G0ayZhoeWEa9t|F#?aAMMh;>n7OCh#tmffEa6qtMX_EyTG zh`ja<7l^km{`qsH|MUjx3^P6G#I=F#LyJiLUU^va*$++YoeyG47L;>ptlN8%#sd$Y zpZATzMXBM}{2pd#DDg<6|Iq04eBd~RIfTO0YZ-=`D3PETCUdcIW?*i4?=r@akmW{B zX8ZVN9@JuhqfRGt1t3avY?KoxspMyS&>#-nYqBE}Ij02*>+zEr32t^`Pf0-vfyP zOsuatoQPuMuB!xO6ft~++!%Q2q}ad&W07YcsiNFbuKb>=n~*`iD#3c3RrKQ0**bTh z{839U=p5*CKqoM9r~H<+`>by#zzp|JHA?NQ!m)<<(_}NDAWikZe=jO-I-H%L=i zo5e5DPYVia%gim%C&M;q`@+0vdV&eiS}l=Y08F$b8~)rMfe+Gy%nZ73X2E_^HZ?|d z6qkXNX~L;(Rj9Gt{IW8qfoDRKr5zX)r|lFH>_M|`Zu8@6{2nx@PV2`L9rRu5UG z@0DcdC#yOQ2Q!PT{oc7dUK zpB7H{HXQ8<_0K*!7LlYtJRjETYO4I`-~5$~6>p@?6K)%sqtLD|G!-OBd2m^4X5L%6 z^WC;;vb^R}9X;I$hUcM+c7|mK>MGkXN%|Vx=M-00*%ye#_kF*|A8hIF+0Cp+Yd7qS z<@F>P!h5wDHDZOH5>>V0K}F5 zd{nfEfW1uaV~Px(n)fn)+sj8JYZ%mbvzsAs)2f2$At+H(nSa^h|+f?Lh6NO5=lAd7MQ<)H@%{e9=?xjk^FnM4m> zfAcnuVGfgWX})`aBe-{bD^UL@%LOF31j?>B z)Gj5S3d=j4!)uj8-D52)vjEC58W?&(T(~oF*2qHiE|5o#(0~bCCFvT=n4fb>D}iI! zOQA(d9^o-uS})tMoc>i^9x2TAj|LlNbo8XS4xcz{0wj!tSfn9qQ?PQ}f$aEOF05*Z ztC=-sZ~*(}VO1pHJ<);ED|bTjL{uvu&7eU^8jF8l5bUt&_%Q*x#nsSCmkv)m36HmHGbojQ@(7+WUN_Jbc$=CRlbw;q|5|S$cW#W2?CS7&bqzH=kyxRMb2^{1;K@QROM_IoD`P-m@Pid~AJ-{vJoAxH3>mE8XQQ8LP(C<{Z$Yd_qZozL)ZcI zwYcHHMBG4Ui|8b<%M4E)?o)aQiE`t_A6%f1sPa0CugjJ5i;Gsc-l55H9x^@qfS|5j zqk;SQEN1ey=xS+@l<2QfZ5cX%QEsfhfq;-9hJQ=a<2*)h-<|z@a_CMda>`|BjPLYA zw|$GqGR_^*=bMm|H|Xo~FCzJv)0UUyyD0F{8WI$IKC%LY-@iwT&R9H%PUVGG%K619y+Mt%#@DG`Oz5D8{DqdGL(SR_}ktq0(y4)ZfI(rNJx;D2Mwca|qIK5WmR z9S(enAKkmwG1&D{rgjV?8X2!)-AZ1n&2n;5y?)KB&^9)8%G}rsH+<8*c>a^k7s3`f z!s6!K+D&@7W%xo)7wgnc;0j0~yQ<8Q6f$EOBY=Wh6q-kSSl41WJnhij0i%dYpC2!w zKJT}pO^)Oyu`{mc_&4H|^fC)dK-%!@pdXafgZq{J-rZ&YJ>TbR|cPx4qf@&Jzb=bW*=& z5?}WgakiV}7$Ro`0^=EPJ)hr0-!IFB=FrC*?=r-AaKR_r&A07;x11Z6;cx{h!dx%h z9){S<8OrZJESfm4!Zr$s&*~hfz5NizmScpfGO2et@Cw<6g+F$;j(2V;DpVviKQ(%T zLW72J$T7zWYLF1eecKkeQTvZ~RQ=utuk61wYYVrMg-1#!LOg!?KW@msOxz-vg#0nUMVjZX!v2QW~>G<{S>qOw=m!C{0^2wjj5g>&D zLL+XD(HCE)Ry=4cH7XvaE|jWXSGCf=^ifX`9HME>Ki3EUO_LuG3 zIUSh@#W%1a2E>f#mNn*59H_Jg46?|DQv-eIu-o5F*sZTilV-I|E5c1Mnaz)8j3OeL#uNvI;+Akx`G7Z+Nk=a>!FAcre^3Ed@G|+ew&$ zh`Z7mY7AWoxXXg~h75n6OJs16Er>bydOTz@i~is%(ZgL94n5M2HO_b=PGZhSJ%^yU z{<*L#ez_2y;;!gMGEFPa1IJFEMbCG@yBo^1>A^sm4)U}UCb1rU1i6b@{Fz__MJvWc zm)K=|7DDIVsY4mQ+9efH3?#Ie0RC*+D(w0iwvH;PCM@~+6ozgdk z2QF@&8fxGQUM)U098{yv={`u4bd9-mf3rM^ z1*=0k*#3!cDmqk3Cc?*F-Do%}EV9`-gg`kr(-9xd3Ua1iaT(0!=QYy7LR?soxt4Cu zfxX8G*x=vg1glUGj|^C{*KZf3*m$jxZG4F?PVQFq3asEAl5>kH7662&ej=Q#Qgk8C z@9It}?s

    ZBB$?zB?$Ic)anE1oSoth&`;+axFmRh@)N{sy#={)gdGq8>~#ootT*m zT)1^^oGnPGu;LsUI?!R6V=#GxZDq(i+K+E;1ycr@%BM5YWI-H;gh0M(bapa8iv#2M z>l)Rxw_PO)A`vpQ1#X@}0xT7m$?7i*W41^CcHY__D0hZYPzx)N&$_sSGCMHaH?>Yn zjl2<1buILX%$v~(-Me%>v{0klipgtqWhWUNwT!P$Htce(5SC@f6Ce!K_#sgQFq@Zq z>bIFKZOuFT=5)6IBPo z&!gLvQcxU=pdQnGi-w{Lqjbt1nGUH7*SW%C=PVRX2_-q7mp*tMxTlFsuL=|W9{Tqi z{X`*LQl45S8w6=7OSWa(xiprJ?TVdQ12QhiHS=RNKu@Ko+N(G$0NTH!?P_*#yZa$~3cQK2S*-j*? zUh-_fMQr!qbn-|sfLsC?bRh{ zwwuBpL))mOwaASgI+!{XyBj#J63&$FHIUlOhHMvqI?Cz>Mt)^F#@__ZLx7{@nnoKX z?G=sen`BptLI{Veio0LP{tH{WrS1(pnwe72 zLe3VU=0Yv7>Hc+>uC`oMp#V~_a_Y3BF@0}PyfT};i+C`J<(De4%9q?O#S(w{^LY?BJXX6}ecW;qXPbT)=GavR(aRbqXppGL3LgSu* z<+s#O93AWUg$+fYnVX)+D4C;s@RS~ic!^qxtoN*{8t z4{Iv>56|22E3Cx8gstxf*RZ!qGj~ELj4W{@1$=F!Mm5R zhsUIPB-(cj_A zO1fwBOD6F5n^Fq$R7;VSmtx?SwyZYti*32u%@gV+?Fz^8Pv^VKf$Iq!`o%3OqvZ920iTY3g=< zAs4C5=O50@Cl)`6ifaMb5^GP#pM>7lykSlh^Wqm+`b_R22xLJuACeiy3$*Hk6`zN4 z9rntQbh77a_w(6`nfF%_q)-_c9)3F7=;q7 zx4jWU{c>dalg3Zp$kNktjAZac-}TFBd*PJ7^r8%@J>rxo@%SZE8VlAJd2D|}3SG;| zmWBl9n+06l;lF^`v{&oC?%J(5*Q4eS-_scZZ(6VFW>s!zTjcoc;6D^f#PA1r@Hl4@eWxGh;b{{fT8+13U74D zzIq?+$ibZU$i)(O2OGyy3d-x?ibdHPl=XL<|hg;;e=~_JnUDimH(F6)1)47by9%)kh+GEtm zYoAENX9}@dJ{ulnWsG=f7dW_Vy)C#?iXvZaBj(m-aBfowX<;0y0|}U}W)0eL$*eD$ z#A~Rt0ea_>Fu)*$J65%CeE@R>0*4CpzoD{0X)6C%1_)yd6gI0QG-E@6hneD0S5duF z0y;jNM0U+v$6beye~>`ylD})hR!()Doaeg`fnn;573z^+bON}hVoN#a#;QS_rx5Q~ zt%GV?L=5z%ZtHha3}rK8h->MeG0S6LI3LCj3n$UNB7_VjLBc}m3Gq|WXI-r!zz7YJ zV5Nagaz^X~^^0*dydhJ))3sF2OM@_q|nW*YowmN|E_$Yy1c$ zG`;Iw8vt=q4c84s-OxZsxcy=QctQA%bo=_o-wyuUs3#9F_XXeI>d8*J{$EuFeV6(r zo`Y}25;TmP(*r{IciZhHG3FbK?Zutr_CX}STZ(60YUXYau$k)6SI=%mx7g!Ij z+^S1k59B>$0lv9m(LqBpENIjw;Z=VZfC-Ltb{}6d?ZUmO&q@FmVQ93UI_3w4EnwCO zU?)CT4xz;mjV@hMI-m)VJ6yDE(nxfj-oVYUwkCWt;dYsvl;vnW*S+4VZ`o+K@f3y? zo@wyJoL8maBG$%}z8Bio%(?XhrD1G_B%w`djXX6WA;!2s0f41!93BE>>5Q#K!n1-a z1G@h^xR{vlN5&wc`ihh+n8rGdeo7K8ypbTPAM{_b1>M6`y|-_C$gA^fIA(9_{bL0y z`?Rk`TUW(*PA!qR?@89)=~w0ULiM}JegGe5V*lT8CB1~;h}?gdgvbpb3uV;nA2~9%vw=^Jh52k0E19S zK}RzFYITaPwz&w)58+YIN{u+rxYoI0X<$`KGz|ThYPfi38so>r?7{s&*vx3#7JcNO z-l`Vjquz;M>At9xm87Qegew+%T5^5deWMr1tr^=&fEkaMf)iUdlaTzO zCMD8DE?sbNP0|o;4fI6}*AQz<*?GVgvLX;54?*6KWyNO6&K+PUeto>ssOJkK|Ka1z zzqS7}0Bir0Gq1@qfeFQs*l2hjHtVp&s;U(&=+oYmQGIK!BQCvAMbw#7>W(qmKY)v4 zk@~-h*)5?;q0l6uUPQTPHkr7wA8Jj+L}_{Kl{aDNS4tG$kwmPmb0F4VkpVcUSuJw` zk29vAIwhS~?3~rs$$Vbk1`vSnu~_*s!2%jw=9X_qDP=WG)4+FXGoBuw8?prv?*f3} z`HRrzW1fH$#vw2NnqB9BI)zVlwSlI+Yd(c>-g^C)f!{&!hWZzH5(q9ci`oprx#*kO z1(*!Y)zzx^iGxA8TmClre)88`uu})hk~QF=bP?NSos#P66UdBW0`mLhNkZb;^0)Ye zR49_{dWHK?{|V!%G1={`Ig>XCf~qDne~xKnT%EgnV6ENU~mt6jSoBI9Nx%`JAz z$S?H4Iv*jBcCIQheo%DKMRUEm>pvmFMuJOxAnX%aH^C*;nIM9YXO>>%l=jrTn<{W=ggfXDIA%c^l zQ2V_A&}8Iq=6PB9#^AkS`W0bHP#UBD?{T=ZR#Y0o@NMEfEx%JogE9ZxA%>kMX-Ut1 z=8)ze6;f#zdSBZre*{=j1C1)S(G^R1?&ehFs_f1L@T_k*@Oth(NrdsB6FWXEB8dj>C-TuW=R25$Rom{QUd!;V-)VG zUGr&p^zcsyU(7m_qm75|bkSbpPf-R@=6Wsx@q(1=v#w^PsK7h{Q9BL5M?;cc-Q}=r zl${9Pf3vhP$Np3Y17e{4nWQ$M61+7UTDW8oeD8#8L}OPUzcfp2p>3rp?N1z{+zFk! ze}?1$M?kp0jcov|*Jk0RqH~8C24L`yqMe2hK#QDN#6t-8GcgUzDDJq)5t$wK3XXIr ze$D)m?Q-()g<5l?)SNL-A%#38B^kcuABc9m=#k)<+}NVSTv-0EAaQ#6TXXGFNpgWj zvp(GCfmMCwF6Hv{zg&CF*oO`ZGL6uH((&`B>YD_|?wfIy3wl=oe_JjyCXsEu(~h*k z`vD~DMcEQ8yERqfikePo1Z1B26ruIG8Hc=1N4HEf+6}lS5kx9TRW+?dukXXr=-AT z+6Z3;>tm`Sjm3r56&q|>7Z;1zX0p)mEfHFjL0Olsi1w^3DSYFGb4Xm6)>jR+^FlQI zkZPFuq-~9g%4O46^2lQMQEAGn{=%#y!*tMryx|fm8YO3s#v9ylioSI&StkU(<7q2JzeT13ySB)f#`GG&bqJI<&c4UBQf8S1Tu=Q~H+wiM zQ?*!Sp>FqX>7t34#?eTR?O{4RcbvRBGMhj;Wh;@_;qc)FX5xAkhe~7+)I}ENyvw(E znvdP>2gIsG9?wsfTcg;~-GP}o2>qTjK1Tv*d5+$_lx&63MTOc*Fj~vFi*xEku7VEX zhu`BhielrRTcJHqV$)PYz7(4vM9ifwyuG~q4t>6R!vtb8U>_`nrB?N0^C3_bP^cU| zP@%gJtJvY-Q6e10VQH3}65ePJk%6Q}av$=MC137Dw=P$4VqQPfM?7e~^CHP&ZB17A zjmt}>AYtDJU3*nc&I zFnDIB3#CnrhSPlaa+R>E*Dd{f?+pKWd@Kl#mFJ0OG$leVCV>QSe6WzBZE@ocmAC2< z`8Bm69VTfh*KgB6wg>~5I8vb!e~9iT09z50E_7fP;vn~b_g_KP_6{`>#QE?ik(QH5 zrfA7v9r9d0?Q&WHCm~L#{Oj}1x17MxQIN>) zZ7Ep(=!SF+0YQj?vNK;q8yAC<2LVj2F@fVD&ztCnImrd$-;9rpF3D0sKjuButuU!# zlyX||fXPF#>tbl>20P_cIZv_nEF`UU9sbCLhOfuQm0zj>k1x*1!PF{gbR{yrOT=iP zq||sc0Jz&c$}Z)`k9?Wa1ng_E9qP};D~~S7Td>lTNA!PDJ$BHTy$HC$QA9xUb!F5X zOJs1;b#pW82Wh>ABKp0)$W}%xW5le|6URaV)~|X(+80K3T*#m)D$eA4o7OM=Mf{Z~mAnV-AGE@WmF<%!y)r zm@Th}5cSXIElk?XD=PW$dG`LE4}m^Q{(rfY^ROXZ`sE=VX$y6{`<+L3y|4g__xjoo zgVI+|LsFb1jQ6W;37AE7A4{{q_>YutzjI6zPDMTNt~AAdthe-0(fHM;4dq(7&epgN zI^3|5w4q}t-Lq+X6?I}gLB&qT#Nx-qU%dC9GQQfK`e5oRT7!qnMRcw87x8*;7O?ae zgRbUu?9TV&)BF8Phv2Lhwf&>>fyNnNggvkz7JOXp5(@#vV=LXXXu2N7Xl63a1FT!i z3r_cWVk!_^=xVTOy%(m_{T+E}lydBg2P|kZpxIK2*1uS$#z6o%0uCe)>dj3Q4Y47? z?z-H#iUo8IU|QYGiMt`MGZXQlt2*H7CEw3PaXW6Itt`Blt8sneer0aSZ+c9N2$|H| zNj0Fr)dj4>Sn-eF%R+_L?T4_lwm;Bh@P_sr2O{MWDE}XF*3yiwfBplvf!n+H@zd{g z`#fFi%@%ge+YF3=YE~*_IZxJP05nuYw*qhaCBIH*?Pw(-A%~93xuWE*1A3~7I`wwL(+u1wij=YWiVaV&Dvn=tpxu@3t3Fx)cj9Hi7C3CL$or7#bcX>X0_pAtRrek|ChB5#tooWbgH%R69%_ zK-apWyl;b<0U1mDzmJnLtwun;00rL z$)&Q=_IO+(V!@jfZf}ViVBTCK0_GpSbMu(Kd(kHtN2ptx^vV{Ysu+a|8h*oo1t*p< zgKQLv$?-WjBOayTG_JJwvS*2M&e%nVtVd_m4G@}lbSnuB;-$}1&w>^a(J;o@gS2%Ny-TijNb|AQt}|6(?}9au~)AtTudCTN56feZ+cQkTyimFX13>At} z`a44%DZrMY#m;BE$i{q%E?nd>>)ufuZu>;yle$*nC@vef__?_%ik63>WzHYVyGCiw z#p5tPuIITm$oMO`a{ngoyA~qNLj4yYUS^=uvG{PA6CN^2AbBa;ToUEJ!%3x-?s{e# zf{9=O$7pF5n2&gN!}mot%t-tx2-*DI3fD>SYBZek3pX;dS0L_C=0eVM4Ed0&CZXzv zGvIp&T9aRo8Of*GxWXnL1eZ7zFDFl|Bn}Ob?x{HO94#*2D|+NZ&1da4r+NtqlLJMW#B9VBUk+ukDM%@dY2=l)c_AHatN-SreUN(2cKd zZFX;SUJB9qjP?;DslQfrdBKP8`J@TL0ahPc*AQWIun9~z9A&M}wTM^?l}W1Gsc%>S z@D4ij6;3AH9rZwA^e(1ciy!bKmF}a!Iy88xUYD}!b-VP3a}YA~%o{ESu$ozt4|!i| zPadsfqw!FhQDTIP;0EsTWpam6kzih!u9Gy%fNEq&x~gcGvVqp8QjPMfJhAZut&T`z z!?nP{$AOitGRb@5;mVG1QdCIx4I61ftew2L&EE_^J|lDiRP5i(&gOv;2$f!h4ZYP> zlW8D%ip;2Wv%_r<91+~$QT=PYmHj$Wh-fBi5K3*J0n64a6it`2xvh!Pzj+inhUt|1 z+Y6@lU=}H&*eNXp997o5YJcee!wT!20~7lrh3qKi8=xq|p$r2-qi&9p1G&8vLC3H} zk)BTfq>2|yntvY&WN^gtN8};(^rP^RLSTB@xPjg#S$#&lfYvV{p)}PW@`Tv)olb!< z9vw7|t2r8mq#R1B8C&e$oq%SOGEIIj_gRNfZ8$+c`JzwOXWg80zd%?aaApNUNwj$3 zv2(syEHc(OrBcuSAfqeo ztg-?yN#HQlYhei(y5DfVF~dYg98*x_(vU9G1iUR2pAXTX1sEe*?nlL-L@eX9i8(`B zhcSUP1`Pd48EcY6555SV`z;sc)#(G;@IR<#l=q?O+XFJ0>J`wuhYPD%AFG4>Wb2CD zeu3JUm2Kr`I~`{KoM}^7W0ENkTx1;by6S@6JSCoGK_V((xq^{!pDpYMt}L6)NQ(?| zOuot12yX+t9VP_n7hT=}b$Dt!jLdE;n} z%GBu?{5~o{yMXLiH3(>_MV3Ih1KCdnrkl3#nWVm&G`Kuhiy$2Qv@qqfsymQLQp>t{ z>4$(0-^@-KBsD_JOMN95abmg&0lAw!3hChCBNJEM8#|d5u3pufj<S7l2iG$(i_)7Z+S>sP*oXvk@mxh}eQ4%Il$m%NZ6G!f}fA{^~18YG!I_^OrVD>cZvVikYxzn|k5KwP<4 z_UeWU5*6V2#~p7?15Di$PuMsx>gqSwJt(5qh0O^je;IcH=K4j$yKdh85>6Wf54dX> zq6fmzRo+_N+$4YFvmg7B(SD^ZV2uqv0(Mrgj}X8hoJDbr7jW=QYX|E=hzpmER8uUM}`9&m> z>9Rax!~?2U&$C>+#e&m*Rx}wHF=VWX3sS}ebBY$`s@hQS7T`Ahm1MW+F2 zohM6=OIt%XS1YtvP7Jn&WovR8o3^ozgqL2r@SNrAnrlvfuIYSVN>n|$JADl9D z>c^?fE0^|mfG|vw3mc_OTPjL{vVbW&?_pc@crQ;uior^BIQWJNJ&>;I5yn+NMJg7& z+LU>+?-bhO^5#6;Ad?qhdRwHm_Khz%E@_bZKrP@EUOyPqJ!Gzfc*t}|R8!;ShckKNjqX+Vh4?&MEzp7>785F z}=~GUFZ)8n#Xz80Urd^NfH<1?3@xdgf^AI5kM9QL`DtNW=Mq8e9l;4|N z=*$M-o1fFd$E4P94mMyO`mXA})hul*J&eF(&t#Bq&*7tg5c}pt;MK-A>9?QTG|qU+ z=ycEvAwI!2i%+Otqco&t@g4ROL{0bL7&OB+h*7Wj@mggW4iio9&O%oiI#dhFU{xcr zY>4GyH^VUPnEoG2VrG4rkPyH0a`zC_g-E+V<@DG1rJE4=hjOvsnBHaB&?2L_`@Er1 z|4A+Z!)sIewzeHq4Ht6#F+FBU4@*yS7=Q=f+lQYy=Xq+e`1B4z_*QBrd&K@4B$vU5 zoNbP4KnfeHLd^m`KY(fM+XScy1Akx8x;yuUJE(sdj;(WY3C6*#XHX7Am%tYPBsI3L z4s*`NKY|{$`PaZoK14DNy(bs)W=+|e#XzKo!xwK8Gi*(OhU?Y1Lr}?cT4xdimvpvi zX7MrGkAvNPjzQhF2gTMIFGrJ&h&fH`Ck(zOu6~5LtNYVFwHHsW0V^8+kULow3;J%yULeiS*FY74$A-G>#m|fB;9^9AV(urcaFp#)rwN=KkK~J?o{o`S6 zsktt!IJfjels3v|g?~V#1Nbdsn1pO|lpg6vr+uoANv(7~HxoG==EVYdVaH5woCwbU$UR4$b6pqT;;J6!}qDx=Z6e zq{LvB8hYu?$f3?>qvhkPadN4Pm7UEM7Cp9p|MRdQuJz6hD56IJWY58++g2FSgI+x@ zTIvzSB-(9j%>)$EROoR=4;+D0R%xlXrjc78&)z^{mfQ)@_52*tA{*7)A&^1#1uBCi zG1O+&4vcRhK4e{~c~O%@1Q+aI7|bCWnN&G52D2uofdJd=0oc2ns87bQNddXGkwaPr z>93>nGuDPD$?X%4YOYGc2;{4mIG^4>gM}3b8rXggfJ0yWPqaqk2;SiG@6AjYlyK3m zUKV>e`ALdKe0M2fU1QiSj8oCi4UCI0YI@_@+1Ar%CrmI{H)6KFjPu5eN{62Pw#*to zP1#8DA-Y?0sgkho(QM_=Dkp?8umzm9H*_V!NNEB`@aOF8qRUFaR*FGBr{i!E7z`yh z=>wfkvuvp$Wl0lT|?G?AJ zI_hJ7qOYWW@vLmtAHf=25?0*!lsBYAV8Yc2D=*@4Q%AhVSU zwMYLb4q|aL@Xi4{K9f@c5SfL)f$-MIsKcP?I~YykyVhFVJx-N3gi|m^$Hq)8>}A(I z8F;dZJk87|-?)uGNLrcW+n72r(|uQ|*m8B#3#*iJ2xS(XC45Md*!+R26L!}_l!}C9 z{)GSt5P*mRv46Zx{BY>*Yv|K}g7r9zmwYeS{S_6_ zl0yzfK`&$7yv>UaW6S|Yz<)!F1DDlieCpVr=>(;?S#p|Gg+~(IsF>kW1%!N>MGl^j zuuIVN{LQD0byKo!s5If1$?AiXmjG-9~&oi+x4+y6iH3-{+mR#P$ z3Ad(9J%{kPbv0r_sARiT0RkV|bz-aWe9@|mXP3j38kJvpd4~wh{7_@DHQh1r*fS@V za57xjjY$fzT0CZ@+(E;I!M39+V%XaL=Y9Ka8<3Js=$VMpN_-A0pfEPi(=VzW$j6`M ziQh++G0`(;NzH_TzOpMp)068-^wk|x{v{h5q<%(L9cnUkdHEVp-Yar{28NvIg$%%f z6#2$mu=r)_6R=mO8-L>N2c+q6m%g399kt4?W$pAX`HvN*u8Hc8(Cq^p}XwqvW? zYh^F$z(AbCfMtm)nViwCU@8@l4q)F&zu=^t2LJH z!`w)tWKU`gEcDykFaU2Cy((TIY<;5v9ih zlV{4JC2;5TsL|1~=>2?>RC7n#v-LGsAlah^hU6Eycj3l-N35D7gQ(JTANyB>i_G?N zCEkhV&hPIZ8P@Hm)+z$Y!c$tuEz}#UehX0^SItOO;piiPH}TY$|38^!w<| z&*tF_G{#o^0*<=0t#g%kmE;9Du%|2%hI^)Ojtmkt_+tckeFdNnW`jIOx*-LT*SeiJ z)!yz4#kRnke5y^aEbgb6PK@M@d)eE)JF9R$_NiKdmnFZdm^j(96|9M`S$2fyJaAib z_w8#Dh2X0XM#sjooRIQiX%97+XWhILv zC=i-Jm4)UE=yRLJUC?Gs4QYVx9hi@MU&$q`R@fA9GxW+$QmozC8$|V)1YdQsuXb+GD{EISwFs>SF|+(3(v=PByA!=2_g z2v3-9Z;-onK$_9#VaGJIJ0%dWb8cT`F5VmyUkqSCnz(-h%(%rsDA7l|1$0|F2|c(- zV<1z)0%E5;TE+ZVUB5{0JB$p;_K6CX3R)v}tRt&JD^+Vfz2Ej>AQM<5@;(-2e#zRK zPS>9FFv4JycZf;qbROd!?53hcwm;?09at1UNRN>t@47qDH_`mvEp0+NbkYvx%~WT8 z+2qAfqlx8=;1aX-@e|6j@Ta&y1*iomm;rasON9jLJ0tx+Ww^<-umXpNdyWbh%bFi1 zbtdH$43m(Z8V2gC@ZR7so3(xH00O3-!5u3T&I|dY^tRw9KJk#=)wplrtsn4S?z%Y7 z#^kDMKyMY8Hqi$DOsmFF)$fP?&kZ?!|8>V%Po1r{-chkrC9p|%hq0uYBZ1)tV9Fo& zkj{5*E3l?xBg0L`Hr&2XC<0-w;ioYk$c9SU3AyFRb|tVYi-7`tZ;Ohf`c?<+qwG|> z1(R$Jd81)4$9vlDgx3@X)op3hR=uf;nj%SASJo)(l|@I7%G~Bps|LXZLxC1Q^dxAP z!^k!(KTv>2oS$W$%yT_R6h+lhZA!j}r z0lbR|AKCna+p(o6+4lhUk?9wN<5e`Nfhj%_kt*Ihu?9%i$;(9lRR^rL5wH`+UIZAm zOm7O4^};bNEmGcPE;z5@%35!hyeDTcWLNN$aU5N65?+pl=sQO*^YF*t#+H3OTzFl1 zF~1;6Ti4WCCNz8TtdWm5@I*A~mgSuiQqGTX6-9;h@_8P9I2UN)-bv}w&vH5PDn27p z;2LTMlpVfxo&Xc{t2oCo%4`Uk#G4(~3$-4+;`NM5n@X&MZVu-1XSOq;|{YDMA(~0{}%9y$=~2k$M*Zu{8FD5il^x?$(crnuGpm);YnENGaa9G zBxbbyfps0g?ORV|P~Kh@^U45S?7m;;bG)o(Eoa*S3n#|dxrTXL^-zQFNz&twmvhwC zF=3$qOLam;PR!}g-&Y0S1y1m5?@`^HvXt`e$D98QQ{?ky+SC0u!iq=>>&RbyuMat} z4rWZ@ElpGoLtv-72EeO{GTPSAq7Ye}m)Bi-1Dr(J7NOJg(FDzd35s(h@}IlPgUC2r z;wY7grAMXPXzAbUPIm>hfGq1fl}d3tcJB7)LKZ(FE>I%p)nP%lWj^a!+669@VGANR+zq2(J-UZ~E_BfxF??Qf;bUcp{We^*SuMh5t zIB~wSp@EM-E0>^TC(cFTJWu!a#3;=1(BfN|^T!Pg?%u;Cp3}gs^nHM!XT%_wVL(_~ z&ta3i4nzRfDnh0ycT%Qnx3M<~Y|7jwAWem?f>Ib;r zvo(q9**CiV(t`)X z@I}is39;St=O-A=;z8GhG)|At$hk@+6@&e5LS&=f zl>9`F3LLPY*4n?#$TaUf5d=UuoRRtuNfo5~GX1yDU3vD9(O9pGSc3x_@czKTAIf7L zZJx;*r0|wM7gIa;7P=}x9V`5~`HU10voF8*ZbS~|Q7uIm9=RI=F~`)I?oT8~JDuvm z#rn2L%1if}>bn&6^>8{UOqZoqA9dR=Mavo`Fm6x=^H61J?lIX&HIoSCv#?w5u=G!w zl(@a~h&(2Piy(=a9osN`6srT@)I|LiW$neVF6VVGp%>d}&o*s&SvwdEXIAO%84`{S z2YUBGGyV+uC!-4!aGMT};R<3Tqc%9Ez(ymcAt2PSF2)yF8zqw>c1+*AzlUTU*3AXA ziuYHD!N~kmdW;oy6c%sJQ>N8Yed?t;lAIrh7+lKvvbJ4Q+>qL(f$8QCRu`| z4J3Y%RaFjJk5t;b=*r={zdO3>5E;X-cXoxASFT(O|8wzS>PaFwd{1~(Wq9w7#vsi% z)0MfJci-jV@o1=N&$Y0Tv=oW{<0#;}YS5~;pae6ercucM}HrZRJ1n%MNfr+ z&6R{-V%vk|vdy6jzI5bmUfq2CT3)wZ1b<4d`9>!IgF zi*5|TrIDkZ*qJkP(B2Xq&o%5hE0RVkL)die;)$wQePI zoX@AK1r*6hhg>ccN73Nm?Nd*FV}C5I{}gs7%J`9I`?|fckLCQ6kG~^~6&F=TN(ytc z6@PNdLfF!+)HwxX**=j&9;Xz(0B63Ouv_;0zSvZq)@aW=7&m8AU!?cna5KBNQgK^S z62Gc@h|kUA(bnC2tmlxe{egH-ktM74EDctVW6$MH1IR1DEIpf@#Q*I z0Qo$L>;lMxnizL&_9MZ)r97Y7>X$bac$hF^B@nX;#aXjyJTlorU^GbtMl5YwaT^P6 z;A(c%9i(64LYIVx6F=f2!g zZjpwEkyh-9ElLv;8SCvq(>D!ad1fmd)mA~fPeZybN!RCoOXZUk0$G};Gpappz2sC- z{7KMJwORxZR0*cjLP>>?%!)fQC@nAW8Y5%Dk_oJgMU%8Uj)-xN?;ngNjJ~CfS0@1M z1?ZCJi_BFx9LBDDCMi4p!C0L_|LeGu3yi>q*dkMj+byyHUdp%F{=*jmGtc$`oPqkr zn$%Ri4?Ml5+HKFGNq}fDbdiDY@~{{m8Ahajn9M{nVdYRdvUbcOzzfbH zYznQDCrb6h%87u7GB{RkqRSg^7b)vmZ%>C|DF%*Z+>5Ea>4pLX<5$zfsVut*YEc%l zI8<78a&|lhY6`!(M+Icgqc=0Av6#r2z(QeZ?gb5itF_jwr4d;_mhoc{AVybV?z##g zmZeFi**1(5ryFBK(5`kXsH7ZyfzRn{fb$NPhE=s|+zE+%wtDO5PZ6N!tWt2ByvrDN zn9bp(Oki6522V5Ly=}@AuaIOiij*Ql{u*p7OT?xu4X6Hn_zsz8a;tY^X)fGk4>6!7 zflO#Fv`Kccpw7cYqz;0SCd>ETs8h?Gy1VOi=JPY1X4t5BC=H{w8PL@=xdcWYZ$OUt zT)Pp$S6db>k)e3~>lq>Z1DL5~cfg(;BTrS(Tet3pGTGkA=8kw+&#uU;tW{$Npwwx%#8~8_1Fu~<_p(f(s?GjIKS_WduEHisZzGuyTq{AHTM-PXw z9&{9oS?5@8=9v=z&|}I(1#e%V5VnNJ@8w5(t$eW;Dfhs@%JLxU_CL3{9r7D_Bg|zr z+1IgftbMK8OKBb2ENE>}BM^+ci0d2c+uyV_#>DDP?zD2s^&%liQs!u*MG&$WD+ND_ zp6#0SVY#s^f17ZY0DHkM?tg81P$E=^4K*EKwM`M%8& zF8xN-ezd>Y$ppEWa2iN3c^iQ!9%fJJoV%iq~dbMmfDIqR6dz!B2r>ON(GPJt2a=CK^kE9Ja~ z5EutZglm4NP2Xyos8jT?u#1I5hjcNR2tE zBrmsNWp+k>w3#Y0&<^GRW^-j2j$^TWqy_+B6U!|ee3EJ3#SAwiR4J)R)(HZ9vzaH` z?`k{*@Wm%w=^KZc-E7hz1UWGYg=wVkg9)raoGGoYIj?x<1v-;aq(cZqCxoC8r;)i2 z&1)B{QlH3@6-L%>JleDZleA}W4Kv5xAH^}%P};V>x|G_vr=|^r8&ZkfOF$kK1yf0M z(9i+m%^RAfb~}rwC-fT{c?ZrxNcbG>k-xqa)9XVi7r#u?VUCixK~+)2T^&@Oo%})W zhOrG{ztvtepPiq|toB`|dp?GgHmG`d+MQFnwT`#i`3b`tNY*nT`&tAcrmry0^meso z@bu3B`l!OM9Y#Y@tBIJIIHT8|GeiSPA-wTo_%GvDRj`Hmh%6omXEcrlmd)xn#_e`N zYJJ?Sr8WsYbm1m__?&uP79~1gz?z8oOCBq_@J-+>w9OkdVo?2DU6UZJtb#K$Fp3Vam{G(yltTJ5odn4{ z2p#`tZxsQ(5m*tV&7rqs$N5exQe3+!4qCWc|;) zIKgt-KFPp!3r$zCJ^fn;hGRnO7MB(*dx2bFIR*jpcTp#R~7OGF_DRC70IJQ=5sp5Cz6|Dg#6n>+7SD1BAmm z*FKE6w?wnJY$bZGOVSd{l;au|>wKu@!CTN~YrVe*4++c8aO{b7lYQ+(1}FZ^9bY{f zp6=3^TXcj9)UZJ9RwW^tLfW~E6ou{VcJ?-j(cTQyB3jO*=y2t^#5;KduAW;&(Z7Dw z3mOb8Kk_kEgyAu}z^Q9LObTF4+?_=46)btJ`n}9bNPjk>Rn8S3TLq^)WeB5lh*Kno z`Yz|k;jCSrDG9nV_^uLrkr-IDhG;hP+>SXWtHo1{QbWyq5#g$qZNH&XQWKDG>L zUJxmLmDI3VWn^PRNPUiqcu71bsPw5+&NR4eK<=B`Z}<-;93Fv6YR@R*P~mciNE@TJ zqaRzrsl^cSZyrag){2ok6UKO{|D9ab#ftJ}IbR(d9l9^IGI!wgY54~#7p1k$?)>$* z@(^DN60l=0OkCe=I>-~k`S_8fM@`kc@zdqZ;n{NIr>lItkqz6T(cj2)-2CMjMmGSc z?*(3xrxj^wArW010`?=A$kZc5@$ZCQ4TzQ#&23t|BV~)1JQ4i;tkFPdw!7$L!LV6` zwQ?RX^!M!OIHso5n!=few?<)!tMyPvl@4@yy`9F=`DBRRAptHUh1o)TSuS@MMN`GY zwpIJNoKZ*RQ@agdD1@H@H1QgFf#7yAM_LFB`!!=CJ}6d5nEvMuqmx;|oYltHMN!W-MWh*m9^8$IB zM_@?7cMKFvHC}jpQ>cM;yR=_P;qTW&fEXrF9gIRRp_{9!)RQKP3@%W_SE`G9y1nnO zy_?pW3=|j-tR+IKXCU+Y(F9v5vG*iMu%r=@f)tTny)%;W<1BI;E{|0mdYnU|Dlmp3 zlm1kdzSOj*d`WJ4RN%NF=(yl>N!IpCqF_B9|SlK`N>uSMO zZsqCRoUG7Bsw~saNO9}vAGYtu5H3y6m;c%|*q?`!9ta7cZKEhylZ@AZm-`j4K;<$6 zl-2rX^xzw{*U54A+15eLt@;43w;YV!BjWqx9yg@#AIGPv-aoVXfU3&KF3NDA4cUp(hDJ@Mghsrb8hsHkK z4*HwmF=`<;^PM#gHNj2fiQZDrpiFT{At^YehzoL-H{To9ktGUID#?39TUghJs(E*R zDCGpUefEHQ{$9Vxmlns08OupXi5z7{CJ#NSgs6B1Ae--GsV(L-m;i?xH9SkS#Nwat zvabwzCNoED4_Hbj0t+DpNVwvZp+e&Mri(a7wU1wyhy2s(!zYLb7ByN3O1IJ$L4%g* zFQ#*v$x|D}fm`5PSckV#2)?MVTau?4O{o3)q;}K>Qdojnq&W^euwJ%mn@Qe3ymC}| zoAJ_sI&Pd>Yp9=rLTw0jH{_$}KD$shX2D+vGO_#=>vi@t*m?%Z%&7e@>E?7KYU)^L zjSrRma-H1=j6eb5gv%i^;-&pd5xFdMPU+%bi#2r)^p)&)1svA%b3IX174T-88@*@E zRh`FUjjwoa=wtDfz|*TV**S4-x8%NIvIK-_KId?0E*%leUtT-1pNEiC*WYq%P!YlL zykUjVmpTVi$0^`6K_0{9fQKGjBR z#=}Q{JV$MRzPkvxbd#)LrI%anZtT;B21WWE9P0JHTYBdtSV~Z$( z;BfY?ArcmA%SusJdVFJ0y!BP5g)4yAc01h+Ccmf>VX4tV)s^zA3 zZ)VS;6JU9_&*e54QlqUJIvs_i`g1WQ-OhMur@&8a?#O*+5h}^gyxm%9FC3|kK^k#6 z_fe9)5!;{GF4}@TOFkI`KIioFM4GQLG%yd|TZbFYfK3*x zWCN&uii4|z9KItRLod@!Dfy-nXytbeOPe3iNVHrq=mcS4uJb;|*px-q>MI9}{e(?J zg$m`~srNsadsBtIRqq&I%ZVgUd zBRFO!f#;YqZb@goVjRd@7e5SUc!N#duNR5o1Wk+vsD%L*s4|6`vXbHCSlc^_4abIC zrsz9BpqNf?4qtF1?P-LT5(p;laR|LI+%yGSoP0>>TsnsgsY8H!NPT&64&67pi9it; z1hkO>_(i3AbeLEWJ{*$e8g4q_#F(C+Ea>JoM$|(PI>UUp9dQNhimGE0LvO02L?;ar z|3jO1cdjpqz0-o9+>FT#{_wo9#qs8UU&?Ztl0<^0W6YZ2+X)Q1>c_%!Tx+d`H7_s> zIwvk){*L9g-5nkv!-^;i9ffJ zBrMJtU$^D+o%PVlQ;*U>w|tZm@WlItwLTa3$1;Wt+80bel&@QPjO)@-eD<|J;!a7K zh-h_n81IV~i375|w59`nSL#^O?8JgFbX6;OV>-$iHC4^P0@OZE zJJn3VH=rp#-Z!ceSHKpL)Eh*bVfsa2@R1Vk$ zY6CX39^?POlOF%g00s(my-1p8pM-;mH1_X|+F;%*b^uG}P3P0IdL^?8-|E z34-eo)Ej?jIm&mPm1Xx0yXTonmYf)Z*EvyCL9*y#f7l3N*S>VO@8!_&BIu+Mpg#Bn zhg#8kWV{c8#!xj|F}v(*=eIrVJ%-1>7w|e={{bn2YnM4h1t2>Oy$d(We+CadUVmiX zJ@)C8Oe(YQ+aii5_?G_gzpp)c12wUru7D}c245+FBeKf=!;V)zaAi|)J~$ktq2Jc! zqk(?Gn>v^TFMP!6uwB=|;o~ zZ&cW~g>6@ze8MU0%hpVY$VQUep$~nVWpZ|L}cQM|a!%F#gK8M0r zWnV!ss5S;bP-koz?{&(S9GgISjIiE=Lh}~GC=o=Kpnm_IqiVIY5Ved=j-R4Ev{|1^ zOrHHQ&Zq%AFu^9iAP&h#?&yMX7#IP8xqaJwXxa8p;h{|qQhIXLHi)_im_lQ=L`e;% ze52(W`J<`#0r|1xHlA+h*(uK%qM8yVY6W%Te>7a#W!~9C)}-yjpJ|rUX_mfg zjL+iUn6<{`somwlDrlAbsmgLZ4NgSrD|ggxpH-a58&r!zJx< z`cOx0x<-zQ<&(wHH*Aau3=%O%IilKzZp&jrzQZ`sCUG`>K`i=?Z;QqGa9cKoaW|?j z8fPoXIkm>q&eOsJ5~JB0Z{_RA^Pj|S35)6+NkcN^>MfKvlo#v9Wh6srSRiJ8CSA~3 zajJ)IC@iNSxS2d;S)mb-^d$dA^I9~?=Z05BOS6XPPUjEeuXI`VuO`p<{fT_8j{ z5LlvT?G3}0w^!GiccE-LoD0PXd^IlqJfnW4v^^D*qAo7AzK)fam63VKM&+itjS<$! zm16X5nT~6K>{WyWncX!ITo%fa@+2uD4n(^nrOX6P?{lJaMlw0<5k55EIl;9dJ? z($^a-I$d?BwfBl4TP2`qp0ZSD_lkalGqo*X*HH5VRGMUPN?~HnL79 zAoawjaw&@Dc=k>+2yE?Fu$k~+K~9>s%u=`!{ycI3J3z$0_sAhSg3&Kk@R%|$2Y=sg zO2_{BW(ABv(6n0_;7R3B*a(ukFgbiHkfN&mL2=;In)c+G*P2uPpFe?=KSieZ!do{; zJdMScPR3oWZ!)t~<3O^h%C9=9=b@|v2^$@txDgU(m+MT9g(~AoKB(-idyuX!i84%- zw7D*}Dzw!buB#s6KHh&t;{DjN`6%gZO=4srpq_ zQ@M$6Pu9+aTtT<$(qKr_x()@>o7-Q%rG;k9;8WX^W$T|Yz%aNM|IBI-^M~CKTveZ| z>jNWYaDFJ2Hei&DHG?k05rg=60sHQ>*^N+AhPo{VH==yyt49E%#j0Ynryh%-(qWo~ z6pOB7tCiH5F9nB$4|F){PM5M%;dG;>G)_M0vfe-KI;jV zhcu*8r}6FyBU!%fp(=0JVsTy4eE<*bwZE<+-JZy@6ka8lwgUrl;Dx&XAXo4ue$mCY z>nKrfjkN+3;Z)ZxB!Dc+;rgpz%Ab*&MIjoj`g)Vnq-Gx+sSKVm6YL}N$4nWJ7NLqd z6eX<)p0x>$tw6pChEV654c0eIL%+rduv2V+>sAw8L2|X&-guRxoxiw?vyWajj%6Yu z%lKL%&TyN6ftrGf0RViJ(jK^zpE87l>O5bfJ~VtbWmsolW%xK3#XcR-pkb!2AtO;z zMs%2%C8_L@rA!FxKg%7-ox7<(!nAl*L&X%_uMA;3D%M_Wgg6^FFHr|!f#a|Ww;NZ| z1*a`rxmLB9kD#%pt@u9W`|RDPEHH)51u>L!1yc@PC8;4*O;unjfb;U9FQa31ct_2! z#mF_GE!1l2SoD`IBx~z{a4myI;&D48&HYSu&&Xz* zAoP+;opTz@uhHq=xQe1*r>+Um@y6=4UpEw`dXI2mwIF0c+*D$mNv@uLeuH`>IVpap zBn1hKz^-)iRd0G12`0*g_@2iGo%ZdI z6Mfu@9|Hg;_q-0~Mm!J>M=@eCxPn9pA$&;6`fYFTX69m-&I&FKzrr#5RT>_u&+V~8?5$*t}j@K}C-Q%^?JO%5;LyXlvv1OZM78Sj{Nv*?> zc|x{9j{TV)u6}U670(hLx2qZ(Ppv5qT~r56=R;B9-iydKVlkz2&8FR*Q zg$JBbDOK&VkcP;#1t*0qEKesbRS8Z+jlZzbb!C|Az9@E4MuvYl;(I`A{5hscFkTKN zHUNg%HC*RL7R+7PTk{M$Cnjvt&dQ5IXH&Hu&o1JN2A&$1*gXNo33-ak5%d=Z)g6YI ztXEgNT9Y0PAKry}<4qN`5dGe@>zp={4#DnSI zj5+@?xwivifnL8`1i80HJQ>3w13G>hS%Y&#-mnQ)q!5GdLGf*I^w#D%puw&#(U=hr zy0R3kH{>o7Kabr>PTM~i4>&3IXYy_qO{R@-mX1F0 zbao&N7#Y0VkFGPP2`&*Hx2|ebb!M5zu>s-nDnoh3-YwpbRqNG1byrg#EjfXT72!IU zYp17?nTbmOyKh0yok|V;{bimK-%XTAp2B-(XoWo4k{Z0?-rrp2;D5f*7kCX*7^X zh7Jap^T(49`3F)9(fESPmP()F`OrFf&2ioJR66|9HS~mkcr%V$#RE%oMmVN*`9kmT zxlvH}1atqwha7a=p{y8y{!1;VAn{f#b3O$*^%(WS%$+vg)OmNUYSaYS*7#rJEb6%sp_#8OH)=n-~_*<+|!R%~(Scwrr+ce*Ez|Dk9=49Mg?_7e)35CL`bMjfUhHS>GBWwQ{DA^!?>>emkh z7y^MMsk5Yt{i6luv^|?&=P9`RQZk26E zQis}Lm~ix?-GU@}QPDc^f_(ww5JA@D6x8}Gjgk~3E6^@jUll9y8-mLl6dFj{^?^@t z$Kw)#ga4o9U7X~U$i7=LG6fODh)qSzQP7|pQ;r{;xNT2FI#$ZoKmIhiirQEeB3yr= z@N|@I0Y!ugihavrP16?{Kt~)9Ih~IC?kv?QCjZJSEMmbjKF|3D8VBh-Ub)naLzERC zro8*#-l_zq=C&R{N#SVpCoqMa+N<9xG94nC7t6QysgCW;O_R4xc6;0n7ztiLIkEiR z!hN*ArYUA#ky@WlUd6v2L*Ccj*y6S5l@l7!Ons6Rg1Q!B!LpGIUOZmt;OCY~!%79jUuTxHRb;jUI2POsf zD%tG#&e)Y&bkS^j`nl%h!zH6VZB#w3I_a7nX;&XJ8ZMpw^O5K^JqD~l2{6ej9QW_w2DMF{3e<@O|Nd)x_28)-T($q0WzQnF9S!@q&0hrk~>6%EkvZ-1f=P zzJj=KE%HVzy7MgJ&9{Jk#DP3q% zo#ZDo%)wq+pj11S-t;)L{k-qx6#x#Vjk`_RBYhXG7p9k@N^+QvRkrU{)Z2JoKx1<$0|d7rNsjf+J7?eENODymFoxjQVA)j*Uw7B7LM|`7@2*T#19x(`>a_%B`p}g7ex7HOLU3 z3J9gM9~LV*TlP9+Tz|e1IzX2>Ky@symKzfHY+{tcKA396=N&`$Jx^sQZvOAM6-x))Hf5Hh%{QrD_{9w6)a&o zdVthHgg=UC+9Xn!o(*W}0PDkuZp~nI!)uz3sdYHQRMk%;`GDL9bjNBHG)ruO20|r| z>gAzWqz6V6`WsaF``4Cwe!N{r3Ry85g=%E@ZSEDig`NYzKeX2|qMy+O4w@4V5$*3r_yv%tF@oKc~dWF z0JndnQ=a6fsY*cQIo)W(smd-_&#<{`f+XlW5DvP;qcKK{8Ny(qW{LW%g#X3(ua&GK zzHTiEZKSo^wwoM{PwrFNVvs@a@0YvKLXdmC_6&o7@P`k^rpRuZ(P2oc0WTn-+Mv_b z`&#mJ77?)7Ap086)&OnA8)rZOP-zpJ>V+iSusV^fVeg&>?JFN3o_TE-f((V;!f`S; zUqO=)Sx;=~2K!nee@ z(?8Rghp&tXH$&@*ip?CYQ2mGKPsIjG~MLj%y1AMlpl zfYe?+>bbShE&V>iU2HZd`kihC<1g*vmyvFg=ygS1Dp0EloN*C9As^`MdrT%*#PwA{ zk{fjN^rcB?d#reUTg0EDa2@$o^YySqRj@hPF!}DzYw!`_1&sq;(uCVl9n8Arj)MdX z;EtY#&ZC_l+HS*FAVI_Q!r5dKxqzhBe}S`QlF44q{! zttEW%&xL2Zyb(ahk|BN)nTrzWu*?(T*h!_aI8?~kh*f|m%O$)mGk{j~{Yx5_ywTid zWp8jO^q+Tnm|5_c>As8SZD`E$jL!D5{XCUQJgxXP+65xnCe+bEqJhUh@xZgFVpG=+ zHiO6@$-h$C;7^KKP#ZuNYj%}3Nc<8e{ zW;b8JQ-lbMbO*Gm+Sy!kUTs)^8TFxA%0tBH3s6TSBxT~VHSc(RcGqoh(!~jTKTW5a zr*&~zq+ZXB{U`)&bkU`Jxg1e=5*_C`IW{)*3pEf``7O_a=c-^ibb+%8h-g0Kz(}VC zprzNp9|D+|dNvLWr*@FSw_*SxO1mXN24m;$1C0<$sz}<P3giDl}`)pD)P^@u+VDVh$XPq+|UuM(Pz1Adw0*qYpjh~8Es6xyiY?E=9oUp7yX?|PL>Gy zwn6et&EqdahJ$=OW4yG>I`iNkpA$Xo?5VU#A4=TKY0d?&iuv^x8=ax=;3IF=al1v+ z{mn+rpLjFMK;X`JDUO>cXbP@IvT2;E)p&3uJyW{d`?Pz&LN0n-I5lvZhqTXIaDg%l z(>;uV;7>qo95#O6PGCQrWFdP;{x9V}YQJ5-*;Gp-d>h2s!x1%s=5!NSx3a+&zhfAd zYMvekh3AlT@rGTE`Ae(hZ|Q~83r^QW)5Xf4?n;bpKDqM>!^U$FAoLdVK@ypF zq*vtXjuoH<+->gLSD4Xp7Q`4NQYN!l4Jx5(KTq6-m;zd{(!KenY zlhEsivNr)x;jBc?;fck3>48Jp)A-=Hq{U(po9S8k$qxPZV$zVw6Fw-(RLJ{3vL1{Ki8EBEQ=V-zl>>^U1jgr@&5e*=6lg*<24 zk$-dmrqD1IE3;3GMAwQE0+Hz~Q&)+@wneOBA9 zmLI!lWcY24vO`E3TmB9}vUy_#yBn5kqNZ^0^~$z6ZjLeyY-n)P$X|)i2HJqh{bREb zh)sZS7Jndnha$d_QejSr(G8ow!lRem=vrdvhMPn8PFM*4nAqHw5vamh1Z7L9PM>EW^4|gwA>7ChLQ`bx&#=)2T&IvzA#J1D;v}0NouO-*)ARfR^ z(v=J!66czfbkpDLw|DGv+iiWWq*DVsod^EX$Z9SM=VmYkTy79UT5Ft)o8|5G#?w-+ z$=M2+G%ba=8WRnX5^#ln;H*NZVL%z# zK6#Xdr1aO;KIkw_|L*x|a_pW3fSn9kx~!1Vxp^K~r0icFYET^~RKAa=&p9NHEGwf< z3*B>b!EqMGRG>r@f}%I^Q;SX;3U+~>JNfw}Lcpdx9%s)qOL!QRxv9<4?7M+TIIFUG z8G|@2JmB)T{#5V!h=BX2d>PNhmfTH8azX)iad$8ZRnnpz_Y6&#m_}2^swz6TH|cDf zjq_T=9r@{*D8I;qt(YYiY*V$#YH*I2+=%v-blgDvN=y>h3`r(jcNiap>`~@Qul=;c zran0hjx&ElGanwc=Tl%SgZnwv6rN$)0_R5H_U_Hmtek~?0AfVvoVjDS^|ef;NUON# z-Cp(5bH<+9@A`~%e^$}#yoU&D8#qS7^LXLTmqcmHW?~-WC1qX{WPNES-Z5E|)L0ID z-}r|TKet%WUaqlC!=T=T_h`eQk(z}dq0pOXJci7-hz+o1O&>iT!5li1Rj3N*;5h2& zuEc$qKJhoLdz8FqhSLx(?lvmU2aa>B{CCC8a5TvcM}j97w&C6qJ$Wu?UZOVIhVkI8 zY^v7xdfv~mTrPcu!-wK`2lM-7E?mJir231 zV+jH1piv65*%#Le`gT`~LeqUY!dCOFJvxp5KaeRONt8YMmz6-IR!YDBrPoYiwAzYv zWC`W4Cp26pQG2Pq$%4{cKmlY$Tr48j_$fB+3f1TqEWokJTVvUE?V`RfRU~f5kY^%h z(D7xX@-sXx%=~RWMnfuLH%Qw$MZ=6MXVqneV9e)-{65~x)_y0iP9te(^YR%BfD2p~ zL$8|RrfrLfd>$WO$45q2w~Q$z-bY2%^ZS2aN7N zIp}YhNe$sLIv?pjnt%_;V=sUlZ3$sL4Ru#y6rL#R{)w1=76$DJIho+%z{%CdicnVA zp!`OIjvG%$V1kiRCrX-nhb&L6{^rVZ0KIWR8L9@%jo&z^>b_%4O9xu*$j-quS=QFQ z1H7u9wCtu8go@t6k>0A{HW6vx@37C6G^-=-MXwP(Mt2K{-!h@}23>(%!6S(_q+t#9 zv(CfXv5)8-DN?U_A)y^~c?Ieq_x{q1A=j`)h#ii}nFwsx+AVbibrqPGil(7Y*9+E} z`&jm=qepP$5rtpYhFu?sZCXo0yrj5&`o0=7EbD0y#mN)sIlq-dtBTYLmT~pQBTjJ7 z`;2~Drm83+eH+JvJYFQdvO%E#R2b4Uh`DL({yUbVC(?<_r+wb4dX$;5sc7!o>7E^E z!;WbK@CXWrB=2~XKSltwgqNFoP?H)0RVx(F20V?25zVwfKkSie=WyS`Q*}z z>LWL!&QdKfD9ToWZA}Fc#EqI1eKDij-c9}fVuqkAd0n+S6)NpS>Bhfm!8LI692WpI zSiH8j0?~uBQgPx)xJCv?T50|_ZElg+3A?3U0T&HqohGz}A{`2$R)LLjZPG?jZ14W3 zG*nE;SFD{ep3_;r<$?ljNE~v3@&D~kf>^u|uNyEi09OF2rZ$0S-rXFG_o`J=ImTIW zlY%C%Tf&QU(mOiCE#JEkEB#BuvX3Y(9GSgmp5MMfhO?Ft+uG6+3JEtGmbeG2iu z$<;va-VuD5?S#7j=en}pjn%3-ap{wzA8kLDCx<-~|7nGR$~s7L4`7=6rHPA%D{sKV zC%jAxoULOM2NNPdD6B{xi#4@(l)CJc5-}JT+7_^%Cx|lFh+L%FD!Ng`8 z{c99_!B49QsW!hnObRbJc+Xf%W_;Cx zpRgA3b_>kT5(CHViV?}?sRX|>(FrsewETii)J3a>vx*v{gL`2ja-jQC8|YZwP+zeB zTFxO;wT&Hfs6^w`xR)?K)i(ZZ5siIN=XH2kFS2dwMBzhozU`~GGD;#=9y^U z^yTT*BdZ^1y~DlcV6StxiYvED$m}fOda{iihueGD764#aZ^YLVOQb?MeW$}Gmyx)L zVEx*?yT;Es4bp2y0dyL25X6|hdUTATj`qD}=aEc!nt=$)<&}IPd05FQw@A-@%)8!S zd>jc$QQ+_dbSQ7^M9n6`T08g-CF;+nGOmcl>joWq1jTBB_cYYBQ02$cdvaXz9IIil z75N;otxGN-Ii2?GtxX&L9Zd1292@2z)oZ=Xd9;u)>_vb9*Prm zlrB$L?aU19K1QH>K# z0S8XJMcb^A3$}zfyEHEzlISYZPfGOSp(}}wC^@jQfWfhJ0i~UX+>;h&t8i<9bOq6f%`=@N>gy%=3T&!~+pe6JZ_e48e%w=9vEWht`Ik73cwLV8u^jd8kksL* zd+ZuK%UI0dky$1&t;3&;ZZMy$pg>S=0PSBcZ%6w>P@T#ndg{LD2ArW|yV?!`SccM? zMrUb1DU#dRj*5*r*pw(DamTv`qN6VH#&L#InBLdc_$}neyz;R|<2)|UP@ReV z9bnpzSsVM_6Un~_c^~GVki>y0d%T-ZFfJK5vjo97hwZ~*T|an7p1$p12D2@`=>`mr zee1wKVLsY!2`)01KKj^4;x^Ohk-h#&T4mqF%oC3g0PCZIeUn1M3!2-dWUQhhGTSeo}(V9zJm^N#Z_qSU%g@LIS zq_IfQ;U#S6zJWYb-GLJzc1n6-4WrUbl(;!2DM83O!a2D+*y zU?vwccQRE{b@i3}pi{5Ou&iuQc9b#!z9Gns^*<#>5pSR|l`ybP<-!H^y}MZ=-RLH* zCyy0V9)3Cde_PBA<-vbj_5-f@@RgjsPI#$t2V^9&-q~KnVO0b7N+dDfSLl8^FEfXT z4W28WZs7?@V4zm?5ZO{lFIlN~)P7KS)@37mk;{eAn2Ai298vg>r4DoPqlO`{odU8Z zmKac4x6T6DrZB5Ji8i~KnaSw%!J?wRxxSn*P%1mCd0ii$pOW~dJF!Y<9 zi7{oyTo0jr;f(701pryLOjINX04~l8>x8bJ%MLAazew-Var|FG-<`~d^}%~6&d6E;CaBO zts1bsmI&lu(vk#`XGV>7fp-#slC8*vshucahqQU-GVDwI`iNz10$6+Copz0T2RCxr{RB}K$iD{K5lzT zv(PobdqLx;z$b%iI15D4Vgsx#Cby46`OV-=5kV}mpp~uh&ZR42L)B-fH=Dr8hU5X# z&DJKDlK(=#dPg9Kk}4^)+ytP#4)E>zuiejbOj8iBqRon8?OY zJP~%Pwc?ksj^2O-6S-r|A`pIT2Fz>)w%R)Y`R%eqvCA{k7592^WEaGiN)ynO_4ndd z$sVNda~LcH6M}d4wCChXH`R!j|H$QAJ%WH^UXd%}kM6Qn$7||QCK2aMVpnF$TF%-5 z@p=_!qNWk@y#2%phMdGe^WEBIN?_?ypX8U-Dt?oY=jfa97j7~LC2oY=z`F~2060I^ z79O!bU<1$9@j`Uq0QlCcdmJ(e6IKhz|dZj0dzfFda!M?ZR1}moL;_0Q0aDh)w$L3 zAi9p{GOScmqq%X9$`S8arkMXeH(oGjwmyOYq2>S5G8g3$dq-Ce{5T~j>(<}J?m0Wm zutQu|%r?t-C-G{oCBz0Tg|Kj&8zNkcFZpepZGz68PmOHDS(CJTx|;Q!Fl5@**p6HT z2eXk@-lky)Seq|uFSXXESjm`_LGBK!OdfZun%&L5A-s6~U6zCO1huo{{I3F$f*e*M zdW0|q+P_lqEbG#YxtC$-#N^;_a-sNa2Q?i%9_~j4nwZhp z5rKjECi&~Cpii?(M@6Fb;$PcVr+hrSZVLF=U7)X2VELz>5wH9q&)+6lyJQ99@($v- z0?T1g%1!Tb2GeDVgQv}ger5eM)d-8omDNU-Lt9KXxLiUdhqXE5tLZ&i5T=g41KgZ} zNJBu3&h5`d5+<9WG*ZvB7{hp(Oyd0(&kIpq|H7hm%XccY50)n@T#1}3r0uYE=?v2* z%wigoQ>gt?;J{Fpo5myaGseFa-zTC-eXbiwh{q~D2Ynd%cz8&CfPa=5=__oHZEiEz zVOVxUic-!@m$-;g&{zL=5mE_Z8EX4Cfb%cZYS*K5x(fUk?58CINOpY4n}AGvb|J{^4|OcE;4qq`IvqkTEPlg4s88s8KqmPdZR7EK_euNW@{nzgxekh0RaTK?Kaqq9bS~@d^1}V+*QDLTnEzMoY;XS`VT6v z%l&Wa73hp-h-CYCh(e?LRYr)1T#TYO|92uBHV>ySJP+ODv{)0{0Ph^OS=Roe*D~$9r@N#*ABbirC6%p72;} zrp17)eiHUk)Klm6#tvJdbW6mzvWZgUpO{B;{MJ~6gkN;4a2)n;DmLsvt*Eo7m<$I| z+hcpc52ADQHB9t#AuR36oy?k@6jqA#;KrJPc=4F+wG*VT-VZkYumGd3c$;9!D3K4+Yf%%N1} zN$dMFOHB3TpiJ4H1ppC8TYb8$;c`sx%m@uEfp!w>g9) zvEGE3St>kf@s@`T8Ao}vN0OTqa9I(h*|}BjW)*u4*PVW3Ud_w*c&(H&z|@-;tXTuD zBEo#Hx)D1P=y;-;pcq0S^f1(Ji26k;<<&U?w}o;fu%+p&Jp8tClrct1xCJw5i| zFV{i*Vymx!xFF_(gB6p>YYCEUZ;6jr6QV(@{M^U-;$9mE;6|0+&kAJ+F0iplw}HSt zpzQgeL7v*HR9Y7&r#k@;- zNYIi3qYmQ!kxMD;+d>qN4r{yqN_rm{!-;5g?*JEK{PA$Z|GV|doX2Ul)G<2^H1?;f zD!k|l;U%ZEim#qb;!FiW~on&JC{pQ2hWbse`T)Sesl8A$6+ zHs>>JbXVtWP&d?N6f^{!kqg?pB~?(b+rl3Nw# zx|hWDG;Pgrv(9YO)z}^RdyS`g#p)_zdbV(V0cBlhKgAbM;b+5Wn8s!r9;mf&~NEKe=+K$+uY_@kioG|1@ zH-Gj8SXK4^0c4}PH~fWDnn~Hp;)dT_mAveuvT$NM(@K~1WUjCAEqnfVS=a<~Kd?&w zvpp&bbOMKphldL?7Y14ZKPGJf87iaBFjT@AP!-!ftLyiUx2a>3_J%qHIG@^RnMH#rhMwBB>)ZBpp-NL>t$STAS ze?7_|MX&vZust90+DS!#K5e@~T&)?3otE_x75&>iu~KkgkSk~#4T%vfMKr8~I31_7 z1vq$H1vsQWvL#1%5+p5D~T3My2S* zw%{mc4%HnYxbn|boh~V07br(vRf0I<)+9IhI7kzr&D|p4dB*Z+S1N54i0(iwejXgs zdm?{B^iR+ep_D$~wGH z>tm+(Qw<2E9tI*mct-W+-+&|@WC~i^#*5QsiQX>JJPG^HRkWGq`zdS+I zlrlGDHy#A^8J;q%}_354fO|$=I zd6>=$F(zIaYxw!7j4C*UR70NRFEzq}%R41;wRA+V$m*o{jIF^Eb-BTpw&0nbPCFU! zUFZQ8C!Lf1>O{@6WwKA=8Xo1%eI7EFu-N0Kj5>~(Nnld2Y~+onDhD~(nhBA(ma3B+ z`4=V=F3NvvamWuNhccC3ZxE*SFi}GUo5xN5&#!oIw;Q)J9Hxa0U*Kj~7Z$gKW!ukq^^FI++jduX&hB zu*B4308nrqDipQ_*4d@QL7RNXqKhvt`~bWts%LyJ>t+dZX?R)|wf7UCyDy4Yb^ALY zmMdB#PaG4zMz3!t?eo7QBNu+rb3~g)VxKd3h#o>R7NjM5Sf~$^Y+IuwL4m;Axa(Q< zsTeDqvh8+PGfpPrQGCeFTqLg)VjfUi0kam)f;b9b#WA}C9>M;UyJ2adqxbKPTY@_# zbKkKzH^aUkN?@6MbggKa)H|9q$yCt>smB~|P&2HL4pwZEQ@e9SIX))7{3v8JbT}N< zC>X*25=%beOVB)gW{55M*{Z|OAb}+K+%3g2l{hLciCUPTU${FPvb6hYV*HKZbyNB3 ztm1xbuuuCRO`I@pLWO5XvCi1Y7n@~NRSLK6o@ARe#%rv#pnq#Gb8a2S;-A@~yE=_x z=jJe(x0k2q=KdH>MwZ46Hl17&-oGbE>$>CB1~T$T+x06_0VW+FG;J@M_>VtRcDNT< zq>ncY!&gx@xlb*{#TRwlj8W#S_ag6PdW65`gS6g>`rwjSMF{oO1asfmS(dAg4k7;= z&l|U3y+7BBL!znPv=Ln&&6P!+g*8Z;G7X$oZo7Rg4G&6Aijv=6jswP2(OQoomO{yr zEkE*NG$E0AK)GPOajR?~-fS0R3f*hGR88&-vdL60z$%}r*wQ?(?QS3!=J*3NWC)WM zj`qj7J>8PUX%vH06PS-A-ywxrqKGx@BYs#cnV{E!^6kq96qYzu3X=vQzFWTQ4KfLT zfsrJ&rT?d3Q3eUww8-YE()Rz7IZv#;!Rb0!p{II4;(X(nZLi?8IIAexLPO=sm>dcR zP`BvvSR>%ChR*LO5|ZjxxVSO=XB-L=87c)?t*+ywo(8nDJfMH#)-p1PeccaRj+5J6 z{L3uO(!m4|SURr~T=dcu=7V^(ASPKRUwpo3e$rp#;b#@8MV=F{s@Oy=9mgzJ2W{ic zkdR7(lcL$N*CO}djkE+zuz&kQZ{h2w(u!h0U?L#3zdy~ywggeJ>@;kM!2`)ob-*yN z$|EfZYcuTSZXh0_Vm(JQrb&!|bmH;Dvi9k0m8*y92DV~I3xi=_fsW@!Xw7FT2m(x> z6F~lD!!DJ}zq?YaHkfNd7Qu8G@QqcTLs6e6D{-v4qzxk^S{PO18HrI)kGF)~{LW2U zOns!X580=l01mUinygiG((ZIw!!P}>kLue@f-Seo;uA%58gkAo3nVxahCvHZq`K8; znHdEoj1DX9R~PHm#`--dKD=)AH=;-`9z(L36!uahUdt+LlWgFpqF7ZMJ+aFp`4iIq zoBLZrpLv+6L=kYw-RK(bl~qi(JBte;yUso?@2L)_`EfQ&Y|9rP9dB|^M(;;N9Jzp+dv z4Q1|O-`;ZxogYl?47b16$@i`v-a!_AP{1B}P~^?WTz<{u$!bxWJQvt|@gnCi? z=-813*^fgDW7)?B#YItdO?~uxs8?j@fSL`zMi$e)s`Jh(-8w~`K?kM@5tPY*%4@q~ z9;f>AF~kQGj1@F`#4DM+zDil2Ie6=lrv7cD%R)aj`>IIr1bhdtWzFpxNrdQTqbVA{ z@*y1MKso~MdIhCCQJVQK2dlg#e*UA+E8{@n(rAUBo%Yk~ltqxS`mYBwml_!KFypp% zjn?GBe_F@;+NOtzl6~*BvYk{~0e=~&)PN+mlLW*IS=C`N19)#PwN*N>t)4Iyf$Kme z#^sV)-lyJLJ!;JGG1g>Z-RP5ionD>%KW!lOzL)aUi-3JI;MF6#^-R(dX-`Uus?7;I z7TDyDE(p`_=?xBG^O6B!(s!olLf+DckUSlB=@Ue|1ak+T`pS|A#5-vO#Zw~gu6Q+~bR^A~^)VBE7uR^R zyVufg_XrIglszpJe#qECfOOs zXLiYQW5(+uMq;%B`UE^>Zn+GqIjW9q7pH?iW1;FDRx==T-!nyq(5Xedkib11EL7lU z!C9*BmdS!m{O1nnHTUCr+ckWXlNWpa+r{`LoE648`JZAZq8oc>6)Td`>YR-tOEw6GosykTj^V-}wI*K$>W8Ojbg0r z`ezO-Q)p&TQHCzCre|uTs;m`3>|C-X?#=WbaK_|XR_;mIV}1N)$^Lgoh`A z1-Q3N#~Qri16pVjSGM%LE$pxzSl<2jrDDj>L;DjDQ zU}zbWOrx&TgxjSur*m)_yVd!?*UxKK{?fSmg6s1(Uw1`Vi~s%146=+6!E}RPwpkXM zcnmWlq_nt;An0%E!{c@Scy1`{PaEHS3%G4+EnLzKSMvC|mBz%qh!dnDnDu6kiR z>?$b4KNUbD__+5kJqE^1`2;gq4)JJ4V`uJkuJ18?xv4;HY}>k4VrEZcEN~R#vV>9b zRJq@u-1MQXg6SmDDOML(+kQ(xSytl7dNe>^&i@{8HJ+?ycdyE(0Wyg1_6z|59z%f&R47PSD z{*O`k7S4J*S%o5mmn*)^WFM=xAtbBW!1Cx^2H(MSaeZO>cx7L!weGK|R68aq6aNpr#Sj9zm!N}~uw(3Hv?1EXfsh)X`?+3O-qFweZ{G&3?CbEj$bE$siL05DxkBA^} z$^cyPoc%@5d zLb80|M`ySY3vM9%{_NFXt{q7H_`kx~PY4H=MKbCdpg@2&K;G1VX=F^pzgpH#tGJ%W z9#j(_xg6jUP-*?!ngWmPX>~k)7A&YpSee8$Qre&9i=5VnzY z8{@~6!6^JfyS#6z;5&qDgWIMjiWv^;M4#0CcUzlwK3 zKYipyI*z_xjaourArPjQp6XMGw#zwg5PC;4Z8-DN0VGo)w7IclPgagU)7pWEgPY1e zk&_@!D?+gnfxKywFFjMovghl*7ob1Jm+{I#tjr;CKfRUvDlpq4E7}Im*lZJ8+Kmh3N zCz&%#fqm!@nd(Gx@dQ>mv*JxK?dI4ag>Lk0H&SaeA<``=S-aQai#wEh)_mXw4ayI;-gJRHk ztp=8voz>(}#xGRD=Rhh+e6_1ppWCPtkCd##Wkj%omP~CGy=Y|mV$kD$jWJ*Bod;AD z%hvA+0+MqE2})3+NDdN2k_ad$D3Y@xqJShxl5-LyOAtXpq67s20m(^4KtO`zAVCyF z(wlLr@5TA#cs$>G>#cjoT5D#{ue*0w*S~k|s_sd-hp97THcL}h-I|!ru0~>IE4(s! z#1gBsR&JCXB6zgp;_{aZ{SOG`BafMfXY53l{mDcUh zEGxB~pzzS!oM23#ff!(`?e*mo5^YCM*ouSLVcMTOaj*_r4ma1uBEND%f+H2H>94!`n&M?eELE%8n1Lu(wO)xcMr1^E28%*B{zeYnAfJPc0;APkNzUuDS2{>BzZP&F|+J z9gQoRhFrZKy^MV17Z|dTBj2$4EUZkzVtcF0-4gF8#Zmi+zn_%$3iA493OMyRnY`UoyFL^(ypPiB2EhX z&9I&% zm!kFHs(;XvbQvO@^9_NEm6o12LO$MEZjNxif70`;y|MzGes81n7q{aVoD%b1R`r?< z$d0MyawopY*mr2|MfTzf>|RPwnWiKu&T%EedY(L!U^g*66&o&9OXpJ$Z=bVH=P~X+ z#uXj9R6%%VRq)GM@mkYn97dMJLEQ!7js+r}bLeZ9Uev>fS+C;>DID$&k>(x`+X)dLII@Ac}A*-90fHE|y=ptY2j#b7zgl-nMX~2rjyKjjk*KJvrJ#6xOjc~ zGL+ixaK24VSuf6a3N1n93?{v_H+ut7PrLWUh^ZVObn3JcK0}QorUwh!{o*XqHbx&r zbXmUjV7Y+N$V#g_E_<~89fNnY&DR(Lf1#FP&gr1@E?Big2@XN)@tJD%jFPo$=~=1g z{8#JmOqTAvb@K5c`_N`0G`dkZMJ>eTH6m)K?%eDaG@#UVcBbP1OL>M((|MU$UO_I$ zXIYl5eX?w72C{E#Mh7V7i65*ABv!>yiLKonTfk7Y@TPv0HFE^xgw9<)Z!_Zf`?~$v zD~G8B!ZyT{GM%X^XrJ?*9!&D%VK46LY-~`(Pm1lL=;-D&njkMbo5A#^RO)W|IVsWV zvWaO8OYiGU+7*+rC$BfY=F#P0T1jTR`a&|2EinB2#cS!KS9L3C^5Q>#sUp8W?31@t zH?QaYwE*wFSs(snsk_K2S~1fLW>zZuqu9>(RgQc-sQ&cW_@xtPdM>LkO;4|?jP`KQ zoFQ$jiMdUJCniPp?11rj%7^O;uGdX)Hv=-$yDyJyV^m?Va@Fo@(4mZ0ZdxJhId!_i zxMz_$_Vax$3Z9sk%vYa9)%x6RJ1|?$BQGp;s)eM@%i81gsmHb@GOq{Id}0~zUAjA^ zc+~5j2>O@!ZZ22ch6!f~6S1Zyi-+x-jrt|vVR4P%YyS3?D zEOBP?>{a<_3a>e<&YWRKg{33YtK^O0*y2@zMk8`kX9@ktcf{3XopGu)u!~-_Ts6Wc zpEApMBq)*~kw}nWsE=ud zcd6oZ-c)M7nDI0HBO8i3!MUx2gNjsFntVTFJ3W#s9iA7pH4~Bc-+rU~&1`yt8%;i> zIY5MU*7@wW<@W4-UcH@F*e-2rm3j8-O;ji3l=Xyre5TC$Ys&9AgiFhpRr1qLyA+Z& z3gzs#QQZlZ^E~nO+x^A- zviO|&#?2)fn!Z9k;CaM7j9gDFGbcNAF4l&T2mLH-Y<_F%P@kFg7tP-}YW z#knf2vrZjxR|PkX(o8FEgc7}dui~uSXdzUy>dx(8W|&3UbC4;PHGSnmLCw6KsC<~n z_}1-COOyA|R#-4nnHwT44Y5xg@hM;X!cDJKbLCsEk(0Tx&?HM} zHOb9|!nQOn2RGJ>L zs@C_PYTHP>A|QO?NLY67x7=D?26n9erp2teLEU?`ywwA2Eh1!!9Lo-eKiP3)!Fuby zFg5!@y8)X_s*hQsw(e-$BJM(_Xiq#fbYEGdjh-4hXiEA7$2+dcUf{sHqK{LzIaxTV zByW#nIy@7;^7!b945Bc#6G~4~eXYJw|HAp{Z`(H;4;!@Sn7hg{ z&v(2m5;$n^p(Sl}$0)XE(hno?tox9D^wXOk4zpn=bCGGd7u-=4$h@_r60C0j-nCh} zXFp#WfAUr1n{>oxVvar;OlyktBRguF#)6PbxH}E>#i#^ zTA45Q+hY@v6jTuC%#y}2-abz-;U~oNB`DacdO$Jx`LG?sAm(hE(c!Opm#4mpN-?|G zE?%`1&)naAa)DlHV}V`R(^67ltfScK5MMo|rlf+gmxved=|0+ff~Of?*7dT!ydXs- zuM=yQ*O60xK7_XO?FCGF3d75?Um+fmA7(-o)rtPUu=lDy|iS) zI^e;*;CVMrNq@bY{Nme}kI{S+AN%gyvXlC37vy@5f#YU<@aTQ&o~ojtEjM(nL*|cc zImPn=UGq*(WF6ErI7hGQj#Z`jA=2V>hPuFGVRS#vyed^i3ewqlf%jFma^e_*m+D@4 zh+mR=O|~!8Vqmo(;mY9V2R8P1w;yt#;&J!-f4#YD0 zXd}^6vyYGadbpBQ!`o|1mt@0q-sMUQ-*sn;<}zMOWa?;fF|Xfw^|12*Hr}JO&kS8O zG=s`P<1z(w#u;KeC$Pm|}BS8E3o&eRk+^l*-ywNl@{ zQ=Jl|ayZ?hEcnxx6};`!TxWa6aG+SIy_`uri*$>U~TdnoOTp_Vne2hbp*j zS6GEi1D+o4?yaXf-*!tnV-mf;|G{HhwPYL@mWErpFK}tHX?wJqJc$k$W6wUF`jXi} zszm+S?3NQr-LSb<4%IQM=UHmD#BGeND%>yLxyc-$3*{fb`!GN9mQKcWW|?CSnf2k> zvxJfs9V6Ld)2DMw>d^PQ!Se5YViQ`Rbs-$S5Eu9-dv2PbY z*JnEp6WJra#5dF*9>FZbJCfQ>0zeGB$ z;C>-@C9O0(l(51ljHVTA1bs$sWfXXhkLeZ3u;$NZukwn zeR$H0eM2(*Km^0xkB41T$0GgQ)Skwcj?cfdb;z4(bhSt|7?fAyZpv4EV(Hm0UtKJi ze8!x&_~N>tC?{H~lkr`DLz`7HJ7c0);{)dyA|_pn{1cffw+@N=PI7@(z4Vqu5Jj0$!}bY8WO?_fU-{hBZ!oqLe-p&01{ za#6_$Uw>ljt533y>=-gcT<7c%CQBk5`!F?H}R#6@8Cg}>_>H$I};uj!TvPUe=#*&^5LZrtfBMkw^>|L zu0_8VGG?(jF!p+&W+Zp2PW)4~vT5`4Xl!bG&IETM6aD*J6k+M|c5>&7SGBd*KYqEJtuOf_dEA43rq~BJ1U`#UU42fAzEkByE6g9MUb($9 zB+D1$QjAd+C^4CkDNl4}U7BK0TfpM;v$MTetTnVzJ!SP){Iv?X7?fLeQ6{_!`&sGJ z3$+bRbm<8c)|nGTyrl7Uwq^6 z`9{0KSKHSaV1G6i-Dk40AOj(Z$=R~jbK+9OW6o$ws(>-*lTbf;% z5T7=={L-VhFi4BkF(11_gF45UFRQdT5J6cr|yny{(^aPo!k6uvgJ z7aYEz6;bF$H+pAe)lS4is5C6vW6=0fAD1(6*UL@khulvGotomsF<}2VI4vSoZAfYN z;oudcJYvQR<9;O1Defdtc^`60OPO7&xe`M!nnYh0S>fwiqP?hu|L`KgwH%3jtHPln zUttj*yT>Gxlwr>>hHXWcudii=lztS!w8rEvRb0y*_fmUWdh;#II~P7VZZXrQfw%y{ zkH(rN8?QEX>n#=bdz0!P{WAv!i9ryS`V%NEdCTcEo`X29# ztn;lmB^R19uvcuDj=VWYwJdpl#>CPz=j|l>CA3RbszDMQ6_ZJshu;ofE9~BP_ECO) zsPjQ*b`|4-91s30t5+v{<6=K?Nd|ghVBYNLy-&Lt8GbI|amHY#gJZSE>2JjyGFBOh zm4=4-^tAy_7eq+hqi|F+{AjC%-+9ic)V(0-?55~R_7&7TF22yzMWd^$nDq8cI}Q`! zeiQZ+!Q~ISYMQSd7Oai*Yo;sp2)J|K8}G=cq*($EiZkcGU?`BzLX_>(wt4`s$7CABLU_F#P^|ii#IsXRpm(wzd z74G{(t@FueDy15UAGhKJopjYni3lQC>h|eJBhNLLFH!2cBv;)x6H)avsf39B#PI5oa!u z?yQNuB=+Lxjq6>x)OGkegDd_A9sf^8Dd(Bn9`Ep|YF*$H*DKJ}-?{hV3ssen*V{+s zW}S9bnJ$>LEZoMaJ=aX7B}AM%ox})Bk}-%xQaA31)DH(gxQk=#-?Nby_J;pCmuRN6 zslA>~btlJ7ll!V_i^Ru@Oxnza{BJB)qTxDqw!Aia<#t<3SL~%8c>{el2QOB*iFN8Q z&eEZDl75zBSFh^W&4hDPvWsdH1lt=L3La5k#BtfTmOAaR?TI~>I(pWNPKxzxe?Z@f zPJziC3d8nj)n?(d1k~&5fSR*c5M1*S-~JcbR?l!}C%54O|4XS-uBYj{eX@0cPBo`|JX zR2L?z&)|lhhcdB#mB4e=#$*TbRO+%y2m8VseHzVf(+aBM zR22KV&=~YiQ%a8Kx*R8Z=k?a(>w7jf+6H+pvAcQYbH`FG#$SI*d9f``>M@)8*8S!x zJ)Y`yO#QVT?S+|xupb|lOwacw*5bKh@IFgn_MCfdZS8)tBNhsBSLR&QP4d>_gEavpOsDAk(OVK8QJZxGpp^p|`Zh!+5djN>lwN-$D6pF-mOugX@#WVuE8X ze%iWZs@XbQ9;`C8J@x=0vuN6dCT!zj~hmsl)6qH$G6^;8Qa(8Xy4eGWS_5 zc`$)CMe>v|{891jd4{|P_6zPfnMKc-6;w}sAZ;Q1{7O-k*Cuc)`gu6NX5PuU{%ds@ zycgRQe7)~Ki%^rgY#3ja%sYAR{nSUVBdM2V(z4Vz)+yc_TKcKWde#;Uc5<9pXC=Xx z-EmcTtSs7g?BcSJ9iDaYlSRV}&BFUy8x(C;he}>QgnbE3NzK8pK3PBPfTGB`Cz4jB zA`+qPy?h%uJGh-x`hq60eVGTZJR^x$6CU>vN*QHxg#CJST{fdl*S)R7!Aegkt67=o zw4zQhO`CY-*aqQ6g_%v@C>OnwPV}BHOdp5_|()EajtJ-|m=<;j@dTk430 z25R}0qTGms2T3fw_6w{@*jY0@nErJ3CQnl7Bm1n%moXp5a5Ohamc5i=|8Uglj0NHd zR2D_qaag6W1)I~*S~RTc1oP;9^hoEGH(yBx_Vsa#yj8$c#nlu0%^` zV#Yk5=X2`*a8fERZ~CTKeWn#r!ISDaUWt-GYtb8IiWbY`m6mepf-U^~)PhddeFr?0 zKCqRPSA7W+tyVAF3aqcVU7Q+8bmXCEr{oD%>1U2E53%m0_ZWK*Z6?qd&GKLNP$yly zfOSs7D(x=WOdMe(Qt#Rar|;u&_rGlz2VCt>98`%Fe~@wRw?E;9HbT$nu~^ zs}KEsgXokGDDgF|n7G0U<0IPZnv<6r)!lu=cC{Z z>8v6lXC6ZnEx)KG)r9{kZJsnzPwuLBXJ`T%OvOL|svy&}V7YqQ6%ynf_rn-(K( z-7fl7%0uKYE}16}hbByD8<5sFombvmwA9|Yg}_CL?O z&M`|Ax5E@Nr8(t`8R65p{Mgu4w0V_6!tFIzcx!<@5q0!KkK2AvG2s@luN zpVk#%&zyVZ`5}Ch)x$oAVzg+2Fs!}65`T1VpzLB%x99yN@rGpB|A?KEsO)y)A-fP= zE;YwC*owPfwsbMfdQWF=zE=jh4{Y<#6 zMooaA?X?u;(T;CSGsjk{R!oZv1g1Idc7hh^eXw};Jx)CEf#tH$@Ys@^yYYLKR(y^O z(ka$AI$j9{DkKZUY3yTudaIZsUjrN;A5*GS+f2+h2>XL``4njB$D`c3qh8;MJHH^<-VgpVK|87M}C>R{AFRB>Yq)#`UF_ z2F*_&J5MY{#CQd8wr1OG`$T>FXr__qY8D#8^&0<-_12^5*2THtL5oUV^Eq#G}*6YOIT3)bqApC8pg3%>e5An}8>;*$BXJ4{a+F&=2X({jM&R6qM5 zSEy=sKyB+VSwN}DMwmu8LHl&$V&&zgl9Ckl9N8xZOvYbWxh|I})J!^CF}aL!JKwiA zTVm-Y#n<-sB-m4AyA4*JpMrhcbe=;%!e^zq5Y&MMvu;mL=1)`9_hpKHOpKOuj`6 z@|y__3tqZ6@2h?+DX$uVFVi&1G zW?6mTYV&FeZ67uE@{F|O2U8^_+x?@{&S>7Of4Q4UL|r>)a2qyv`*1x~vS; z5niE{<)6GYKh|tPLdbS%^<7^mlN1ZNz^7?<<(o-Hmx75zs2dybxb#LXJJm~7nd71? zDve2Nhww>BBpxib*;&1$8ydO$ZEQW5fJo}N)rS6)&FUs#kWJwK=64^q-_fHPEm;ZK?3RK_Nen zx0rGGz*GXwCNF=q>Js)$E79nq4hm=Vv=7^ zJH1MO!Az82Ug~SblH>)&8(d|&N_pZ9-9@9Cns>ObxeehYQ{Kice5tmQmn2HDXf~i( z5vFotDE_^BYb}p~%qQ=U8P~ir_RGC^nkZ+-VRN7$;w??-V3Fr&JGcA3hxhaLmBbgl zx{rDP-hmWu*|QEZ&cZ>j1IEe)R)o=CD$@>GPPSd67r)Cz=1_SifLisN@5Wh?(ZZP! zNzo2%vYx!tYp-n|NOf0S@u`+hznI~@$s(_J&|Y6c(WGu9YMNzAmB5JgKB}Ww z_YCXnQYOBPC-K)BeO+wWN4)gu+gK-T>o$V%{a&f?3=N+zvRFDT{P=Dl`3SEDSvX#l zx8q={w8mw>%9_U%Xwwf)VZV_t3zW_r$ZTzAJcF5Dm=$xi+l_WZ)2~ z?(DWU+Ujvze%OD=-Lk(YDkkz?Yp#D{u)^tluEe#W8zwC`0tuBWKKDzzP@OO9 z=8^tPaMXuqEcd`8G>-B7#mX_MDc{}$Rucvm`yTL?UL43&InyvKEA;`xOjvRxY~Qrd z*VKNxaMEDui*y}6Cne@N%N5MIZQ5FnN%TyeWkpI%wS{_u`hVAFlH>;i`Df*V?k@a-C}`{x{*rEAGF z143L6_h4b`T&EO!AGQ|e=ahO@zaDes=#`iU$6R;bI$$VDTeuU5558@RW8-sw!Vx9w z@Q^}Puv8>CB!D!y$KAYZknOnV@em??m3057gIyDX2Qj1aBywf$iLZ_b#tfNgt#g`O ziK^yID_b`0ztzs5EHva=&oRI3F2Zp+gZPkk_6vGr6La!Gp}UqF-I}K2F3Cp^H;dh0 z_DscZ{d$UnW^?YPlc%{zNx@1jhbeH32}yM8P|7KG5nPD7cXvkoC>gQr|@3992g-Q9b%Mu z>CC9kE4g=$Tqn#Xvn|$2tG!r?Nn{Phr|*b3v<=iu-HTnB`eV3G}-cNJbxB9n9RCsqtHKUQTJ03X_ zm1flM>^_}Dv4X+nqT@XuHRMC?PQmYilmEtBRY|-=2V4HD)2!ya3r6it=14c{rsy#W z#T6fGky=W4J{9mKn@?57HPnToG;HQ}sFsO4eIsO4HhHjkur z9$w20IexNA7O%%s{tjGbM`%WlVQlgTk&TY|ck-5p<8DM7aavx_nw;^?V>!NWRdT;*kWF3+2S0C5Ls|W-gc!J)txw2-{}dwoN{Heyb^m!Vhx@E9~2d z>#a+eGnR`cVUY)lHJ_lHlJ-3jmhX0XMqs|>LXx_ECbE8|yDO;bxexPs)raFxBbsYrzvz`sLCPk!EpYmk`LV{9O15g@OUhXT=G^C-g9RTe z(DR=baF?;|Auv|Bhc0e6w%nafG;*k}K;Uicn|A6tOd>iKT@lx9178}-WT6RfcV^f>e~5eyc;iv$XR== zWXl5Z&s`AKJ^6|3hW}Jc390N&=0iuf7mZV;_vcRuYw4On=zmZra+{4Q3Bq?_t<~e#N2fKXuMJ+>VovuOppW#CGtG zte1@BQ*vkF*lDKdlTrH~2nMW4%g4E1<|_&p?fk8ph1PbYoy+U1x4ZdYbVk_9VCCcGU-!1)ltlO0_4K+1AHSnh51k~>;guec_9Qm_K)1s{J=)Q& zTsAd=`%YL!m*ZZTsOsr(#xcQ;P5v{zRvyKy`xMZhY%Py?J88%U(#CgWZ}U3KI_Qer z);-gG_fqu*bvF+2D0Kn#Tx>yNGq=RbcV{Zaf?oN5YX~Q4yTtFSb6c=s{PsP`kC(oh z%8OHYZ-lY6FuKr-Vo!0&9=Rxa@s)K+czg9$wqi7EyOzx&@4!*M=)SK93iImoN#zAU zzL+9CK$$Q|fThWPA-h0g|K>o-ROI=sMlb8A1az@$atG;?p4$6(1T$ot($d^S$GK$| zaZzOC+|gtBVs7WYP$`l2R&yYu(Idi;I!u=?eGh>8q8^3@2edrT`Hf+(A z1K6fLeAhnCVANuK!=_4nm>BgUSoECLu-5_o5V`sz`1I>}oXj24TT)90@%%eJPVeCP zbI+Tj5uD~!*uW}M`qm*owWC+vdowOATV%7;gtKhFYIbLpy2wqoF9yuLvP1p>0))pr z1v69p2!==WsAtbhYI1xgccSAuX=TVXcPWi%EcS$=2Aiz%i!>@7?eO9&+qx4BRcrit zu}TlopDGD$_U$LmpV+@8(c4u*qH)n|Tho(MDt-%>oB`kDQ~b5Eu_yVi7Ja9jWXcB_ zCn!3i(5eX>tObY#IKN!smuk9nz1xw};$*#$fbEraTC_KQGgdvkt+$vtHwRYp4>f5Y zJhI-$r#ZLuI{ay3x5qh^1lq|LSsgB!9}DjUGmDxNm`90!4X=_*Joy|Q{Vs!j<6P2n z98vqehP&AcF-k_w0k=-$*A=sQy02f_N497t zllOeOEh(S7^%|R5=O?visZ3;bH(K?`yjO{2$;M{yGp6!S_gOpoeXzih-iSM^{Vpd{ zd3AyGz%o|t4Z-BaZ;H=OlDjqDT^$x*$ftb2@0*dL@tw)1bgRpz(GeSoIZRgHwx!6^ z!t=gL5ngZ8u?RG1ciwKK(g-czc%>0CtxAs`rq1A)jWaFaFdoM7K`E%w^a##LQP}UV z^iC@i$fB!DUyJ7trZw9Pk?_Y9J)Cl@4x>z-|G63&m6F|JYh z;01^E&wnz1MCRo8e(UTFxoc`9i?N(1vu21d({Stz*tRIQ-#fHlIhR3xGM&v{duL+) zVnFI=oyYEON6WZv_PvUu=~=U04@}@zPrfyoU-`wALE~az;J0~6?TPYRgOivBukzfL z&6(x*OIr=qT!AI|T;W6sffpH+=y+luJBeD%c<}2f?l=)>@;%3PoE`hTWt+di&BwOntj@w6LOfG0f7m;2*hhak&k{|m>wBLiu5Vv-6K(QU2 zR--hhLd41O4)=)jOlbonor}YngdT$Yd&w~xAM2Jf4H#o<-kr|2SvEb*U!Qu=@47ox zE<^C~C5u}MX4?4ZA$_fnza*VYSUy5j;i!ZY6~dbK!u>iEbD)g?T6v}IKF*`+m$+@_ z&nmV^yUkvfJF-g3s*KCMTv9sa+BaWy$Su8BST*0h>`i#qmKTRAW!0=2dx3Y5Pd(SR z`jR^*?3W@+OB({Ny2iW7b|^kI@T|9v46YlDK6UUI2TQT;QlOhtaw z*y$U|;{2vV5<6=@{{^3|lfBVAmUW=%-07)!ZI8_AoOk%eikqi#7M<-G*Uu8v88p26 z@H|_1+Z!Xy^TsJR{oo@R#{{OyjBZ(6=B#cWBonG2HX?Q+%nai_pEO<1$W>HMD34wh zxbf;5o&>3Oi^6Ni5Qb*l9X%W|1=ZVz8Xkp;x@TQEsS48bbPB@SyO@Op)9ifTzU+FU zWRz#gaM;#}>wQ^q2IFBd`UfPr_4}Q#-ZAigOMN4=8%tJyXp&8;-$)};nSP$|4*AhM z-_OFMF)Yg?ymWR&9vWFTv?(@WE?6U@9yy@BJ z2)$2^Jp?{iaGQmn57h>vL9*p?F2GmiMA6u9a9} zjn5Dg8g(q*QxY<0h1}oo)os!QDmxVg6 zm~Y*8aS=Eb!`VnZG{Pk@)w= zP79f6%btp*%9EQ7z^fIYV1FJNU0_Sgqo2jA|m z9vHCofAxUx|F0hKeM9AY#o!5k9Ps65*i1HSTb{1?q)=x){x(?&Z3ABif304Lw(zLw zRU3Riv9KrR1X=hhG(%u(fMrfZEZ0avSWmeV-?t-?M_5C4#BzSXBMOM+5sC=g1uU}? zU|>m<5zM?L_kDkRJ$0Q%Y*(X&ure1BwgA`>U_JE_%Snt8*46~r9mM{b@er&*1Z)c8 zxJQ76>bJcImZu`DZ5qO&r2}4(`MxRt7li$n-w0Sfhp;2VKdy(iW4?jdPlPAJE&-bw zfZ!T%e9-oLSq%zAJMdt^27f?h;iSv=mpMeP->qi^VmszYghh)+*e+lpKax9$X$OBmWdP_l_P^CH6>)z4Z^s`$*e`Uv zkhKNNWzs;sz(VVh?Qh2)*dMZfGBEAn52$Pb-7ty&cl~z>YRCWO{`)Ka(9#k5$p8zr z3)%jzex6`|$olQheaLnE70YBHj`Od!`G2{t2GlQ;{l7bo-MQ;`j`#m}`@0^3IQd_; zAD(-5b)Ua2!T;~}LkFty2iJegyklK-i^Y^52z|5k%NjV9|sStRalBh9U@yCJHRjzX@1fIz*nnOOLSd zIX%2IBMe$ASpF7Rbg;YySPBM&A2qO$e=AsT0`@Nr);8gM$`tAHI#5c6*v zz)!*YaKNl(i1mSh+rj!Ez(auV0$v6j3wR$BqCF0P$pPB}J_y(eFfZT;z;b}y0G|SU z8}KE-_JFMbM*(&M91S=Wuo>WVz>$D!0VBuL6*M$@_%eyZi1xtF|93tM7v65g84}SQzI<2vl_q}^k6vy!bSiKZ3kIAP+tN!B0m0AAK3n1^)dZe59D8P z5V72o17Qt05q1e!XgkR62lZKSBiawur*RnU2eeP-2!bI$5-zYF*d-nW%kUy>DzMP@ zkcC$V-Gf+qfrds5Ry^fL)L#QE#8{9cu<*PG`NJ*AFZ^+S;ZKUR9zv*o$e%}=l~!`U|T>tpgigc{Ne52?T@pE{~IL#0^kpC|8D>Nzv+)$Kkgp>L!f>T z9{*|`a{YL}>5p7L{vQ4_p#Gno|K05;_=P`o{-6dR*H5^If6@e^|3T+(X%GF0e$#(< z{qWaV!2j7KqCV(2#rvJVzx-GI`iS^L_D2W)8c6=jdz`=B{@Ab@h=KogB>$72er!K< zT*&^Iz~B5A{v!teK7IzUvwzzD-Twci{gD6fwBOL^e;z;F|9{(l44_{yl74I8{K5O% z?y_5d`0IVZKMlzr|0p7#!nfI7;0(1N4VJ%1fPX8JKj~li!{!9v3w&RY{+csC#_wOn z-)?`X{bor1e|7x3{UQCGk^G&&{X3}tK=~7X%yB?e`1ynCKZyO~_|J|M|1!q^KL5M@ zq4uL8`6KtAE)#@5TsX)du0M4Al1ToPK!51`cbWd&A3Fc={q8Qv<4=M4|2%$p{ZRhl zN2>oX#~hx%XqJO5uqs{b-l{i&A``SXYRVg7r?&tCpe{oi$l2?3q|8%XuWAzP#ou!z|G$c#-StEBhi)W)==?*+hd4^ad;Rd^hVKL3 zx1jNV4#|H5@Xy-6+y7trSK!C_3o{Mk`r%jp(De@)lK&yVKl6vKzv0*KM4(|@Nd7+C zd)E*7!^a;qF#i-r^8c&&-R%#Je<7egF|Z$qk>eNMp56Y?`SSqt#S_3E;$Qhg=kK2$ zKXm>~!SSC0^+Wut`l0w`6h`zLP2dmlul%9>o!^G=zX<#x{*^zJ|E$G-oc}`%#Xrf_ zliwo+S$`;h8-Vs3gZd% zWBGv4_4n$}Q~zx{?Z&2Rc=BKh-s{a*crNdBq6>Hi$bpXB!M z)!&Td@A;elZ;||$e$#&x$=}fX_l|!7$-nD2{Wp>PWqf|Gemub+@0S<+raujmKeO-e z)z6OPAMu<1f=K>oe!o}09Fo87Z~AK>`H%djzdn+`hX3y!zcrG7&2Rd7R_`PZIch_2(h^d;X?>HIo0*Z~Av3`5OlP-tmtj`FH)M|0g7Wnc&~6A5#da z|No{xA9%kAnolx^AnJ$ah46VWeE!F_^5Z;hWp}->dm&qZzwZae8L$`dTO`l}njb>- zjJ!hB6Y&ONq50%~Xai`$f4TjYP9)txpI+3~DScNw!9xNH6UajGMAG+1C#cW;OeZLw zQc+x|`>?=)#}1?wbUlw8Pa5w~JDz@}6BJLVu2UvbJVE!5kmIQf#pCH$IzjP->N*9% zCQQ5Y(_Zlu(U02s=~p^I@r3F+h5pTWLVJ(e@$@U5pm;)codRG9X?K3Yf=@PK1$n%y zLGgI{l}=DRp}J04u)u-O#c5y=G=m{jA7LBG&(G-GB13 zU+Lue>5oqE^Lrb_6a0SWpLp6k;(w*npLjxO=eujX`x8%l$J4KL`V&tG?IL%@6MW3O zz7H|dLF3)hXE1)P{Wy-%>@nWie*JN~z0c5p)|y}GUZ$ZVEpNKKbOmA zSHJtC)6X@6FZJKm@BZktw@y_so#5AY(Dj`i!O`yP@dEcB$1w`9!AOSU_Z?}ZAuRHF_-|n@m`?B} zLt4SQ;rD{96Tc^F>%@(u6MU`-FUUF-c%imVhj;b6-TENw#O#gQI`ILW;Pa=y%1%_aO-@yff^noliFEI2+ZJh*xPRuZk z{whB)2cWi2LZIJ4I_;I8_ybW}Ct)O=VEDZt_dAUs)Yj?Pu6_p>2+{|#P=2xvMs1x$ zK|KBPx+Uc2Iw7L(zyDbb==7`k(?}?4>m&|zVupnTJf`-{Wbcb*Zbt&`;6 z?00BUsI8OK-|TnH(WtEx4^qFw0z((_yg=p-YU?C`)bIZ21Of%gh#>X5KRO`^1khwx zzx&zufJkBx{jDn&VMpQ+_AB&;1JZ6~;(zR)NUQ&2(R5e8`=is|r_pRzzx$)p-Z~i~ z^*iLx`;ufJ`jO%NAN!LNG$11Fx-09)?T}Xg$D$EZzx$)p&rhW>QosA7)6aF%g)QFw zxoAAF8Pu&(^Fco<__04J!7rL&1y$ZR*Mqect_i%^aJ}$h4|qY=iKGyck0c z@Lkpa{-;m7bb_}QYCdEkol?tCTc>T9PH;`2c!Et6z87SjG|Ew1r!Po4A>SW|;;9S8 zb%I~_?~bRvbc%S2+VQmUH+4d*L~WhwU;(r{o{;a;LH(`<#dU&zPX(UCq4zmq_|rU& z>hpq?T{^)9g2p+>Lh*#^^MW0apP+d9GcQ2&C*Lo7LiKsU=HJu_ z)#n9`U|s;_r$6%owTd6!ObfgpV#`)6K&h#U9^ z!{C}Q!yfQ>`ZF(piSU!M2J$#FY#m&uKl6g0hy+{o?QiOY>hprFzo`?d&kI_S^3$Jr z!O#1hHEc2Tehb_pzt3q{g}Coj11z)`AMgTI-siM|wHH3#!E^Y}-sgmL>Z<cEfNfzAHo%>keZq!Z>II-w2z z*nU*gi3drieS7Gn@gB8xVua}g#S*-8pzooR?GS3~6amu(o{J!@_Ud>1!>FxOGxJJf7eMIX^)4@op6sAiMh=8PfkqK>ZGF;qU1L#oK?IWd%C@>$(Lr z5Sng}d_w3`v+|=(ePBCOdB5c#ti5neAf1rkH-~iU`i$B-@gnJj{5cFrr=>5btIrTCpKdvTCQyDl1sa5`6aUta?MF48IFWQx-9smhZPeC@9i|J^@8A+C@1c|J4r=T4 z0O$nQ>Q8w$Da zzP^KW>cao=e@9SFCp;vbptOS=PfG--t<(Np{SMxRAblVU#S;k;YU^YJ3m~Y^!7Xxr zVkSoDGXgAJOL&Pu7?gRwx=SZ`qoFv0ETq#C$&c}bYC2tm=>*pViYes$1nGoEhT1w^ zN74y-yn}S|L~)($kaU9Po5=l6h8(ryNdwmB;B#>3{X675UO<7+hoAE2I-$z@2(;p^ zFqP2IYJflo0lxsu1GpBj2;e%vvViLWp91_6@HxN@fDHgQ0=5F&1lSI6GhjEsEr9(2 zw*rm?+y*!ia6IS`4*(|sE(DwixDs#@;6}j7fL{Yn0sJ2DJ;2j|+d=)G0Cxc11l$Q2 zTLPhX7hn>=uK?2lehv5#;5UGI0e1ry1^gDU9N-?ns(^a|p9kCr*bwkLz?T8{1GWb| z0N5SyAm9MN?*T^v9s-;MI2Ujh;KzWA0OtXI4mclh6W{{CZvYnp9s*nhcm{9@;Lm_d z0q+1V1B@q$I3MMJDFIgiW(Hgdm<#Z8z`}s50Lucd2CNEr7_bT85x_2hM*&9y{s1@| z@EG7~z~g{>08aq^2zV0kJ}E@|rT{Ylo(3!kcm}X4;E#YW0$u=Y2{;}M&`y9800#h0 z1RMuA32-*xWWeQsQvf#sz6ZDua4O(wz-fTL0!|0K|2U$(8Gva3-v`VII1{ia;0J)U zC=vd5z(h?6tcUua8ephDX#s}%%SFIY|1bm$^#^mnP=B`u4E5I=fT8~A1o&V54=~i< zd;mlFE(kD`KO+D``6?DLls}UIL-{itd<9!U4xvK@B#&s%Yrs#zdNaUp0LKHK0-On$^d7=L5AY^f?*W)h9?>38z#M?R z0E+`20IUW$46q5{`+yw*=L3!aTnRWEa1Y=ofF}Ug0WJmn5pWJ*w3CSAZ39dP`2TQs z7hqPFYy1C)?gm9b7zC7-5|A7aq&uV;x?$*sp&Kdb7&-(*N}8b?krE^v8kBCOe)s*{ z-^(y^o#U$^q2JO^jM|c_N}4&)5p^*(#iW37SyKyC#(MpXhop88*rFgp+aP+lz^1N*eQF4^(JKX>XKp zhD%#wn-4pWYCa;GmoV3x^T02_$GoJu{tcI)6>hnqOa8Td^BCtB&3puy5C5FC&42y; z0<*capPT!nUnBDoU_K(6oBOC=)<2n>*9d-D{$y^R6Z|s#$=p1q`8EENxjD!G*uOyb zE62ir?cWkJx5vlV@iphXH}`dX%{k*8{{WNv_(w9=%{L$R@Y=b)*m+#DVmr6X*B3jF z$2>p}O}F#+|KjUYGoK&%-xpxNJ`M8_A9H`^bA8OyGN0#To|$$ zfAlf0Xbzk`ex)NgfOh$nn3wS}ugtuxk9ig5<$TPSGXLDid>QjnKIW0koy%^2_Xy_p zkp9{I)6S1@eC#q3Udm^#@$<`Z!KFXT4Dhb~*MIDBv6tZT?tZX}yidC6zy2HiuTTFg zK1<7f`>U;${T^4r?RO~YSMgtu2XB8#z}w}&;PXgk2S=Naglb!5zgMxJVWfYh{~P;l zZ|<1p!`FTXv7aGi*#D9J?qv4aexx@aZ(rp0&QaOjzJX*2`L?y62XIB0k2&LiOf)oG z5@u-{||sdvDhGyhGOu4ZGqn~$VwqviI#&wlz>W&cUV|G2&N_5ai!U^c9n z`H=mV+fDZSSar9*el=VMka~aYa_lA8$J|Z-Isdh<+2)v!RBY0}?YHblP4=7Adk~yJ+dGW?Ojyh9e`QkdRmx z&Nd$bY^UDu0QNJ8T=joszwP&^_5S4k?O)B^zJX*2sc+74`ig&ex8Hl$|C9Uo-`(%w z|M30Pn`eKf(7=57x_|%O{cfoj{15N;XC)2IM*!QY@85rSzumpzAHK71ZC-h^&-NnU zm)M`p+KaqS_2+eJ;9uOom$)zU3zXNj^nYqpV88v@!2juf59jOuTlPCWKa&h#yCvlI z_N(L0;2dNSDNZs#KKUUvS`7w6);f1e7VzoN&c-!18U9QqTw{N9WF9*lfnaOr|u|5VnW<`V0tmptNn z7q<5*K6`z)9nI}}%z?keJjaQF-e;xBfa9*`$G5OPuAg5L_Ae0EL;2$Pme!jG!IJoK zxFyP$$G5WH{Bme_d?@aW@-^|Tt@k&_AAcVg^Q7Bu+5SNM7VFK8x8H=l_~Y^`-x|Nw z`nQfxWn4?;yWqE3|JLyd#!XeeAAY;_Zyldixc$lx$A?<~*6|6$Jy(7Leuwq`|2jSi zPr2igk(A>z6Ym{H`!!r@ar+06!^tK1$kx4e#|>e=fjma8#e1jaTmB|qAlK{d$^!S19 z_Gm`WLT^DYOm9xFKo6$ZrT3$Ep!c8;r1z%JruU_rZsfMV z1N~ikEBea=?(wrVJty-ZdIfqHdRux&`e1rX`V9I&`YQSW`XPFM`dNA}`eS-0dW^u7pz&VM*VHZF951hzp_|*&>ka7U_;@{tZnnqk z!|CSy@_Go}?4Q@S)6M>Q{TSVxZ(hGaH@BbHU(pBAlQnbOXU->Yo{?_OKd*mIH|LMn z>(b5n;`RP?bNszNnQqQ6uYXH7x0lzi(9QYk^*GJl`pxa@^_+Bb{&>9%-P~Wi9!NLm zo7cP2&H3c@>kHiZX3ih4k77QUKAmoEe{U|oFJ#U?uPK8`0?~i0Jf%uPI^*ff>`KI(Bw%`6cn7xG1 zo4M+DjNX{;|Hd7U=JX(XAbl0R1^qs~2|d8Cy!Tm4`Z#(c`Z2ov`^>SKWxYu<=ApA( ze}^78$MtvVAtA1tmpI-fbhhj7(O2P9(8K1sc}jZ7V%O#M@qPOH%>9i%>#ga*QCx3B4~*)1Tba|%?~8et5PExhDBb*it#`Rkk3;v5=9U+i z9!97B5hr`O#~ry}{4wAYcW-_3=IY;c5C5jq>+#jw%yf?@GS9JI&LDSW^r7@ZbaOs>Utf}L&PT5|p_}`+*Spfq`R4V3 z^jq{v^c*aIK0OzG72TY_-q&xTmuG&Eew+EvbaVgl{3Ch{e6+r9f6e{HnG$!K>7D6y>E`=gZ+Y$L=jbEo=65B$`FQ$fmOqbf{%zfxucn)=_WIJ7 z?)<8Y-^si){RBObex2Tk{u{jy%S+ME9gkqt9SC#C$7#4D%E8vGl8S^L>xEyhrq*^yvNF{`JKB(}yw7PXCGi z8GQu3G5s>VH+?jHEd2|Xzmz_P`8IlP=Evz{ng327M^75;wznxhD}6EZ0(A5925*0> z(euzd&@@&ELs-+uw*jp5BW- zo#juU&!8`*&!lgq&!Zot_hETg>0RkB=+)_ohq&#%$k%6~-=LSKo7a=x_BN$Ip!eZ? zIzsQx+`J#5=ZDbmGM`3I&U`Js27Na@CH*qJBVYf3o`QMYp>F$6GEYS}-#>Wk&qrTL zuS6ff*Egp(p!cB{rcb0#pwFWZrf;I(h~n0FoZgK2HF|0K?{xF?R&VzKwn93&hmHBe_;MIeF5{xBi#0U&HN*JKIR4J z8R(Vh>+#*_X_=3qr=l;W|B7GD{b7}K=HJo}(bv$g&`;B!($~@Bk96Dr9X%a=BRxO8 z9NSZxzL|LgdK%{4>1F9->09t8=|h;`q;F&XJAFGn@hG=_)$nuK{}S{}%y-}m(ark` zc;|lwdJlR7dJB4AdK3CsdM5f*`bYG2bo2eSxBUI|;><77yD@)8KSO_awA-JF_zd)2 z%!|@@)63Iy;+xR-Fz-pP#e5q54)gu=z4RaHSLk=?@%j1}^nJ`@jd9yMjCmHic|Uz` z|BKQm)2q_w(VNiUq4%Tv)928?XMJnwKhqD;!{}l3OY{fy5iBqAShu}{=0Xer>5to z|H%3S=rx(wqSvPPrys+I&`UAjKu5bZ^gVey*0fv zy$yX5y)Atc{U*!%iC&cX8+rge<#@L}S?Pu7iKDvnvj+Vo&!3&?$(WC$C#A2Zze7Js zk4}F|Pe@NO!L9#YdI5SOdL8;h*593;g!xo@SN8YR8Tb8VU-~`zRr)skHTos`b^0@U z7mi2biEjJ)F^_lFEq^#Y4LuwFLwt66NqQoBefr1rzVxZ|8T8{Ue+|7S{TSW6&x`l? zagpAR{)pb59%Yi-{_gao^xpKebo0A(-tuzMYtXCH-=lY?r=X9azvA{;L{G_lH$6T5 zBE1Ox75!tn|5t8%^V5sd1L^hY=J$iV?HxeRPM=MG&Gu}jCuja6y)OMOy*NF=WVil0 z^vv|y^m6ns=pE^`=;P=$=}YJxINrPIv$#EfrVpmSrcc8snc}u*0rQOX0?Z51?=i1S ze@G9eKcdg2N9XHz(N{D7iT)w;XY|L+lk@uF2|ejlw|zVGv zmHr#OHGLq<>qj5O{7ZTebNPGg-Hl9(9J>AM>N*aF=gpy6eA<=I8g3nFM>&$bNq2f!toAdjI`bnu%XU^HJG+*w5Y3 z@bmLGUvDp6V!7PNa#x${bDFC{y{luIKQxWveHPvOulu`h`>9>eZu61Pd{_~h!2HKt zLSneQ6W8S~mb=C*w~)Qc+suD0*L>z(_%d%B&G*cH<;;iOME@k-*w5d)70vGxC3gM) zumAR*<&JM4I~!j0`4}q8<#-3AHdmTU zhz0hN+(iIAm<(n4-`M4v&ux|EhMLdE%W^s10XfW-=Hf3mSVq;kKG-hLTvpjM>$0nh zV?MmA-Kk{Se|}M4y7NC@g5S=!mSMmCKk9FNtvl8J!wpCfKVIB8v17%I5j|SeDCWWG zKkerKkS$8oXwhTDj1@ah+<5U5$iJ^i>dkq3d-crpzZn1fSLiRW=i%EIPNzSv;xzlC zb6Wh-Oe`lkQi{mls3aJjwYxbraUy?=z=$D-_Lf6_dkdzUvXfQN6tH!R={ z3wVK$!ggumhmt3Sq1-g9h!D++swathfe-I^5<=sH&0go&#Kn0T)k4MVil_S zH}2_Qs8LW*rw#!ff||AO+_`P`4xL&Qk;VM&)Z4GNXD6qzxre!nMs2*x%7YKGQhkHwwJ&?E`!Ir3^D(FXfL7W$H?{)W`10{ zGt%HFpGS@v<6!jBQ7cAE82@;JN%3mNO&;r~m@{KHh~uB?^7{+YG*6u|Hd>tWDG{Vg6*lC*AT+zjp)j5Bzj@!RQ4_7advTaH05xE9ae%@8l=%_XZkO8YYdx=DpkAK_+Zy^^+8H+Z^5<7#UO#wa^tFmt6W%+1chc>e zcaq=y>DJ6&8~oz`>hjA4ubaQg`1>y}mjBlNd5%X9AFjRM?Lq#>zdzaXtl!gsvjflU z{weyo(icbmeE35A^Ob*`aQfuQcTUwhHvNb5CsH2|+%s?Y)x96?Yq@jTuG>4ZhXx&5 zeem)Aya#$5-gM;U_eG8dk1swh>V&-$hfgj$CGJ;8Cykp^b#~I3r)N!_T4!3S85gIA zjA=YN{n+bYE*aT+RMru9hp!scX<(kH0`>-Z+B7Xhv&NDy1cFenw_I_fYs{>oxSI_^tjAlNbwD)&= zpJ}e#O6IFc`tnZlPrr6)pCGO4s$8O6ZoZ!7+1C};^;K>Yb4j}o_9gNV z<@V!_k#--f8>`$k=66WDPV1&97dgZo-}t08_9H~Obj&{{?Q3uAmMT|*c^T5ambSOa zYURfBcOa7XWxKsi)+iU3pFcEZdGU;~x5+x?Ixz1@#>Z_?t}pZcq%Nxp+SuiP&<$#-$rlzWYnwBOd*_1;x3WD1;LoACGZ0Gwn>u;`LAR~AMQIIpC92e z8E0>|Vru)IF@Hm5#(l0_(s^!w{mCpo);pWqBP%YearU^BQ_K65c`-5@>#e3-8Rk{V z>^|08m$~G}thbh0UL%~O{c(!De*`Mm9w%vkW@cS0<)ZO-b&|Poos{d(@+5QPdMh^u zCz%H~Sh;C9$xm=&lv{?A%!`|>+!maq{kfmr-#N-1!%5l~-qtNq?k?^b`KdAXIsIGZ zlFfJLRT{E@G4_1fpj;8=WypfKQ03||Z%KMTlQdRex-cI=7S@11mictj*LOUNn6Dv= z`dD7tsP1*s172SR7-#R7`_+D={n#CsP?lHB7<-(LD0iCqMY1@{JFVO;<`2lvaOaeZ zvcRo330Z>mhADTgnsbsRakrGq#B%bIpR?YF%6-nf3R#NfJyWhJ^Y&zEoL}4U&zHf> z$B|`lv6NfFd=ps~msq(|%rBGWa4D60#yr|WcYMm@(kqvWc~-IlE}L>CnO7q1&-(3o zkXN}t<{iZ2iYnKe$LBG)%Em=>nao_Wib3{uY-zQ;L_Ge@#8)-OzWyt#+$QF`$ZEI> z%AI8X3u(V$x67-nT#>zG1^+uA#ZolgqXU~IX%B5hQmaJz?M3;=rKPKx(gv@n$nHMG- z_;4kdmmwP(XJ6m9SKC*S`4?m$u9I?2n71Yy85hx|3df}*u5m=jT-S$rf3k_W&YoA@ z)OtrSA5AvJ^;B*WbIE47KFZC)%_W-~XTQhnuiR?p`^gq8Z-jC;m_H<28fTwBMk{xO zzvGi^#q!20H?*>QK9X#Wo21-moMao^6y>^ed%R-%><{4Vc{*LW7)#uFoQP~^OhlKI z%rlVfBSPl7kC}f;cJSdoV=ifbP-wSrzS_RpxW;5hW9;jf<;t~Z-kt1ZOhlJ=cs>ut zbvDS}Zfn%?Ih z+Gkz+dhMWcCzzij-FNi{s>>DTzmo23RLImv%wLf1?D=>1cdv=E)GZ+<+1Grb{l4+I z+K=~`XD0g@V;?szC|82HWPfAq@e5O~3{EoG7<>C(SFRGS4mrRWdz|km*Ms>Wav<)B za&wul5RZGM+$QD+$-%g2?ZUslI?wzTIRqC^xo6BHEpx|vsB!l3FPU=bm}eu0;nFBq ziFs{uI4+ZN-I(_wN8oZRH=TJ1ITBY`xlrbN$x+7H$Bk0TU15Hk9BqvE`bD`IU-S4! zj=@z^E+g}NY`Epme zlQ_vaxaZ1U#Yu+XBDW9!_;MR3IoCM5A90m?h?AU$OQzg!ILZ0O*~in=%0*w{&cB4@ z0^EnnWniA0T!_oAT+wW9d6jXCjEm?}mw9t?u|al!^Qz_bVm^Xgf-9=rZ00M-rMS|{ z?PUHvxeQlDxogbtl3yEV&x1P3#a`+5Hxap<G-k?b4W3F1>F6IZx?~Jjx$2{dOFuy`>FvdR5EL83m^Sk6m zW9;jpWy)>L<<1w$O~%;cyh^#-{JcqWGj4-&zp=hII+y&*b;3PwFH-a-04KTI zIQx8=K)DV$$vwCf$_3*j_u?`rHy$Us50^u^g*eImxPr><#z`K)eXiUUoa8}V73CtY za_5WWAzVG>(&8i!<60>92~P3|u9I?Qags-IeU)pBll&exT)A#I$z!;Q%8kTH{(zgU z+&rA*aokenw&5gC;MOX44kvjMw_UlXILTAEgUTiR*4=KBr*Ws0%Ziiy5f`Rh37q5^ z+^@>j$4Q>WJyot3PVy&Qq@eKk%c(fYbGW$5t-wj1$GxlEL7e0T+y~0tz)4=jWm7KF zYImF^f5zok&L1ZkhWkvpA~?xQxQfcv#z|hr)mE-6PVx$_sdAHWl2>sZlv{(7yoT$g z+)QNb?izQTC2!(pD3=u{c?-8lxpFwkUvS?l*BmGLD{hN&!*G(f zar=~8fRns~JFeUwoa9~H1?8^eB=6yFD(AP>9Y4wYxJSw*!%05Cy;kmHoa94Xtd8OD zzol`Kk8nwqYk-q{j7y_jXPo2{TxR9ApK?D@lYEN%M7bd>Px2WqK)G2s$>+Fo%B{pn z{)Vfm+&-M-@3=YU9%~x(AZYgR0F3Wpeyi&Op%q7jAGD()|6G=UyuJ3MXm)F3h`qqjU=YxRH3hJD(-Z-{*TS zj&dL2BopA0C|3w4nGly!xhgnG^LM}AdebRaA17(vAH;K6lxvBTG=FFAx!lV2!%3RI z$Mjr5 za*@7sx36RhTpQ)$;Uvxb)_BY7tlWDzN%Q_8p6jh#MqFOfyw8B=1}RsPxukjj0nd$6 zt}3nxnFcpext`1={c$st8;X-O?~CHCcfNAtagrb4zE*A?PBI;CjdB}slId}ql{<=) zH1F%;ZQm~C&f;#8=I@a`cSyP4m`B^-&WDe1CzMOfJQbM{cTTyFm}ez3;jSo`lewgM z{|ayWepRj{PBIJbk#hBLlIHywyyd-6t`knuyzhYLqI3@b_%{M4Y2J^(b8(cLgOfDx zOW?UA%B{jl=D?*?ZZA$UCoY|GVK~WLxGc)Oz)9xDj_PO=DYta88OB#YvvD3@T9yL}}Ca3RWN#z~s@ zq4D;2sd7belErbWm8*)AH18|m9p}x;HN;7p_gC`VF6BDmBunBBDK`=)`8n={a#L}V z=6z|r^`2918BVe^?uv4uI7#z91K#p}Rqhl{vMlbAayM|2Qdx?`QkBibJ{Nq}J z&722h1za5EGBB5{h)bee0i0wdTuS9C;v~)c4|&HWopOzFl2ve7l#STxoMc^GZ{-T&B|%ZiaHBagvR2^OakKlWdIpTDef1WE0#PxsQ~Kwawjb?~>;IVLX>Zxh%{JkezX#Dp!el1Jb_ji#;yImD}~R`?;QES6n&e zuK(nmWH(%OwaF!$4(>VL@#I2S43b%kX z@6Y4?o_Po5b~E2k_BPJ^&#$9$hnXKE`>?!D%AI6>mh5Ys{rB!J%3WlBlk8`l-QVuY zJ!Jlj?2qfMT;%OM?~}o}{>r6do}L_l8>C!T=AV!Qal@1=!n`Co2scW(^2{X%FyrjM$In%66!Qt>aNO6*_2uuFB}W(+ z(PbLTSxt^K&YlPB)bb87mmFoBJr6c0cM5lb9BrK4-z~~LWG*?zIQx4Kdz5>POBm|T zo3Xef%4K0L`6cd@as_dcIpy|cbGJvV9WLkNswf)eZJ7@wzs2oWt_8oxD7o4=^FP1ul{=ctZJ*>CgY14B zQ*JuzlU&PsPbfDVC%Miz`}p#catm;h>y5Mbqsz*Dhx;ROzbbbaC%FOlSh)*0$&I*I z%H6_AZZgh3??>+*{&Dg*oaAO)LgkX|a>rS63oeCnX>gKTap{%If|J~a%dT8*oaA;~ ze&q_`Btvnfi*jRel6!Ie zl$(!}+=m;k+&Y}(e%u7*w&5fX;ASd!9Cw;Lh+CxG1?G~6aI2JihSlnR1zMlGku+mCKKlypG$ZTv?pt4cva^ zYT+br;*KlV9w&JVcV4+cILTjd*Oi-sll&ETU%BNt$=kT!mD`Auyn~C{GyLPhQJmym zTzuuu;Uw?jk}G!|CwU+DfpWj$Bp=|iDwkldJO3mf;_@n&0Vnwg7oc1|oaAF%S>-;% zNj||W%&y2ILPg^P%gzHH@H_m?F-A1{A%q4#_&i?&JkaCl7lE34+ zDYpP8`NBB+`o52Hn{kpaaf6gQiIaR~oZa7%%H70CzQ&DF&V1?Lx;$igzmfKbo#uaj z6=m2wrCOGd#>RqhL%WK`S?5q%4 zTn(ILT3lS^n&Tutz$H|!J5DkkE~#=OagynA$(5UplgxlirQB+qsPBJepP`N0F-0drw57$(=#5l?PxR%Og#7TaNYpYx#oMZu9ka87pk_B;Hlxu*K zEQIT!To6vOFs_esgK&~XaKXxbg_A6b8?4+CoMZrQxN@O5$zr(C%ALeX7RQZK?j}z1 zGu$NQUg0E5;HD}U@31>xBunCEDwi53`8h5`x$HQ}Qn&@m6~jrE#w}5<22QdJZn<(T zagt?mtCZ`BlPrf@tK2A@WO>{MymFOrk~MK*%C*Eveu2BH z++dt!E!<7zX5m(lwQ;wV3uS(ktb@C++;!%Xb#afCdxn#&hkLGEw4?5JldO+>saz7= z`(y*0U+?g*|2|US3MbhZmr%LhILRisq{@xQNjAkL zS8hH|vKcOwa;tHY&2j$9?ZQd6z@=C2JWjGDE~9dfagwcYS(S_NJ@;R-H7;i{1BaD|j>&-{Qs%q0gKXMbN{rE(*1Uy?(Ni|Fzd^M&M4A8sA?G!v!(#OOE#8Mlzp5j`86ZF#nbu>%(nh zeu(_ihdaak5;@L?`-S-!`3E?S@Puj{HZuTRd##aFH?^I&og z?p@`w@&5N6`MrS7hvY`w8RatIBsby0luO2XB{$=4D(8=r+=9EWTo#<< zR@`&t^5P`7;r#lBf1E6aliZGrsoZ<~p0s4BarX6ELgmuoBzNGFDVGf=xf7Q{xqLXu zUAQ#L6~jsH#-&%T98Pi%E|YRKaFTm**_CUEliY{Ptz0Xdl~?X2PVxw@igFKel1Fhhm3xVk{2o_Vx#--_C6D0(l}m_| z`~lZYxfD3bF0z;#eAJ5KT>u8VT{agwKSJ(VktlRS;z zN&bxcTDc}T$uQh1<$B>HFX7fHHy$T>8MjHfB{<0|xb4bq$4Oqr?N;tIPVyS=fO2!aL{%)`jIxWUTZV*ZGXha0Wj zE9QyLy8Vf7oc%t2l5**p=OPo}W+_*Wxnx4tyGXePxHe=W+)CwoGM7wjoPFF~uiPY@ zWD?vC<<9VarIJaFv-^8kxf?jiWVlnxJ;h1BgS)8Qa<)(MUE}P}32!L33n!TzcUQSH zILY^nv*+m(<$l3Qrog>Y?j=q#B`#Y3@Xtr_f8snLQ{mz%=g(a7eOxl-vf?CDYlbLZH zm8--1DfGl;!F5+|6!QsWR$O1@<}qJNX2T6q?mOm^*^P_nl9lb-iT{}8jZn)w$^06b z1NWtJzcG(@-W}(hxUZD^fO#G=7jA}frI<_RHqJi2%vG)}PBIT}iE^WHlAqwdQEn+t zGB0kua))q|`EXm6yNQ#`kK3(WybJEQNq&kuq+BkXWC7f9<-Wj47Q~%Zt`APK5H3u) zr8vpLxEsoy#z_{z-Bs=lPO>QOiE^nfy5k}lfP1N2G29=CixM3E@xD1uvN$fba-(pP zpWzZIw+bg&0+(F5GdRhTxHQW7{p|Kv@^jpW%4Nh!mcnIIt`ttPG%k;F?QxQ2a0Qk7 z3MW|>S6sO*ILUIjGRj@YNtVY|RxV+fJ1&wHa9=3*0Zy_au7Ps-aFUg9&6F#HldOzu zt6T$IN3x1>_Vr6=Dd67U>I>r{x*TFTKa#bKv#&SitL5Ee{(`J+oL%H{pD%H6?9Hp87#F4`4$`${&)ol)*xoMa2! zIpwnABwOMxDpvw0*$Q__xmq~M*0`(6b-_ut!QD_ULsfS_l5C6nMY-NAPqH2Ej&j3s zlI?N#l^chX?0|cu+$@}A5bmjRD{zt>ala|I87J8Z_fokNILXeqH_F|?Np`_S9uWR{ zKk`*~UP*SvMN{q_oMbm#Oyx4;B)j9{C|3w4*#j3}xiUD(p14HH)y7Ho!X;I%9Zs@0 z?p@^u;3WItQYbe9C)w9H`*Vx;mCIGr9p^o%-Sa{}<086DV|haxI^W+o`@E1*EpIVy z9T|+vsoYwAekC~oS3tQPEa!W2Anr5e&N0754#JgJ?kVe)9E_`>+!K~Ff&CqVYoJ_| zYwma?B8TEyC|8u9w@VJg1u6GF%gICzH!h;fC(MhHBYe0D%xjY)eYj@KB}W-&&zGKR z`+DLeN8<)7HwO1d;=WXFE^Zw;);Rm`Gt-qj%=`!POXKYMH(R;W%rBASaEq1umH9Jr zym9t*$tvZdTz9u`0&)UwgK{aEXCx;Y7t!St=HO`POhTyo`}<0R+d(kd6T zh`T)`=i@RfmmDX#0GC_2j5x`KxI)V1$4M^2l~nEm=haPeF|ML=kC;m?!F{1zvKwxH zC6^j!e~uZb+^0CnWw_?b)yGMGjccpi0G#AkVDE9;> z`3-KEa;a~+<082VH%7TqILU8u6O{|XNv<|7qDya_bN zVVr&by{xux4)ayyPTVib?O=YK+=Y9n+!f|e$lbW#m5cGKJATQ@J-En&!av?;VqSpU zi;JyXIp+1qeYnKRwPW6&+>cA4+<4~m$OE_!lv~4mH+c}3S-Dfpuak#xxs-dxJl1V@ zd=BFZD3_9X2J(n;_VKT{a#@*69yQMXJ5xF3^57)DH!h;fC;U5!gv(k~eVAluLJ? z^N+k~oV~yK4G#afTZp;jEnE!cYTzV)G0xsE<15z*H-`L`?R!VLmCPk?v%ECQt;R{- zG0r}&eWcuXILW)XtjcZ09U<@Gaw>O?`D5}vF0XQN9=PKy`M|h{F7MzZANp`#f`@ z<}1nQxIxP8U@jTMIQuw0O1VS0^JGlp?Bm~f6jf{nxs@z@91IgIN*;8STa!+uQ zad7jL>&p2Y{}In4#zk~V!u&llo)72GJR=$3hs()4ADO_1E5f`inb3#(f_Wn{kq_6F zc{eh#4>y4MFfxe`H2W_Ow;p#Ur~7xI48}!t*^b*se(1w} z&-@hmkq>vC`BgHb4|j+8?_?(9?CaC>YCmdccjr}%CoVJNt|^z4d0H|H?yhp#nHMCp z;+`p2nt2T}8_sV?_}8(GnRg(w<6FMY*iFkICY=?#dNr9zcGE>!n;p z=8`3FeU+<;YeAMY&VK(EtlSjl^T^MQvyVeVlv}}k16c|;R=Hiw50j;FQD|;LsrBc zQ7#+vVq_)UY2_+0Z$eha{j6L^=0nITxSPsNWWI>3ihH2kdgcenYPjE(JInkoSsfQ; zX!z#^zu&ljkTq~|mHUW!A+jbenQ|4GHzB{krB<#h^U-82+(*iVF#nFMjmx3jA?BCK zI=D}jd&)fC?{2^A;)*MmmU#)X9*J~`H-Py9vH`BXa^EsPNjAhaSMCz? zyJR4)gK{sJ$9&=Tw-K&~a>^N{#@mWa@BFQ z$nI?43+3uDZ%X#SMHv?U@wq4S;bc$a?DKvc5xnw`%?Cp_HxrsQ*{>Is#OBGOVI&J|OY@Gdf_F~FyWWJ9a zV4Qv3Sx&iY%pZ{haW$1o^x7Q{e{vA6k#a?tS0)FueQlL%$-EOe1lLWuAKihmmW1toH`gtu+ytED0bCyCmf$208fPEZ3MuyuZYy~RS4_DR%&(G%jkDix zeXiVV<_V&?<97sCUb#%n3y?=~Rh6sGyczjDu9kBBnU5on;TkBnjQM8r2V7I-PBE7} zZk+u-rL}Umagrx+U6p%-lRSwFR_>kX?zl;w!i`ccCr%$Pbv2cPV#45m~wtG-0c>V3}d~&DwmLXa`F=Hk#hdbB`>qy7s_S9NnT-j(MN`V z{40!;yo!sjTqT_3HQYPOHNr_=$E8-T6Hf95?nC7U<0Nn5vMVn66(@PeID1~zRxWZ(cfLs8#Whtf4NmeN>+PUiA)MrW zIa=5hwW!H(9wCILYU@naahFWN6NKkK8#FYoc%d<4&_!b-%TdOqyE2P{U=4;5LxT4B^&-^Dc8Lqf;cbLB*-@%nsE^R!wpZUpm zaix`O#JmTY99K@cS>awxjxJXlc{m_m0Qew7nueZsN7BFzmxvBCdwsE;PxXknHJYvxiZWfkssh%DK~)m zSTY^1t#Zql?!I94=8_qWv(F#B zm0OA1M`kk4KCTT_?mY8HWM<>+&1KknFqICxs}W}k)Pl;DR-IqJu)wDn{o-0xcx{;=ELn&t^o6rWPan! z|NQnU*Od7n@>7HC>)1oeEnvQrEP(q#xu2OoCkx_!RPNoRZa=b;g>V;?E6ThkSr~Uk zxi-uPkVSB}l$*(XBUu!8Pq~xK?~(zyC(1=n=Jw-#vY2t^e||5N%g($ASsdp#I{fRG z(#-3SpW&h@*PMBOvIH)+aub-ZBunBFD7T0CMe=i8Qso{pkN=L_?^3w;l*_=p2w57J zTDhvso04U4>6Gipd<0n*mr=PH%r}$eaM_eQ&HNEr9+ykGIPbds%t%(i!&uw1~TodK8FfT>c#I;tgE%W~57si?Y`E^uo0`tXWEnGL{b}_#} z*2eW#E_w>L{i(=0xM1aqF>grL#SKxe2lKgPJ={p;_AwK0 zi~7D>Z$`2i?mOj5GjBjP$8Axr1M^{I3)~LnW-?zzw#4mKZU^(9$X2*R%H3xkH?`ZJ z*0^KJ`7;k7+Zbn`&rc~A$b10V7I#j$Wy}we?QoZrd&>OXG;aIa<8COIm3alS1MZG; zjhPQ6gN!r(^LwP+YUW$Wj=1N_9cO--?1X!z+%x7e{M~+Z#zh_z{&_kT^Xz07+*Rgr(z*2xz|~ML2lFE2KwMqr8Z+-q4#G83ZY1-mW|#^7bGX)_9<7Nc`x!S+!5twGT%W?#+^{^HuGp1 z-TJ5C&MKFVd0}!Y?q}udG4DxE!(CHu2J`jgblk7Xoo4=koPm3wT%t^F`?HWUanF=1 z%e)mi3-?O7G0eXuXXB!b4gb7#j=5iExBfY}SjuH#UWN?8B~Y#{^P%KiTr%YrGT%qe z!=+U2KJ#c<-1g1KrByBs^IYTt+(*ilWgbW_#AQ>iH}mP_B3y3ewlP0KF2;ST+*9VM zv%39Qf-93`RvKr2KG{UM>$st~Z*XmudyX5ATZQYYT%7D~f4`aO*8454pK{4@8*!^~ z!<5T_+l5<$8>d_@Tq$xbZklqnnYSm`;pQn9%={~IJ??Ae7Bk;MeurDD+)?IN$PKuy z$~|Eo`(t+;H{$jxmx_5Vaue=*X)CFQ0tUqNog{i0kb^V8%u z+#}^~F@HmD$Guc8aSnGpa*(08XkUhZJT1q(6}bZ!U%A1|=aD;c?<%*I`4w^(&R@Am zIo{62XUH%K}2kmy~S zyMIRU%bUk-XES;+dJB35x_q7FxCQP!oJn3Kmyn_4TJj}%n7mK=FLcX!PUczU`Wfai zxjreGm0U#zlL`5{@??IlA5Es>`dVZOuAfR~g|hc&vn_a zw}%mYKA-LJtIBpOWB={bURJ5?*4vYC@1JkalfSt=8(B|4Ww$-!-Rl4NuWZkLT-d@| z-b^2dkiXcTD6-!yc^oPGCF?njyZ>1ePl%KCiMxW6+h3L=w?~eBe|~%tsO@2M{w?m| z##Ql2?|`d86mD9ffg$Y_E2*J*9EJZja=A zVKwEx;(FOXe|iI4j^gfolew%f=s?8#pM$RtVE^^~hOyt!tl=M5{&=7S$o_X=JAxOv z+e^M)QueF2+AsY$>(3Vq#RYLZ_5RE4H}0?Y|DfA{y`IXfr=r~ca=>JR$@#Kha=R)g z$MGSLzkfXLtK|gHSFCl%GnB_G*)QRx`J~!P=PLJz_;#&)$nBTDKgw~gFZ;#veBHil z*uTo^@j=cbxqUau?ZNYlEKlx_a#(iY9P*RNF0c$-NwBd3@FP zYuVldY)5F}M&6e;^9xR5Ke=+m9oOb`zkKfTs5Lzfy$wAjy%#+Ty*Iriy#>7?y$`)7 zy(N7zy%l{ay)Atwy&e4oeIWe`y*>TvakoFg^asp4(4*#e`xivdMDI#3Oz%c7e!?xU zFTE1;e)ISW4JK!%lWz$5r6$3E8vqLAFiVuH}1ds>wNY5K9-koWyIUlne~MI ze{}og@Ub4*-ll%R-b40_Pu=-z?!R6iT-^Pf$lQOu9 zH|M|C%hJvH@Adk0bAEfh1HCi7AAJyg2Hl+ho?lHj=fBsF&E`jp>j&uO@yhF`=^g1k7PlS&sjSKi}?>f3e*&n1^)8FRKohvK>udyZ6)7-+u^}?dgy6^?l_rw%6D5d5yo= z-U2_l?fB#SNe59E%4-@AGbz-u^qCWzq>uMy!&jAejO&q?=0&L%;;Xn z$$Dh}5}tC~E!XP|;_JOTgC3eL^I*0^h%7(oFP0zt7t5EqoY%5^oyS;@9EZTu;rDAc zUocL6p`4F%*$z1$L;k|AQhv@~_-%N3o$G5m{vUhq0yk6j{g03PB{WL8bs42lE<=cN z86uL)xKv0ruBlum6csh@cg8j4(ufesRP<4aAw{T0Ns5@FQmIA}mGVF5?Dd|Hy__{O zp3mcXp5OPMUZ?fE&-=aiUVE**_c?QBX3qzta|+Kl;C_VqXMSeH{1^L7@9%7N+99#isPvhvBbJRb3j(RCBQv8kU zZ*jAU5l^b?zj1$H;bV=J-^TUR!i8>8*tlP?aMvd4dSl!#Sor7yg^l|K3tvfk<9co3 zDuj*u1q*-IL$zmIUoG5*c;k9!;fDwt*INq@A#7Z4Ej*gAalN(h48q3s*1`)28`nDv zzed=&zFPPl!p8N}!g~lC*G~)oNZ7dFvG57P#{G}+Cx-NQI`QXa#f ztMQyz*S}C0SCzZyzKrB&nNoBn-Srgpg}bZk;#n2aiHN{+|NZ1I&Z9mz{oxVf039s9 z{wLx=0?fC%O;uc_*Z&ns--vWrPbZ@xvWS1t+A42&{Xda-+*csJEvPey9iSh4!la79joFeF`@x+$w|dqT&gIcy%U!TtYtKS0Bns{} z(I3NEec)k{ry%KYJ>v1lIGUTHUDO-yVLz^U9$a6lxbr+B9`~il1Ajh(_F)nKYL(Qw zhWk3q6SNa1KX5%q`9!=^_yK*o^Jgi=(UW34tRbCO7{|W-Dt?Lkr2`5hUt?1E&HY6` zU=hD`$M1Ub7vmT8z#^VINQdzTp4+%Ej(Gn3)Nh_YjPIvY!~yN@BEJ&%=OD-;9``p^ z_wnfGc&5X+LjHX1>sSizw=1UdRe+UOYKP;+6n^vk@p*)Cz{eZcp*yE8CDsdc z1N}eW>pG98|0@+w-aq*B_BqBA{eeZCc>lQ{j<1y;iFrvCxX5l#;Ro8|`Nery_*1)v zTHi1p!Na2e{CW%?7V~om{VolkpLm_Mhx&(d-0q?NAugQ%isl)=exd$42UYxdIpD)o zzq!|d`Omu9Q-50jm+D9VAPrGF@H2AAzTHcxz%&G$u#0R1Jm;W!erXE*pU6M0>m^g@ zb5Xq9q(?s_e~Kc$q%WPK{_>;`kiJX`eHGICNk5JBFfRJz3wr;8zrHk{M_NM??@t5? zKTfY#jQe|wzqXmW&ou7uEnJ`Q9Kv^fl(^rw_I$9O$t;X6q`i*QfEvk4C)Y`h+_ z^vehvudgh;f$&tqy9m!E{5@gg`K6^lyi@t}G~wR}KT9}wbJZW?^_``65jLK8TDTG6 zDTG(k`yIyXGmF2Ac;k7cg@+P;hVX2{(+Iyr*m%Bc>GA%F@%qlfct0dS81IM7AiR#s z&m_E)u<<pKQUepTKEs*jn{(~E^(Xcukm`&!q*cvUJqLMHp0g1K?~nQ*myl? z;r@h;*Pj-iL$B|Q*M}A!OT6*=(8A9W#yCvZ8taZFm8?PH*45S;<*Zu|$(q+A9HtQ0 zC)1)r<4@}!Ff_QQ!L#Va+{E%zqy1|Ed3HwZq##R}6nMV2$T1Wlb*+()cmf4+|e9Y&=h~ zaKRR8JR8qbEL@JTF+VMQ17Tx+S@>4M#{95wXTrw(uyCtAYP~S#hlK|dZ_E!1f4f-m z#{97GDB^iUPttkZFBES1geCc>q_X#3r0mONdpR5znSu%}(I15y5q^O9I|&euOMu+VwK-S_$k7l5q^m9?}YmhF4ju<*Ozbw!u<%}Mz}xWZiJsC z{1{>5^NLpcQwbZ+=K91!cz!uB|MDqmxRX<{*~|}gbTJ& z{yj?gYQlpFy9pb2NmlRT*E3KB0Pcc`-CSE{*Le{!haJU zLb!xi`D+dKGyZ3;jpl(hv;KbddaYhNrH^jtY^mcBWuqIF^>0!(MAq?+!rslw2FZrW z#>k%0bb5cjtLlr8jRC)>&bziyyJQ_(6%K7z*6{(^^jb@(+*Hm>Hb^$Y>N7t)V#W{G zqC^G%{*hJ$g2pw-JTU%hw0ztu*CvOLKi)a-`5J#8s_`2n%f}zaopn=ZIORQRtT@I$ zBc$5DiiCQ1uwMr>u>sn?t@04+R)EPGL1J(5cI_|gQSLHYEhl0N; z9HZ6;!*5hb=K*m&kMy$l7yZAQ{0$2Ia#Ovo6gsq$s{bCUuR@AAH78xO6gn^I>Zj0k zBwgbaIv?pOF&*xmiFS;mKNeCR-20NRtIqxQ{8@QFrt*w?crW1?wKp1hha=2pc3x3^ zy8cJVU#wrg?Zs&VGrS@guR3p5*|hM8~3M{f4zw} z?q4lDgs}0sW(!XyJe}}j!m9|cC2V|N!qUIjR9!#9gtroJy#BEG&j}m%^A`S|u<`oF z!haKff$+thRJ?`|u0(hY;d+GU5N<>GHNy99Rq-=k|5^3VIi&D1!uON@MZ#kVFDJZ& zuyOxxm0v^nVZvJpuO$36VdM3nrO(${`EOi(EnJ4M@wpER-`z~bYXIS@#J@uL7Q)8o zV=R3q!ix#_CHyMkk%R+;yB}8l9ZtAE;njralYRu@cL|Rp{54@?wY1v*i?H$f&%!0| zR{b+x&sn&@3#vWi^_PXK5Wj@*yTluxm$CRJ#2c^AEZmXs^Mqfa=VOZq7x`4x{|w>2 zq<@z1IKp!YFCsjH@Or|=>p!c#8PBTt^L5mGtzZiLi|@85?+eO?mnh5i!0x3wA6lkk z-%1_3R_Pe^NH*|_u8+K`W0do*R_DFz?Rn@VYu@YsFa3|dr`kpTfqDO>_W#%O|7-s} zD7MvKF7rB99b5aBiX6~B;hMdF_)T%GW(bmMUo;bw%J5&mEM`+u!G?x#is zRL>?TYdqFB{&P426BRaJ&s%>Dr}Kr>`G9eKv;G_4EJt82d=u7M9f z(zEB|Jzc%}4{!~sQ~SQ!H7mPrY1hfyp-r(jscL#{ysy7n7rq^WPla+R#_CYP-5CYP-5CYP-5 zCdd2BG4Fq753xDbCNxfVOlxxE!^w`1{)((gcD%56&G*TUyEolgH`#Ht_|ZRJy zPEU4xdhcZ`k{xrF7ub{R$aVL~i;^AdM^`VO?09EbkvozdgYH>BAldQHEBgbAWQTv^?VFMvi`w?tlI$pbc>2y{NBR8E>`r!!u2t+< zvcn&G(3$MGbmQXE$&P}3ZoDGd(Q%ujY9j_I+tZuTS#qvF^lO1ig&AU6< z@mv3@y^|e3kC-|r+0noI3qz6}C5CJrmFy^(d&{I`$DgOy2a_E?_VF%GcAQxB$NFT) zuR|VwFWJHGH#j!$4b1Dmd5t%(xX%bFs}pVT5qoB=9+D;%jVi^uCL}AYOa&!T4=6!=9*@%Tjttiu0Q4)W3D6S zT4AmS=A1X@wK;dq`DxBUbDo)V$(%3doG{0|IkwI5YmQNK9GYXz98cz$F~^0Odo#ag z4$VB7xiI5x#?*|PalcukR_)BZV@Iysc?uRPd;vZW#j$iAIvT&3@>)qB zxe8tNa>dWgG5bN!U#>RS3687X-0FzAcC6bwez>`Qa9n3i^WV%dT{@cYb#qlyTO8NAXv;O`S~m0A2R<^_GmbxQadd$>XAWM|rjEJJalGc!NfXVrujjm#gU$7i z<41B|-^rX)BM&XuN-fhx~#rAC$Cvrc!s&|a@>DJo|w57`}-9uY_7)~pQ`rpt>&D)_Wf(S zSnD*yKV7%Ev$=L3cx~2vbN%LcfA>`r%{jg7)xq`5b)DmHU;e3?xz^uYYeWfiz2~?` zo}(?zIiJhjc%6A2;CR~8C!^-I!M(mie)IakajAB{>^9c~=Zih>Fs~aNU*~%GF7sNl zcIR6)%M!@0YmTp4$y?0p7{>!v#21>^wj*_WlrgVw99O)e z`_<-}^!?i-_M6u|jxTxay;sd^;q~nY95k1D4+(&%b2O*5}_H*1a&tFBkn|ecm|@icsJpKX>1>qW|{$N_K44Vp8cQeK^K*DgK-W*jRsSRj=X7wDs59@?LA< z4Ui3!b+l6F-DLgDh6uw(2|HR-IkH}|0kRRYakB0>U{!ppH`Dkx4c!@_}`iP)tcwb@{Ntd{2qq+*#PtXsdC0~m2sf`h#~M8 z*!*|q{;z01o${)*!*S+5xaK+Ya|mbl-|TyF(~@-}cYkUl;ACQ{Jd9Q~sH4n*YpkYyR_;8fRJ4_cQ;w2+ZuJ z;(aD(_xCZr@dIIus{!-Vf3-uV23#rp|ANcd^Oe!@!#8&k>B zuOe)Gp1{Hz3HKnplW2%jWuylZRKSGcG0zc=Bsgr6XM9bx118J7NL z!hHzeLD={_fyF;WxG&*pgpJRiSo|8o{RrdxKaUcApZFn!4-oE8_yl1-Mm#g`vrYxc z#>skTsq@a+%0|ihpH>+4tlFX8$Hx4O4WDdLrAd%@J%|D+tg&BKNmDZK0To|k|0fHt zAUvM%YQhr;?;vb^f5p<{`*gj?2zDI9-AI8G?KAiD=J`3MTdgJ>s7JiJd@%B%zc35GN7(rOn}shrpvK`?!Uu>SNBAeg#`ohaJ-#o;hodo{OPJ>h z^-=LM=D&q25jNHb3)dxV%ufs7M%Y;2EZmu}vEEqtA;QLbW8tBMjrnfj$%KvhZQ%uk zjrnWgRfLW8&%)~o8|#UMcM~?&Lkk}z%=>qFKh-aOKC^JCQod4=A?`h}S6@Bp>U^ti zy%zSp_Zq(UcL8%1D`AOG$6U-?fI zgMI9=KOXxf@at^Y{{0vBzwg8SZrEwlo}6~-mxg^|+qJu+-SPs9Pr~|q^L-Wmjx>W^ zw{F|I@sIYb1v_`{opV=yaQ%(2Q>Nsel6O+B39yS6y}sz-OYZ&{wn!0o5nsJhePEw> z;^-5nC;UDNwpOiOwbp#~U;y^=%LiS4_<@^_!^UDuW9^%L`5NqJpFQ!}?<-#`2fJxg zwN3Z_^vpcis#Vuk?K`{6EwH!WUj6oNkI$|I`_DfI{#jJ+t9xMYx~tJ$BQAaUQ`k!` z>2S%iM%TR!J9zNM!Oy+^^I_Ne9`8M1+!jk0^70Uu#SIT6Mi1{{rB^{pMTrbk6j<)2r+YV(vAHWYd@^gx+=-iLkYp;sPy>WkeaU`LOx zI=ah>lApuA{q~1%4?H6pn zG&1o^*ai(wHu&kip`XC!%U2>_#o~plz}|oV@cXa)_QN5thYtPc(7^VeJ`G!;!n_LC zywy54Y@GF?6?WFFezW%d zb>nTYd-gQjGv&FL?u7m8ukC+LbpPmw{rTtTe!lwQjUT`c9s1MIEz?fE1>39F=w2lc z?sypX%P-r1xn#=HCtypK>{4>=?NwL7HfxrvS?*h>G=*KTpz(rH`^uGp-L~z*ZCAWI zeiv+&DyyqJ@=WKBup2hKw_)02-K)YDC~#SUI%SJBgnj9yDKF)^y4gzD&Yd6W{6n?X zVc3x)Yme-+rtB}UH{7t}hS8^cy$;*G`?T&2e|@hDZ0_6zb2|&?y$E*s^6AU#*12s4 z?86U#{_v`0U+;(Ay0yU8VjoR@54Lpa9;LSqtFaUIw%h97Ho!mqX4ua^zvc5W&#t-; z_Sav3`SqR4|ELao@ZgGrw>RIr4EFB3AHMtR>t25YcHFo!<7!SXx(@c)XWKoycx$Bw zu-9HY=h`akTV4QLqsG=6lmG0o0X7`|GyHvvVVz*V|9<56Wgq@3(v3|7r9>*fM2$mx&IjxefN^mq)x@x^kocz^-2X!|M0%ePkGHhYqbe zJX?C%hp;ndJUZjZH#a{8d(~Crt}42`Nj2CWJtp@k@cq{Aut$#`Ji7Oy)7QZc9Jq7f zhUdTC0ejI!%`XaeE;O5VG9;?74%eeHiv!Zo$KGZ^YGkRut$zOedLBG z-aP=jckk_cX9ribf?c?9{lczS-WP$LJh|B9%SINM23x=WvHHi~e|#(K(@*z$ddJZl z?uO;}6(4<6_M_UnM*abN{q-xaZ#wqQez1=|`tGAozjov+*byUYjOY)Dr|h1=wcmkVv*zbD8}A-G2zJ$~F{_GKx@A4=gAcBGaPWa$m&1C!_jund z8u|gYY12YYFKRjAF4*6G`|-E!rT(e|>vl)n^W(mkV1M~#?l0F5dS^3i!-l6Ce)Gr_4&t~o%X{1@Wa#}^7MTFd)S^m$M?MO$hHSz-+c4qH{a;} zKpxm?)z($(Ipf|Iu#rfGNbB$BPl4UP|Gxd}hcEQOUUr%PvRI!wr(pm7`;))ls`}ln zu&r8EYSpgCvsc1SpFUvvp;+BVVIO(q{YR#*`{7U6{P|1ecVAJYHtd867fmQXr_jr= zufF>0tABVNyB+r1Z#R6~z0=Oou*HhiDdw+z*^{tWUODv2lieG92ivXNtZp}+*n9`< zu3dw7{k&++O|Z+BJ-e(@jaI{9XV307d-JjC?O^}-(v#oqefjfs>92dL}3RE_;kR3mL7T+wr<@+bwB-bz!BJ% zEvvNb+;z^Su=n2E^WJSYubT-wWXRt`z8f8X4z^C6Se-BT_`iXjG^y~U5@Yhsf!(>Y z`_A`X-B1$tg%@6aq0t3*9fJM(>s4Rh((3btuwA=8)3w^kO|4;Hd+qnvjy8RwF>JYV zqsm?KLgSjS^X9dfH*@zj1!1qaV#pQoUiE&4z2%nTw_Me3Ojp<~TW;R+=&2d6z@9qw z*{RpA|E3LW-n`Ddt`Y^y!?tbPsqL!;pFaru%ro~svu;bZYhe5KeX(zw&0kyvTeN7+ zqP^>u=?VMipCA1>vex&H!5%np_kq_(EqVa<$tS;g^0T?8UW6@QK3Kl~>gJ_kZ@&4+ z&F_Bp=s&P4R?J>ez5eab!hZPSl^-_PIXn(qym*u1(l)~&B; z-QuBnd13$apKt%Ov+clMus{Ad@y82%+hefx>c#8*y<^Bm*x|z)3?I7T%D-V}&U|p@ zu77HIU{9R*>%@;me!C3zjW_ncvGD%>rC=|CX)FAIC;olWnY zaPi80uuYm2ZBpj8areSL_0(5S9a!*B2=>Jn7ra>R#x~<%ue)y9b*)BpxF7bdw|2kv zO5cYH!*1Mo^~PJjer_ym`}S?yKc9QaQP_R^?%MbA#1{s@UT{I>3p!S~v_0(n`K{;A z`=mlH*gkz;>eFoFp6g+&SKnNH*70tOVFwNRV9?k%4*v%G`|qcJKUnDKC9t>Nn(x-a zw@hjYyK?1(m4&Wt`U33u@mGwm_w88Useem(16R;0F@WuoEqaWvoEmWv{q2^UCY6R=|f9YTPQtUI>*I)no_0Kyz z+#fa?y+8Wlf8M?V_NSj_{B-k^TXw_l*imvv)xD#?hHc#VlE&BFHL5r4oH?E6tlm_m zGVJ2T%NO5P?2eycD^?6uyl0&E5!fzW`gZxE`r0wDCr@rUIiulE55bNZbJdt8i;Hi9 zEp_#KhsUnX)u#56kB>jre_A`=y17#p6?vl8<+0B;RlWV6yDk}g<2TR6TYS;+{Yr&j z2|YCW?R%WZwl~Ok|Dg(vCN3Q|YtLUl5AF43$z}_-RoPJBrOqR7$jxpbyl(Y=06&lC z^8E+u&o`9%zm*iEKes_g`#nR4=kU-SARYE+1CRD%Dg2p&cBtJ6|8+(C>zh^T`IYx> zpLIS+EZT!Ve^Y(&>Rq++c+T3pI(nkf39y37^Y}pk-ba31X}(Eh{PPo5DC7SRq^O7c z<*A|iW4>2+=0C)L^dLRoh#Rzs+Z&`q+@Ry}-OhA~Cj3Hu`$^~Z`OuVQk%u_>t&wMd zX;dE1&Cj5$KW9Fo`W3j(r%|ZidjmYv=mc1hqW*bQe~{{*PJsxq_7WAI;~!z69>g2@ zbJbM+;Q1{@?Zv4dshZD4{qa#g&<@HWZx@peTrHcHN{Ko1$O7+NxiepHwVSUE9G!aVn`Dv{J3Vh#watA48aq zw;NC4k1vHkXlEViQu(ukbbUe{^KhE}>?K{4es746Bl!Id>4M}B#tDXj zvrck7Zy73 zuA5YR=yoIFPDT2w85FdQbXAwM(@b@$32X7Dld`CL$e+_@pD&qM&={z(q zxXwid3O!Eakbd_SI<)7yS@mDa+W=}u>VH|PAJ;YL&<^^aDo*gHD*UB*q8{*3@|UkS z;D?dFD2KSga(|_KH6TC2=L;nTKNQd=H zeQH8|CeKtMU;I7+^&#%?i{B@7HtMiKwcKY`ch3KOR4%^Km$WR8PrSa05Bx)6_?d60 z9v|@B;(CnzjX00^;Cc)lZ#U2&xj#iy_=9$CA|2Y1{Aq~#R{Jao_s7{Vxj&^*o;N@k z{-k?7ZbtPv$seAtPzrx4Gk>tIaQE&aor~Im4(-A3dzkKO61b@xuQy%n-Q=^R!L7KR*}v}{=jd<$J;o0eA=Y&2kotg4zE){ zkcB@VlFl#q6C;24eMCj7r#ISR^>ernx)lC=M>ZSQq_qg4zvG97-4+Hm@&1!q8{bhJSf1u;- zI&Mww&+RGvLB9i}3#agBCg~!iL!|LKY#jN6^W1i$@@Msfgy5r8zl-KUjJ3z>O&7<7 zdak5IW8SB#&$FYeB?*0?Y$`qH5wEq)ka@09_*IG*zki1se7r(8>(qr5uV~B%$^T?y zDe5Us3$y27#@h2zxloGod>+P|Cm;9UQ`}I_!T#k7sCCTCUN1w2d2u1>a9?^C3Bup_ zAU!7=p>ob|lb46zSXW}VCGT%r@)PB_Q{6Mz-)2-1?x%RYsj%y?&yobma(!r|dS%w0 zi1XD>V3ca76SWgK;p47k2nVU2z)Ac1FwaA`C!gn^k5J=Ln&;qyr&K%0GscIbW%BXy z6V)$uvf@a(uG96ArgcJ&`B0s7alwyZ3O`P!@BjC5GPcs;#uWbb!#ef}Y|E9u_+3_nnOI3t0c+&aNnuF>6>h&bnd&JK-M(ObU67Q2^97ETSbiP}Bo@*q8^hW@GU836MueacT-qEU`xQ^htAL0tXijWTR zKzmqUylqvSah}^%avKerb-6CJA74}~r3p}ZXKDL-rcez* zdi|cV!W0638T)o#M&gC%4k@ZVi;fBHpc&-J*+Gq8KE5hajUQ*y_~P>o;{oH#`m&VK zrZgTfzA$dqj#cy5L)TB#hw+7R^NFCt_;OJ{4>Da@5`-?Z&leR-Z7x^k{a2<}&r!Pn z_RzY6d^IC{Ct1X;2jKx^5vQjJ&mfDqEFt^~S;S!-;ZMk7JRBzc2iXGD<3cnaFDHw2 z)lIkoS#zDV3li2_kGGB;eb%{HmGt6=g8tE}g(vBRzv{V_M?C>5=dYH$yq^+vzS}8D z2|M5Il**!Z5NBLZLmiV}PxFjd^B&_FtYjX2j?Yw zH*~aa2bmD_BGvQDPzrxqqaCVWy54su9iH#QAM_vo_?eE!!QENKrx5E8;&T=Kei>+` z2Kw*&rjJuQ0s4FubljgYq{Hh0=-^jDs(OZ?!@39EeA2mCUNCN;TS2-w-N&L`tc%dS zMYxhAOj zg!|hosN>Nz?|1yQx>{9+$nyFlbUw!T<|IVEdAYN2ZEAnN@_@CW<@v`*r@WT!(XypF@V{tR1pQ6JXzW#kXe zb32sEr&`w|^;Nt(QU$4=@1dQ*>EwBWj$1reI^XRap+uc)JD~>W*00NGp5gk)`+Kf9 zDzwkXW4OB-k37FFYVa7wSqca8O;p!+>2n1bkHu2xFb^(Cp~LI*tC%iM&ue@Q&n^DE zdl4!hxg~i$&(ipCw@9wz^>gf@@}5@q^^~LWalYHRD2v+3MFBv*-M!Q}#QinmgFLTB zo?C#aoYSKp*?ZXD>e2DQg$dPpK&m&Ym&gwxs&ij=gZn8N4GzBp7 znBs9hqt;9H`+D2gN8L)iJ`eX+<4($ByUDb!rEusm=;(Tkc2ErYJaVhC!=3RDug9Rn zJn%e_+@Jf<4pofu1QTW)=`em11pNVjo+DkD;y;ZlbUogc7fB1dsa!BcdH9WfyB|#6 z?-k@H<|}t*J?k%YXb1h>#dIC0qUg|!^_Tk*6Y7B<=&$Rc46Ukp_BbSjPGrrgE_-lb7fHb@oZ#--oHcyq~~9@G0(h7YRDt@6I7VP%pOu zD$nnSpabt8uKLgW>FBHa$;-Q_f_sDddJ;s%%+4Sku4mApJ>+*D(_y?|J;QigK{~7l zxZdD;i|cHJ)d#l_zdh7HoagotD$n~59eB?&6+fqOJu|gl!q8>Z`cl+$2UU#ENuO&w zz7@)E-%4er@^@xdJ1-}1Cl4j?f9;Rd4}KowAl6@vbIt>QHA9VaX&js+KJh(!x^H*9 zpS-`QKb3U~^;DqocD~!W{2cGo!rN89V`R_jAAP>lMHYNJ`UCe9I4@azPSnrpk@Pr! z={fc%{*mgBD{7xl51scheyY)+Ic5UvJp4%42C2Mfr+xdms3NS7;Q`67Pa9_H>o)hJ z@GQk+edRpX>kCPTd~rWK1C#r)C50bocT8pd^$VYe@TUa%6aHAmiTe{x;m>_k9_>o+ z7rAGv_~3p8I&A5O6ZM2r_%VmYkC#U~eW@MkeRb%DlMbKH;q|#6 zRdJ!^1#Tu@pDktnNcTars2wlG2RgI|f1Vd~7*EiJ1s&!QbZ-kf^ar}_Ob5TvVfWy1 z)}QbL=P~X#P#kzU)W3)7$9P70Sm?eb9r6Jl7P@1k^HDr`yRj7he$4X5>(BMHS`YAi zf!7Z|ijyu?zg(n4zj%GYA>%9;r1*Z9!ry9X`s+#4UoZ0)^BDQ|Jf{4`I70j?(jTYD zU*q@cZU6bGeou<^;vx9Ubci4P@slpVbciR`-$zLoBpv+2ym67Y!_aPW4m~HY(I}iUQ$^cg;}MZYt+KnqGOl-tZ1p<3Vb4 z`!i}i!8qeO@O&LX{oxe#U-4}6`oVkYbK{rL#Pu9YubD%pdRXhe0?o4<&;huz75WfCNWNKk%SKr4iY|2I6%1AJmtUfyu|8HIl{($m4)jPHh!Z>!I@3m+%7OjrU=#{(rkrz1}dMD_Qsz;*H-ou<%C0#^?Mk zyl{)sk0HF5_-6*}k1)fv= zn@P9~VdMH~>D`3q67~?DN7zSrKH-6cpCde*@Joa@6P``@Gr~qxtoFVqY-HWS`9sP- zC%4Ud7k= z{TmCfAZ+};jfK||HhvGr!XJLA;$!^2iG{ZjZ~T6Zg})?h{Cj+OGT%Yh{!fgppA^ZU00O0^(uv2g!e)p#_1 z56Hp?Z&T%s-y^bcebO7hFJs}hgpJ>qv2ZWK#_#!9cm!eN_lhk19AV@4axA=(u<`pg z7Jiek@%uIw{+O`wdq5Wcfw1v=Ko&kh*!X=P3zvC8`D^_CkcB(a{4##e$HI+jD&F|L z9}CwdeUNZV!p83dS^Ry3joG~TYKd=u|q5}E@{YqTV zh3}ENNWYWypZiylbnR=aaUjLXO}c$lpS!w>lkxgS`-eR8ctXU-P4os;j|T#>@Du3| zP`oj2P7*#z`jz-z1q!hGS~OMt^N`;>{)s&D__O+YQ@t5E{2vR$I9ARGU&tQDe9xUR6emm*=lIHcu{0Dy&`tScs zP0{19i}~Ygrp80CxjrsDw<+vtsjRb=&i}Us^%vqkhqcFbwf>{>3%@zvoOowDy*<=_ zGDZEZs65XH+PRN-eBT{@Nb&19Rgd31Dv$bL-JNxRaX!#josW`r_fy!}Us*n$V$>e@ z-%S-t?V~-|5UmH&x{dMlIrRtY2KUDwRQ*rHX_~@VSFc{H@`-l2#XLCcdc%Y+!d-f) z`tUt2CUaDz6HBOnp^hq!#&ZGfAL51I0l?=VAmZ`$KceaZ56j~bp#J9}!AZhH2>;3E zmozb(Qrw~gsa-Yz5#LnT-{#bAvi09%iasXYjo<^6TfQl9Yp?21%w zI{HDF>rj0NI(of<&-Z~ZNPjG0I`{(}y6>lT4&UeCx>8gi)xO3q(p~$38gFOK2U@t} zuc^4@BJ5hNaBjjL!g&b$*4W1x`(Wbxvgj8quG5(BsdO=lS1R2Pq~meo?E

    (h8I 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

    svG5o>hDwe@~vrWuMdh%q~#;L+&3b?$3PipHuuX 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 K*yB+x_Vc&7*w5dZu*aWP?E1Q}$Nxd>@jnpK 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 z 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⪻sxakFp-e5 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

    f6?0f0%2z?*!tezSdU-5AQXi8 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

    x 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 z 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 z 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ð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 z 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%0D) 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

  • p8ZL-wPV0O;x8b-Gr*{ zxFi}?UC|{>RX@}UQbK3aTqrdnc*t2OzI!_UO~iCq$3JS?|3JsTTI={!0x*)PcIEL@ zITNZW5Vx$S&@pij4PZ*F==c{MFFJm&CB(0|z``y}Dls~KJ4E=7qT`SJ+}80+uZYm` zr@YvVj^Bnle!HkT{zu2}SjS(1d~{B9{Apk8T*nWfe6u=!E*paqp7A;`6xQ*NK)d!k z5|ED2@qhhXbo`57GF71Ck5y7$bo`HyZP#7LG@9S|8g%?rRB(05(Cgnj@z*Fmo|?Sz z*SO$75ZvDO*BFJ#>>l}RtVrImzedh+5uErNEHDTsHu0?A`6R@Nk0+h(dVGqLI|v1f zUh(_1n{yQh=by-5<1N`EApt3Me2TV1@il*tzsAEjb&}_?y9+jFxUJa@ zZp&K_g+hUyym&BaJ8OeGfFBo)16jyMNQ6KZiXc>7Ku+>r55QKbF*qmLU9dW1+$!}z zjdS_R)yZyuSVa3)4jPV|2GS1_S zcf3pXH@L0e+=0G_ASAS!jj@WX_UwkM)4&-0e#xH>0#xI4{twj=`30M!^)Hqa+THEn zV`K`tf5mu7X#d4<_uS1>pq-hs!~Jo0{dBzy72k8B-^BTO&w2BW@$Ozf<|U|(;3!mT z7`!ScFf*BFWuIHq0WmQ0+JOa8kyXE?LnV3z1v2w*OoTa+*1~N6%p`!SR4wh$7A=k} z)oNy~#Hr4tIk8%7z*H5X{fk13;+WvlGOUKY{r&cW*`={A-w`sQ2@RG??1m>_Mw3-Y z&eF*m5KKNE)#8eM{v+4pimm@6Hw3Tes~nNHvha$yxW~v4&?X`@1N|}3YJqRF!^c~y z`esvxn~gj=I;6j33ST7w8tnZ`+_WUi>w44DFkOI~mfSj-jHKDWl*CO-j>$-{J36N3 z9}~g2(r_z`Yax3bNZ2CY+oD2tL^q#wW|zj~od95zq0+iXpnynLr-=~?$d}J*1%xDO z4;+_o6=JRhU&cS(?`oB)2YVs=r{%N5{?7;0I*j3PcF#Dsd$!fi3|pp#*BoD#bMkS0E<`;Eg0niEvk) zRVy#Xn=lxqI{`#%Kc5`WKeAZfn28p4^^Iof&Yb;j4UZ2_l8=?`ez0EfTf*yEd?!Z? zEL^kRqy24CF#_8lc;{86e6!1^!+Y@UI@pSz`>V~YbtJx8hxqWrf`KUxY*HIY_EyDu zTo8Pf1P=E%eUXssFk;oRhz=Y~P$Peq6f?WE7VA+}p+}XDNMx0ivXa>aZekAy(t6FH zQX63PkdbTSV5gBQ2H%Ei@wjCBMa$LV3WCrxR#jah+`hj?lHR-%RY$xRZyL*HogGfCQ;5wbdFdt zj?m5xrMTja6oMM^wQy4Mlg)yh>+ICzY_tc&EUlSa!V)_D|r zd=h-H{Ape1U5#%4s7g@7W6c0-a9b^d4M2%H0VNz0_UaCX+oqEs0|`Fv6wniPa@)yn z*VL-Xt{DySlU@Ihx_5z(syO?{7cdfqxS@)~Ta6Xlcx@0PK}8cGxT}exh+-85QN(%y zC95a|g2~#f$D^?}ZLC^TEp4h&;{}ZuAc#V&R^vUsDn#pL)ZEYAZhl9xEXcnKB6+TgU3TJIaL zT)-=5JMil>x^>_LzyoX=tOy4h*WfZGI87Q}3jjLt8`^y1pG1>olKoahvvIN7JO{UE z981e{d54#I_6d~+#ESKrK9fb811F*`s3xdssV1l{s3xe18*rt%fQk@xQ3G{R>!}M* zBggMSjj|Dp9HL-WK1M~D01mm|i=Q-?AwrPY4bKxnodJn?X%huPZJAFN(sfPjyH8tQmqTqSyLCcgQd-Q_-(_M_P3_Vv zG6|ilMCXdYmt;}g0uOf6exkzLnjP5iwq^%Hyv>)OLeoyB$TyL3RyIHFrUcrN;Z@KB~8L*u0js$y~`UCm=zquS?VkV`+u2q*g1!bfZ_AS%`tsr`tf7gPoN}jnEk*eP<&0JcZ!8k)E zV+(^>4xuB|AY$QU{9`%n?5a+j0#ql8u;5NUaI>zGi`~?*t`-%Ww=*YECAQ$+9tKo? z2?*Yb-QM;2IcIC5Y;k0@C2EK|@!pO#QA}$&R*qnsyeAdIqK-b0W&)n zo-CzDFj|cl7WN+-FxS!u@CtauVgko?Eb5BM1BdSEnu41fSbeZEW?YF88qJG)z+34yQ7>7g|kKJ6Bp z!tLBiGZ>|%fLL9yx&oa6ec$;ABfna(nONT#;3vVM!U8JGMk%0c?P^6!mY5fjC zFJ@)pQyqM5DcSCmmZxv5_gMfwyTE5H%p?r3bH!*+>`@lG8aq2q%L%VIAs4;E(QMz9 z#xAjwq>F%~B{_I%&Uwp|nD?IdNz8$GSG;`G;OyR9=X1gZJqm66rfGrrXxVZ;f@!+$ zjuw;S>OeE;k*k}ajy_=rDo&~<2nBluJ@3;*-g!z#QwLx>uU07iZBt8&nn26=nF54N z+%Z|L$0N*V8*qUk*T{<_<;(>O!7jcfVeezM(`xd1b2=)J0y>UNIx)TCFqD-+>x}1B z1y$p?QBdr%*5XCbG~NUeIx{{EGbHp$_}_lCA3oBuoGYSdEuzIrIK3mwzWE3>y{ZVE zc0=3J-N8x#zm9_vDR0M;QT0OdHie`;hX^sLXV>`&{LpDv_%`*g8D{rvai8eC#) z(hTx>AhiFmwsZi9{|fZ;*h+~zE@x5! zT@NVoBzvICXy_whkzCV(01Mw z;--xd=kvTKLJj^M*AjNh2j?P+)*NOWhk6khJx9pu`*bA%+uFH<{;lI3y5W0ke+d>bJ!+hC_o8qouKrjQbtA z3^S}1eW(yIt0YO1vr3-`-#edNl=WKQ>47JTP-cjHzfWVj0BtFL_aIszLPFaUzq=6% z!N$j?-=7x0yKYyIb`gSEh~JIFtFH08he-N6^?gD5`<~->r|$d%;9Cv5)56zwp9f#} z_~^pziH{ckQ|e@VbT;brD=5M5SOj3fEh0Aig`BH0A>AG3{Xl>0*d98%q~nTNmYngM zKq&JT!Vf-Y>b3X@_Aj3cY951p?9H=&;SJl(`iXtPeQQK?s1Thp<9RczMACIp^-Rv$ z6PEdS>*RarJFEn-sd$U%hl!wJG6K5c9gH1_a7Le@IqYV9!QaV14kDm?L%}ctN-Gc% z&^(zF-faG+H|zaR(>P0(^UA??I2<9dlf+zrAn0w~F z8*-q!g5}~IOw3!X>rh1cZoFy{!EEa zFuDjfT>M%5@#3Jv@AZ$@<8;LCBza@0_-9F_fS(F}zTF$$KpdmgEvq#D_z;f#A2ss% zJ=@<*K$ui%{rgPxZ!B2w;F6^@5>da@lBTIn5Ru z4xLR~#>PWO4Tko$0Z~{z$%yFbga3n&Xr6g-zGoDZ4}B97U-~pcq92>$zscOJ9asRJ zbV}$&kttJfeNxbpA<_BlAxe(XcN66z2T7pFc>J;ofKkyCBq~Z4XAI>FbMc0Lpt%m+=Jz&cstTPzMsu_7N~I-t zk8)Cn`J<21v&M?cw~FZ%iIJke&EWWyg2{md9Gnwx@K1VN_YQoB-cF+bV9=qKhWD#edu z<{n>^9twT+k2Yk`9SxHGG{g5&*}Knqdl`N z@z77c6IT}%iWd*PsN?@gJoHb`g7p6<;-N=i&u1Hw-AX+4iA)l#=XmIgYj+3feDTml zx2EEu>+c53I|bKGQVIBsKP64!M~;UMU!SH1{%4(41F3lEFLA(+-FnH3hyDuCq{l|8_jI?0CxU|6V*a&pgS4qyEptL-%-82GccAdm0bDaewIkbocO&>z>1Rc^_6=>E`5&|b_nka%*Qne`{tUMEp;-F|!ebhCRrw28d+M1M`^(CdodqWE!oN6e&;sKxkP{AGF!yy$oJ@rsI9TVJ%iP69M&uG4~% zxj>~_Ht@}W%{aO^a#oOUnn`;o{s#VHkPlId>M)EUi#ipPC4zt{0)N3|djdHi@cgna zsJ2SENG4gO6vT*q7wYomT&>|$u;WkE26V72;sg%i)Jm8SYFgNAEAhhNeL&tnA*%=hj5&)X!8y7RbP@CtSuvQDX`IqJBypr*q3I9Wk~C_#Ht9n7S*9b z;JGN|gz|C4fE>!h6$5f87gtP&La+vL&Y2U+#uXIG3^_%xA0-}=sez3V@KRa=u<@jq zavCNjA$L|Ly_9{Ag%;6xeFjsCXYGF_dPa%v8 zdpa9W?Mgiyk`9Ke%jA=oOBNGTX&Vkne@dWa;+LNt%GY4jfe|z64gg8ly5+1dp%FqZ zIBVC3Al)diKMI%`fAIU;ie>%E*8Jt?FXA}-U-FmdnTIj`Ro3`V{pBAL1=e3)akSW> zV4wd5e|ety3`ar{$%|o?nq7YHpMP(gzkHw7KZ3u!@v}68B#fWp+Sv~hfq6;acfi=2 z^_Ta#iiZEl-2eaj%m4mVVVb}E7-$I&bM%)__=p5b`OC%d*qqD!>YK<&S$|$L&F?b* zq}D&iay^azyp2XE9R%gWu{Xo9ujpuT)wvjZ(G2O=2LhyLtEfF2s@j+lIoTEgc$koe zVoS|<(@#9XQL33M$}q?j;ik+vk`B>d)B~s$BPCFQ*mX8c+8obaEcxDED*3GJ#~BA% z8=4=A?aDsKx%mu+NL5~%v4*e)LarQT&6TUcHH=9whQS>$yW*#C%>nodX?+;|FnncH zEl8TOxhTe6M0;Uu4OZ9SS9mf0@LwhLB*w^zh2g5@y%W2oJm9tAs%JvsP5&xChar;= z22jlMzG!G&`OdQ5!rYh0gzIAV;7*!2yN8`42B*Jwe)H^os(t4}C#109&$p$2ZcHe)HXQrjeEdn80N3EBkYX1V;ChZs zD!>N<1jL5$9GB7TC1^DoIVl-$ubReNAzGZs7E$@Y1pLM6#BD^KN`jA}vr;!WHjz~jh z3c>MO6i$ES4?;Y5192XXEvEt=cQ5I=-W0%s-a5XoM#a7eOAgziFWln$RPemT_fbGi z&-lJ%<^K-89kXS8Un1`}hwn1H-DZ5}qVVSNeOAne?++mh#P_qe_JnV-FFJraD8zXi z{{VKJGj-m^oe}>C-ZTunJ8xq@-d7I-^Ud3MoZLs{zKHkHCAbg8)??mc`oA>{I$5l4 zNg|`IYwlsRMpA+*jJboVHtra#W+bR;?ECE*Pa7&N(9T%f)6jqVuz{Gx8qUhlUq<~`Ga?n>^5*%hG_pN@It1JN<%*TBFy z7z^I4ei=yg^gKMFVh&GLpKN`2N<_hg(jj+Nj%?WtE1;B9FIYavu!!SOL4Ur_O;Lz) zdi<8FKiUCIF%22I3xEc5%JN}>5hA{mMyT|Dh9VV(|3qOtgO@(ywv!{ZSuwz_4A zJxqF?nVBV$D^lhOut=y%?xUz76tlT~nzD`zN0J|jO}Lo)8wIW$+*iqqUcqW43kBkz zN|ThiBJF?lD?DNMBCmDt-lW;xyEg>oS&G;#c6K;^3oiLOl^k zPO~STyOw%S`>7of)zpciD8?=cuFc=B?AD>EOa|=U)vAhU1wtmMimd*jDk{{ca1Q9w zVHFx`H3$tgQvCM-k2tvE)$TYLF{NvFB17VTwI3Aq@WJX^yM7?Tj5#&^79zwHW(qNd znLa(4k}1HD3r549q89P%VKaotRQw)n!I;)+$;|b7Vp>Fzg(eKA$*R-d=_2#AmY~;&fsG z%G%k)zId0o6AmwmSXC#$?IYl7nyC|Q6IYB(p%|%@dC(FtKzK1!4F6RsxHAhAyIK7j zu3EwQPq6wAc#XyXfcNSy@cw-z;hpQjJ1iYuN8Vm7(;pAsxfb4Oc$c`7#{BN#r62b> z$vt9IYUXnqUV?6|LYDQWs>MgQGq8CJiTTsN4htl%2HI_(Swx$V@a^$nRox;)l}{8ELP-zV8m;BCd)e1Ey^L zWr;ydO0<0V`CZi9tIT;YJ@J?jUpim9VM=L@di$~X*8hwLB}T={UVz82F&ukASo>>c z>Y>g`_%BVrURm&?^0r^8yNEl!2CEO|2!Vq)1yzw|AcOCvo7B72m}y|~Cwh*_rOPWI zDMeyXX)J-&Eado%k*t*!^o6^)1*_D7B48&+dQXm7n2TFki79Fe7=gE(56JpfC@>^O;D4mKr>XM*ltma^P!+7k8B3tSN~i@sfCv+H z@FnmJW?%pv=!KA`Oc2ZvGFL<&1 z!fyV8ES>SsdK*y1kfmu|27CBi2DZp}uZYFMeH8P*`n(3iv_Rsw5S_^iK2|Hlp&`@opM za8Y|_a=18x-)_+YeEHpN7%uWuQ4#r|jY2BNc!MxacnHGC7>?;O(u7UHzx)4}==1hl zTcuC4S7dYa`GXeNEPbxl_vk456t3C?8ofapIYJfE$RkJe3UogB=(rbj%rgDICcCaT zga14X#Z%u`4*~*F6Lfx-pi9CW2Go-=cnhF<1?E`)2g} zbM0Hw@At`D>i3V5+oJ*X@`e443qvvhM>MY^u;{5v&4RRPjAc~$f#f+)0{GM#4x`?Rl7r2->S-c%1m1&tNe#>2Q!7bzL9} zAm{W5-oRdSpdb(dItgwaY~|0YPJ}@=NSlCcjBZCgmY5%aMdM${K^J1xt_f1y$E^3G8~aADZKa zmiP?%s}i{8t_|ieNHe};P<6doU&%7Mw_Jkv$Yj)AEo#iT-3H-Z+D?Fnzs`UvtI<^% z0RU)MWlWWkY$4wzD~N327cNW5$WW`4BHyD588z$zu2`Ln8g_M=-BHplc<@jRT&}Fg*DZU_=}n|7 zq&Dx+QD9@b^xRt+u3MVwJOXVQHmO@8AZ98YV{?9Vi(7*T^BfXb+2@VlsjPp5XXeOjA;_EC-#Y|{WlEme zU`n3HzeRao)Je#(1rjc%40bh`4!4?9L5Y#>*c5QhsmRl(;33@$KyxZ`^l2`wH@(fl zZGg9q?0bW`G2-|V?4qc~j{t0xcD5h$tN^wRfhTpD|9T4rUQ-^N1=IpC@K}4L014qg zUGf&vh5yzH6@INaUoHy@<+7*)LPOz~%Yrt!ENqnvQ!bHe8{+~QEN_C?(O#WsK(szVLx&l?_~!5B>D;jg!tR38^a4W@j=b_HC}%e>92|UE2O_f z$YXV5^w)HKH(r0ulwY#X3uKQSM4c0PQE~!-dH7}i^g2^X1yz<5rLhg6^=~1sp%D*= zPfc;K6oacL_#+$-Cy$#un#}8FzeX zc<2s;LyzM+GWVpCv%*752k#i#X=yOJ6G~wgpyI4D4)X$8>6jP+XPLxO>oJ@h@geNA ze+yGC$j7gEDR|4jV#4Mvr*P-U#$kd&IXh=7xWn+rE-FcZRV@G2jzeuml?gar>YOx* zMN40$b~=6k5v0Yks0qM=%pE<)8IsM0Nqyn{hYfxp);vR#-{jNIQI;9C!MnDNl)D=(%H0G1>?Um|lfnA_N#) zimZnYw-|=%l)1P*uufTyO9UkkT*o6xM%nz3M9t9O!^<`H3Ed*uGH0}F6N>>2gtZN*1LspDVAPc7 zm$}n269YW`9EbLV1)_^8}3a|>qt~7@=I?&q6MdB@Cn%TQA zpvR6JC4i5E)o)UfIEyGAI(>Z#1>#HPsf7E{si{g!4tE^r<(GI`Io8WBv5yd&B1Jjk z^C3ojUNGY00)f_x)xz_I*>$5T;uPu_B5#a;??ea?m zu@ob|JgjTu!B4EV?-1XltAWI*F#KZw36Npt7* zSU-J4sk=Z6e{R0LQQ)DnwEm~h%?_v(u(OD|Q`eKENaK(OJ~xf`V;a)AW8@qzq`nj_@gtxi&q4^pY+yian$wZhtvhZ16AH(RziuQqJrCA zN=_3gT4uuoKlU`SKNcUuJY(%J9B1OfnGbNzTUd?5ev>{;VwgsUOf-23X@+RZLOV$vy>^xN2x%&MlN@{la+lvySwS8ebiSAr=*+PYpW@RAJ- z-OY}H`-^a~dbU|QU{`->-~i(m!Hc==a;fW(i)bn6zBT;i7OWjBdX}HdXkvPQEqa#C zVx%X|(B4e>R5PfPGpiat)crm&EY!*`StA5JTaRDRv+Nz(YLH(NJ%eU#lwXpU+9bC! z=iBDJFU9d;=3POhAxUo_$1CFBlwan(9ccc@z0U%A@>vXk_o0~PqZ4z9{I1@G!%-=y z+8yN>$OPr-8T#9fm$apE&=c8$Ry)2fq`W2PBS-zx&PRgP_kgw~L)Lkt9xWP%EkKV> zeBt9eGa;XgIw1{FhXuIASZz|FvKr%t->8W$oS=q#yFP6~rEPi(w}EHQqn5G;Fi;EM zcqe@o93D%t3|E|)m%b#+AXQpQM@LKN+>?0`FGSrLax05!&y`#3&Kz4b1-Ib$7BI-= za$D94?zl>B$3Y6}=E$vHwrywBr1Co-Y7R^gKn+ar8)8o715J<#$ig<-rep&+i=kxANo8@b*P+$j-aVm!rWOc8eI zchV6-fOO&!{f_rO1l)x0Gy44NxY{>S__BT;6xgLp#U%Oa8@I@@ZemM_F<=v-d?(u?K7e zp0d3rd}RW7*MohN2cp2fnG*aQI{?p(=7W8C&Bc|TGm;F0;f^cBb4Cc^Ipa&S>)$8} ze4?JSBHRh89XpTWf>U*x=xQX9boHFEcPN{S0y%n{gWF8rdLD*!&)MmjVgRvW3`679 z(q!9^IR1itF?0^?3*DjF(G^6FtS7QSB12)P?r!t5U~pm#3kbW&#=)4Aah`;S&8Qg0 zj#};u8s*o*2DwBU;5loA=d6hv>ca-g<0nTK{63F1(2G!pn*;O4ip_voDY(Sff5O+m zhTzC?6>DxLnN!syM@jjmiR4&4PT-TyT8aZ0z-S-zVtX`Srh|5lxFXttB4~^KA1|dB zOq9#~sklHqr_05iDVMrRxh$-~1wvQLUv9yRCyI3Qb2XCQO^A`iWNj40u~3Zh-0peYlcP-~uoC)X0_L_5l)*7snYsJe}}C*V%P+~Q12f$uzvSc!3>v@JUvk+tW&-+kC&PYIz);vskv$Q!YU73Eutg-5 znpM0r=WZa6$x|Pj6+(7|EuWQ-ge}h(!yRmSFg}T2fR8!%y_W@2bQKrr@@Ow8LK;*H zd4o9RFGmCf?8W&@uPK?19F(hh36-i$U@$T(03AYAPtc$=7qiQ0O z@`#sUnY1#jp=;i7CZ~UWR)+? zx5>*8Mu0DkugJ1japGOIv0voiQ1cOol$<>Bw6n&bEqOn*cj$3>aC*t8(9je6h{LlI zW0g7d@id3$i_O3+Yx@|w9~fzv4OHmLjbk~oVWA>)jCEbk#4UQvrY#&k)0f`iSNwC4+I5_HV%VD&bI z(oRp4(YrQ%M*|0V7|%=c1kx71!&*$aq*Doc98Z&sdj8}tjCv{`bYs+o>w03;n;)}` zy0?4;MwRuk&E|S3o~An|qpU7~RnIzMOL^8?)w52}lGgHq3jm4oDTBJl_Yu#!jPf>~ zW*2X%XPp9VJ?kpz;#pVILOkoL8yM;Joa{M_$aN3)(gyMw(y3Kca7)*cADy~-xu|0n z^x?0n4RBWuBVSc**d>Ju?eK6V&nM+9&d}Q`rB2H4Gz?wGVZ>;Vw+$?DWD7^;I z_?)DaQ4BnyTa&t;56znOeFE{bc19CwEr7do$uVA%u?(^3tYX%)GKf*=PvV$^F+acw z7`$xB%Gj!Tv2eP;scvoTVufE2jvBdm=EbYKq|6IiqGry&Wke9D;iZPY2Jp0h@M)X; zQm7#q@=J1C04@U<(7OV)HSFMfRsh7l!$F_?g%effVVzogF0H+7oj)`Ybhn@iDkd3z zxM^`euH6$Av=X`{9D9u`*fBaMGRtCLmks~w%3qhpI!X^T$npFoh?_m*7eih_@$wv- ze^+_T?uV3*2yJ>gG`ubHWhnOake0??kzEr*mmDJc>1nfb^~6A9ukxRr?3N$YtF+fA zrNiH!aZhpOF@p|?+z}6eDCF~!`?`Z|&veGUcj;uRYNGlDp* zjqSBx&v^Xl4+E<=!McPrK!6k7#y0jXxFrU3M|*NY`528OjH?s~*On(C97^`u_VMwl zN3a+2+nuD-#{T6e%gB9UsQJ*t3ywT=Az?{rv5>Lb!5xVbI&BIJ>cZo?l@^$_WvnPx&_!f7C`@0 zRkQ@kf09HIy3}G;-~}-lpGTv`&Q2j|xE0*MHHS_@0EnV))y6hg?Q~Yl)N}07Ld;>s zir}`J*%W<_ht)2oc|@bA>zD)i$CyJ~+;SUt4)}Llk4igw8jE3zW3&_q)=|SX$t}<9 z2v#?NN=Uxt6o$4Yw?zJ9E3cc(L*>H)C%QXCP=Z?8pPR7G%)cL~!%8nyW!}1!ej_{4 z``LK0pV@{^^ak)jH~Tq~=*fOQg|*WE@Xne1NG5vi$Ojhx!}0he{uq9#u2^<0yPvfV zMxmh3M0tl(dhG0@*?wdc+%S`S%w|?hdHUO003M$4& zfmz~}B)D$TvWGt(ZKi)RKYkSNJX0h6z-IM)*CupJ&!6qN{x4qt0rg*+ zs(;K@>VI$552(L?s{S>=)t2C&WPU*X_g|L8PpwzKe?Jti67cUgCWC7#CH77#35{*Q zvCo(0sGB))=cuiY{fROvk1WFAFkWxz*dL>}`M3?~Et1)+%Wz~aZgnu1ZN@lt#CWTN zeY#`+F50$E#`37$n!2yp?HP;tn_E-Qv4``{J59Hyeoh8+2@7FHOn5QXok)YhuBXA` zfBZr`VE-v}w9jYT7|7T*tTF;+`xdOe6m3JyyfpeXl;SYjfm(H_WiPH4f!XH%>v5oZVkk4f2(dj?G@0MpDcvYIanoe5 ziG;iDai5#am#HA_vBHjW>L+-UOc|Wl3X-E%C5>I#N^2ZJfAyCmxXDIP<#f5oX-ekdf5L!o#!$k4 zm1u!4?P-FTG82&S@a4hiUgRiUE^1ccIO}x+BhrJ0i|r@9F{P&vi4yqqB>^3yWjuXK7RUBH`1`GPx98S9la@ZUs|rxhovKf;^d7&f}=X zH5b2YaLtKNgA)>N^Z9d8*{I-S3o3YZ7V#uT%$6zvMk5ICA@A-Lg961%KgcfG>BI2S z5A(1>F|%x^&rADAW)G;zvc-$&roy;S9x?06dcx|j-s=ggN8D|(x>P<&VfA1so`%&- zlm+M2!XyA<>g8hhHJmT55;r4yuNZ$~rXrOWMZo%;&(n^;9lSZMyu*_=`y_L|)>@g?={u+*}sl#=O}YmIY~WA+bVk#tt~T4M4G@__gDM zLf%&SRWN>z>~4R{1MBfF>$`*4CmFyor1OK~X3CKH^HB`-QE~$1*vUk65ge8e<8Z4d zq(J`1;$5YVN)5i)yuA|y{0;sj^1ZxF)@p8fW)RX7Hj@T%!CkN~4^=bQuZK(VoYv#s zCxJ(3wyLOnJ(0bHI$w>O!~k>JX!{zE-r_ra5>43oaSnWJ<%?s+Y>*JE)V(vp~+rk_;zq9UOK$%}3DD^)r1 zlvW;{E;`u6pW7Wuk5M?uYwSSKp$LrBE(z04SsSjRo&>AkUnL{7rhQTFY}yya9fYSqBm-F=gu%S*H=g$Ipk+~W{0fdkKMb?-iCj@8`mj;0cL&TCUvjNOC0>>X0iT zNCi8h7s{2lzb{+~ zNt}zP=tP*mldXVt`lC7qj~_-Sv8@S=x{7+U*NktV-??1wLckPhk|RSdhSl9H@CYYB zbvNP{Z2?$zO?<)3Q&$|F=HidmqXrBiihSw=u!QIX*es$Cs2{-lq8~68iGFB|-!Juj zY;taeTRFBIjyd>0@yzeUSbbY2be9}lz7c_v~)j3jc@}H&R zl6{?FR&fl*tWBt>8x#q7b%P?Bmw*d!+Qp@^3y?6KZcrrLxLJipI?$SsqnDv--v>yw z=n2WN=R|?B61V$`6@wF4-GcI~g^Lz63K#7$Shxr$xRg~|7FsrxEQI4*$U+VH;_V3@ z3ytp(7HUWlHyGU)M2VA+z(UH8a)M2+&-i^s$#T>>mzgVR0e-hkGkwo&pZWD zvQgGMfhB%713*s3cM;3$f0LkG#@GDq=k?r?%IoyH!Ucv6Qsne*PH-*wP>;=+!#;n8 z%wfsx;1%jU%&Q5D?NYFs(XOtutS^r5X_l4AuVV`WauH`U#AOW(P+W?@VX$u15=_hT zXPzr}$X2XkidFwL_ZwS4i~=NqEM^e20g?z`aNcg(DM(aFi?2846rKg{n?w1l2oHZY z7>)2l-JcZ}K6#qQwyiV&JPsP3s)4(LF}M<2VVdv^6UjCn{>$xJ*O@WsG@6?V7>GPZ z5@KJJ#Y`!T05h5AXxqf-$H_GKR~Z`K8jRMWPQ01U&vb1h@Q}~W4PO(Co$v0{dJq<7um*SW zgQZD#Itw}jLQWWlnO*l@CqQDg72e6r&sz)N%~J&-Gdrm87f_Qz?^iiQ%!c%g8tOUR?*L0J)o1BMiX9D(HWfTI5;!Sw0oe^hIhddQ$ zQ5$YCsbaskXHqp)%FAZ+5Ym}apFJzx9wJazD-Ydzx#-aYZoxjEinEBH>k7rzrJ{c^ zkm;IUomA!WBb`*`$gNDOvgKALRhhU&=nae1C9^PnQpLy=CRJ1xP>+)^k;c#*P8^(;#uDiHqz{+j-`riJJi{1%#?f_wmp99tT4Gxk4=tllfMqB!$V zd?x4ruAYoTyJg*1@gmlRV$a_#Mh;2Gr6~4DEuI);H-~U#F{Pd{R2s__nLYP0p1C|< zMo-;U+PplXC($i~%)$1)o27R^~xtDv1P z)hZy*;T97dD=Mhm#RK%I$NfNtV@U{_!FV zG3Itd6~YtpxNQf`oZ!5l00^$|@|M?&jq<(=Cc~GDsj!&TQhXve*et2nm6ryOG0SMf zfx0!gw&GfeYYWtu5LXvuipei~TiCUkWdb7nX{v8zE9E#30rguA;*~f&ECk}=&kdGM zFtgLWIowFCdAeE5giea^kGXRKt>5^kR2mpuh!uolWm%A&CJAz$y%EUK)k07+69I!x z))r7*U@|9)C00lMLmW~U;@1459em|2;qWKOazSDV@I-)p&Sx1zZQ)+=H9Z_ckn}P#O zM%KPAtP7He2&41jh(hNjQi9G)qy(LpNC`SGkrH%V_vG%LHcetAC-Hvq*D$b~@v?e_ z$a3I3&Yn~c$ab#EGvaJ8k3B+FVAsj2bF2u`yG^jg&!>#)i9^67$&iDS+(LFOIQ$75 z&DF*Rk3KU+82j~Wg|V;NRT!Hm!BT)NW6#{biz^`$9nmo&t4$aiERh=RcLxCRpAri7 zMr|4jtYfSmenhwPXVUyn7ZVhY7S{hXiNBNeVzjss72$ol|0yx)KlMMwU;PjLPxY0X z_di|wo6Y;5az~ObCE|awBSM=0sp+Br3;w77DHA9w!APtAAch6~Pd8p5d~@ea;hSRz zczi?u6Z>LD?$?EB4nN*wn)ZKnXPPbgpMG(@YQyy~F#Xzal%DS$ihUn)NBk^-0qMJw z<^1-#!%#5kpVIg5e}wn%>ibCg`=0Y>_A_K*_~f_eeECC8g2-upPBt3ZVt&iJKcM~> zPE6L{bf{0B7=NJcmD(TQ&G`LEq@3SLA2`yEePOdjKcv}5-u=;Sq>+JL1r8j+;l>D_}z+YF0L)O=HS|l zEARxP$;s3+@8|+4Ye*bok&<*Zi66Zc(3vkLLR|p-o56SD`MpF2ZHct$VIE@M>Sp?4 z;fnQQjof^}w3udjdfNaiEn9EVwwuFSFE2qh^EcCG4hjr;JH8S|Ol8Gw0j%^TmYjY5 zuo@U+WIb&ZBqE?h#=JwjPM=#jp6pmeIdr>|NAG7m1mCq_Le=P8lz!Gbq{`fUQB?n6-B5hDqiJMfAdrv(-dAOUawIr61PlMAq? z7rKULD3DPTk{%H0_;tf?WjvJ$zFY9ld7>8w-XeN&UVql89PY}*-+Jc{*c;kWo&#$i zNwqR5hGrc)8hVl_F-@(L0`V2TmvS7u-BD3|W;$6YsRTaP2@_hO&nIJqudh z=UuF9SHQRXdEm^=62dJ2KLNFX{h}X$%2u1jl4IE?Ajd(6Bn2@Ty+H7x!ua8Fa4?OP z2P0mtofa@(-86|Qsa~_5b_hmSBIzXl5tqNkmZgj1kV=HiJukpt-q`@bT5nb#gNpw| zkdFHWrv69aPqz;{5l~2ec!~Y+VSJdFYIfpRJLp%e@BD+|#5mPjD&z12ZeucPpnQO* zSoT0)5;(GeIi>aH>=F2tYnFmF%wc&{jp8>kYoDKlbO}6A9|!E6d)@-h>>|Y2a`R;q zM?HJ2q>UzNLJju*BkMc%tWr%C)Pp5KSQX4@Es<#xfgI~^w2R{HVVd^bQcqARy7AL6 z$uPfRcioB)%yAXiiR2_aH@yLV?Oq!F;|UUx!FW^LCD}FNl_ZX3T_Trip!EJX7Jj@^iHR-Dn;E@yZ8Z z&+Qju>y+&t-%C^N=X>pQ?9HK;i1B#6nZ)mWE+_F)vBp6@mtxn=E6%a6#RXwr-a-5i zl~wWymQbvvsEePWYz?lMa+DcdsrWl^ZNL@d1`iP8xIs6?xY|&R(}J>=#8vWSg-E`2 zy^BhS)rpd@XL=?h69(*LK5yk5D3vfK;}56d9FKUmiL}G^*e=^A9E68(5xzB;6J}zV zX~A#6;Z4?ME}4tx?Rb`lYX`27`4WR`A+G$csF|uHu_JCV8&7&YiOI7kEVJwVlJRQm zUt%nVc!n<&c*YN?B`<5CAXp=FT+Yjd3UeoOnu`spnPbt$CUGU01OY7yNX@tsM095) zK}Ppvnp>}3J}Dc&^{mU)x}qnF@otl%qYAXbCfWzATk(dtB=i$!Xj$P2NE6LKPL@jX!r zez97>2$Gak!t2#wN@u0{??1g3mNMr^JP1fmNt7I%kejhjQSzX~!N3{Cca!N=6p> zqJf5L{PMM_TI36E8}W0ReJ4`BYIFm5%2g3MLb;-RQLZTRlq<>?xuVaAdg_{T#A#V|FpD>Kkc6xic34El1tp}?edo(vwqB>5Di2>S~B6sGSQd5vJ&G;Z|{a>)iUC?j}Zsf=4A7hPAX3rbO810JH8M!Coe7HFhq z{&EX$eUZHuJ5hDdvG<5gDv;XE0=;t|?YNTbV zD+FP2QKHRX3aHmsnMY8_?64ODhLvRVl>K-(?bk(^CBU>CxA!*KkCV8_d3*gs{i%l4 zKePr=Y|%divwXYjzrQe9e{HgU@sGXI9}3~!qosclyxOXLycFEF-R&QeYCk*Ke%0!t zwDoUp#z3ei)ZGzs@n5o#N;+|E#qTw^w&7}Uh3~DR#mrQk6@f5MVN6R+Pi#D7GwbV$ zvwi^lmkvwfZw%Vn5`7*V_yg+ipQ?Y&9$T(|KbY}~1DeqoM_s{Dv&B)1#Sw8v90F$* zP3Hb1lknGi_4~(n<`i&zkEvbgrL3lG=)@dvj7Oa4*zrI10Kbk*Ws^eyFo$*ywIO$0 zn<;|uaZV#9#W)OY+iFs9tZaZz$$@DBbA7Cr?FU8ChE>VI=+$U7K1=wyPKI=75R8S? z3>FC9!oK+KFxnRgN=f|rGPN(FXYfl^>bd+x!@|^X0GCRgx|vEH4Z_^fF&3M`;AyEV zo2$dHFwkePC^#vD3YSS4Hif}2R1T#+UzPeoRqAr`35ZmW_o#47N_}x_x>BcabIP6m zwP<;S4#z~`V%MS-%I(#_mjs;bTC@alRPYDJ!z zlH<9KyX3TV&5L{sJPTY1=CEgvA7%5400=Ng*nvm(1|($PaB0z!I?UK3edcpqg8rAB zC|6U{bn<3K?}H;;?acRQ|xz71DGPa!1qEw~c;CP0s#rrYf&u<;co4Pa$rrxE#`wUFrs zb1B9H2vd_ZN15K%=9*Q?RHnH|&Q1}4rv{Pf=h0OBCAP=hakOcsPvmsG5fcJ&nsWIY zLDj{6q}LK5J9$OPzW#M3`{Y67x+K~2g>NL6H%azfa0VM;HO-F+*@-Zcod_f1h%h3K z2qWT%Fd`1f62vtE8nA}Xp`c`EcPxdE9q7r429wX7K&K* zI(k(@QInwnTK6WcmSXmpZ(XYF7A!tke7ux&*>uhfxor|~Y3b{XLyHm-M~e~>M~e~> zM{^PpM>i!Rj)oW!ADJm#(|KHyNIysIGA~tT_H}hEPrL#%@4q{kdBy<0J>nm)@?_#7 z2R^STsZsVS_;@CnSrf9|k{Y`@<X4vmpl$~ zNiwfeOntT321Y7MXLw1kjbTkOCSlM&R7w^iC=C9>VA2HOF_~?`=UyJRvw+-Zp$t}k z0kP?-0^fjO+nrRA(8Qfp?a&}8r_g-USsw;3y@cdq_rhN=UVhD=hzr2sI!A!RB4+>H zsPgzEBQg++cW~1?avb2|y2tp500auJQNCNqQc2GLIS3TOT1ayK;zz*wcB-B$pGZYv z=Y(vq8(As20@@xQZ=E3p&%BIiqLK__W~F)LXH46Y1ZfW&(Z7l?dl|?rNxDITJi3uP zE#07AJ-U@N;8v*QCH>R001pGsvj9wias~-Gx|vUJM6*;TN&f>41}K@7mTm;`!4ham z#km<*iZ}S&b6Fn14u@l-b8Tpiw6(03xpQNR1NKlPmOWw_3T403b0`LTc|+;wk2{P>vFcD1~FE z6pm2L`;=E@89dPkR2PaG*+N=!E1SU3*Nt{V9Mu?KKv|gLEDnD~zVWXT$k6eRDRzc* z0LmIL5@B>0XUzLUWTR zdYK@EW+`Rk&SojiWM?&OoD{f)KcT?sa=EexWvBsvGl~5_TrTHS5Z++46z#_;tg4iK zomjk!qWGq4pm=3JJ3sO3D8F<_-(3x+b zG+~~0$VK-gj!7UJ4^VYd2#G63UXXX3b^qA0Ki2szHAY==p?ecH(J34@P;YT zBu(t8YLW)tIx;L`4lbIc6e58>Sokk&OlcAc>jT~#0d#(@@Q6B~aDtQks^j2>*#s3U z)C9FE=soXc_Zp)m}dC(344(0-B40+xZ@zzQs~SY)Bi5<{`wEpjGqUe@?pTZ1&!zv zWou4Sz96h>BarXSbJe5?3ui?3#N_bh=X91Z0!``29{&x1g}F47+o3{xqi9llukTOo zy{I0~XffS*9~HQ4Dq)pfEBm9$PEusl7NyCBr&M-LdYg;eM!ki3A}duukp_9vWey=p zS=7wwRz{03$X0X%7D6?mT)LI9eYydnnopL%DHU?*q8lF3BQJ<$wK7_7Oj;S)1W~Pw zOu2>i6RQiztymeI?5|oGoQ7K~!^myY%21u_whL~y!^&_)`vbWaQ?0mdX4~{gdZ`*> zeG)}@+JvVKdJAc>W044q2%}FBWhF*I)&87gmDOs$+Z^^gZP;?uEg>_lI&GShEjj2& z3?;{U@;T+I)22D=l5K%{oOtO0u}-EZ7JG|We0_U2v3Ld3C8)kJWchQXxThfRCmyYW zdmrr0=A8 zg93@;`AYZqF`r=4o)}`r^wAIO)7S9SYr2&sg8GSc=P|xSBP;sCj2VOvQ!eAK`2;zB zdnTWxg%JbIkID9f`O+LZl12=ls1eh_FVu)>*IQ7}n^@-KwpE`}u3PjL z)U!-RuYg)Pjt$hL&oP_Th+)GpVv6{=LIa({U$7I(_7ppT?3rBgJD+@HfecpH^kBry z*s)*B%XqmJ^JOA#t@$!lZpD0=F1KR7%*5@sn=ko*$SmH0 z!Ymkv`Es|KFEqT&PwT~e;l0m%>4eulKC1`wWfm&xV!jY`(4CzD%Gf>2YPeMD!x}A8 zD;GJiEk$X8uaz=n6{90-`mI^ggiml=54tw%ZO>*2@ebsU=S9sDnYAKWP`;9xJ|P6P z8qko?Lf8CC?V@Y#4s&8CiE(m%Um7P3_zcDgGX??mc+qTXOntdC9@%8SVDv5&h>HV4 zH!nfqnJCyp6F>Jju>;MAGKALAS+OQ8Y-&?9A?_@gAYKP61D@% zG|I&~AL#Luqs%e3a2#soOY!@80~N<1C8mr+O5)8eiJ^8)w@Esr!mWrpY!WuS4K@i; z)1#=vCYerl!kRU?Bt`w_vcyHsE7Vc>sOqFOk}IfSBAea%U#yXAc`DXOrrb)5CqMwz z=g|pV`+Oc^r{H)WJe8qg8+;y;H;p0B5kB#T&MsoT-#8sQzX<3^=q0KSC1aB@vaiL^ zd4P_Cl>pB?usa6E-ORvm(L)(f^I7aRJmu*4chqAxd^5>6I@O&B)&~nQ4Zgd!Tsv3EBNZ z?mkb1r(rsH%wY5RCMedb*@JU18)$%*ia&urVW)g>X4pA>a5n6frpFJ!sAW2uu&!ni zs^GuMAxxxey5gFUGXXyRiYBIfy=Cry2zy-&zpN=34Pz|9rUA{t1ED0)z4!MTrtQs5 zwpYGyxayf4W(R%v+uh}*PYjbFy&akV93Kl1F@=NnnE)G* z4!II+M|fe2c>!Pf5^gTTPeI4=>=QS_n9v54oVG_2CHtZ}Oe@PHs0N|i@r5|ixp(S( zXRMD1@qFhquzaE;gwM^TPuRZC z=kwy_qYGKMh(C}C67uOsO?RPi83#vYCI+YSUkI7GiVuUShvq^&KvE2j0#ipa+K+8T>IT=5NRb;zMH>>}#m> zIk1%I!fgP`io%H7Ox)rQWz~h@W~_b_wmG~?c!BqHRN1fcY|-U1C*{Y5_DR?o4PR49 zGp=wyl{6)NQ_N^CX`oO}2v@Cu7Ls!9a9p8WS(}tQ13oN<0LDRPB^A*0zABjlI2CS3 zstMq;#biUH!XwcRQ|-@u=2oGVVN501?pu7`&7TXQ9i-(L32>N z*_?plc;P>KZSW~z=ZO$QxN#(!SR zsgkjCan8mwY%+--^RKcr{=OVPsctR}xmmxbp`pCJAHnQdO(1NPg8^c}7z~aKC~Z+& z#8!0yAbwBhB>w>q<31yiD97mQZ}5(IT#74_y{Z9(=DYd*`Sn1St{^XUjy2zxrgi5o z{1kD07NZ%uG~uXZm#nzbDn|_zv+=lP3y{i*xJ9QzuZfIK<*(FH6}X*gi!RrL#qgxY z`xqnNA;OGid@7YDIoxH z>{?;=#Y1m1s?W?as4{Y*Wc6Yrs<>IoiktBP|6%K?5-df2TX=~feMts~sY$D{bhzPw z7>xENUSb+v)+J)11`upSCrlH3n&GNrVdgMhH$IkixsojjO~4XrP&F92}-EBvu&GH;yCouCM6ugF0_)=bkHdGl#=_Wk-qbuA%AxpVJXz+zyu0N)&|i+ho2b! zL={L%+=bi`-vrTPH|xc-c+Nt`DQD0jRL6IV4`v-NLf#U;#1=Va^2Y8dDFtMUoWs_1 z8L%JugaQf$mxNmQ!Cbf#RNzo^3CiPTVjoeH>dM;_^Hg1ah7rL$^c6~22FS-p>}m&| znS6ZeSnxxsa?8`Jq_>^XhsI6Br;@nbT1p6bFT^ z>?!KYr@8F6>X}Tt&8FB11$U39bgwc8l`y1^+$lnFFGh)!v(3v-N^8%_$bAU80NPZ1 zZL+ENpWJLy!)#MaMrl)@<12F6AN9o#;a5!vI@C5Qz4&j zt7~A%HB_B8pDGPrcSO@@)cmj<=_mL(A_erJn+N(j+se+im800o4QOTS_<1mipXXrU zSyDWWZG<*Mib1xiyGAO0c+R@nmrW(tcckd;WHdG<>%TZv|M{D*|1okmNPV2Ge;Vsw z@@cYu!T$}!zxy?SRMPIkLZ5!-0qw*8R9oGe;}zUomYk02dc?nz(eXeM-p9X4;^U#m zy{fyhW?$RD&9;Fh_{s#+;H_GnD<;E;p#=MluaaP&iL%y0G${+Q1J+-=m{WVbg9(`@ z5xKrz{dSxpX;0heiEQ+bt9zh#NY>lOYcE1YI4oer3E2>Fs+nnP*Fg820)rsyn4>S| z+g!ZOg9^g{+n0mEgk^s28D;a=nSN8%@-@tyorAw|S(=9sxC0;H?c^P<3-xN-)Ddb< zoiEfY^n`c(Vrb~8IA7@L$XSWGzK6-<8bj`!T|z^Lmpa8bq_M53S9qsRn2bY*;4>W2 z_+{j0$WUu8NgkG$UNH{Kd%8StNXvv}7<_u+e^}0_%M9olb=h*YXVgX7n|e)HR{JaH z)>rNShjE?l`|UmF^-cUwvj@38a7@*4eS^^_&}-7xIWHRuE=TML93BJ(KDjWw2qQNC zRi>?Hd8zyyu371z7oy9I`#yO5x3r$ck@vEm<+JYVSuVrd#O>gxOqzxJr_Z=y&WTbz zr+9*x+wtR2I{ncyFJ3WrOsML(K=~|YxKL|j{(m$a*ZYjc+UmyRXc5hV=cFKuzw7mP z4hx-#hn=T^Gn48&ehprivbb|L0uX%&SOx~uO>n;>w*_8<-9rv{3WVA0sr>l-<2}e^ zUO+u+3m4nM<~kJNIB**D4&Enrl|lm5)d0Zs_CbYwtb+6T@Y7>e1?+>5%w;&=*y}H- zS&9Ch9FBb(a?i_z-v(&_ADgl-&kdAeavMgJhGb0c=J1#G=XTl6;mcxx99!kt>hXtQ z9e6*M0k*|O_+DHev?QKE=>#ojwleHb8z6_P%v^lJF3pANFfSSW`6vGPB`^iA@Sjkp zFXXUaWDqElnNH03DLV}dRCR(yA4Ain&J6J9Eb?dhoHBQcpErM!wAayb_=C2Ch`tQQ@q&e0yt;*Y^#>qfW!?0`qNxpyetR=@{Nx~;$$W)ODqH$TCj% zNu0w?x32tCI%D+X^YC%vU0@rc*#iHa`rnEy6RtPM;XULk-wNTZLisF-fLy%xe)PCL zdW@>QOsKtV0(W&6mDg`d?N<5e$z!+7Pq)ka&GAzO-csM~*qxm~+H~HDk3r$|N6V7- z9C3e~c?KFGR5dGyhp<#F6XWaP3J%prr@R>)g5w#eDmfPW-r^G-0-xzO>2E1F6=e^|p z=J5aBF^d0f8*g4h=`I9F>R;7o4wYG-8Nn{4fImEroKosy#Hd=9Pi6Vg>T@9(`@Hmh6mk;coX8Y9=+1{9DAy|uiWz!#s2*XG*yY?}b; zmjFs#3vNZF84~52Rpyotz?$!^qPkT6NT*K`&pxv$4`*1@_;sLEN$#Q zMR$@`pbbd`+UP}ho082(G({24cTh7|dIeNFE}i?pb_Z^iRM?25s%~iG{{o} z^3;L^KpZ}WQy+yJ@mtBHBqFIuq88Al#@v5sl0^IA(2Z^+T6v2{B4vn`=Aes(MB*UQ zJTc;RTj>(gvh^U5ROr}bIW7n*sZkQW3ET@?fJ8T94>3z3-C4$|QYs~=K#pFy8F_|8 zWrNS`-k@%V^PLb)Al1Dgg>K)2L1QJWL7xsWb=Pge_5yahs5`~oh!f!P#*-;;+g9<` z0k@TSk*PGP!ELtQf&w1>&`*zk4MM5QK&jE7R3kzuO=xQ-KjC3zvdW`qji z)_bQnGAlt7nkm5E>5U?KN_-JLsW8cZ5dM#9IaEb@4 z$Pr<8Zm#)ojM(!Ff>c*c>cERVvUGcf{T^~M6-tplx=j3kq>wW95i*k zWMK3NDRw;fp)+?<1*>yzd}%djOY$APr)aWHmEf?rtSYPT=2QtMHGe{Y3LBpd8eid5 zX<4>Do0?Q)6(gRp}lM4aJ zxBSi zRan0|=e*`92NK;%6g*CNxBw12_u7!hIr^#bmb3i^!B&a58!mFCu0mrCH(r(MD``yN zIg$QGvzNy&Ox{e0R&GMAPWP9`OOypj#{;eS`sY3d&%*O(C-<+Wsh)V|ODtdUd=sni zxM&h@vTSS#Z+1xD!kL1YXB>H$zy;W5tl|bQF7}%q4Us6(;`h z%B6sH-3ERbQRThLh)REGfj>r`ydeJZ?o%mlL-AcrrbC-4-(5^rf-(Kw9W#R7xbBYW z@9vnP4N}2zB@mUAhVeV~ zA=-H}bvGOp_dU<*3P(N2;ELiOlCT-NO@-J21xqpK!_#?ug}%6Hh7#2U@5SG%l&d_O ze|Lqe7$dwM9O{}U!U+tlzQgX7I(K3WNwTzFTB&a(WHA1%0l8sxhN?Me19CrkNq>EZ*QzVndt*pgZWV0cmkC-sfb&Svs_g8J<~}=gYJ;2*PvhIy;l|eN#+^SRYJ@#>;_l}^si@bp{jlYhyM2L52vIyoZWHnX4Fs@ zye8YEzDK!}jsgL|L^Ea9Vju<>ZgwH2ul0#XZ^%FTKn6Ej)H!!-67 zQuyl#-e;K^jBASBx0J@3yS3xC@Z8PQx7>xT++Da~4wE&jfKOOt&=d>l(Ud4nTlRb z(TT)?zYJyN&Y}U08k@eeS50wShTHdm(F^zo>Nk|%-@>)=972!c&oWUo~#zSd>twAD$em zBex>H@sr;8MvK&RyZMz`42@jQAJo#Z5;C-LE)@}QJs*4QBZrBcT{CDI%f%uUkfJ#(&Fj7G26P?X*tij14L zWzijIF5~ooXXDY?)3W=*TC=EiAI_f4ef3_8h})X|?=Oo1EMBS+{q(^(+FlzUL0Yh_ zRmi&4InoaFpaVe)>a*4%1yFB`+lF|=koZVWYrM6K^v0VhqGrD1n>m<_oIbHo{#(bC z)CW)22TN;%KO$rI+xw@yE9Jf0Rx($4MNw@ud1Gj6w`1>^Y#F;p+c&Z|nSM_5oVVp- zV`3ikO`=?6^2SCcTbVC~1*vFIH~%qi%H0uZMJd&!aniO;s(W}wk42sK!+)z6%EkIG znU=OGe(I|OB>0&mt(A-USQl_veP&*;%Ol}fZ9IVZSgbq}zp2!I6dYSR){Mjnhw1Z@ zu_M6Ou~mv^OhlG&;~oceOxUU2{|=FOCMw@C$<5~+3bnWMJbc^Po0EMeTwKDWVlFT1B+n zMWJ9`MK}Qp<`st$)Vw;;WVKbcn7q?!FRt}VXgQ>4KMpEsWI+g2Ko$x%HK~Uss5yLR ze+DAvE{SU3@sU==OYzU1V2|>4kI>Waf6P7(4XT*5wtZn@#xgI9r_a;WMwO?Nfr2gG ziyzmA2U6rRU!-9MdvYrul^&`*xf6~iuZZ8?eySE!hds?O2`pX4%mW=^r?^#34&zkXjek^U4naz3qeFk`li*$Yq5|3n zwdaD`9W06YeEp-cO$gkC5n(Izu$8k*hUog*c$qbB+ggrk?Y5k|eOTOhB>iHQSihTG zzun4oTOSkKjCT6N3XxCmFgf=yvWP2$^+Gp{Y>9}_pKZaQC4C&SVbdzu=k$wF<(q%j zAWD~7;NkhRa=}wBfafC4oM&kBzlCY8GtCgy-+iREc>Z}fVhomEnb%acGfDpj{S$HA z*ZTQVJdH5BmH)V%&pg6Hd%JLu&-xZ2Dun^~g-#*=P~NvRFlM8%p6MJ(0wx(h@dumE z>f}8eRVNo-v_W+^al_Q&m&+HwR+idiNotcPft)r-_fFCIVqbg%s!Gq!yZ z1$5UO3~}wir8YQ}HD`B2h)Sjs$s)?ivuh+oS$wv2CMxtT5%qGEs}|!ta?3LN31LT7 zF1&h1QNsjD-a9-7@WVvSv#x_?cQrzZsC2LezJu)=SNz&GngMfjnCoCgCJ?y^N1sBS z@#D~=+TgF5XKjV=zUCRB1b64|CBHr#GK8iM`oN$zir~}0wWo?0xKf+gBHu+B17KCh zYije$R&(?|pf@Km?hy_!Ujn%5gV*YVi%X_eFWtDfDD$Mo6rA3~7`Am|*v^fi$rhS_ z+rs%Y2@@OU$M858dYSU~-q*PMr@XN#zQJCHwNu0+HYuI}! zlwee4XBq@B61KfEFzlT3h)}$MBOzW$u-9(fP}F>$DjF|8#jBNPvj%%W_9-ghoQqDf zs5uu+Sri9g-UmR4dqw9bhx?};a=t+U?w_)?nmiW=IYX5UoTnYI9h@CO--p!(7Z0rs zuB@mJ4lS<_jxDRl_B3-ZP)goY^SvPbM{6Z<+IxmorxSoxpEx5&sEA?J-EKxw_L~7S zlIYdWvv5WlzFd?VFdLZ?btLe2nAd}IImZHayp)6U);3mTry$zgq6X(d7Bx73VEY4u z^E*U6oL{$S9?q{S8AN|2fF^u4oTZ6OF02V!Yn}z|4|&&sTt)C{K;BnH49I72y#ciU zs{LjFkUO6IKLzp)(iR2n%LS(Ok@+sJoD2Z+lfcCz^Ad|1kRPz90ePWC4amPC>VfQGmr2ovH`scN8Meqwd#b)ChuG@xVC1s$5UtvgQf-XJSK&?nVS`jaO zKoZ5u_(8%{XckoQT`n&25Z~tFqQ~)1Tzr}0-*@p|#hZyErfe~L2DcC=gE^TgdbJ=L zeT^G|7<`->1n5Trdh+is$RDQsR_rp#|KP3usVZ0gb5b=$qX!j~FH-(jB&kQEH+T6$ z$T;4R{7|UhFM3kyzE(!AjmsksGQeo`=$B3WrU?)SHRs+>xU2A!+e2zm@h0Xw<3w{6<}3LMH207E2A0G$ccT*Y#^G*tq(V?507My?2&g!qDDecVS(RN*j9tzy4i6q$pSwo z(IiUJ2b+n|dv8rkrT~`e4c}5Or4Es*aw+wR)CiYqb*W)4rJnI^s7t9!py4db%z1+> zw{MAk-n41hSHWjb!(c0t*iwN_!()=U228{FhfN+CFb%UbS@QpYOG@iUqWn>{we$80 z;I9ppewI>E<%f^-cOxo&id6iz_(V9bU_~a=a|{7S#s63&B;8SXDx;rblFjRi*(CQS zTP|gZHLvSSw*1mM@KXF+73My?IuUi+@FVL|{QcjWlG=f3o`ESe0AS)FlP3lM zum@5Fa~JaVci*sj>BaDO8xTix=GZ*hase6(SZCMy46`o0xU6o}H!(UXU5inZKL-n| zN+v{`Uz7@V>Ol$K?GFr3>nZaEYWuj%HM1<)(#Tn<9?@0ly0D>VRb6;m&pLDEGwOtn zWO|BTAI0Hvyz-rsiZX|h>OaB~f&LcUhlRe^>jt2`6?`^;l2#;9roaGnr39}50D851 zeGL1HZLplrsr7;Mvy1XTO13O#4wDP#2{`oZ@T~Q0l7f8Crnsq-s1G@i@Xzd4T9L$o z3an?_4CtBgi7Mmq^bYbkVEU#R)icMgADh0C@0hm%eh5)&WtJtcTF-QnmR@B|%a@8r zAddMiDuEa|tZMf-R^~cdVnJt-1?}rZlEYhjN!4>fv#fs9!9yA$QY+%E-Z}}D*tj7i z-bE{#fCpGZ@B{IZ*nThOf?svTL*HBjEGXEzq_%HqeL#iD7G1r!ifR|HNK6b*8?k(1 zc+Q9zRsDjxQL{VjjJhL!_H7|v&HUQ4pMsaE)pP#)ysY&*C6nkV3Vm4F+IZpJ#>%=g zdpen{C!_f`f5LIgd!X(Dmp`l^{~YD-Y6w1hmdh77;-i&+rT`O-t}4hsSoy=m`8Zc_ z`9h?4i1MEyCZ4*VI?_CQ0cy5;gtHvqB1u#bcCbg9U*HbEMDl_6b&y$Rj4bL_?O`DdOx?koVK z$`2-;K@tBRh&fq_FKiY;o3}_yIy8fbxG2GKb~y{+0c|Scn+Mr(wg!-Fu|_bBu|`r* zRWo*ixOQ94B#0{4PEDZ3hml|Q&J&t}C`#9VXkjAu5Xh- zF8zer7s?V9()_<}rFPKLajPBRmKXw$$+dwMX08pQLd+4afDm(-i&hX7`upu#${TOi z1s9aaj&SJ)qR5#!{M9@$lstLf<^O+SE~c~S4wz2*MYnS^OUv$t()%7ZX`AjYmfXCT&Eq}!#dIQo*dqVVVo{m_G)W?p?O z8WTM5k6!ZtsY{fqaE2P9Ht|h2lTql_@PEiKbx-ClzDrG_9^LaR>soL88zPx^{TEb9 z$P@9P7uWP*L2lP$j@?(hV73s;u)ZCsR*ZrAiQE8`QXPyP;|+Wg>#}3xru|j&i>h&Oc%w*T(m&G_!NJ(o$XUZNBm(ajicgYd_kUI{V_K z6zSi}46r}QoyW%_1ahBe*FeI=xaGE$s3E9}Oc9&Y$6`io6vkT~CH7WHQ!D>O`>QCi zoBdR3Wf4JaQ{%q7w8@z#^5|akDQ-NDE;o6yIg5NxHfOr1NZNE46-k@wq7_6%Z6Rq> zEGPHcl5@N%i9;TAQi0#{CLa8|4WgTX-Y;W?!wQ#M;H>V$#IIGvdf()F|8x6IuJ?Wi z6OU#DsL}qrBakXBGoEb-ofYVS;5u~{FYlz{Z*#N6Ddo{U$xk)laCARyeuHy&5u+vg zQP@6IRRrx$Ki*kksZOUNHy8WpZ=@xMF_!TS#wbO3oioCMF_u_nyQ$1Mc;lO<>$Buj z$Or45-mlDDhUAc3n0}XEwVDaIF!du=B)inwzuBxDrXcbLUOxC3Y8{{=HaYJD6;Nvr z`)O`+gj%=UY5V8@?!+LFmt^iR70G0%b>i5&T)!F)M8$KM5>e?_Eijb#ql!yVBY31~ z$~{14N7QxEemhaTHk@4)ul$89Ib`p=GX5L!x{=vr%k!*8s_y%ps<6~X1Z2sx@w;CO=A4?lo7P}yoV7Y zolFCM2-a>^?y-8jS~Ky37wK(S`a=czdHuvicd?4tyf&MbATfiCx=>wTpnIoo$ae9Q zePl28>sU5@Z0y~1`IFbloC%;rWT@ngYEb>y{w9SQ!uvU&gc`z$jv>UR3bEC{;*ons zTS5St5(_9PL4n^&bYMB^o6*&1jXnx&MzC!sz=YHWkJc`JV`yq|j0V=k&UgcuU1lFm zs~P&)P9hIyYcqaKK1m}JB0ZH%rkibh3kySCmb-c=g0SbR!yYy3g=l3+V9BKVIUN}p;&-?)V-&r{IedNyIQJis)C?v zI|A67gasBw(o#mgU~dv6*!OL0LDWazKPP+3{KQZueF?v$Z^H<@9CN>1vmwr9e&zUdB`8 zI!ZKt5)x9AO;HatsG_=c{CBtxJEf*|hR*)94W5SBep8>Jw-w~q z+9zV_^D1JP`YY`fx$jSg!_=vE3*F|>UXwLUeekR6VQRY5PcOZ%qEoZn&;+!ZE-GkE zchS!+14@EQ=_1IrH#tE$By?L63Alw@5|07iDw#K))l_uF(0fbim~K-!cd`z+(&QY& zPHucfw&RnR*XA|rEwA*?ZHPv^do&x4cz0XWi1#9k8u4C0)D!Rd7B%ACVNvEg&!9lr zHZnga@zz3X{VAMh1;1h6b;YxqTcgwQaj&AuJ^CH>>x)o;a@7>1D=e_%K=CH4-amK8 zdlOgXDZsO5tw#Yg^Xk~jd7=Q^6*Y{^Y~c(Ec6`RVD7=gBd4(>Xr!GdLzv}YWDgP$r zzw>X)Kf56RYUP)>dM+%e=RD>AZvFa?RsJ|J`e^hkPxrTbi1N>I1`Y2vy-`OujBQrwi0 z9D4fPrrB*p4Tn1cWGsu$ZW^%SYPvDSXSvx;1J)Y%rreE#4r%fGZycPOzwH$CWm9$0 z?l)LpFh}0oIx}R5w^5(C(X^oEy6SNJ20_jBt@S_Vg<3k#h~-11u?;BcD$VwPL!xEJ zyW%GTitN=VX@NRlB2ncAHiXg_e^D@!g|S95dv5dWHaNt;g>~-U#Q$P6`Kwjg?|Q5C z6RjgJ#d9shkbOlw!Dpoj3wO}#-Oo*l5b_@C!ilG+q9gi-ck5U!l^pvJbh0FQb(Z1t zf=VhX{mFI|Jay2VRB=z=@+I~dSaEGQXh>~XH$+nCVht*Y9wX3cR2f-+@^Kxaz2M^& z#9#Jts#}N|Nj{`+!N%c1~E?LNFI$Z&@vY zne%Ide(9er=rYn3wNF(o`>fDZ*i&3h_JLZSfSqKz`DNVo=EjBZJ)B6=6j^U=rD{u$ zy(h28(mki#J?u}u95u4|b6k#^i&#`2?mMJDJdO8bnm-uSuql7blIfpGmI@PF-|9z} z{wMCzxw*3$8M?W1-jB474rB#uJNeveyzLPzeGq0*6u&bU#FWgkj9xpB@x#~Xrp3$p z;DE}Hc-}HT_b_oddw$0~$HNKe&L-)sjW?zRdT_z*IoR?5u3&qzGNRIhEEoXWr~WC} z+T+i>&<(Uf_MP>kyi)=2J$K1kEK_{ntzqv?-MkJgcexc5=v6fLs+zyO=v)ox26pBU zDwjJ|gC2c7Fb}P2o*D&O`*~@g#cLlK6U;t9T_m4bM=Lkm2IwL!NCnpepiAY@^ ze3%)<5-f!E13$}w=WoypVBJZEsKA-+Iar5}QzR_CM!{#p`g|2JSYM3Y8+bjPj8B4f zclmn6A^n`~s<~mxslk_mS(jmour~h5bqIUcSlx-@++bUlX~z;(uDV%cDt*j?0dsTW z%j*&I7Vb#`h%aGo+!Nzbr;&r`vI0LL8|oHg=5HVYw7MkO61!MMGJQEis157OYQviH zRPwP@vL}Uep0&6|dn&c|`MPA+((2|_hun9im`Aef&&_Wi()>^rZqBNcHNC4-$@^D5 zSj8vB-fdpWhwfy}N5#+2>1!f4nf^WP1ny0{rH0kEk9I`_jJtb zn{)bkp!_}tJd#vl|3>2CFAFc%<?Uzcc4aRXTjn_gWv2pnZE5cbH z;nNv^-D^04>1{Z;K02c$TV5y~juS#ZV*UKQ}JQz5sr^F)vf^ z3q2l4N%l?3WFFv)Ci@pIj2E?O@3101YesQV=6YpDmAkN{MaF){H?fQyu$bPrT8Zx{TV_b~i{)>0Gv z{1{jHfh{q1s-a4AWJ3)ToBr6dtrojP5mmnXBV!9sTaX)!$@qu9Xl$X0>YD6BQN#JL zghd)}P}4+ofknMjhMcXh$wGNsU+HitIoFkxnuS!WQn_ccorjgc&i1OiG=|KNz#Ayr zH2S2??jIuI^&z!?!Z_dL^!;9xoW8^njyk>?e2+tn?U&Qvjz{VPPY=z59Pr94jHrn$E}8I`T||Xr>WftDzchm)09!L8Ka)=}pU57s&NU?KvS5Jh@sDNe z%Y{E!%?*|F)z_$U(;MxVulz*8fM3r4gkL_4wkY#W_sd?_=I!gZIpY(4`ET?|nGbF4 z&*qHYAXa@(F{j_<4yXbl=ojxcOmMwbxq!FAKBhJO2r+RCIKG=vMx10J=xjYrON zNt1{ASP2~Ph3gG=Yund@-8s*%5A`=zsk>i>#5aifgHNZz!tnqQH=Zt;(vVtZLE28! z!aKTwpnLDPw)sPL8T$iA6y*-Q?icPJMU=R5f0V86vgpK$(AE&$Bt#yYw0Wo{|zbOV71P{AH9Qjl@N>zZ?(JJ zIl|(w_a&^}Q`v#&{e+=DcN1phm!Implq!2~YKH_`Pfhl% zsDXRh|8>%Q=GCwkF_pFPiA4SS+1-{}Up#>dJWWRc;pUCCsss6`9#;HOJxJlrX>5LPJe~F~{L>$n#$YYB;InX3iZ`@G!WO(UQy@W-Ab%TddJjKE6iJeL939F`P!ei@ZroYD*cQrqVKcG&s?2L_hom^$RB}o>6>@`)fXQ_F)_M{7Osek z7>+vKA%*wuk``Qxirqb$eQ;}tWC zi?XTs+$#+@l8qkctA6;f|KW#(*+JP2vKqBM{L+7T)j|O3Zk(joG@?v@DSkrPP6l$O zEU!L~EY63!U3qP!c01V(?`E>vX2gAc@BNDd(%1X?#%KEa-tyto;NbnF(^+o!?&{t{ zDD+<@XCJBH@!H@y@nlfWyeU5w59!>-MA9(vyL&;$u=Fkkk=K-dvchz(ikN)&zINeJ z;`{bf$#*G<&lnfpagDf^9b)HPG94>5k~>W`%R1?WCB>4Zqg2TWM5U{g{7SS!WI^?X z=8}mcMP0ejQ|A)F&E}~OF&qvnrhwep^h4J#Zol<5jD#$nr;MmHWr24YWkZTfpE?Ol z5F4393r+To*K{&%psw()p-7(IzOa*u6`5cCZY^VD15VPFX& zkq!?X#Fgo!xQ&-g@1^zknZOo=`JsdPL`;Es(O1s~dv}c}hpEeeEucGqXTHa_z`^Fh z$iwF8rheFTD{in!wrp=bNT{44N=uhAqRQVWBPzYxf&uWk{E1J5&-ef1P`)VM=xPr0 zXV)EM)>9wO=C;=CBHh+n8Bcytx3y|?1@B6CVb4yJShj+QUESjruzY=TEo(Nnvi>0L zRqhAj(LJkD;kcf4LQa8?N7T>V(3>$>i{ok0PqoP%`KeYaK4XX-(rc3Q7&6QtV2AYU z)CG4)zsjO^NFQ6&4(XQ@^@sG!ENX}Jy%xeZtonyn#0$+ zV4fSoB&wZBeY1wv1y$6L;-@lwOM%GwHT!4ilK9kDXKRi=NVfdT5vt1X^-s{9`)Y!8 zQ=yPvC)3~k(kDsFB0D}69>LzyIYA1~r^in79*!&+C9v_Mr07f=RVo;v<&?-RCq`9& zxw!9&xW+;m_KVFGDDj}tKlvRa4NGrS@Y!r_j*1vt+fY{8_#Yv|0j7|(J)IV7vmHf# zqV=%#XH(oSN~Y|RU%AM1@I1gO2YKTY5eVx>*~UKEBF}D6)Ef&{TD-R=@{R#3?R#JP zB$^fY6n8bVF_16-GPUoqtS>90^gTNXRv(4kRHPn;nn7%)LZQ@%3a&pVNW-<*NRr zxW``dWNBPJhg&UGptK~ysr;^X_99p@?NQLWwFRGC#L#uQhX+!38#hIZML%F6FHVJ6y_J5YBZebFCdX zT;$-sQ_-CLV&)sR$`U)? zVf1+?1$p}1>qfK80_raQ*(2?xQDFL_L1OyihFsxb zH`E~M{aH9~CSZyy;&8*cE6CxEDJj9Cl>1$g)#4uyNSC{(Za4__N}XfZ;)&CnwuBuHS&uv6XGpAh1@`#Ct|>V47-er z*kxRSnd(F?9P;uf+EiDhDo3aH)ItnA@cd@T?BV0O9gI%*&_dqisM2QENP=OrBMI}> zGk5u*!=gqK=BjJ%@_{h8&RsrewP=ncG%4l$%6wkYxI$fUd{Az2t{PUr3Z24LMmcGj zZ+lj_)}lF9xYANNR%lkRI2JJy+4YjTlV^p`Tk2!1@F`^m(NcoX%L@O9`!DFIXq_!( zcU?k&=%;l81XDfB1~fsN+*bh;*`$MEy?g`h#90sz#95d=p$IVP zCiqVp+`9GNcT6gjF~K3Jy-vzMnLo~EfD#}V&eA02SSJDVg& zkPTD7!d2`MKzY4RIXTXs>e}UBe7SQ(2};ZLb(C27y!t)1oa_n-41`1Vc?sU%iH}em zv)G~eN1Ak|9M76&z?1fn7fRi;)U#u!-b$z+K;pTX|G{2$z7|%1|K*S3VjRja&R+ia zq(Yuss#&17mUsZUq=9#Z2236eGLoMAb zTq6sZlGO)W0w_^|SpX#} zFb{K4f!P3*e_a3?%QEUWV`aMax&s%d7bIIYrNa!e8;hIi?){R?V$R7{(>_PKWvVlp zHx)?hMU3n&wP$}co%eLQ4KFc%)C~~%jRMj1@krvoNKruvOAVJYO3_I< zg!`2$4;nkzhB$kJR8-#)|0zRJcgeN@>&xkZ9)B^5%EkQ9x4aVECtpPC$#XyzZjaZE zYFv~|A7@>jy(lie9a<<~D5n3W4C7|up0EILfPlcjTt`n}f5j?Zx}oC{%fL8I;sA^@ zRR}(IfcRv7KBkH|6mSfaQC;C&OX$&@F-$`>)s3mhKbkY(DKI&e$fjs^F3vR<)CR4s zHp}&GM4Mc+i56OGgGsY$gVfC0XqLoPLElC#Uz3*JBKd&D+tC48zs`}OH#n=U`#^h9G^U;JTh^X#IchQFgVq{|S1@Pu+* z&L1smP#4WC$!>1%(JU!X^*!FOXKgs%%(Hlp=3D*NSzQleo%Le>nrM>_(&5(phUNi= zTGri&^7d%24s{|X>6#;oZNb%P9LjTEaB6Cci?Vdf&Mw|Oi^T}Ng^)uSmXord9^rpF zn4fYvL_}--^;oXWZGfA&rRJAjMTiQm-GVfaFD~~}-U<8k$EcT0Qcy24Cxl1|j z=`YbHrV{!tWN|xD!xv}L6O7T~ZBik_8t?f~h~vD`q7=7}1Mo-B#Z{ZL8BV`4CozJ$ zsPo&DtBX!=WyX86Rkde+FkfTb(BOEV#ocYvI089 zWByuh=`AV}C2mz<4%OZ@`h$+q?3F&ez?53Tcn{5F%X}856c%^xE}_;yoNRfAOi*$J z0^t-Is0}9$Ly|Q96CT6TG`C2#;YF-Y^9oQKBJlG~p)HoTs(eG7If5807D;$<+B2!KV%KCKZVi9SUra`wkdnxec-qWs)tAFdpqV7&v2v zaU(?V07+z9p?Kk|!X`VMcBC;fmrc^iIr5OFkn)LFANQmIE zM7*6S^O2S@`r4lgR(3x-UioYCSGxS;3-X^={{3nKq+O0!2l`p%L06e;Sk=N{w63uj z6KaAOhPg|P8M+m2xX4t91Pr67a%<0Aszp*)ylM%zulTVLj2{aHQ_%@+Ov-eN8s;%6 zt-QP#yb!6!R`79^_s?QIV#Z>%2D{q?P0EoIA`9-cIfH2i{z|s3BFnIQiWk z3iFoIfvJ&;Q^`XY!`(J<3%f2kb`=V6TQre1S-nU-uD(})^~%hpzdQ*c&M$)|)#Fdg z+)`r%T6h3MPykSZ&}Rr9zf5V9^6{ywmnt!UplXD*}Ys!RCJ^$G;!cZJ0CdiKVek_aAU8@JuxR!*TJdqK0Mg z-ASH{PZ1YCG|$C9{=VF2^7A+DS)ZS$jGtSlk}c=ZwE>_rp1hEsWlW>$4OqW?&UZmc z<`^xnyoKyZ>Pg--_E<|f8@HhSa7&q^bm;$~mU3G6pz9D)Y~5#Sb+{|@Y~8im*}7|` zvvt?ac{qfw%-8XD>gVuSrEQBDiRAkCf|e1uUijXuTy?!>-E!D*A1Qht7}5R z>iQ-XXTQ?Fx}XQS^)-k(KVyCEKK?V-*HD^ceVLS_^|jQ9j|oJdy1sr+ng4_J74Zbj z$K~bEvA&MsXSwwyRwrr$)v+O^&Riu1=19wa6f}}M=MhQ11)G@K2SkJU*VFg(5xF} z1L<$#r-&_Lui$d? zI?*_jRqFOyp8RfB6fi)QJ92R{Jzt5)TA_@FoeE*VwIz~%p%RjZ33yFZ)7Wx>)#X&{ zoUp3^d*&4W8d9iVQc{F_J*i%;AF_f2qfcMakKPHM>AlJuUs1VFWOFxL85?EX`KpRJ ziA*^;`PxPIIcB38sGYj5q^F!_Go&)cwB&|rzhwy@y3m-JBx=umfdw+ zbar2L(}%kzuYOE8{r)D&=HC$+6K(zmfe2V{?K5wJ6@m*E2Mt?c8q$bB?eMnqNVb&U zJ3Jb42*&7}*u&6u$uY~l4PjOoA?snbqpz4QXZ$&=}Jjgb-7aakdlADNBTi% z%U=@SfaSmc0+~;)h(9`BYFvuj#3Wl}evuj=gAAgiN5Qy+3tReCPwrRtwCyK}Nl*UP zPkZM$E>$&AYqpMd>|sT<=U^4DIHb5JyO%PMqL7e4KA=z+U05Lo6X5rzE?Av?E&es* zQYkVwrS0s+N_?6$d8BK5Zv5@B#SZs|(TUs`#(mw5VUQm~wDVtPaLTN<_oZ#mutaly z`73d&c$jNDE3k_F1;>d{pkHWGL`&eUF^sW|G4>CnVQ_8`j|6TI*zP;zzmOjn$auH> z#^5Vr9nb%o>)Ui{ju$~ORbjOANY}xJ!3CWwRp+SlQ)i&g>Sf`5-Jsz1Q-}HnHdX`2 z(m;G9e?HNF;X0!rXeQm2C*j4?K|{!7%$0jC7K+*msf(g@U{`!j`^GtyapNgMb_RsL ztcvIq7exo=ybU^qWXk2D3CpP|D~OJ8x$rEf56Jo8bIP|xYCp5F_7eY5P2;+kip+Ix z%K6`k*US+I=oGzFjSGcQ6q9 zW@%Lg-ba~N*LV-P-fgb;rE4zIs_&QVhq+5Rjn}8&NTv@WBQu9TX1n3+zSxz`G!Xa$ zx0)vU(~3S=_{FGe=Gqi2t?5v@dd-sJhH+p)6O5oW6>VP2|DGi^y%2v#=mSUgqxxQ` zyl9P|HUKi6)bKU&h7YaA`3UfyMY`~(s?}>{?54hfE9GjkY05!3S5xrdYCY6r3@M;@ z1-n7^y1&{-dtJy{Sl^M#?{ZJGU9RbtKYf=g{e~f1A-&ZW_lBQ{%8GJxCq;r znah0gaGycbz{C*$U%>QNE`92iifr}zph}k2G$jW+g#8ToocVyOg4Y+&fER3)8{6U! z8{9tGO!fsOe+)I(?U1kdB~+rhOQ^xU*_DhG#?_j8AH3;{zYo426=q+ozTdFPKLU-c zsE5Lv25j5n4JlcOwG!_$kMpOdWlgf>S}I^a45S-7>PN0kwrqu#uYTl5=H0(7zG%Y9 z%t_7MF-rywgUCw%-@#lOio@dKZHIqg;@&0<3|iWz9rM#r8Ob!x8%<+JMwh)^Py74P zQ0KKcr~}x4kKX3YkL|zF?(1 zNE>D9O@0@?!R_Lex0;U6T>Lm)7QRGH0cEGoxvM())zzuu@rrjK{yF_lj-X9Z?ZJd9 z1iwix3T1RoAcF~Ld)=$|fxX{s>nyPMn}@lw(4nzqMhE5mA{C(S)=7lOb%7AiG$OHK zBI$1EUpR%82jFM7ttY*=Y{1hd_X-X8*OVIBgRcO(&Q0u&x>4u0`FZ?Jt(!*{Z_k+4 z&4ACtRQvbMMouuLVxroBMne2Uf zhuzWGjNYNDEX13?@9*&DPde3C)4{5`z2f9|&67r82KlLxHH_sokDn<6nGLb8r*`Dh zWXm1=R8E{E&>YZVw_l~y$+;X}A>`Tkw*F<;fS=_q(a5-XnaQY%3!6S+%{=vsey09& zEBzVx^)m_&@6PN8H<7~-#M_#=$hH*%FpBo-roLk2#3EWtwusd#qp@^BF~nJ!2)RS5 zqeJ@+M#TLpqvbO)u3+X1M4O8;ieU7Zq_{^;pF5YQ~Y)_@@1e6<5FFua6{7^IOq;d@4Wxn18g%)p$so^STI# zJBePP<_mAWyP+gKC5sz#?hn1B*F+{!=$SvKvZH5d(8wK1?sONe zASz87x#dLN9y8MR3Bt%0b8Jaw267Q7yFkO=>2PhA8|QPVGFrx`Vd=Nb26Zw{IQ-)@ z{zM_Nt#X*yL*I2473ie*0?AlWVte~-8Gupe*<#I)7xE+}i%T8I4QXt$%#J*gd(||t zEmV)m(HO{SgLmJdQHJR`{0(Y)!*q*9o`KG{63aB{ATe@=Kah|io9QrW8DEMUkD;mM z#HcS;;9Ag{CdU@IZ$S(wOb_O7P}38px3gigQ0~ z#cUX+I1~|p$gyekD5A9;rX@ES5^io0A)#<5#TGMO&RW;K;p9+Br(-!eJ+*>(8}Xsz zTF)NA>3vxLOfYt2FyUZii7MlepC(X1t8f?;Z}cNE%175@lz+cTGSb@k9BcFJlHuLi zPH65;-?cM4o&Ck5e!$t>Y?!WbfCtR->Z2-=-0apy(dhDiM%`YD&#=%)DBJ8JUa`cGQvyLs>DrEJTtOEh7Rj&TR`;V1@B%&@7el$N6L6jv`yqjG+ljBwNmA1I-#)L=OI_7EZ#4PnI?4b18bSf81x~s) z+|_`v^dS457^T3B9PWo_;nvOE8Ji75r?ur;lGcn~WHx6# z^iSBdw&wRYOkUSrz2>>R3nU>!giDn0mM-DyE zk5~}Fcq|T2KZ(~Vgd9c5^de4m*_i6r=shP9#G7p)Qq0CHv5D*Krv05Yl)|`P#l5$a zF!A=~hI^|C+(OtHkj6vgB%kSY#>utewl*XFhFj?#gAj}dkJCFDz9+{@yz!O*te2y# z&cg`|pZ9n3`AwxAE^kgWKKzGyT+UZi&k7bUA5tS+-UBvi80!xxkSORp>)s8yWARQkX4Sgy8^Eh$B74ef6Vl?A!LgLEnK!zs1bvIvf zt1Nv#^gLs~jYfA}#sCptW`B=+w!xB&^8hk>8rf8%uEeMCDYGvu4u&_QApbDsn~_SG zIOa$X^p>BQELvHkjHq-M3;aE=$#4C>)DE>f@d;WCe}+G)V<2;W(Qqn!XuB$+5086OCK!~+`oE934z@H6=n4J zdB3>A!YcT&7g>yXUor z>YC;2(gOPTm|R`K`*NM88bfOQg56S8zoe>++2@$LaNbaBf2`oG7TKGK0nT*MVMM39 zsCGB5uVX8SPI0+nfGI`ux*przcpKZy#jcN^ces*77fh>7Uh!z{oPTN_Yy#u~>k)CO zFAle^YAuYuxRVfqI6wZiGTd31%}rrrT0z(FJ=bXV#Lv^Bo+A|C*6X`~JvvvN*5EMf zgfaSf2yv5DhnmuwzD!<#M1DmttiNuP7;w6I*&Y`Wb-^Vi$-$V@qMKs-Sdkoz>Wpck z{6X6uRaK1P|0KXuv~=ur1xuP+6)@b^xC{By>CYr?73$BToqsiv6&j9;Z&I0XN0a&E zuPLD|#8H&Dixaq1gj~1AyXcE!=BO}aM!xq?bvM$c-;hqu?L?5uTuG2yLDUGKyH=V%j&;5c>{J%x|6p~-z2D&BQ_WdzF+u~Q<6t?v{A?;4 zgUk(lVY`vtoIf^Un;)VHJE7GQecuxH@`4(fdNux0q13;~%pRNFC3^uGpjEcPfB2J? zwqw`qw|!oh3iCi21^eO!O6+Wj74gsezpRa~S7LYlMr)*1sqI{FDaxt)x8oOoFaRqrCuu9~Dr>OxisSQ`dB6b7 z1Q$z_*;9%h5HrdlVd)(|pMg?!_|v>15MG4Jhhy5aK2pyBQ?O1?bk7-0Paohv2xZ50 z2pihWtWI9(_czfZVeeqOnbm5BQek~tIQiNjk^}jm{aOAZmYB3l1IPn&$%)_ot9J2? zb3HtPy>$IXn^@%>E}E9V9@s;t!g^pY{eJ(u00#E~%6-kgh?Dc=Z#PBgb`y(?MiV#j zP9f0_Fk}8^~qv)GmSSJ?>WS$j> z(nGV5CQ2v$6TL^3XP);ue1vP%J1gQhT0dEX{^<9ea$BuNl~>k+5mD(B3j{Haa&K7kr=X@Sta&!5xfZ}Kv)Rs!(F`oDX=2nu z%ArQR9CMBm7j%jaIj$X5j%!rY+w88FG@{Z2cK~L#WQ^)oFB0J5crOIq*>j5;hVZR} z{*L?hsYUnMr`dm=T2w%-YKCcf1M~b6NT%OKw~;B99O#t112h+1{{uQho}ziCJK;GA3^LuQA?@_Zl7()jCJ(aSbrEgkSA_7cZ=j(#< zKKV^Yd1bxmh+UVY_xLYN6(V&RAYtQKZY$6+r(PU53B&EI<-Pc=ch?DM2ExXRSapEU zU&E*ef=-mc(2Qt>!B@1*UfrfFpp4W6(FF)XP&L~qkShTdGY$1cq#5K}M>G}T#yB#c zGI7uIYx-=Ovl}rXC=Jm*X2jhJG0^QMqQs)fLPA%E^S|p*(VeUr)LpGlFBH8q@}V9r zcVuodBN2_`y+I>zlNp1k+hiIQX;aUSDhDOY)D;ADpiO&rwn_}Vt3C&KMeyG0>P zDY-L`DSw-3nDW3J!<47C5vJI56d=o--L;<;js9%rsrFGNL7MfRhES1O&a37q+HrNf!CVXhu$s;D^r1==4t_nzOO zym9WiR)M=?)I564@t3mC@IHA)zeOq)JQ=?=>}}Ta;?&~I$hxrdVdaLEcN0uY&Unnp zj3bJA>Y^)JYlb5~Ui5U`ZmS^hJ8gtm|M0YA!{TYT!Z#_bkY zOC(%|9r0Y)6!o50-@$!4>jDX@xA7Nr;4jmX&p)1iEEU-}8@D(t8dp?S+uU82Ig+Mp zagiT975{!{lF@o@?^Rr0C6QQp2#D=27_s(`xy=qIY^^v-6`#1VDL|CP_DbS^oNXO& zIB^Y0lXni1QYdHkqbZqRCIiKW>sPf@uiv5M9naZPW5H%YmKW zRPt;u&uw}|%Z$^K(;@qo*03hf!9>k9K@F!8r?+J$N{%bwEY5*QlvsX*t!o{CKrJQ_ z_;o!+IT#93IRwMdbM5a;l(8(oGYTiSv2d$cz_2%4;7x=Odv8Ex5{x=XZUwoH@vOJf zGeb;7-ESKK!3N#9puYGudr@@W*TfxXBUp8fpdw`6RjiqHaqwPFD7Xv^^- zLWuNjhy%QD{Aj##xYAgi5ayP}Kes6+PX{s?Y%M`x)8qMRjyJwx8`NH!@nZF>ag?9y zFFw856XG4N8X&;`KJ5|uQp2*+e;lcKwyouU4B%rZtQ}?TOLo5IF_`_ruwUjdI2BsI z;;yE0C8Ma}NM_4cM^t(D#2kxw5|ZhREbHIm4@4G$-p=IQpW!0A9{$%H z;83iEFblWjh;B`x$;_Jg*=DBQ)8y$}F);|eb15Cid!wV`U)+y0CbQXj0t6ORT@S4I$aqZ>X77c$a z^Ig?jNQlIVnYLr=jSy)$f=#Mwpn!oO=md=Oe`5kh8zK*k#RQ2eFGxthkRSp5nY@5d z0>*qtc_w!dnt)-}RwiWxn47FGVJxSE!lQ3bQipUNnfS$glQ5QnL6=Q84EoL`hC%0+ z8U|?yNEp2yeRkdX6D5qsx*Yoa<}uJ`eF>w3YBIO*XWFOF&pv9uV1B-;bm9DbYrpm9 zXCmu``LS+>{t<2`i;f$dpP$<={ml8fXTs;4pFjQj|7L#fWi|Tw+32?X{Jc2L=I8#4 zZGN8E?33o_${jy(ex5rlH$PkSeBSwS);lvrW5cUVc4lr`+J!+Vi%fBTRU0WBkAO(d zGzo7X@lFrEFHxinH0Nf+h7DKvJp!{-VavxGNt<+aUk5eBjZ7?SU>5jspY}^y+9#7& zz2=ePhHYgNFu3;YwNvbZkrcX*T?r|e^N9M^uf2#y|IcuNWSf1a=X_QFV5sUHy}@-T z{yK*g?2kX?y#3|ZMWxu>eUbD0bGCyPx%2$qJ^gw9$MtJ#0a<($y?(Hp;o1H9_?;^} z8@rKVIE`;=&Qg(&x?qt4^(6l2Qc%trT**vgWp*tbUu0;*##23%^LsE4U$YdyH%SfV zodS#C0_PvyWY>ldSp89D$2cIf<7FJwMUe1^ZrzlP`v+{{pQn_}!nS5s)YyHlTWjOT z_Ys-4yxQgmOkbF6$*9ie2j&tKH&&Q}Y3W$$USXbN%Ux)`EiyNgh$k>`vr%?%czw2q z!~Oa}R9cr3@*6wf$EvUg*{G=mIH^Wgv-FDi<+)bNgM$(L@z`E)DGqt~w*;3wI}7mG$O`vGve@GG#Uy}+kE4lq1> z`1Bl}?X?GAlKl)ZzH%31hOjrm^{iVqEy|9HtH3~UylD2a_?wTe>B|naRON)5@f3q} zb?qfs3~wE8pDX69>_*dTt%p0n<@m#|p1j_BmgPFS4?bd&J2Z*{`??JToXELWm3xz~ zoF@A^35dmwr$MBLYKb}zI$D`T;WFuR7lqN7lL~U-HFm&8w1TJ@7}0W~#^9V4Sb+x} z%~R$&cw8z>Ty>I&c}$ou0*e z(e@xI9JcL|knjy2c#32Mnd{APAaT_RZhjR6^NQTumbkesb8~y4zS-P1mfGB&WxpwN z12uGDdO5;zqrCh8n`YrhbCBiw2|4%^#mEv zd9fUTBJrL}-vJ2oR4uSrr2s<*wdG|oklCe#FMONiQn^LoQn>}yj{u- zjSFtLw2x1O4uWnS!T@|Hszm60e5U6cTG#_Ne6y|u=|!%jtHgQP^Dow*dUQau#<`Z{ zQXWjhNU?#%uAocvUwt=|{f1wj%*yZ=Q(W_m?|ls#9U0j3OYu%yALf$L5Y@S4TxVT1 zFRg~6p}Ay?$@MN7g_YhVqq<%fmU*Y$y-K;cClDP1&?)Pl;V_;ArdX!!NK=7#)80PQ zGToK3{xwbCmvWhlf0^ZU^gfAo!oVzm9hbc4jw>{uQP)(=-~G3b;-~o5I`7|PO&b^7 zv4+ra{|(6Z)NdOVI9UN29&ps=-Xk6Kl+IJER^N>h{EtXzl&G@b4WRO~_tEm7r^(Mz z`O9nY3iN+V=;sN*nOA`dXtvHS0o-b6=3eYdMRsb3UeCU9Ott1z0nE5so@(90lC`cI z7K|_$Od1AohFR3GV5mh63o3|uEGW0A`RXmRXbuZXlnUC5T=4&j1(GYasxX?<#u#gY z561ZrCO?BU<@uH2 zeIB>z4)=T-FxJHGc5i)Zd9`sXuQ=nTWaH56484;C3L8C-H=+!M7sVeU!1b4FNI~M3 z(FWJyxD&Q}@z=Q%wo~ptMR+A*<7@G==W$Tkyfk+oY-6^vIe#o#S^wV9-v{eeU;TYB z)!Ba^?ClG5Ay!+i6THSp?PE5({-_cGQK<~Mwu;%%ajba-oXAhR2DtDLw>oyL6C zxmaeufK$UbJA)Mp=De^oz-l&bg@L{8D7bN}c607?9cA{U-`~dY++iU5T32EgEd`6- zpHt?{aU#1C=QY;;J+jc96a|sHK$jC@mK&*$9A|URgq?(n?C7X^d#{QFQ4c}pTCMSD zUaw58BXjL*tXBj4J4gT|VhxFF+ZT4R@eWNN#|YI|Uk9mmE@c(xrO0IidgA-#cxkIxUir~!tO(d8G^Q?!wYeNzR8ExGt%|)cu3CvoL>Cx{N^oE0q7vtQWzGm6|C!FC zr8W%(YDTq&W&LvQ3!_MKqLJL;hSV^#1Zk&<3gIcO7PPlnVBU=#M}!gFRUE&)YHN4W z(1Wy$pxQw(T-wYhU`;ZNa-igWBx^~gg3EcuI@p>+aRV}}^{(RDU~ygWG}XpqH~K8W z=~hI-yx{Z=q2k8`rwZ~MaZ=m;RBSjubX4pXNtKR@(R6%Nk=}HAHS=Q=HVqJ>!(7=$ z-fI^fMjPe1vFI@H5FG|yj)JvMvXm3FI54-=OY!e^a9E@yuF{~hrsIg4b|RlwPRU0G z6b>4qaUem?eQ9NZgU3;7N%~ya@un1>NyrCS^{unSp_kS)(b=LUSnd#)7^wldmj50< z{UXV5o=Yw>)07WY!jVq>&;veheb?gZOT2Fp_93cIXbhp1{X-MkvuCAlXAO8?4 z@XxahTG{gq#{C~>^HJ>JQGE|S$R3`TExy0wr^^->^6g`?MJJ+GU*;yPmzb1niRUvP zFqI30eh{l2-861*OSen8@%KO4rYKXQjIe8wiba*LYw!L|dXrftB{a6qnh9*332K86 z;%lZs&K&MY!!r6!zT&6b?z_@2u;GRS~mM)AB~c{&)y+aBwfY2>=cM zE^_$C5492iMm&|g>fmo;N*L|Kl-kQd0?&K`i^F`HEOG*;{brIJ|Dm{8t&60`Z@Lz_ zYUD<(g&A)`wV5+5WAyHmB!k(;G2ZP&l=ll)83fT={OfT0RK&pZyRDB-pvZaVseSY> z-FM+j{F?Gl#*ED5-O($XW@s03SFsl6S%anBsNsN!bJWb`S}sJmvcRybgC)oV8Fb^! z{+r4dFt<1Eg!W&+-0U29)W*559;zFy?T6|w!BVOk7pziMvOdTaWxNvrF_Dbe&ARpiR?2U`;(`j+tmM0hC6|*LI&3fFj#?IwM z2jio0aLcR;HR2R;A;l(iVnN)rtt6EE6E2vS2 zJR=!atmd49U(Jt)xu18(XA+6;W%l}yOT0ebPD`djhoswGTGIh=pc8qw9OZMQNy1Hq z)JQKLAw$6V#f^0sL&Rv`stA`8!Ys@%1|n&OF)$@FjHw{(<~yv5J5m_Ne9RakBO6&v zZ8~K17gud_a?$NH&nxp+Dj$7sBUy}UnAivR_b@p&8m5I zL)}rg)V;ZYw1lC%3cL-}Sa{V00PU>PoDpUd1vM9~gqoW+!V!e3z{v##W-{*FNT}c} zq9oVpAC;Kqk6l~x^;3#SnS|v$*=|e$e`g2?FJSbNwBnnuHRbhC8)0thy~57h0m(|H zeS{TgWUyvthABla+u0PkbqpDYD3dHYc{y93DHc5;=Jltk`kC{t38K&e(+yHwjFbwN z3nv1*xj`enmU7 z@C{(*%o>4j&a4rT=gb-_h}s}IsLOl=eeGX>pLPFlFo+J__+sY~f5jR#cmFT>+4l>J z>B$$a|MLF&mv2#c-r?_iYcbbyIZA}Yun<5N(vs_D8!h1;mMx_CntG9wHfL81o*Ov< z6%0ke4nx^RghJs3gaDJp)oGcO+WbP6b3llYUFgu+lu2dRRL#1_^c%`>1 zURCBSl`2GJc#Kkb1+Ccx^2pEk-<9I1DjLp2gxF1qsPw&E6mYvMGDM4?hDXZLgPgFk zMGV&BuB8LZb%(9z;+r3r{Ck-_i!4`q!kWkMoEFynF{lX{17odes(w(K<;>ygM6`Q1 zE!b0w&2%pJ)Z+Pyk9;lJf?!q@m!3Z0^yD|_^fkw@=#67BcLimPYz}fR`Vn_1c_NZRR%4{Ll(Y7W($p|QRn0i$P)PlSp;G1&Z4o1c z1({v{Prz4)xp-}`TUdjNrl!GjLKHz9x}RA@5vNJj@V$-+nUh}vC%^>#6}Oj z5E~ivLTqHv3o*iNLKa9ewTzcF1HK3K&bVw8$Ko($~z3xVxmb>w=t%Ih`2 zZZ~Ugz7Wp1N-@Tmh-)HXe*`o{2ioWAL*K&dmy7s7gLl?@J(`0v~9= z%^nP4+jQ-MZ4L-7dk)yKSqH*uO+)ITRCLDe6CCaxJwMt_NlvA)D82_mJ+ZHd^u|9N zGOsRZ>s0~Ij@S!~Jq4SufE+wa&&>Y!Vgw+(q8`{A%=Fvy<&O6UzR$Dtbu4kl^?${5 zv^`k<)^%6<`X^wh^p%rZHLz2~h34e33AD9-jK$E4q^6Xu`n992jh^&pm649H_;2Q< zKXRv_W&?KU=v%$4myeu4Z6$5MBUdpyUY;eB#89SW2=0wyYKdI1w76F)zsm(27B#Qe z2=0Nqfq|>RcMd}07$`stzCi(Erv+xuQ$xYM+3~n1LQ0g`*P}}w!WqN~+2ukCl=}P` zRUCAF3lJ`Um>}HOlLg_rMFip4Db(gFxAf;y zz)5Y5qf;3O4Zs=~8H9hEyHD~NZF|XYzf^qqfaz!@z=!F;O!C{67*#wzTy92;PQZs& zprmlD&dO`o@11}TF?&v4$eJ>T1NZL(&y~ug2D~`n4Vs+5{E~a0VRB2eW+a@D7^kRJ zosa(I@J%>v7aOPe{cv$B@VO;&Bc-3%O@#qMIM`Q$hM*u) zE}3;(j$mq@TB45moD+sCA#$fhq=xstqdExZi{u`%oCz8->Jcvk{~9=4tc%B^zj zipxD@Y!Bg|J%91;x2U~Z3vkHpJ{*58dqN!Ti!ifl&Eu!Mns#nYy+ZH z4&gJ*St!1_FvZOLy4K4*VY%vW5Oc<3jOMkH1kx)*Qb?~3+g)rOD)&qvJxcfZ3bIK) zg(OZe)?xpH=g3?)AiGh88GTere0(m+U&^A~N;P2B!t7y59+ra;OS0_gz%FG^*N6~k zyz#rD5%CWmM^DySjQ{mLgjvgYm&i6=3CkK}*psR`gss`VO3160tDxgj(}sy@W}p-% zrz=WfjhdUunbRmKOf=0(VLZjaXPclfqFtORqD-yX=0w23nZ>R^dXXMOMnFBH7BW`? zsc0ctaV6|RY@z6{)H#kt0pLyfDbuCPMDV^*ZpgAEV2R1st(Q7NPD!V!svB8@0=d@Z3%1LzRY`l-6x+q=hKwWG{X8eDtr) zJ#{nM*Pyl|X-8>HO z-d4&>KFo)1gqQ@e_PcZtwVN^tZ=Dpn{vXL-T$z_=XaZ_>_@Ok>zH+zkQ3)>_NcB;U z9tiD=Ly*WpJPF}tgEo`ZhA-veE_^drs4 zdb6{xH|faWdQ**Z>V}ECM8I#!owDSROm)fGu7yhu(^zueVRKdm>DWuTR>+Vi1?;Nx z+*w?8I$OIJg{JnNiycQ=O4t8@U#v z;*wM7l&0oZ4e5(T=POR%$;T!vI_q(MAdAk?0;QC#c4@!p)Y?U-4qszF(4gzjIztv6 z=r-~j@EzBrM*h4QYY*bhjEgU)cp*&GAo%$9on_JJAmJ})FX6Ac;(!dg$^G{s$Ja)*SRx zDS9QVZw^APz7Q!f%fD8$+HTWgy$0Ym)!`Tzy)XO+(i*%kst!nVdZ^K%XJF- zp5C6bL0|WynG;sdb|XH5c9b5P*P5%4z!_E`G?GZCCloYHs0I{&>Ml@xTY?xAi-N+q zIkizJJ|&F%cYt z>cA;U&X!ZY6^U)uP6A#Ca=KaH?BH?A({C0|$$VVjgW#F{>P|poH|1EUl)xriVSgTU zi>E7({Qlc^JaYXi%Oj=YC>IKZF2UhwWD5RS9=SDmA%Wjrc;X5(OnD=-)`0PnA7&!U zvp?F5y#4wi7&-ah4k~ZI$aJ)2@;}rUCvW%jC?)h9NE-5XIx>X+pXyG;-X4t}S$P`^%S%Zh zCyEQzyHb8|vz}sxn{tB$o;XWk%p5jM))vlMR03ZuYs()cfxn?^-3eW!O9x7j(4~8a zc9gKysOop^5+v+(VE_h{ajQ97tgH z`SEO7Nw$4^6EgQdKG~?uegC%JO0vUrSxJZuF`2tkTu7w&&zHqyE_qD6%suO?cI(MQ z5xbrUD~NLSKxl8u+y|)4-AXs-6ujqSIr60IbKVu1I|mC=oXnl~8mJX(%ndAwHRcrw zMdrTJW<7;4dSBFg-+CaWOg&$A{NoM)gt+3IfdvGD-ib^{`-T;#2ddzT(}{W^kxk1W zoBpj6+(6)s>v=$0^Yrip9z7aK;n9~%l_}?Klfa`B)sd^}PUE^&dlJ-<^C`8eVHKu$ zHh_%^NWR<+@pd=?2P+9~V&VL$89`o+xb22C<`g|24t<2Iu=}YLd&D4seJ&I(avH?? z%<3ELeeuY?Xv};AeJ{l02Jq(`ND0ugmMMS05xtK_ElXt7dV7;c7=#2iKs?ulQ&7qz zFgs+;+$>vt8hS`UrpP%9=B6tO!>vWmd41uuVo_>=vw#~H^Z7Smq#7>>e^3}+k1?{6 zpsONKSadZwUey6_Ft>j66?YSjK^NjDJiws`klFd4GY`F3qgnhiRR#j8ss*eJ+ZrDl zqZ_TUNs#5UlOTq6eO|SG@y@@dc1Ue3k{n2p!IG$?MvHp6qoYx<+QQwFYTa zty#3o{z@LHXqPcK)EDnRSeLGed12Urv$@`UrBhwZvStd%z8 zB0$3RJo-X864h`^hl<%dTg~K3Cx0qt$jPskug|Xu(%x(hNS4kGrUx>L>LPm!^U|#r zXzgGj49=>*QZ<52Sd(V%D?IDSGlgf3YZjhG;6VZ0Xhq*;ACh4)(^sAgE1*75l*RTWzvwo;$Fb_&iDO+LK_QLBh;wa7vfCCH#Ta|G9S;Zm*f`0O;oaWD1 zleqtFVcaktp}`#BX($5RG!)e1$a68EAg*Hgr38Vh@{(4Ah^sbq4uoF7moQu7M<^IA zLEij60fWO=nyr;zyQVE7f=4_N=~w>2^cE1-_iOO57pm&XT45nAQ|r0bm5w>*3lWk3 zK?}K50?)_;bYzY6<=kT(e^lF$)f&w}0b(|CNlGmmO^Yl*bLf2~)3~<;%#PDzN>gz| zGhHw)%ZXvnnTFD+E1iLhGt$HV#p_(^9(_YI7k)g3MP-}RW0h^v@2Ilvuv}{sNxg~z z)4@RUTM%-qO@SQTK(^rMzih$Lc~H(qY$6+E?mc4=qM)7+s_hdu!yki9O#p;3Vj|+h zf<7V68&Ye=ivUq7sjSp}gczTKAur^_H(n89dc2p<~Qz=apUrLi=Z7Gn)C1XJt|82(z$R{!dyD3YYH7vvjy^&YTc%(v!vld`B zYyT$1$vCjKPJ#u=2$VR_0Aq_0C+Sw2niDHA6eS{ivc`C7)cX97bQfxrY9WcBT1$=f z+K^Jo9O=o=XA3n-mgClte(d3uo{`img>hkR-& z<2pLe>TMXG>2>#9A45)T|Jlo)(bD3MKr5;=5BiO;@EN@TuLqGCqY``tWB zJgPc@61V%Xl$0pNqNETAeZ%#SZX=cC1bA;fk4}Q*&M^2yC{eOseOa@MkZopuQmXz1 zWc|wldPS-4`#mi6r3=0IzhXMtBqZ%RP%)|RO8_Ho{nMvc%n3shsBi6HOMOA5zHS&` z!Wt-aW=W28CLs2FZu&EhB5a|!hR<3{Z_`;~F-Q%0b&P|-)>%eeYZ>u$%ZQ=)mXpUy zguq+RRyqw)(RQmt$;kau%aQ4-qMwZvywFw5;t|tY^U>!Zz($scC%^_lTK|4s1rr*X z!WAC`mH=f1!80xx5eR~%%@yN?0OJ~lEQy|rSrd9LrX}dPm^Gp2V%CJ7%lbEw6}3N= zY(0pw|Ih4O)#3~g3=!TOf|pz@@>>xQY2Wq5R2TgiH4@eh1k_8$;sm*_UsnEqJNo8G-E_AW|DMA;Si-j%-7tjSi zuyk?%Tciu-`^t~Nh_vynMO{3)ICN?PU2J%-6fI|8A$D1PcG$y{7_a;o`Hr>z_Jp@U z=m-#8WH|oe{cmsm@%Eb&fT2+;SVc=)d$xa2M%lEcSguDni?Kj4l00n6cVirZHJqlIWRYar26 z;#T;_EUzXYJu_T2wNrcALiPE8+j(gKGW72=Dg8L^?)V=rYIfYd5}{|f48+L1C6G&1 z9`nXa><}NvVx+M8b1L2p7d3?|UPgz?07;@Z0gRtdKmO$)*^J?TpbqG*S@yp@R4)`TJV`uiu`VUo^4K1?+Udwj> zEI_JB3 zX{MvKW5v9nWm7xGjI0D+@!}ztSG*uKr7Ua1xWnQiX&7M!^BkZv!+L=sRYI=6GmJ!K z^N81*$UpEiHZxo#monbMc%+te02Tt+nbQtY79yaw`@sdHkW!)awU0_6l#=A_j*%aM z*rFx4EIx=r+(dE5I26XQ5xjQQj?m;Qe|H&!Tv{ffA=4u?`Q4iH%#n_rG)@SuiL;2y z&=Ppt#2gUMI_4;$t=1?BO=eS-FT@19VlLHaT7<6wq4yJ+Rsq|iEF`6=xS^RhFjsT} zg3_>sPpSw&Yjpz#T4%n*^Hr@oK{7aHrb-4&Ad}HD8!)az8w4+ztNHhHmR`7(lm@KC zDg%m2tY03)tz=zN#YvE0T0l4$p==?!m25_uTS=bcax2-0Fdbn7LWnOsnwPrZqyA`WPe zA6VM^=@p?p)+t7)M!(+S=hN(F(wUS%d&j*AjM3ZcG3p3}J|yjZ9;H13-t4{*isasA z?NWRp60GE|hX6*3bUq+O#>uZFhUm(j#olw}zDY3NzdzIQ)Y$UAQsYbfDz8^M4{iPRKVrb zIO$aED6U`6-olO#>LsPPibl+%ietD=@YN|oYm&CMB)@}-GZ7UzF&oipxBv<~jdTW@#Z(aq{5{^@$La(>>SJ*#1GL3{GaaoG9R3=Jq1+RF zfpIBL<)k__^e$I_;TtB5I}=qubPZfR4xdA0ua+mUT>s%1exWl2+EoA5(E1fReVc-g zf4|5iYb-Pn-xs=Bdm@8}d)KEuK0x9 zdOL)2_bwaIAaBV*NZvwT(}<9~hP;KmrXFEB!r2JPYiel*uU^%omKvM1vET6rPN|v= zZPv#A{F8`(S~)gC=#*@P(5e5;#@>76!p-_*B>?HB%$Fc$NYZ8Rj)o*Nxj6g=Ln&^4 zuu^f~g^RiXSbiN=gxbi>tS`ZkhnT3 zDz(S}mbLH#cn`vI^kYtbNFT z2)~$p$mukN{cG*9hoDE+J_KeS0Bff}Rfve;W=&o}E+ zd+dylg%u}B;8}}I$2iO-=^d>_{!n{t?jB(qG7o{{K8^nywGC-2Rojpc_>czP-(Xjl z&!t=sPsN+J$L_t4+J@YXPq)w>`}OZ+aqzJ>u79T@SsbV>#{6c9y?vh#hs)xy_HkJp z>ao6Hao`7bakyY17YF7i*ke22c#Ff&=Ywyzx5qx?TUM7686mbIFOk2*+lGW+Zf6^E z-4ax?CHB~}UdNa5_Si?wfk?lP>H8|+DI&ehe#Rr9R4gu+pg7l?dI`lg3Ck7-_x!&p zydOGDnDS=jeeXz!TO{*oUvek!7?zj?1mo6Aci+bVZDL14n>erCPta1&YZt-(G}4<} zl(;Q`?zeF#e3f99wDL>mwabqdt}VON-|f8i-@>J~^t|?XOg0o zdeW4jx-B@Ry?)QX?3A`E2o7?dZl(RB3WSuo@dhcMBPPv#w#^e#-tS+eJvog9Df0tM z%J(cFDHB%`PH7wQT%vAr4mu}clk?;AAfAq=w4G5wWGl8DJC1F50B8a_3;qY6#IhfI zOtS|d+f03t1eddU{rGFN=;bc^NNAkEvz9O&Pj#1p&`EVOftc}BS7Hv?BZ2DP-rZ8& zMN(7BXX11wMs;qVJrC)qAD>S}*MJvAL;hmqNkKBzkB4?Ad2P9VTpZXJI-+rgeq5{r zHl`nUe@Q=n3P!pm`tfDIUO7IC%5f;aQxW9Vh$^4T@gh$-?(U2qpaiD+2`FWIT86og zsk+3tjQTNi<9WZN94~GaBo@WmFDb`ojTEkt%pK4FQ|0)qOfHwuI^`F)Fdfe? zMu6*(U+ma{Uv$|ufnUtp#qx{3UC4P-<{08?lwZ*2&CpA^0rs~Z808znF4SZ*ALnVG z%K|TkX{LA=@(ZzfuzLn9&J6^nqoR4jv0h~1szMvw{@H9GE>5`jUU zdJJ{vtV0Hnr815R3#xvER(%D419t=9cb3NS=y`{u1h?#u*6F+Lr7PRKsdQp!M=_^T9Yh| zV$V23l)Tm?OLIG%Wbvt1sG@R|7nPz$j|pK1!_HuVXUovCw@4KttKeLVLJGX|u;IKK zIrFkma{1D4ct%hB2a`)>AJzRLnu!M)&cB-QF)Zf`!^Jg$s@nl*s@rZth@xMzHCJbS z1&(|G0Rf@+4mvi(RX_O4Cqa|bjL9b?K@I{%=yecnVh(Pp0SN>bU}Q-|XhF7PEi;=u z%gmQON|LR+9MIZ%_Mp)Um%Z765MKs>Y2syzOMMM~c9eJZ^oFiE`$70`$*+-IWXx5hl?C89In%S!r?es;BfrFa=1xPki#)wB_)m#{PE^bJr0+AY66FA zo>xi^C&i-7ClI=l7p1P&i&7XSamd^O#S4xg${X>83QEkKSjP!kVUk}cjmbyyzB2a= z(KCq0+OXXvw;QP3?g6Hw4MJZ$dXaLw7JwpNI=awow?hKAdos;(yECMwlqH`ea62A7 zfnl~+6n(R=>`6AOD2ikWoi51XxJIRs3C?01mQq0kfP)VdY%QfWn0Xj6l_t?cL6!wF z#1&d=W}pyc_BtL4?tcchC9k7%2|P=`@_&c71|cO&LwK?eRau@@qD^Ngrb*xOh6&G- zEWB#SUtn6zKzUY)Mxo)72P-Vk3TiHSR*pu~5gn+}v`85{<_aIeNJ$hij23t2@k28U zFkPUebQCLaFM*{E)Ydq*fUl*DAWUD$>8zVX*PiuTzh>4s6izs-uga<)I+d4Vk4;Gq z4a)%E>^Tlb?u;f?9F4mR15x)A<6T)bs9rfZdoW|D%HV zo)@WggN0j&Sd4qOKT*5X=jlU*TfB9ba0|i{+=7#1xy8tOatr1ww@@_Cnt&_rDi6Ik zI)Pik*jydt#T z@`_7@9{rP0>gF55bR-gZJ#=0?ZCjmMv zeRKZJghNK=qXShF)8SoVCSpNnA{MiO=D&N_WlY8`@;{|ODrU=zyG1afm$HB1=k3EeUmBp z)#G-Q@lHac&d;hJByw@Eid=H0>1N&ao`+o9o|u4K%jDiafWP zv+vyr`sjO$GhZmqEMqzzXRd)@Nt{{Eui|V<4mC#x5^!c^FN-rhI$`$Ql(owUhUo59 z%syNBP6CgH%>$LfY8mHq4r`YNrt)Hreg0E?ciK~C}fc@A^Ma7y6ZhYFGfF zCJ2%&I)MPh-(r1i067zFj+N=92WOq^>57)|vv_pl@0h)QG6MB8svWQ#TIa>Oij}K| zX3`+x(Cf$;?duu;v$t4Js<4;qS`Wk4Er(r$uzsXB?k^uKPV&N_5pB;K*FAodrU-k{8~kys*PS?&=Aw0#p1u8DD#R z=KUJlghjD=TlSh9@J_)&|5i-LWAiglZc5^qh=$_a9PGe$iT5unHuuAz;;@;=*NT`4 z_KL^tDgbQ6&zrVayhA8W?G+#2ie#YL0`LA>oW0_1PnAOA_yv2#9|0O3Cve_xI1v&@ zHXDe?=N1ANZ|1(kF>IN=;sb{YJ~t^oi!2ho)|P|qh9LT{wO4$fgto=@ihE#O)?Tqn zl-`{#-UeS=*`v-J3hQaHTAWp`{CR6gwHvcq{P|YZXUgfOjA)})i--333#}F(5d8A2 z7Qcml4>P4(#;lapLW^_v6oS~D@V>WEGiCz$t=6R7iYB!xPYl{%d_6R0!sf_tyiPV?!; z%uRWG#|wM|-hfMR5izDN!3gjq>HWQ6Q9L^-=p^H%9Bw!tz!QCs1>s#8@uv`CUs|*f zVLHMW5n|t3^g2T9V~dvIJss|AKf=<+MF@sTv(1Qq(cQ4DL{*ZD+br**E%>L@J9kb| zC0tb21m+gkIu*CV)YhrEJzVin5N@)$OSG;)N2)8(FJYQk>REVQ_LyR+XoDU9)s6UF zJfQ7`4+`C^DafE!Vj9X7IS1G~BBIrB6rWEwJ-Q~~^Fw}%&;MZ+e3fQQBSfetc=a42 z6qF?NIWSBRDAk`mP8{Etfil&BY@xf?vh9J`%k>-}@(JN>kvn}BkXwxNV)*S2;1q;s z3}PTy?!p3`Q6RcopwVkti#Fp?QlsmAV5dEO>BHlqiO!Tag z2TZ&(GY%>2o`?T{P#FXDUXh8YIS7`!o{}eW55XKqex3>BH~$elXS3)Cn^n0{ng*9x z&Hk!ItI0i3s8O<_Z@h7ERt1=@QK|sbGzvR6?`Z+500}pgO-IzHQOw~;Fs@+`y*mTw zz@Vjg51Ke0udr4n8M@Je-V}!aYo2_XhP7+W3y{(MITpzW-`$Ixg{X$9 zSjzJ6&XCFcta2>XJVF=HrVQlJ&ep_!uC4e4Bq;6~r!hFF&4^8wkM?v`L zWQ>!&zVnp0@x2rqUm&zI`W2y2EB;TUc=M1u6OaU_TjJO8S6NfpN-1$p8qkYaudD`IX;kO>({3A!0{I5G^gxlI zwpLo)Vp67z^_kgiUE?vi07;RUYFV*k-ab3@Tte%L}=ctwE`<@w&LgopA*Uf%p zJG>9D^d1ja1QUF9f(Z~d9X)Qw%x)cY^yG$pGFNZFhybAzA;xa`eTS1iv#Yy{?qMv) zFdZ+0-u{5D?u}@q$Qcg+`STmR75*JCHmvYNkiiwc4rOE47BCY%a%3h*pz7oFAScep z>2x;v%RWv&+$QSdG!POw^*5OBm!bvS*$4Fq8Ke!DY{XJP+ zqT5gkiDZ4n-&2H z6Lg5%pk+u20x@|VMzkyD{(ZPI{|-9D$UoSClfB_gwIn_VSnqi@EkV5X^g=iLsmF;@ zN0=gHr~}gKzHi_=_#l0v?^}#G*YtfGVSAfiI34}b^v_b8-tPDsVv~9z{pr3^^+dWI zxjIJznIP_(d_8K5DTLgtv2$dy4wE1@S^xT0)+1t(=dUW%#^vPqnk-x@DTi2YMJ05K zboo@1OcNIuq&n{|%ag1MZq}I}v7>#)car6)tcqMk7e((<38&N?I)lp-ryWmQp@h%@ z{188fkP9A@D)eE!lODK)b)`H3H4dz7^0z^&QSYQD-f7n+sVB-Z0-+aq#{RmV zu~R2kJ&W_Z)?9&*3~H`~V)=Wv&AJC+jAzCC!-;;D^Ago)J@~gX;jy8@x z^OyH3zoKgv%dcj5WEi?v`PDVZAir9TvI+dE^Y9qII*%}$c2yj|8oOou>VRHRe)Y%r zWF|&9{_FmQk&Ej{E{0$(Q<&kVoG3vIU)xr9WG*~l{N3kuCxu-MZ$8Q(9ZGPXXX3sXdm{`=mv-Uz(jQea_ zU$;L;O5U@d5S)K6renOPyD3A3P^DgE&xJ-odsafVjd}XCb#nE$0(=*mC?_}&2mvIb z!i+C%QGv#nwy03!OIy@C@TDy(-1zh-{?(CRb74XLp{FO8sk&E2@J-Bw$p80gcUw=3I5@TBrj&K%00?J z%w2RfIfd;Y2jNWmF%;?wxJk5qBlN(OcYgdRb;(v-s^*_Z`wIJ$$s-6Od z+C@hFPn`kWz$(a#yg&afPH95G#Lu3ZthxTorwOR|OL#hs_Qr(e2>K{W&s}9QMWXv% z-yBNNm=JQFw*l*G0u!1ptet0M{`1phLUGWW^~O?}&^LdO3H{(QPN-a2!f{!1ZiCF} zeb~4v?eCf`=eJKN(r`n@msI9{A zz)O{tE*DBq2Hhh)-39&$BI4ot*Vr~9+5+$&_pX5d_;mvQv6BS+900(Nm&FA9`{30* zPaI5(iGvLd9{A@TCg5)`-Yq8hUn2Mu{rh!<|IhDO_}lm8zGpfH{}hvRo62f67z-(^ z@|kADk}A#$PF?(lj1RnX+=dPC&oLV+(^Zo7Kl4vvQjv#I8EhFQoup@FpJ6?T+`tCf zbJF{t6bQ@t0Re{-wZ@ZS4WGUsz6U(!`<;{UH|IrrdryqNaD0s}{X2 zSa8%D!Ge-Yi3JH^o2=Kl~pF(d5?vXr%bq(8E(p162v6Lz-Jxh z{oh-eK+SDDp?GrslnEzq|GzOuZrzoRr;;R{?8k~#nXt<(rBP+V zR*1Krj2*#wck7P8hYasElMH#yWM95!(to2Hft7uABk;n_aT|dKB;+-dJwOJak6+Ru z>^Mv2=-Yc4#OCPSPdZBRa)0l4l;SHp=nyKv+A%v;ihnkhjKVt(*!^|(u+JX<6<)F5 z#pD&zU#PhGfn7BITOC_8;&cdAxT~zv*wg{-rTA9x6rgEYFOlL0bV9399m2NPZ9GY}zl2p35xI)uG!);NUm?+12VkIrw#7|EOZfx5sd&ty8ro4T9& zn?xSC@EL9w3p!Ke!vgf-+6{lQ@P5c+oTyC;?>qPY!&MfyI$M?t9*Cy zs{-=!uLa~&E+oh;wMON;;ZtLz8YkZ^ebj^fJNpy%RvjK&8TIXG5DvL((84tzXs?-`OY~q9n1X1r_WBpLvmG%Y5Yi`-wgR-J(#Ho`Z#}VBx{8q z)AAA6L+SaXc>0a=S1O`xc#epsdK%3fbMFAVu@W=YJC0V-t_OM%m7zMm8KBz^f8!%E z@6x#XceP6w&q2{qZA<;T-k$nL&|ku4i-1;tS}{Y~IrIpjvVNznqPTF@%Yq9Nz7$-z z=zPHi4k}L8AABWoftkA1l2N)@uRQGG!b|-H7bHJAgLrlUUqpuDUrg4I-WTu4UsKo< z;=?|Q4}PYjwPC+C3hW;Gk@LCVa>~+$yVh@uGedYq`}0&I?>r=6+@wJN4D`2Ay7&`S zBk%AyP`T@#-J{&K=0%y_@E0<@H=fJsP2jHMCb#3RYj8_gx$AfRI&#-bIi;5;OljQv z2no9OY&OmLEY$hTVmdaTDW=j@`sQAl^j$S2z0<{KsE1-KoU>N{kvq3%M=E*uM<+JE zbNlLn%}?~(J^!$Y-r}9xM_|Wx(hukso%9=*$fVz7WYX_AyThcPb9uW-Pr_Jr(%bgw zIO)f7()mVGOdl4k`f?Pmqpk~vD^|n0&)_Ju1xtL=W#D$gW8`GLKIrD72u?rUd=$fJ zsEZ?Z9!0wOEeN6ZnOtv%O!Q#`w`kOu=S^LW_ufYIJxw0+t2LR~vjvCnrAVte$)XiF zvIc@x*I?g=iw;3pluTX1)ub@oAd3omV*azdH*j7Y^8~|-&A9$+aqz}#LY*rn!R&)K zg>ZQ4!|1SHBugM`;Zp&iC0@P7hP@fK293!SVql2O_6wY6bkWKxgY$3Gx*V9`PHu$# zcn{uv#6^q`QMxF+0SBR6T5_GMM&YxnbzLvXj3_zC`y2DLvujQ08ZI*J$_B399Unb) z0jdhzvoKHv-y7(G+==ModA(Idz*Vcv;dNa24F|e(S^lILGDSx?wC@3 zSgjPWC!&P{s-xLKnhn!!n4w{3-aL+UL!+?cf?Ob7_CSRth^1&LUl_hTHPV7asIg)! zpI0j1H@EVcqw!t$iu3~a85%-B_^Tt{9f4wIvZKskC$7YYqvLVbv6CNf~8Lpxw#(5Nmwe62-h@9I+Yf>}$=YuhvN<_7}KgaSXA-^umkw)s3(=fzw-5iTzM- zUnB`2D{`i!;!^7BAnX~h%|VSt&OX+X&yQR>Gh4_Hr%W>Ss)iLIcJN@QSM%unXWxW|Gh8!2$EVs+?Aaz&tE>S87c z)?rK0tX6EE?9_vgWaSU|G%^hJC8#f0CE)j;dx(}&D=KGmy``c#G?22x2gR_osqG5$ zKxYmig1%<30IqT{Ah&eXy9nGxP$4C`#W3HPQzGRS3`77o6PXO~=!pEjfP+EnGRm+% z+Yz?!Z_KI1Z;|Eb44P*-3@!+u&0C5r(;c``6#knX=rb4`2LE5P_qFo=7HbDfOR6Y9 zKc#ZVdqjLTx;$N4rJ^syMzr^#I*p?D-s9xxy&g?~>0{j5*%fAMCn@OWB>B2KP^8EGduyj1170u2+*9sMISZitS~cNREZxH zM6ivCj$}Hbb|kfk+L6=&B&^bme60`X9@O~0;d>msVl{OU2`5JOdSwc*1C0IW+%K4* zLcjlsHnJ2ot$|$#4V>LRYhRYd`NGps(&8?zAE33|24am_axrCYj=@)+ff52Sc!t8A z<#|%zgmf^Hp0M}I`UdRAOcpKz3m<|$N|S-m1e|3?_|7*MNQ=v@ZQXsX*=FIDs9^;1 zTLF%|fS zlBAjo4=Ux5mdety*gVr6Nhg%beueYv5S2xin|~+d(_F$|mm--JS)9T!TCz@{?d-u? zlyy3;T)+vtGSA@883xrf47k~5AVa_t$SAH1WQ>^}=qGBpK))F|{ITCmVj8S; z-~>bzdMGYGWX!NXGzR(=H3#|?w*a2?X2dH{dMrouJM%2w-O%$Sf{#X&OT>2pyN&La zDI}AnbN+ch3FfCtD(j2|g84r;3FcS8?B4btNN@DlSOwM6R9g%aTY-H>!bErc&EKGg^r(H2CT zHFqhZO&V=Rv{9pEVhtK?M07Tzj$1D|MGdH-KJqFO<~h76una z@W@~GeaH z@p*xFTk=Dn2CBn?W5wXJ!nVc-u2g45;W15EaX2@~5)}M4H!%N|VA8_E-G2zKT~>H* zWa0?-kON`8OIGm4Ge5OeH&%?!b@TeRjnCV?B{#eXfKwyG;(D}et6hQH2Dr9hYrfSR#OooRJM3lsXC>Vl$@N#GdqM4eTjwn$8xRN0`BS7{;Q-e!7 zVgAtGWyz7RCDLYQ5OcssdSj78Gr15}lSJZH$yb-7`JeR0RRSV^QpEwNy9_bjgpwuB zDXKxdXnJ67MV(W8SGXANqwWnC!|=CwcIz>w<&6Z%dMc8#h57-2gJeDXPBKEYnv=Xg zx)i(l1r$o@yl9x<}4+7$Q)9ZN?>We_+3-^k{oq#h?SBHw6}*Rvtv_{U#IiH z0~JmJ-KcN|X#YBt;J2Wu42Ijm{-R_n7iC|-gD{AXz2=Pd$m}9y`Ea8at0%kL_wT(> zLN>F&7P(skjyJYO?nMw+z@=VTbtZ;k`!5$u%&SMketg2~2|KgyNOGRbffLd<-IXar zvyX&Y+wsk9R_1-W1)G(ri^x#oE~~`tM$F&a?MB{3MqsPfZLN({H?S%$QMnT0z@*K5 zcezg9mk9aO-ue@yQ|Y}mEa!yD%>i>jvq}paP(G$V$d&g|s=h1%r*MzjP_>~`1Mt8X z7`6~lDTcv6o@F3TIsSKOKW;sO*+Tm7qc}+aSt;%>B_1)q zn%d)t+y!v_=V)E$ZoID1(YkKcx{lMjdfU3n^CAyupE_whoi|?3cTZ^B6=Tt#RZKYk z=6~3{b8w*eG7_{-{?}z>Pe;&txxm>D*9kGQ6~={3Oh7yM6>5pEwmiy@e z%qe|Sa2b}0O+I(ioVdubtVeyrzcEQMqbCO7$y=On?|xttwqFI|p93dC$Oz@&77Bt) zUPf8cg|7P0;jFt>1F_u&b&&UXf`}i@C3Cuh>oF&(;!KbD211P*O-HmrqiKlFMwIKfv2H|{QV!}T&C=Y z02}-3@EtZCjq5n@P?H31GXuxJHA@OwzTBMy@+Zrum^&E(wqY`+yCFeC2gQzfLz{$- zacHQLG=!80y(;D+#R1|sF2P7~j7XJeio--|l%_Z?437g2hUMZXev^eN{yN{RfhZm6 z4F-3i#$2iM<~r}eQ55$9FSyT+-6_;YosKOlKW@Mf->t2*Mry>txOL;IaOr!l zi>OLaQ%Iip1s?ncFHg1Czffk4IsGNDa>ZbC{|V^6-l&83$+r|SWWF44_7qyKHe{ux zkW8=@rC^`Pxv>Hvd=1J>c@)CW&GhT#=63?*&c+M@RTOOQYMCf?Q5klPrj$zD7ELLY zxJxzFs07ihDW#GbN+mOzm>G5(5kzhj^qHByR?vrl5o=7c=yxtD^#BnJe`wC_gR2vc zeRI=gUu_+hyC5YMM~Tt4ZF^$-WqWD+Y)4?nqdY*yN;ZYY*hN&&dXWR>RYaD?ijho5 zl(iyC_Qxs_B~xU5h>}$jaER*VcSL~T25Jp*=Qv>jKhVkA3Q*&88JK-E(0|9nLK$}= z*c4?rEFzR~Wlu~Q?nTNs9%XM~4%_1`D(K_l^DnBYOJcn}%wl@()u;f-ED8iD_8+DF!hO8}UTWoejB}Ie2t5_8bEzfi0 z18l?=e$sg!NCIF2HhgHtz0j4;4FlC}ARjcJ3=EEpCvu>#f+}){oLzpYj2-mPcu-L0 zW(1oelxZv?D6`AfLMW5u8xLhXLb>=d63UDOLYYcJ`3u&Ne)D{`NC{fV)@NZ&PFLRXsiE{Gc!MHEba$!wYYlMrlb^7C0l zCjXrs*noeCeA9mNFPX^6Ul0e)Ky`?X49@;`zw@yzE{Di!PCy?3&c`Olrs1ny+D}8E z`Y}jJ7~w=^Y6o*fPRbz&&`F>2y<`d8R0fVeJ*tLk+F3fey?oQYldoUe5kqh5iVyw* z42|5|jZ-H(3djF1no>F`^$0dK5x295OvIEvGR7O_oAzV;>XP;oQSs*r?ZL4428g^u zzz)v-eqYZ1Okk)fIjFplc+ez|G``#W`!I??y?HfY0(nWJ{d~Z+ZFrvLpMIW(kC;?LkAbB`g ziYWO$q7!1dHL>XQSbhgVlpE=G)mf z_f+7(A&Q|qn?kByx)iEJ5XD!$`uv+Wx(%$-aT|58qd3@(5~F?8+$s%l%B%gL!Xq*V zgp8S6e`jpwwtoaOSN1Kc!XUZE;ba`Ep?UUM9TT&{`OQ(Gcecek$&Zqprhc{RLpQ;$ zNWz;^%|I#FZ0RlXo;Gedt3f{_{kU|y*%Nd~R6?1&hcToZIVAnGju3Dch=R)MKa#po zo5LJvbH?iA`&d&{o3jqTA!UcOT2oe=V>DGF*cNKhluQSg9pZw-{>VM;Whw z`W?b{uSWp3D{>8NA!KB34FktNnMH){;`wp1-E#RRb>kTCLrWbo{+kQpc(PyzItNe= z7HRJ{Be-JruTk8^W5>HVAp+qE{kfx35f$8bgEF+{4#dngtk4Z{M;jZVK*4-;#5#CC z3T1(mYx0|i2-=%A+SyLIBTB@l`O|@uh9Y6$rEFi_PWA$nkZKU$Br^C{2xYB-D)m+L$F#}Q^ z^jjQ}6OyLzou;H4&?0I|x`^*21rXhI8lW0wW~uB5R7=u3uZ=YAUAq2OuU*ctC8Zv# zgbJ-z3RovF_E@t|OG@7WKBO>XV)c-SDwfR)W?&H}OiasOFnM#O?<)6U5m_L>;iYs} zfa#3N#D=h0x?GlleX)SwnV1g2wGp|6PEHz5ksBl$#3_PkQVShmF0ZM}EaQb1jv0Y) z4OLvDB>4-z)ipru`cc2Ir|=BnS=KBhp3P*xxf{fjA*Wi*6t8}=b$t~ZghYIsHv=eX z)?x~(uU1nPT6&mX{<(ok1asC`&*qy@dj zPi6QCn6y+=7Gs(L zL-WYzG_Vr0;(zJe759$byjhjusYLapsVU%;%Fg@E~9|T8wV; z?y$fj%Ew4rQyxic$|Gq_c_ghVkEEFbNlWJD&)+dd_9^n6wr}A#onJ-?yhMgDgZw<` zy8O-DcpI)33j@H?_8h(~bmhRNz=2U3#7%&rz!?Ey%$+UKV@L7Q7n#Oc1^s+*lMJ+{oBJrm3P-*F}lX+W1#0hl=p<$>MF z_!hz=R<2Q{Sj;ALU`Sw){LFll5AoI0SmZZGspJ|J7XC~sp=(HCKXzo~H}LADMM8e~krXh98nl<&W5g4pqvq%j;5U+12IM zZI+b0=m=mmNor1`^l?t3q!u(tY5{2xaz{NmTn|)tg{xs%aVst}Bju0ek95M?cl`gm#pDapCLR^iwIUod2 zJzlmpvI<8gt&?hxz9!aOe^&b{s>RNY1GD17Q#hVR#Y=F>4IYoXaL?~{!DQ-1v9Rky zJP!+YSNwtrBC^>}7UL7hwfH?8T8eBe_583V^ga?bGd{ro@p<9UhY0P=dIad(5lv!0 z&-sWQ)arx9!9fcvw#5>eiGgFfxkg0J5<9F}vspf>Tg*TKBGiS)DMFpa(8>OCYe;pc zNL&QcV7QAXPAXzyv28+`+y({QEY?#5WV`LZUlTNJB+3!qCTzsh+W*H*EfzvTXIBwe zvp;cSbA3cD=K9|<*V$Xe;lMu3zhx!C2={Oz8g&*>5s@i|SRB0i@|RK(|G zM6LMjlc*;?Qz`+BqLq2u_N4H6*83W@LdDtp!W6GGZUf|1Nh^VKu(LE zO2IfF)!+;17zAMb-u5U{Q;D)}1~c(quT&GNSMi;E<0)*`tz>1DQ}g7)dw2zHYikQj zan-MX*CfBcTV@g}sK;=l(olC~7-ry!b_A9d8WAO^k=qoDHpik%V^O{~#j<#ynb4g# z3UyfPwO!CObP%9XsZ3V_u25-xP{vVZQdBN07__8f547kBWZpzRv@Z;6o`3|hCNdoi z2nN-Znlbmv+;JcM7U&~X^~M4Be+JYMYKs~ZiyPDJ?uZ!^pB$|aUzMWICb&1ox>?@+ z&djb*7^IQRtqS4f0>IU33ywmZdV=!5DFT*&Q$uJntM`(wqZuj+s54;hd(m8~47}V$ z$gP~*OrJMazq&3cEr@>gOT@KqZpm58A-bvMM%|QP;lNkv=$?5_zsljb=4w2d`41v4 z_4h={f&8^rf1S?wHHXUeJw1|kUw~8EdMa( zUjmfWPwL`6*_l5*F0y%c#vI7Z59LA^NEZaH{qT=7<-PhLGj-nWUG1wMicsdE3~&B% zmZHyQ$<2>eyj+DlLMu)4aKJ`H)Ye|e$`7w?Ek}r~+$WP-$7mECW9k&7ygHCZZtI22 zss@H4WV(!Lo{S&_NJwF3ct0eqHev9d=ntD~(+Lp_>e?3tHj6CBKuKE^;fMB5h*?fWBfW9skP5po05YY*v&w7Jbbh&#ILeT4-NLBZBNSz0wb zW-f9g^P)qM8eZ8wRzoxJ9xb+Rqb+ckXXYbMA(M#j=b$bQ8$I5x^*nq4-588FBFbtA zZ72T~T^j5!uW7@Y$_r0!j{MXi=R?~$9@i$L1#GNt>;feD3F}I0K3d_t%_UPWW9QoT z$I(+_Gp*;!fbo43zv&z689575B21wgGLTy}i=h1{N=NR~G^c%cR)Z-9do?wfZsfIV z2^9dawIr7@_*e*@lSgVdeoRcIh0#OdmQBNVo9@y-BB^_q&KTTddW;KKlr!1BR1#A8VO13r*H)|k6$ z+mUh$sHAl#Gxvy6ED`c*nAD`*?9Rrauo;Fh=E5t^-%}~X09@dMTbw#f8y2T7eX-U6 zR9Tr%^8%N6nyNETUx}+*bkbD_vju~jV>t+05aOJPeuCtMlxBoD(u8jydSB6(Q^0uX zT7q}0M?zSkgBrbUb}yQNbK5$;dTP>#mHHk)v&n(#+nA55n#IThlrpi0=-MZWgy{c6rzcGql=0b0J%>f=zntu z?gmtayF|_|x?zH_E8^0QQPy*Jj;J|vp*V8VDe}<5Dtg4bfrX&XQw0XAmj}S@pzI5x zib4z-Quru|7Pmm#S0d3drZ7CS6j8`JoJ`^{eq0Thqqvd4`U{w|RHlDMvjlFF1nM6^ zZ?9u0WFH`b$k(T0mR$M{nAZh0nwy>M4a=pMFen!tK&$D}fr@6_=KZOZ9oXyZ26k!xPmn@CYVd3w z`q3S!d8yJ5yCpym&gq5Qu*ai2Tjdr9UH=SxI4bwpbMP9k|3;J_h4577nLUHj(}{7{ zvAq5Uoo+a$9}`J^JxTnT#O~MPPIW=}CweSHvtY^jO+;se&5{oDMbx!s_F>!j;77A8 zC~mfR=QS99$6T}xNX)5d1W#xVhW{Jv_fl|B^CctU-r=J2f^L^Xp`i^1hA)J+tNYW? zb@_sUVN2x}KA2IiY}j(GU(#h}{51I11~V)_NSJt-j2+K#I+N>6e>9F|rXc)oT=Q;4 zqd9GKZ~BTlAi5cT~jc%trEQ| z44+vWsJf2*;~SRF`OSrcS_9RmqG-XO4=TEYsWh752bbdK{H7yohGZ19y-*lFzd7;` zfB`q7(aAB*1%p-us^4bDp!N2X-u9ElUDABPw&yV%95@nK7}A6Tw?WTwPC;r#{k$qv z-qR;}2OuwUDys^&nN_Ft_T|D+j&r_k=7T_WI(mjK+GZX(2p*%ut9w>r7Mg0h>|mRc zOGlr{@Fq`hJupV|(+k~m@fc}-Q(nyw*i~V);nv*B4N3Xo&oP+kf$D$bBW6_W4e@xu ziv@44V(S1!c`jRR6nGqlR$J!?|Hya8x8+v;v|Hfnt>KNFZ%$!g#y2>aAPNS^7&F9qSezNsjJN{gBb!i9bD zk|c0QF4B+A9g{mYcN|~->#`HEI9F6vg@Iw~Hjc*V_YdawE4_Z7p{>`W(Iz0A?f3dX z_51ii&Mil}dHaLA`~rOxhQAJmmziPFimmrgWCc3VwApTK$9h)xDQ{RP^ikRpH>R|5ASSC117RHl+G@=2tgH zEB>AN)#1^Ke;vQ-@n}1KH8s=ntHwvblfFIB@~eL`HH#_otNBc=MQYRhYEoGFRRQ>4 z>^;HaT)bGaW&EmP;KumXHr;;!s?%}5f?rkC{4e}!Wxrp|ub!}< zY>Z!(WOn3NbXwAZUtM?7FY&7)H1p@nSMO&0;r!~mOFX*&b^Pk51O8fmH6+^a-zipady;!aM z>Q?Z-D8D*xRL~ih8tnINV465tt6G0$;Hv(RnG0xUwE|AH&8a8!#;)XtU{xe3Fzsmk zR0QApg@fR1`eY<hxuz8_(ag{(~P(tqf^{B{ZInV(|8V{?-62}sPgPok;0%$Mb9x2 z|1M*FV4)l~&e2z==t*Pcbjt+Z!=P-b-0=29# zU8M3WlXcs^>oi5xuOYy-^9MJo&^fHoxiUHE_#0c#!wxZxpNCNp4e*q5+V|28`X7zK zUVPVPZI5oS^f+{b-MJ25nH2!0^{*-Vq;z7wE+H?GMUqs1NwI+O~Hk+k0(qZ#-inmq0BShks}v2N}*0!01=*0Ud6S@5H^Yn>C;5ZcJBQ zp5ZG`L3SoFA#(7O2diEiv(>sSr;Pr9-7JS6yn{Cu^aB{UU!G~YqA&-(2Bd6`WJluZ zS?F_Au<8h3`Q_3PPyxgyXoXb;@-k<4-noeUOJam(lhRhgEL{7rbg)Huz zk`{D2)77LO+NZYWpmQ-QUQ-T3;^ScKjhAvf9u^5r0bxdy(9U5vS~%AhHm9Ko$8ZqF z5I1J_>Xy6FtB=J&4c-MnuOMk>O=IS($mB;qgEN?-y-K6{O0G}4!Pidtfq}Wh&UAx6 z59u73`(nf2z|i0aa>xPY`vvAUR;}B=e8;MFdsSqU+7?1J)Ov7SFPS+c+2?EB6~j%Z zf^BRHuG>vO9iG=7^YCO0%zb(`@=OkYO~X(!>AHJz7UzMoe2zE!v<*e zT9Zw6UjacvU1lf>bEw;3s4)_afA7#8mt2WChS%+%3aS=?_pUVA`;Wo0JEU&`PS4Oq zAJ5-+BEAmDLKCKrQj>0xWeHff)e(6xF{Cg(&X0dVx7l$F;Qs+ZLgK@Q{d$FT}N8_ssQs9 zJa=`8%#0a{F1Id=(lhD}q7*gBf$9r^vB8BcorCTnIf`>USlBzVKEF)JGcF5rQHk()j6K7-owuq61vg68s@@=S1yp@$b{rvCl2pffVLaQAP9 zF3!tLMPEBF&P!%ExG-r|TX8dFA-FJaeKzReWY!JBl#k@pZcSL>;{vUB~17G)e|Np1jkRnb>OH5f%lVa8)q@$$TaH0vNIyFj* zR;?|yCUmH#OV8vu`&ecRvCWokI^C>vtduFK(!||#Zl(;a+g?YgPHF45|L5y{ea^|} zq^)hfevf}1kDSlvy7^o;@9TYk-K8!s5uY3!Pn`jKJE2EBb_YNWs<(rDR)FyFeLLbk zfYx$e%(KEE66H3ZiO91<;jK}dem))pIewfZ6DIaqAbFWOW(w2S$xg3 z*W-`AjCC6;*%5H8>eM9=!XxmH=!ifcpY^EiTOB+YXS$$j^ONqZu^+-*Hg~?I0kZn< z0JoJI!EH313@)U1REI%W&wnVQwr@>vk3JC8cBZ%*mJqGU7T331aqiK}DL{nPvOlcM z?Gt6c;dr9l0*E5Jfpk-I{WKW)!8+j=@8%c5Am&S8-3kJP0b|*>v~qBgMU3)yK7Bw)c_{7*0^ISzb5%< zw)}qG%Xd#)7IyxZ`_cK%y`!Da%oiH}Jbknfa+>c^5!|y_Z0{%|vfa9d^gq(qSyU+c zI>E+v+XQwv`L;q}S$v~CvnS@)O;v-W`J7*sI;RM3Y|R>E&DuG_f452RkJtTo?fE_V zzMws$N70aKoyWY{73X)?A|~;14ZE*IZ6Ei_P31O~tQvJJ`7nT@TEs>-&>~m4k4nrs ziY9{JByzC7mAqodJTog+kkOU&7g2ZdcjRsIli1zYB;Xmx>{vVXnEW~>#IG#LtDR7t znlT7YU#`~V{3q0faZYY^W&H3id$WZe8-6$FJww9WxUS0Sj3yD?15GwHa@}1G!fW%=T zB=!{~_Q0c~MTjwd{8v^&nZ4Bcb*tKJ=-FU8rbCG`{2qlg3Yv|U+&zrYzWTj3$nPCdGWufOVW)C^~q-?4eMt3rp83_k<-v01~f(D>_r zviHuKCU|$rSFZ@k-m7hhZ(-|wlicaaxwhWd;aQU-3Sz{nOMf<1%t>C>jD8%!oo@P^ zm!MgDsr(D=rLR?`YGuD}@b;^B$Nq%cI$!>ew$fy>Wf7ulth4+QZztpJdi+k9W&Wl; zVJHR2!PSg{_0)*D#L78moOdr-Mlt-HjP8>u-l%yTPL|YJCgFfB2C18XzJdniMu`Ymk_qy3PX;EeKC)_#)t{7eK$ zUmxZ7sR=HGM{joL!aHivb?C1Z+{F-au7<7fW9ZMgal4W&kZNsZ&G zQ%8HtgbJ@lK6~E3mufiWgQzgQlr{ZPiNX1e7i}LAui4IO)mQrWq)DE7NusyO8RS&g z=8|lZwJTaRP9s{pXlOt6X2h2MmL2eP^o;#*p!CV)CwiYNhQuA@vAKPTjPUl@+~-L_ zKQFIZg1V=_`p*8{=n4H7%kn8dVOEv8Y5-F*wFBJp9dHwEsNK=i?emlA3u(|Z+dryO zM-0eKzsJ&R2Xs^qS$ow2eK=p)SNN}QBDM3z>Hz<4!?Ho@=91JYKxDGzTn zY4D7bRM_n9+70CD8RO^kT|)UVIzH!}0zUvOpWUTQYs$Gmu)VTzA7JcW7$4r`*Ha!X zxwBz9#nq|dCGiw4o?TgFT!R-bu&p1PN%TkmrR)+iP6jJ5_H8G-vx2+WLbmRo`;S+! z@vT%b$-0%i+NObI-D+O_BJDaCZ}@1t+Ho6}_NYAyM%5JSqs8)CvXAm_tMFNfozxD1 z%GJcT@pL>pn1E_>Po15;dT+!;+!c6R=RB;Q>gv5@yX&!(Mdg}^TT)?dc*WJU*fR5( z7L<32Crl366{G$N8La`&+`pj~g(vG(w(@EPauul+qzwX8t(Ok%ee`KBA5!ZU)_b1axNY#ASeYMAC;fxWHu(xow)!9qN z!&Gek(buZjnoak`$R%K(*3Z5!8W)kslbTpD-f&!xy1sn)>H`z}dT(;4PcJ#At8Cp- zYlRo)tJLJq98FR7GwPwi%O0LUb=0#H^$fG6w5sjlJ+`bZ1J9^Gyu2E>gtY9_;>q>! zmLAo~)$yf{D}!gvuREY>=^NYE1XuUL^IOy7v)J`*@q6X?U0cq%_gs=X(ob>&~-U!jlu3;ip!lz+Ot?hsFIO4m@1q}IXi z@(bX@8r16Kd+uul811?}EygOVPQL99r@qeX7W-VRrSAdJ93B^VqRJha3&h(j&27RQ4#inuax2VG#;Hf$qQRoBsZX+|GdUm3fon$$^cHL34*)TFLJ13Zsufa6!!q`uGe?|0YLq`tSQ`rt8(PfkwlQ+`tN z>^_4|PS*A*Jt;Y&Psz#23;GnFoV=<}(a9tfoSfXb&oEB&8?kR2t0Ur@|6Y5@q)Phu z( zi{X>y5k+uI`2*rIGUnxt&DG)#0}@;N@b;tJa+l)^9#}+_P8t@wq!KIl`L>NKYJ$3= zVGkZlV&}e50aSqt@tw_^gW;R^U0JpHiP+qm$TEqJ9gu;iO4(k8RLyy$o^Ij0DjI6N zdvoK8_e)TSCte903w$Jm;PM>LDWTVfNuVgcAt1^2#$H%fdM2VDs}os%E^s_o#vR9o81iMftwA7k#&J6*B%*VlTnF( zg-B_D_kPux3@tz}5x9B{$N+unfTGUBx(X9Lk6^17Kk4!|25S9C6nPgzzTZ)iKwLt_~d9&Ht9>>Gtf z@|9c>oc_^x14zUzADv%fJ_O@(L+wGVL%)pwM-I#dH}`upcOHUzTzUwFX|AxITwVUl zF8eLS*9|H}L=D*DsZ)yMI&1e2iZsx5;p@tc&j?@9gTFNwJ$OJAfO&?hT6SIo89qv$ zoyb#r9wN1EQsQ5A`(*HSrSR3jwY+E!J{idIjg8NAp=&ul_k1Z;`5jWP`yqL&QnOd+ zy|>;QX0OYuy`HE|Zpe*?=XG8qHUsiSfNc{({|WW_pSv~Gt4V&Y+K>v>4a}O~couSX zC%5uOAWYU1piljoGE;4alJTZ z^*`gIF@)~;m_wicEk=GYZYvlW>fafBJV4vEmag93Q~jwpuMG`x-?bUlk4xW9DY^36 z{4ciNq=>JpSpF8AQUSK0r`hJRhkuyWFFrfS^o#3>VPJlLfQjp}Z)7)h;WlOfjU{_g2{+40gDat;tvRrmyTSLg)q^)VZylY@?%((8SCY4>zn=PVBnnm!xD4o5L-*tEHJ7v0SH^Wi-P zxB06ugIV+4H>YtOt#s*%=iJdo(gB%}ts)%H}(tp4(;5Mf&TCpgFaN6A`qHHN8NC ztey^^`UO3$Tb&y7YI4lF)R;GtW9aD^_4HD@W;^Ws0nodKJ)KMk_L1(lt)BkzuU$P| za`QHNTG2S8TUST>4Y={-R=WGyC+9}|+g^u7kb{XcKw2f8pO|CgX zHQHtPT(@0@pYCs~;N#W?WLjjO(ws9v#niaQaG$wg&XeYnx@;g4mgY2V%<#o;Eu^a_BR z^U2R)FRQ*252=9oj&~x{lZn8>kY87%P8u-Gh|z zX$SR1M@KQdfh1tCB0gk&tl>rr)N~{ts(-A$vG1Ok&YF<0Wxh>(nOWvrPrm3f-)|Gv zcD85MRy5Yl*D~Mx_$rwGc}4x_tn%HW)A2UPa@qKiVQ+O>T58^35jxiSK&U z{vfl+_h0IMruf@fkP+!{?;z+&Hn{bJwPH9<7xb{72h zN&chinRiDtPP^lnf>`2Cl3Dee{+-4RNDUvTy#x>YU8LA2z-jK?z=E+1hp@*-=dzbz zwco3Gd}FV{tf8sKCBQKavAI30m{~2|^}VX#9NVwS*3&_9TvjDtVY?;!HQ&L7+!CAn z1dvfg-R{E{v0t-uP#0@A{kSriI)DwDpRwrrMp{EwHfYY~jpfwu8l+RR>e-}e?H;ne zb~m;6T5!0{ox17Vy!2Jz$H<`nk@1F4{Ju?A>8#ZL$L{+!IbT5A6n}L>W*NQqgNn&} zolV;m>kP3I11YleX2UAKNmmK>V?SI2 zq+l@PDTOV@wL{s8ct(pvuD??{uwC-DA+Z&voi3mmT8GUB%wP<5!dvcz14YuY#6U_F z`Gl9d)(^5;#x%v}Jk(*tII+VjwOz%qJNc6BpahPq6GPK!kPBMY>grRmf!N&bD8O81 zIKy<@!uT;b^WW7j_so7wH zsOZxay*JC@e@jRLWnYAt?ctiQ$o*k79>sy3 zy>#0)>04p`bIAcCZE<}z!z}@^@aDj*bPki#mD>d5uc?o*RLYSLMILz{aN`F&~+gXKR>Sxn;wR9FB`}B8e zR8&J7d84J7yEvyb#kdE^ZKY+>yGpb4U;ENDhY&4oyjWOHX^L^vGo@wHyGpb4QNFb4 z-Aa?@kXxE!+&c5bf#Y zElN|2`%$K}OnO&omOjasHnUr4ZCjM47+0PtEtB3=nxz+$9#7r1(!SnMTiVSG1f~AA zLTLlrv!Fy;uV>*uQJ|+yVYwz;}E4_Y!rb(7&tWu7}>|EVHJ;R}RC&qp79WU@h*j4H5q0 z=Tqxvmu^=(5V9|E7hVJ9YDIrgcKT1@HoêFRq(pP+ea$cF{grumAvL8U%?)#;KG~=#NT{> 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¥yYT9JKe0vkuUY^`dcSdlB^ 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≷N_A0 z&JFQ9Y#Ql-aZyJTxe;I(=z!QP#17J6CW0I{5SxKut_IT)l!g^fwU@ETh-y2DYt;yE zS9b0YG$!l5>*lO`a3l~Yf%vVM4J1sf7wFOfSm)A=L$J<%fDKN>g!H-MpF{DYfEari zOI8<#cJTO1oB{gT(4?igh>?S87?X;f!=M8@uIY@19&m3&3$J1cFH$L?*L7`c9h$kr zy{sIO{1<`q0*fM%f~Vz}2WT{hi9gAFgT;tf4#z9>JxVfn0+c4)hg5yBsCdHFnP-l> z8ovJ-ffqB!7Edh7oG?mu0=#(fRaabganU$jtb;@KUL16N(U@^pXI_i;KDstHbJXz` z5uCr9%Irl^tL>X1;W)%zKpNaVgh*}`o5GTrjKUK8ooF>dXH+Hn$YG!U$Pot`SI(RF zjkMGrTxsrlj-(#tky<61kXqR1RtrNe23;+w_{MIex-_0tDB_`a)SA_^J1kUg&MX0U znqvSq`cN-8y8^MD#a%Ie;^HKGMcm?~T*$bTbvD)O?35~zr8(Gt-RPIa zshwsiZgh^!z}spmJJ1&VEV@-A?lOY)Oe-`K=Seo^nLmEO?u#=Scbcnjhg7gFqZQ6* zZyab+k!o7&D_&CnACT1DY<*uoMBNsy)vBI}A^<)n;7-$rOj9RbP*py`Q*4&gY_a0weDE&^ar;&Rrjt;m2q z%ZJMJIQj4{KmO0khs<;0<--g2j$|{5%7;zQ{7U&y@bS;ehkHJ4E+0(yn0)x*D^~ko zk`FC+LmwD!yWwo?=C$3h|J`1t&<)e2M!(bzKlnb1(XZ-;2i0raeC}9jo9zYMX&weB zw*tlFS;jq-XScAM9SIV|$+J~(%9AEj$zJu_%d^J4;^e~@?0l3D3y#}^d_le`}N^@n$D zhu5(q7h^}`73NcoZNwZSDq3>BLsAFxnoY`=q@3H|R8|~?4h%6-D&S6&0T8z!idp|E z`$`*qWrTg@n`8I|XfU5#g#74Cv2+!(H<#llCPc)aE%E%YoY^mm-Dnxt7MC#8 zOTZOCUaIQQiXvKBZe|rq|K|$@0nF?ksyqgv?GdwY4>4%wl|4cly z@Z?M^6VG%!GYZ0c74Xhq=S+gBx(w8*JI6J>nEp8lmgS}`J1rM^7cF+}M{-74tx-xj}mQVUh|fP6G^Wxp;2C z6BAgPptu>G7SVy2z|#0MFcZ(kctW-AtLH51CAHRfi&gUuA+1E1HG1h#A|gh%4R6uP zf*COS=?R?2bb9n~F|iDJUQ8_WaN^3$yv4-TyuOn5m3eAkS%5EoO7)KTxcC~-U2u-s zSJpvyh-|=5ynQ8pJ~JD_H%j#fSvskHFJ1iHl)DJWsNTVR27ygYzB@8nh0lu*0ySrvTdsrT!wM5fIXl?10kcnL8t0npR&4`fU|{yz?A7LzmvC@G zSfb?fPtH#V7slfAlG%kl|A{@+RA}Hf$|5l*hD~;7_6~gbgnU>$GZ5M#b^%AY=$pDs z-UA|cH_z!=%}DncKc`tWTwIDmrSZdOmDel3UY_u7@%8Lb{TCrayf2fZp!1zsC@bZ*kFe8EvBd^7w$j>SWeTd(&qx&z#Du1@@sIq) zfqCqRD5IpjsJ(e{UYDfCHj;o1pXLdGL~_nTp0pvi9%1nVQBMt$=2SgQ9&<Z2jjX{7wwCDp>PM+gpFQMVyBHfa z%}a%4700gOiqoeMN7i~gS5Qb5&lR+p(4ib^ZUJfYy z8ik4a!Mi#4cN2Lsv$_iRh3^y8$0_?;26z#Gn_GL(6IBT|;X#<U2s*~lh z-A(ZBqg}}EQu8_j7f2f6oVW&FH=#L!R`~rN4_EHIJ~o#$bbF(k+>bY$=r6097q-BC-Ksz5-6?OUxtKv zkTwgfw88ADTAGpAf6fwVqy5PCtih$a*rJ_UMGZTT6*XftNKqp#SJzv#3C10j!iE(+ zGMi-c)`Ma44#;WN}?nPXz3Bw6w1s2TS{UbiTB&N{mF8CDu-j`U&tP^tbXy^f>-A@)aaC&LI-|}uE)34G#+8S* z9PzXHYeOl2PTS5r-ugi;9jy4r7HueZATFkUjE?G8d1CLb2S;s-ajGVPcCx9&U&=*Y zOum6vPU8Y1R5BZN#QqHUJCv2oPA(n*$+7`d%*7K5f~@F5M#ze84W3{C{Z?c}7ZsKj z-AeQd*K>%V&3rW86`OgJ8O&hMAAD11p)m6$w!p=iac2RPIU~=H0RzmwWVo1d&tTQ{ zvL=k-3@!$>i7|roQ#Sk%Am*DKJ*SioT!C#`&EN|b(M-Qe9U2tA4e_|q)W=# zS6+A>8l^iV9YmLm^J;mVPBR#T)U7J!cg*)juFJ$W$VUQ|YfE z6xY}EOa@$8)I>Eo{>mclbXC$l^i+BdQYJOXerK2T{?#S6gMkE^P3MiWR`Sh9vQ`2q zEB(<_XUK9%B^wdWW#PN(X+*+kTe4Sqi+PU(L~ISvCRq_gqf$a!e<+Mgbxg6BT*sJ( zqhCo6*kLo7?p7_p!x|lTnl5M=(yFo0{o-F_pqwp&|6i;wo3n5RZ9FDX*sWsL`dZP& zm9r@?KpX&B5l(K(oA4?EBvQ-GY3M4#g~0F4TKzO5@Sc#rsbhGrDq z);D!M3Q{C^sUTGCn#gO2+U?7vxGy93lgja3R&a7t9_b*hMQDT*&QLVFY{0p{hhQNG zkOCRLZO#eEXvt=djXG@m7zC*{VSz3eLG~pCp?p=aFLBup!FmmHz+^u{Y$k#=8pMoP zr@xWUiJ+w-W+<3y$6YR^C!07V>RQwOnccY5(fC+Vha7j%d)Kq+4<4|DARI~-w%WIL1y^*anSaBPWvoAdI~!yP5~mVe69|QRi06p>?>g zF0ODCq^-D$C)JsAM^nn$UhfK7y{TixB%C|Af)QLa!xp_vK|QfRh9GJZJ~ zm4IlgVWUM!nyJg&#GvDxiIy$rLjpv54>2zU(F_Nq6&83Iw#BI^E;@zzS=r^M$w$o*>pFYd7WN zdt2^wa|Nx0PG@fH`=97=T(b6|e(oY#z`rm@?vF9b&6x~Ps@n-L$-Gl;rcCzT;g>rN zzg{kVq|P*IfZfqoQIp35K9Z(V?r@KHgg;#Bd<}0wv>5F=+vM@oEo$bU zO^0mthPE8OmKcOJ}!uY&Ow$(tr`EeQCeWi|(PdLYo_H_B~ z@wP-+gmV<-yNI$gs^&LEJLjz`UB9?|KX40}4+frKU!4hRpx*S2Vva^z6FCyt^TlJm z7mx5>Jct1Zy<_K6=*c(_X(xRmT3caI`={x$C!?CJZ87c^w_c6bi^UUgR-~0m2dl6m ztz021(q<}TMVb|G?C)|VB4iZ(_ePQEID-~k0$r(zjZiahJz@Y|M=L&5W`S~?gP^6k zo%(bTwQ~FYR4b(^L9^rsRxhl^g2x$LAlK*JT4OQ*BrUexKV>Hty2(HC0r4J!B=e#B$ti^hX#S#@)o zU}>SKy(=9HP^}pkhKt+HuP9d|PoVDl;(D57D3-?Z&7l&hjkxp2Sm^492(O1fDS3Wj z`r=I#ai90)N&NB<&2G9Ec_<@O%_B>wP-yANwsf;=>G?@k928|V{!!EG%*Tjs#2B=y zu_L3(N@|kC=2K&8ks?SgWdLofeh%B#PO}X#-$hiljrzNdQbw5raH0y|T!rY^Y`&%Q zAvl>WaK0&UbSfW`77?4xzwr=RQq8f^a^D<-rNA1CQVC{`Q{_yqW3l>FKVns;;iCsxIL9_0`DB37?vY zTcSH|IV}>`am&fFLT@>R5*D@)*sG67_3B222 zbppjJg)Gw7Fv011uUw>$z(=C28MG%CqD$G-Ldn3+^6h-dn+;Qug(o3-Z{8#rKv~I} zM@Zl)NuLM|JSFNAdk<b5H8syX9&3KY?YR4XC8P~@!}p_qh~@6&BcBt znw}Fm(Uc)AFLErAU@mTR2QN)TH-g19tTVm3$7wdIldNWgQ6ka(OWJvwjehK6tO2-X z15gK3**e^jbx3=iz}4kI7u%&e=_i|wq67eoA}})VkV0@V#m)(oWMY7 zi=v1|>+XV=F!u?doEni3T`WO$9Fu#9m7U{c2AYkrch$~Ga1>!!wT{xReZtFUh50tx)NIa5G}ahey|wGg9}rGBFOL1~ZE34QL2N-l&=b zxV<6;y1fGS#sPjY0S|N|;G-qvFRsDiQa>=Lk>J)M0)!G@lz{DP$biaIs*PU48Zaqg zAy92bB2Y0}T%8ksL0WtWTO6rL222=uWgxTJlXgf43g|d-UsW+DEQ=GsgTTSJ%5kw8 zuL|D!V6VCWOSU8o9T7!?_a4~Zge3rI!Cml4&saK3wgFA2DPJ^&mhm0@6^5Etga+3a zq`BjE=fuvOj&j0pheTb<$R{8XR$^X#r&~fXx`04X=$fQq{gaPlcZG5#l9CD0##)(- zG%+FyimV!WU}-64A!B;8GlEds~b?B;}5lH5$kpqC38HTr5u0J26EQj8*+*5J>#oZj*+FRj*m;#RTu&= zkW3JGrQVY7a9}Lo;c!{LBiJ1tlVX_x`3@&SnFKi-=7fW};hk7ka<=v@E3>w*f#J(M zG?cO?T9|Xgu0lKoi?UHLemn&_QllNzV=J0sRg&QboHyH5z@XFDSrBxfIg&Y~0c$Unjv zQ7<{)qa$8z_ngovzkB$NoVT_hg3!GuAbRt`cro}?eRQY*Y?GP!em88>z3?-GyWzs- zg9~j01_QhzD2`xljq!JXKNnknrc0q+ESy~0abP@dWfyM=7S{qod5Fs&UR;k_8;{Cy z@(_GZ)K#aH4obxwNY2P{FPu}|E<3yt-($&OaTsrA75)gsnO0rUDeK9017B=R$#y0+ zWfktiP}ZTF$nG30dK7mjJ6$%Sd_vA!Uo^*GO9x;p^=8`z=WR7^(1Au5=(+t(@J1oxa7iV;ku!Kr zu(%%0%5}Q7`x|BQrKESv^2{9weq~lJ!ACAc4+OXS;l_i`WhqV32wnyjR&4N z>Dzd?PjL9w>aJ+X^1a!W;Be$Cf7*(0lNNsHPbF^U6Ydf;uYw&0yJ9NPh;kyPP0LG+ zfRiq33*;@wsYZ%<_zGB0>V!m{f24q#D@@-qOXu$?C}QRX+9ix|Iu@WkoR0hv0=Jt> zk=go8G!i-JCchlL6g~I(W6Xa5gSmj!IYZmsJ~g2+2{);{!Fkw2JK@G0^B@+E1$bKV zKX@7rM%g$8PYe09oq6N%wDGTaWdLrTWb#QYbTXb!;Zt`$4Z_n}7Gk}daASHi8Jqe& zzrqvO4^bvy5*WIZ*$YuMP6Tm!_C_69;^87cjc)_qf(PEpELd{k*X$a88bdkZI=V0n z6No_yq|4|T7_i2Hje8=m@e2N&iXT8*1^|WkjT004uryZnb=b&E!Pw!5X{pQ(h8-pI zeFwsuSkp1v9grTjpa@_Qn_#yuCXj87Mc49^lkccL!#pD8a(%mj<|IYmEVGs|IRV%{jskrm>LN!bHG1#a_ASrpu+ z74lg$((t_|B}>gukN0YZMw$c?Op1Y>NZu&UvZ zaFn>JIq~)uqx8q~n!{27^eQSOJK>S><}OH9e@6n8wUBP(VWC4F_^_A^Th9j2{Vzx> zKuFoA#$YHL6Pz*E44@8NIGcaq+)x>^_6Ev~lCHul z6wQ@cCKaO$T8{3ItN%+LiugwwZ{(+-wE2PzWnZ+Jxfah|bO=!^_bLitpCI}!U_lPF ziqDkT7${hG4W=T=LX3zLhdmZz4;8fzF;^?=hgkLz|4xW)GCzQ8V*dKWy~s&9?!%Hm4z`*k zDGIwJF=p0~i)x%GZ;K_9iWx2925>6yE!GH!?<;i<*(_I_IxAPp=!Km@E~yl%aQjPS zHj|%_O#^ncNHW?LoaS;>udBAjwyV-`Z|g5PuB*1=(~%hEk#p=ewh4IX8+cm^zK9XR zI0nx7O3*AxS`?U0{k&CXI_cLnQCHe?uRTOoT=OTC)Ioxxm@imyamZgNE~cSs%-1Nv zJ^(|;ZE;1#mxjp_Ptv`)F<7#GCmLt)BNl4ueeYJvd3I+op)n6>jUoIH`(w&SND^IEy#b9ph^Lc|RZUl_qmMo*R4N zK}rpM>d|9CpnxJiCa3i&^W%Xz z1;$G9SYl7V_MB zG!s%6yDX)iwl%Uyx7R65_^OaC2z<`7L?2Ko5kag&yO{Q=`T1CFNiEjMBlQ-haejO5 zOiit{i)ggEJcJlE&@YmBk(!E2^f9!CBMQ_2q8Gya{P^pv`8kRM^N-+TR~F&1U#MC_W zFlpGw=#`s_75Yrnf?kuB_u4G1lxT&gev5>aPM4?jqrVqcTALuObk+@Ir64#(Ld!?L zxdnW5PN_P!l!1r!GA;)#J&|08miz9~B3SYUR1(qmxbJIO)@?KUfYR2PCzPjgdy|3c z3(a-R;K*HROWcAIFzzd6!#)488#Wi>$+H&!ahK&(*8k{RKJ)X}%gUy+S$`inmHHob zM1`FFcOi|}FK}(k|0wVe0TTfSo=~VfA>RM!&OVf9{@wmZvp%<+$qAHmwow10fBYaL zwS7Msso-20DeHeEijQ1`ZIAOm8uYe1Odp>h!&DW6Q?TS`{g2kl{IH$tNxyxf7enjq zVzf$;M(u9^DrVve#n>;8p%p!ZY%vn(&8~7X;(7 zuZ78oYgFFg&6r&9E?7sc@C-RaHGkJpz^}P`OZnpvGctGZv@*5rW)j#53!4MSlc!FK z)ief;9SFv=-R!#v!@aqObvJj`SL2o?D$u@=CwS_|H{^!DGQC*q;3ecp zu#p9L>|!e~yfu%CyF_$7|2U}Xj>YI;Mn+`=-^>k1&2z_mfoS&I^Y_nbdJT!W{lCZ^ zyges4Y#s3~wb*9!uCPxeUd+F1Ch&Z5c~V{2oX^P^9)S!B+R zh{(3FJppWCOg4}?ZN%Xs0phJNw_%KZ*7bw%D5LQp`peO90*`z$9(SE`>P}7EAL9?W zsWUff1aF*}kyG?S`^IFybTu5W7Of5excTF`OkAH6$?t2{bVAMBU0vM=aDistPMBWh z@0$}D)Hgo=8OhJ@Tc11li`kFy#fMqEK@>%15po+BVkSr+wu8a#8(OixL&zCayF3wX z1RpIm*P;wefRb6l5%UP$ejaKvQPe1L-tKs_w|O)x32c?4NX;K*yI zQh%yiiRj~mBMIZDcJ$Vzj~RCGiP#7uS5N`;s02_j2WFQBlVC;GUz&$gRO-Xo#gXh6 z!zHs(eI)ypaLHV@N;f1q9Y$$+4ZS$AXv)ViEP^2blHvC38j}{#pU@n101(NynP_KE zi&NI7-ZeY4vAwMMy=%(4mJ_}^ld2n*r+ZK_PtDtHR4q61zxoh5=@ZyUN6Z{0I4xT> z^B^co85+%;xHS%`*3tWkBtF@axD%KYL#iXuM}qv?obfzqnj@-11XygjSy+B4MyoDc zWzY!fJ2_qOT$w5lk$(6DTC>mL|#wyLRL$*Q=q{E_kU4Xxf3ohgxalwTMBrdqX z2ywxMpd>E16}To-^bw-X4Z{pSY+Z0U&-i7S*x}`X#uWe>T1>Wtr!ch7c&eAD^i|tr zM*Osg%!of;!{HGRI+nJw%W+{&ie(AGVgwptKD6xV_pfs&#`<*dS@pzF@CKgSARnyI z53apUK3J(A{QMjF;9o!c5{>CPD)vE^wzg?&O5G3sPwa#9KEely*k%kr=!$#U6}TlU zhiE7qlE+Gm_twyUf^1!D9dL0cF!*{j!}H^N>sBlXkMgPP-$Rt-#shr`^-Q4NJQ**V zRkvB!EQrajoD?j1dM9Y`dHirBqi^#DE7ybhgY&QHnpI|UumWh@$9)=tCoV|;UM`ap zp=|y#0%j$U?cPP2IqY`-lGD>qi~m+FM%k0$1{08+sl%M`VQRx?uWgv04?uOK9_|{8 z*WbOb9gWw;hne0P69F{y%<*EZXvN`u`7cgY~mKlM#U zt`>xx3bdhchv`~`J-B(f#iBuD~fzBei7m}OFGamhpRu9Y!naN~5 z5D8rKrKRA%sJ`e5KKm*7T<`)?aD_|3AHEbv!6XCo-LXQ!yaxp5(8)^tKka$$CrTwOpqPw~3lsiQAph zItg|Nd#(ylcX{-$Y@rQ(fXz5?K1v7R8S4vCYY(@Q4KN`q74n7N{HijFo9G(5 z!On65I{E5;35`7&_Y#Tx90L(f!o#G}tmh%b3;Yj6A#lwkd1py7Tcg5filhiv#ki+2 z!&yqjzY7zKGf3sjX819}WCboB4=s0LPq%xI`Ex|<;BcJmka6_vKypm&@RE5ZqDiO; zRd`Av2BM`#h%&Y3n@lEKi{}hn`ChYF1f)#A1SLF)0LBL6{w|;d&lKua|Z|~6Li!Vwcun@ zN<(l$7CDO;<#gS`g(>v=`NGLqrE;<#!M4@%&7$nD-oXg)@#3NYvx#exCLh6Cr`0O<(zq7giX3;Qd zJc7U)kFRMwg1*O)sbyD)qR0v)ZN(!f1(Jra#5Qx`q-5g}Ts%YL5$sB9J08J$sCF=d z5|6+xyQ|ULkkC1nxLdmkMar|?rO~M|Gd48>ncS5)@XK9^r{Z>^@D~YvGFERPy0_*% zOp~6L@d%!IR~iS!YG7@tU>ewPde5j}+OeGk)6Tez$bduoBpv~~VCK)Ew z`(eeFj!27P%P)^dVB_GxlL2!WT9kgoRcx4zOECFGYRUd}aS7g%=_9adlf~Kh`0NDM z@!9J*BwJ6^rzed|P*j035~B7mOmv1`hXlqYcnxK3T!I?jdT|NHeH^#Q{eC^Z z#Yz4R`DoX@c)W|oB}ik}V=nHvC1b~Dm`Zk!JCt?f5>!tmo~V%cOXCuV@=ui2P_lve zlhIU(O)$JK6(R{30Qp{PF$(g+ADj87WAes(??*89MY4Sji9)=5e>OnDd(W|_{s0Ab zb`*N?1t^%Z7YXq<1}NyET=s)|NI6}flnWQILZIe=wGy?_1}GTLvi~Om3JL*tL2t-u z$wzRm{B7NBoyF`XK*1>R2MmI6DS!-O!QVb5%zDv9oMc|*Jm!yglV#=SY7&VX zpWryQk1OEPJ(21Jj^?xHW(IogjcQ0*681JSE6FT+{%E}J#V4RZVU{tpVZ@%sxJU&H zm7k|T+W<-{b1BVHCl7eOGon}b>6~^n$q@yhIq^7(vWrW3E zqJ=E(fQ#~mc+|gWmR%wBN)mOZWHy+V_-sBrw&e%1>mk&q@{?*xg|ck1>+y|G!?FuJ z2f9_R*Pjz!M+qpqI{GG(Tf9v%&wU$$IR&ujR=(w5ic0gGz}>G3`bbw*!$z!ti&mO6 zNCMlUUDEi9PBNdC3z4};pf=#iMl7h;TTZEDZZ={8SsrdVrB>-}3T`X)HWslUi)$Sh zp#CwlE?F9_V8Z1s#_Z4Ot$?&vVKsxG_g5A}0CTbq6G82c&PlPV05`%!tGTFoHRAFC zJRi8-{LrFBQ0G>fZG&2A6=EoG1ZQ9@fMpyPHKyACPox?#dEt&d-Id=BmR#9<$h4_} zQGbvjlVPY6gEX~7a}8HyEEUzwmVnqEi8$^ebas`CF>bH{*FP?UWA6FRW$IHZ0p!I+ zNYkg0nwOzZWA!N$Ptlt(j&A)PJ|`o`#Yh^!)-VBR#U6R-nY(>01pi+%sDwM1(`vzn zYJvatNUY{QLcsJ!PADSINTwT0!KRyx=zvR9dxVt@^ucLzsmZ_vjmVVCQh(#vGT}htnWH6XmQwo{J=`(1bq}B`L|SNHU<$cw3k#C@qZnM49`) zf!K)pP;jTuyBZ4aL(p*C&%!U`s28E~@nRoOAyL%qMFpkN;!?&D;0GUU)AdWp}V7{n;0q4;Dj8x`V{M=YPXE zNxRZN#$w;heuD;Yld7Uu2=-wF^bCSl066diuc@5tEfAsItqPWu6EnSL|2x_o3cq7c zx{p`_qzzjw+*b}5W>t2kBPJ)#MOTPRDpW1;R?tpPb51V60^dP;dH9c{I z5se-S6k{pGzrhDlxY~4l4Q8n}Bt^a1JlnqdiQd#kKLv2`3TO&5UzN$e2kfH=X^q!w zMSatwG3iOf;n_0RX`Q(3U~<9da84AU2E054Y*?DMa>JT zN7TM4xK<-Q8CT54)PtRtgl9y6?0^p^M7dvq4HP1;ICZ>moomKlyp&mJ_V-A_l20^( zjJkRHs|=7{0XNXsQ3Wf8!ZwYwMp*3r zQgKDQLn*kT-63iW(e4o1Nn6K6J;X+~5^ad`J*79ItM>Ne2uD|;=wGrWv0+YN)LFuk zD3O6zQS7juD7uD}K;bNEwtfc(cHQEN!OVs&Q>**PXh2l;pY+w%n4&n9upVa(7Usgq z8|MzfTxj&#+%N)KM<%S#4NriTlh|Pr=J6*?_gu6VW0cGlx3HaE)tVLmfqT2(MoJ$pex8Gn>1EWLc$bX38n(UO-r89g=kVJ68QQR z%$8L4yb9qHX#6>!shoA4@s0$$qq3(I<*{whK!dZ}YjG}8Lpsh8xqU_Aiu?fVf%Lqs zH1fvCHOZl(HA%Khrs{WmaS8k5F0UnKAsymok6WFb^J;OcBO_J~X>6j}I_Sv2I@^we zYp`!OMu`;Y42Q^yW?b#^_4rLue`}vDkk-aqRDpAF2?YT}mRD`b4uNt?u*93rt1!xP?fU9x+U+p52etc`@IF*_9B=FL5 z;lCUvutLHy2#^8{(sH#;14vogOxp$)98t@yh(^AREZ9kTO)WpS>Mh93n#73z#ClCl zMe16;O~EbMB$-C^e(GE8GF&Y?cRP@fh!7jZ^cYLIQ8vj*StWf?UG#AL;AM6~ZAK+) z4`u~5s~#6$RwGzaber%c@mX4hY(Sw37hyI|U<6ndm}mtvoWOW}s+6bn=juW8PS0MS zip2cUNU~DPjzlwH59yqDAth!4P<@sJ)K2=D%OEWi)@I)z=W)wzTow{6;r?iJ1%4X4 zf^AZ^KX42-$zfs#7oqL>*dO0vzPd_fo+H3Kef~hZkzcxxBiC#$zg&cPEdO5lC4iQy zI?$6}j%VY2^2<>;w*6PgFJIpJ-ypx-276B+2yt%r@=MxR|K;+_`lmz|h{-RPfAe22 zzZ|J;9t-Hp8NFut*Z)fSW!FV2zub;P8+`K1Mw>hb$&_D~Tmkvz$4gtvFJr-fUHQdx zpZAF{Z;uucCIijKDx0%{+3z7rF-%b@W+v`1A!LFFOdQx(}t6NZ|I>R*JbECN|)2^ZD$TVy0ZKQcOFP$7+NvBu^DVrqhuv z1sRry{~!)9%J1t+Gwh4maG*#tya(H6lT<_*$(0J@Y!$7hM8kXr_b56@BpP{)ERGfL zfp%EoM~nVs#>R@;IaF)@od{;?wtyHbx#11QIYa~?ZG9^BGU%_VEp@fM&zYq}v94sP47I3Wutt#Gi9ZnV)xnXvb z^l20!UihAX%oo8j47e2K=?y&LfpCn`jpiiWJ7Ko?K)E7X|IfJ+7YIcFA_o zc6Xw7$%104KBY*nt!bqdrzk1Koe1Q~OX_p2GQHF)wpUi6Ba|cc{R*G!IPpn3=mh?p zC+t6yO~dgxxX{=a02|2^jcNhVu(UafhERb(4GvME- zPwV9={n6(|>?*4kv8(h{5xWRruu#5`Rm~wVN#iJXF=O8u=QS6?F1tj9um^CBSr@e$AC+sj@VA~$DNQ?` zi3^$xK9YX&NSP5vA_W>I=4UMf=SVOs9_75ibe$KjjO8tS`X$BA3x{@AK94lfI-N1qliK#8XBtG#VkBWmGo;AeL^HrEQZj+e z+^^$F6Cwy)ktswXB%_g6RL3KDk&F24Y=WzpYBGBmN=kFebMzEEXgJETgsR}-c(||R zVR^V#;hKVLHLlQ9;mC6wu7@iEfg@%tNP!l_Xb`xrHC}NQI@ZD#N)FGHtO~cvh(r~w zTu8RalGz2-uL!@0c{^dW>X(Sfv=!}FmCumRMf@m-My~>D5in3upHN+b;Tc_vE5=6D zB^Vfb42b#!Eon`CGUq%MKYCU}{J0t6YpJvCIECAVtE3OlA<5ctwkdyqTJ} zo|mU=$WD<4BPC&^K`9t1nJ+gHXoSje7rhL!U180cxJ}5PV=lo;&*v$*CmzM#ZyiW7 zsf^A+8}Ho|#JNt1^XePs9`U z;K9?U;tusBL_ZS=Yv}zCj!$?F_E8BYlVODz+iK0gH&MZK6dYJdLs};#tD^VwIn(D8r6YIrT}G_L zgc)8r_2^2hkf#ICFpbA%vy4B~+10rk@E02G+FTpg7E*L>WD$oPdTo#UL8(o?l^Yf{ zCY0JqcnXEpaUf21MDMrqLvb8#qnraI^S^SqaT|X-@kDRuW|$+0Zwl+Wxf5EjWH_0V zos!%E`&ZM!SbSr6@Tr1Z-0^(!0&JBcFlMlXda{rc`0#!izmbH36FBM2u^wIqtu^JkMWZZcyYlP$q2d2BKveY{T|cbLI^)Q}#O za{x;ngUL>p>(IGqZj5@@b zp95?%6Sz>36DmPtqe1*KRoCLmsk$0hPSu>EF?XGo0$*s%b2g%rZqkLqYZ*otc;#2J zMzA3hw{F6MDuvBg#K%OCBrW>fbd5lRWv79>kYgpXf5ARnSC5vgYh3h90M6%4dfnOB zQT6+qUc!U}0VYBpD}91p%M*po2xJHMiaH!2*}~aymWn3VJ&IXx1(JnVhgWGZY$@`* z6lpSJPz174m37Zgd1M@gYSDBaBb)~)CT)XB@}$SHBaOp| zF*{HwmkGjrHi3J}HqnjLG(;-hWZrs2+AzR2X|+Bch)2luh2}{m_hh*@ZdtU zFt#5h{;nfIL)PCFXFW6Dr^I&9>uFjx1-Gesn~d9J-nzaFv>y19&s^AO6qT;#uJNkO zc^L?sgPkV$e6Pj+y@-%Q2k-BSkl2=Q7A%~1XTNw8!c8iC#@Sn@E(S}VF=wkxEfxH!f`dsNBgK@=WA zXsty1Mx!gRymTFJy~eFPj}nAXBP0mQV7j+lo!VsRiw$rQ)nWpD1EHzyPz3cZ? z;f=+w+}-hd+CX*!7KEBmg{Qa>H?b6?g9VAZSS_x=5XvXwF2?uNI5K)K`|OuQI5;6E zu>ajMlL^Y`u6hrYWS=EpclyAH@MQjifXwJ!HNgmrXDy49 zHF{e)XtL`7m>fOVTittx03;vsN!Kwq5g$jRFlK>^N6EY*Ga$}=(5D1xYWmhkWVyfM zud>_^W}ss(naM&ftD0RieR8G--wmq;0^lJf2cgQS2Idz^Mip3hfM2qTb5OEvG$KEGFy0&Z zf$cgrvvb3ro6+xky$2{W0id|{7mRfwC1xJ)gM8}Em0jsKVS{<;JImPz{1t`TUUzucWV+wPpqi#eX4xa7;#s z9zO<*)t(UI!s&Dm)bTGC)Wu$0)z}AU+Spxi^-~GCRc|`!w`$E#16(~-(VPagkZLfm zpTl`{o#~8E%K5t?;_A?^=K@z3%}q#{u*xhQ1uXaMpEUof`N*H6`3vIni#Cr8h3D+V zf@CXj$N>M>gM|B(l7wKF;)rcZ6|N`(9_D1D7*r`vHj09WIby@o5OQ#s((E}Hh@#aa z(TFsB#Mi!+h4}uD*Gv0)HvfJmzK==^OnCGze0t4fVl%4Ms`)8?lAq!y@u}=xxT0yW z2p%^}KADM6)|}<1ZdYHY{lEVa_FuohfaPNFX}$kn-SJ!cKRecce8kuPuNSlb01w*P zGyeNBepkJW{0}w%+cV?ZC;4YRi~JhR|3`d&>+OHziQmxvXBC(nzv=jhul=_^kM9rF z?~jiEzT)3w$Uji?)8q47Z{L|~ena~Xh_$a_q}#rt&BUJ={yKrcTB+NQK*U`l5D|$8 zL_|^qnhK%-&JuxUqt4j$VE5lct+&6=2fv~H?MpAlSiSiIC8fsAO&4&*+F@Tahb*jqt}6vhjZ;PECtD_ zwpbdo*9^;G(M;Yq4hpYa@p)o+&5AFQGfQXeJvlrIheo-(to!J?B|Pc?d`UrZT4L$2 z)&Y0tzBcKY>#`isYb| zK*1##iBiG0Ipv}z974T9SWA)ADV8u-;!?h6CT5M0xByb`y z9Sy5>0N2x^y0alL#F(P-id;ueJapvbMLB?rLvSlcgRq2-bo0;YJ{P&fw@k@ zH>zUa;OFd@(Fkb_8^y-4k!7SP@C#k%S?i8rNoqXr8uO%}fYhN&{X)FMrG6={SYkmt z=`QtK#JM7N#Fo=E?blEN!s=9qFDobAyUdW*%Z_H6-lFw3hOumiq-ZK?p)SHIIdrqY zNw3^_9v~zpuFFXvX4I>)3!tT8QLm~3+3!TNMVX3j$bM%kuK1Shb5`M+EMS2-wIbR8 zd>6uXG08NhZ?o%b(UrRn7zu1)i~?pJCki)q7aRY~G#{2w=f;$F1>-FgGjSzU(JU9x zXqgLsG)}gBP#^`j6Zr|U6>C7{9({cpMs1k-I7BPJWI!3x8V%24vTvpCf!_svlq26; z>kD~cqDw@cXE^m*Cm)qq3-F_Ih=W}tr{QHM@VA>q%fTA6mQ4j*mkqyVKZ>#a#1@38(mzQD3m=?Z-GD()e>caLr$iq5>Yeswj5Yi0b8gvKEl3= z7X(A67AhVB!1}dF#b6YKq7)GTPx2A1Z51~Nf7qiwk4_h-gI8xuL@q8Aq+5M(JY z`q7+YMEEEJ-(?{)sgS}4!h~l7oDE===m}QOI)&BZ$|(&bEZS_)FL^DkZ^&rfsa9ER z^nJ=a5gm^(7`JTjW1scSkFi_Kjs4;@OhCgUb8bf|!xs8WJ?xb#l2Vgy2k&JEJl=a& zd&_%+#Wm;@JaDpZ*u|+dc;iYuXB9QI&)*ZjpyA8d6nuYp__N_~m#f;2*j=@uA=zcY z8|EVm@(<1}uy**DKn!GAp>jIceLYr0m~xG;e5K48lnPw=1kkZgYr^JaG*y5RBvLk~ zD3VtJya2RBi;UNZ@zDz~Qj}e`pNu_h+k>JLIr>gu-(rf-kR6=BtYf%`4H!G=)q#ne z6cVJ&=rU8=ld*;*jv#n>B9cuW*tBoU`U@OvD`NShXg;E7V{Z+zjmQKzM>GkyQkllb z!x5uUV0OxN($^gX>_F&h4P|i#8VD>3VGvLYZ%5)5t>^7n+~N*Bu_rj_yi+F|ytepE zTV{>0X}(ozQxrLtvTAeH29ev!FhP`C7~!@8w;^^|g&GS_V4x*Ckr*xPfv4_>aB!6B zgh>(L?pn#)rBRw!u|esc*zHOXWKv43B6!%!n#K4dwfUG6!E0Vx5Vtb=BOYZ4czUJ= zGXG{?Tp;u4E`c9MhSH+tUEHb`aR+h1DojCqrTe;-{)h%>rORTKrl3CAT!0=YF4n%* z=S0PNW#V#V^qrZ}W4mKIrBj|p!=;$>#Py{)c^_%j0=0uK-kBxq>|5Ef8NMiSj#7;0tQ&Ec`70Cq!1pl4%@8!56kwKSJ5Ho{T zj!TGcmFNNg)(>~lxrNOTk;Oc-0w2BxANK9t-!upt<9%amRxI8SR-TE$SfZJV1X;+E zs?4Di$lwY}adad08~}!+znG{4@A6PhQ%#Qs2kKQg5TwQ-2!9d6gJ=g|AE5a97*qi?+3T4uaN zpux_J&oRr4&W6bBo^R6^_pJQ@d+mm6Tj$$+J(V-Pu50VE3)OQIQvrR&9of}2%itFU zG^qq&s{o(%07xdTYjMpGcxiBdppgXkuf;V5>D9P`?7iUrP~f@2{n<4*^iNoY;jh3w zd-Q{xASfco+TVj2tH@Dvn{3@5J6E>uEBE7~mZw1Em08!w%lc#CJf~8RA*zCq(gz(< zr^t5ih=u`ej_uXAdAGZjS>uzz^+^EK>rb`0LwN$dmTUsz+QvZ1m{(h&lQ!^4)c4YNsvp|vt7=E0PSNO z^U846S2oD_#w}lCg|@>apm32C2ox|zcs*t}96&ua7v}Ra(TNt=Ti-nmE+d`B;_i(1 zL`15<=mHyltejfs*~3 zS{9wbZUgxNQG)!+LiwmjTu$J$fkZ|n5GVb}TLd2;m@W92+)MDW0;?F7wkY}D?}(BJ zS=&>oDE+2ME=pehmY^hn7eh(997m5~6I2B}@i?6b@50r$z7ljHS7-;(Jv0(yOBv~MnRRty1WD?P1Vu_8GJ~{m3YDe z2zyFvS`g9l3&)0C8RzEy29Qb46mZ)b8e&Eo>fxQP}xqBcEfq)Y()(xO3;1 z)wm}odDdPZ!L_aV<;e>P4R3zowu>wRee=t>C;t=k%QLfOSh%DuKhm3DUT|bsepf2P zG8JA4q*fnPaFJ z;ex^BUSSm@zy18QugD%Efj!w(4sjNC(Ex?^e2xuqS5tG0vWpW?9$H?09u9h}x_%5p5;;tGBTrF# z3d!y%YCoBC(Mn%^5Fc~H-l6j%BmRt{w6J)y6_PFO8mI^-%1C+qJbD zU|)R%E8<}EzQgLxN|pdJ7#5uI#jPTW0J85h6D932UsROwm@jbYQl9gbT_`>3(5F__-ek&93Hj1NY3Is8T4^7h$Ah%kDBY09SX|u2o6ez%vu7b-qaG~Zkfk2M zMusPG*p9d|Hf%cGkTY28U_F2Ao<}iq8uJA20mL>+n+~EP5HvxYOp&K!qgq{818t3F ztr@qg4c1|HHN`sqt`=E@A=j}r{lk2+EO7<)&L7+P7?$u4L4RSMD~f~i`FIp4=V8>j z>T?1=3ZUDC>ar4#L=Whj_1!-`u%W<=Lp^{g5aYpS9m-XWt4C>v!i+j8L~_%5(yEOY zWL4yL!*etbDC5w;q&P_~avTT9Ek&O6C=Toa;K@CfY(WSQ*xZPWE($wxAlU*vkW4g! zmZ({oS^S#FC}luA$SES5Wa3(DWfZPWD5Fp|p^Q?AYYMIvxVEuoA>;P1@Zw^;{6V1T z#(2p%Oh6{1?xbHhPo|hvH^>wd=)&=m1Ia4TQ0r;@0M4<~1Ibn^nnT=4zX8rVI@28Y zB4!$>G(l*{#`}R+3y7PlE5v5s@8pA1g=Evif07Tjze+xsANwGO#7Z0K_JjG;(HMU0 z#LHc2<0Wh^;Hb#`sS(2wC}?CzLlX|fGQn&<3|gNQpVsH9Lz=09EwknxL!(A@E`Y!{0{AHkpFa3nPDC#hfpFO0C;5~TN|29TpG z#vOpN6n(}c%{+|8wkH3K$vVfKk7r_7y;b(65$)h3RS8o|q!cELbM%T!_OG?P)_j&xI&!F zh%4u^4c>;p2GggnZU`u%7`y|Fh4lRkY#D&(u4cNzZUqn-kViEbPLfO z`>}+|LD;w;3$)7w0nTEY2-=wu3q!OCum$5@G8MO2%uHu1!wY6gV^wy*t-0wX(1dzy zmD|oM)&E8_4K>dYj_fWZRIdbXFVv{oeG)D-A>cGB23J*Aaj_`o8P9D?AK)z)<1Cy2M$clqJ zAZag`;jCFLqAgfwjDnl!=FmyB;^I>khpatehfA{Cm>N%UF?$SIzfuHnH7rYKqA99m zDfE_4u^qzGdXfLw^HEN@m{Rb+?tGM;f?k0gH&}X~O#*NNU-H@OGFH$Jf`L#f`H0Bn z@Ca-@Rb(a7-BU&IDo+)`FRHMMW$9Z8i#zCEc&f;;pR4Yr81LCbMMU?)HMiBhaMlCA zt-{6Ay$tCuqAK{rcJo%9pe|>#3Qz{Xif)R}X@y-0@0nxtvrnW^dWXIzsx1=llliTM93t|g7IqCZp z3St-NI{N93g4nSmJY-=uwkHwWx0F5_9nqO|3wAd^a)4kAvG+v-q6e`Rs(@M74^Rg# z@AtbF_H=Rjmt}J;_E`PPV|@1N1@>HqiikaN`j?kS{crUzFTU`<)W6KUs%`yCF6^P( z(!XrogX03=LH}ZBgesuCvK;7N%KqoSLI3jRWzxz*(DS1Q5_P~}o%Das5xf~XQyAjh z_AcH~{~}0p=-$ncragMANK^fMOQhMY{-x7Q@B(1ayNAYe!{MsmZ^OR-$|zCrSMF!c zh9G43v(i%B{U-5`SlI~5{1Mh*^#4FsY=1%hQ*MPxxcN}?zdblEU+wp|#{6SG!`c8% zTOax*{xO3?(j=OXFJiq%xwd(pe@yH9d2fhN_-p&06YD=dw!8hpE5G;+@I4?_f5Sm; z{Q}>|Hv@i)0DkmyDYBZwcO?PFVUfH7v)6ApC5a+7Z!4}40`m;6SnTAjmuV!7O&qayfEXE} z7|EEzG`-BLg-{Xn}>PJAkQ4Vf^(E@B@MN>8;4rt09;zL z%6A}n$#*MoWjoj&wu|lCDl-&!)Me4;3RBq)NKXOdUW+TlC}5(>PzKiwJoCLa47idx z%}rR<+#lOLe@VLb13F4L;{gjTPZ>9*yT~9^#>pr=f1XvwanFZM%ET4mk|xyRiZ$gg zvr?+2)DV3Uzc2)4-IVmrNmK1{>cw@ELmfM85|O2Ahm&4&4T!Eh1v!w}?DD__lKsX) zf5hA01h2@hAXI}%dDX$EM%PCQUc|0eq~MisK_rB5!qMI+g>_3A+KeG#eCufy2HHKp zUgk(VipF3Y3X1`c>XCjO}*0gU- zvhasP1nfOt%^%O`LhBjiubIWi%U5w}HM_5veC(SO8Pqr4=HnsB&+m&p-tDs=qtVC1 zEZ!ii1LGjKaUpO}L~bao_ibkN0ayJ?P-b#Y@bWr|N&}5Y*G{j{z^-fP`zZ-BFxW1~ ziMGQMzX{G23`_}jKP|O%R0d>qMuiwQIDFa(q41105RMBezwpilwpxye3?mq0O}fRJ zdMt-u@WxsJidIdeF0pa5J}aWg0L|EVzp71g($9EVj04k9i5drff3GXM{}w@!@}X;3 zeK_j$t@KNK`0YD}4FP6gj{D{SKZ}p~A6WVtOGE}A^Pdvt(bt%6LSGQ8#VFLAKbG`W zsxk0MSEMh}6-m6>(pMF(WC4}9rr-*Y3`@opcud1BReNHK9v@DKc7i$)3aDiC1gpYC zLKT0B)t5+6~7q>cldAe_|HOFq1nzgFVD@f9U*(fVCE3maJt zC=rUt>DOiiJ|8NYQ<#u{0D8c96BN1U6h1c+-Bin+Td-BY-dPL6uT4T{VG3o^sS=)M zM5X{_%&P=br~*@{jTEfFfw_@_)!~A-z!d7E_jA0g(Ufc7Wc82|mmc`XzGF5>;l;6* zwi^1(3DiIdiM%AqOCPrWd}&e0krlqVdCM4#29{BgNoD2`G}mV;xax9zSfphDpNB4h zE75ZtS4>QKWpMw7b>JS@m>|$)@30VEk8MT31d%PvDS81MXLb9=ZnEEnNAR21^T*^w z=78N4G~+fC@Kxlv%%&hAp4prz*$DkP__Ntd$!n@m*s_{Kkk?oNSP3A+z$~IixU5*; zA><6I)lvCj8Ud<77b8dA?Qh?}`a*cx9~wsz=3vNdZR=>`xN))`iFX?LGQV_e#x z&|%rK2K-64p|Bq4Z5{B!B|@+oRvjU*v=4HW9b#RTO5?zRxT{UwRd_~fC_F0#K5;My zqEFmuv@T*dqxYe#GRkB;n)ADoQ8t1Q5LzaVM8EhWkO55dxn5jiu2S2$zPM|#g}a(1 zb&trbO_%$r=z_WXSgm0;YA~;WBm2c`cYUGqDdo!_Pg41RpE&unb@}__?F7-Ul)rZk zMSIkqu4->rK5nD_-y+}N9jkw&TYnbpqwoo zX8AHt@-lDG%sYIUhuF;gsd#ItFQc=Y0pqvyw|yB~*Xg(Nj|JPs*SDLG<~Jh#I2;!H zx+(MjY*Tu;DaT)}DFtVPwHZuanYgaUm6P0BTq#6Sxa1_qNiYT1T3k8FRe=?PG7$AA%qM1%zFvaJ0@0LA9_W0MMmfkVi*_ z*&EfmIzyL#z?rA#A36~;bl>>G?%1fn>2O24A3Y_(Y`c0KXq2YQsBH@{D>wX2h&YVazbjbb?wO!47tlM~q^CvtkCED41N%~@*-vGeSG zF~tY9zwMzgJ;{FW3V!c-a9tn1`}#96_Q}q%{F+=?3$Od%^R+%6UYi2i{<*gPNAZ?v>e71s&d{=pXC#sH#5uZXPrk}U+I^!4?eHRGMn?rMt@DJg7ER1#_aBS$JjyHtb)i8pV>xgZf>s*i7wWgd~4LGY77gi3|MBO-#;j2#r2bCwV`3vw3@F;51b0X&?an8go zx7&nK4cHe$=*VVrk>o%x!c%a)@Ud|LWmAEQwMx#p15WSoRnO5Im}D06CI`|EAVr6Qtt+tpj6_QIm++SU-SEpmx!2cW2m1F@;UOoFLx1(zzE+)z?%-F*cE{6cS2YHT;l(-~tdP600v8@&ZA5=%N6(10Q+aa*t9(58R zo=Bcm!(W6*Cj6FyC0Il(z|0~jX?h=q4irh4{Dk~7U@$^N&c!h}(tsw@y9XCR@(A>1 zD$$z)U~hp$uQ3VFWg^8hYgu*yCFvdJjlS?PdrH8YUHoZ&SBM#>gBag@d2&KyE@ruQ z(x)Xv|58OOr=~w1mNSTg`4SKgIXFAeMx-lR@}-8}Z9J&3<~tNi$bTHQU548DvGrgS zByCuGgyH_j{i59+1*E%If#<$})DEX`4pE)N9;a>{pv_lhrYrV>Xyd#18Yl_C=`vr7=T9d z`(!)9`f|ME@w26PE&8m$X=n*gwsU$m?3j}9oSdz8Q%4FU@6gAiF1rHtAUn{%BWDxY zvp-R9xtaU&MA`6oc${o_{Ey*sN?D^A&&!_2(cgCi{j;Z}f2qv|oKD}i`8>P(vHSrn zyzI$dUYOdk9M6bd!Kw9)>vAcMddOSLBHp3I4f-T_pf=~oOVe7a<)U!|t>d*lblXXP zJeMGlvx%1zWM+Q{%~9hUi#9LTE6N_ZXWVS$LbODIsl+*lLr&8u$bkblLJr(~nJg=n zF;N*4o2Y^%qp)I$UW%W_3n1IZQ{|z5fQYDJJDSWL%Mr2QtC)NH12Ivj<{&NkI)1-OiP(#(QJi68Wq^N#H5T3XsbVAr5InY7Zu@u9F(fbkvA=R6TY! zHSzyI{O=1$xX*t1bQIc)or?6e<7Xs5r`EX-bwDa5PFUraHoW!e&XCi!Xf;H1xO~=~ znj}o3?$l(ip6gCc;kcr}1zI3ARM%+_q)>&Qsqu%xe1F=~7Vop3*!z9jdf#nt14snz z9hdTp+MCq!d-3gkY?U;qWqV`(SvPF<u!IBLi3h;nzCdEW7*hxXYddGae2P^m*oQ?8T5U;l>TnPuqE3;B5T=5CQ z)wihK$`Cn`ycDp;lu-D!Q0I5Dg14^@mAsgL7G$0Lyd0+>1xPd%FDc7>stZ{rpWEf1 z4gKqM+`+0cHt+uFpze5fT9Fr1bWhfYptE z!DQ{&hkJP)6X`A1h=0BGHUN-Uz{N{%cOIwG+i~D7R(i|lX_XlwzWl2tw;F)R3JAfH zi}8So`utUs6QbwKy@d9_87;A){r*^;3CqDiRHVD`|09uZLkG^qg8m}X@y?ujAh2UM zBHgKpyOlu7yEd0VJ{zMF$WOiFM7o2aw<@_CUj&RlS)n{&3>u_@SmW_AA&=BiswCjl zT!{x2^7iC}qe31_n0pZN)~_Yny%5J&z)SiJrvZglj%`sS_8>zJOUNUTxfSB%1B-5K zF2oJ7?Y_5t9Pe_$*On01vD0orIJ!%75dQTX1>rOM`GvSSt`O&l5GQTyewnoSPt2iGy|} zW%NBbLg9|+3{2%%7BqGme#qiWkTJY;G1nRpRd(VD>?B_1yRMywXTjpz@osdXN+q|1 zMCLpD3s>g5>-%w(`FsN3OzcxyfzQ!f3VeH>BLd$CBShfqzfJ@`_FBDJIELoLtrYl} z7!&w}g*oX*oD6dpDfHsqBJic66u8PnUczeH>>aNlz(Ry0%@cUR;Yy!M^}S4eBGky6 z^obC|lU6OJ-B{a61E9HMo|C=;?SR0?Cl&Y(FA{+-1qt9dWIt=4Q_?sgAr8gdSxZy~ zz*D|q<`X^UDrhr5fWY^|g(C3rqrjDB0^bXea-#3y2eMSWxHsr*pSbt8Di!xm>V?Wz z5U?lX&|@={Cm&Oc+r%g`BF^2`G%lfWW{cWB8->~!h}RXpviC&-rmC3OH_U$H1LVYs zeaAyegV@&qv@kE@N4~Vf^v9Pdyj>*MnAq2y&k7n9`vfcn5MA7Fzu1%1y-sQ{*P_Pj zcQiHe|04YV0>E&eZMDah2P;O4JeUKO(Qf5ew|oL94)WuEKUY2!ITd2Z z8A+j{@Al5`kKe9v8eTR$lrl2wtgO7y?-N7Iam_wE`>au+-;WH0I=_SfjuTd4vz8mS zp$?OSUv?diGnQ}-i#pGZ{uUaWK5Jh7^f!F)SR^`pz>GS42qXgB6+{C9|1Z<$z1+^z4*Z|#^X46?5@A0up#NKa z-j4%R_*)1z^8cScZ{v64Tt!SwpEqJ}aG%`>e5&wJv|R`q#zKdq#lgs%O1ecqRPvYX7;s?Vb%97I8x&plC4rj%P} zHWvlc?6+^<8OK&!V74U+ez$A403Ff3IY7&E6`)mU+%M4Q?e`P5ZQT`aTl%~~hbtn# zxx*szuh8e+gLho*Q?Xy4x0K*?dX|3T%689f71=IcpSRyuPrN%yZzO+RFs{t zJq~SLh{oyjmT<_eKJS7zAl@A?4%MlI3GG2M@osneyiu^k_4Ijb9#8@A4_#5c=<_c4 z3gXsy{Irnedh0CE@vyB)v@^EG~~U^kMd zjzB#7vs`0>T?U_9==1LGMoCKbd0Y1)t*$ey!Bn8eU#QQE#SdN&tdiZpW3cPtYO4yU z8}VtYa-PufTCy!}ymZrmHN>1uB7p-=x3a`eDg~UtK74LfmN-hPb7hH-AOu1?k4<)* z_g7GX)lfNVW>-gw+T$H_V|Pjse1hVN=j%azG8RvW6-rk<(__FlO<4>3x=o2sS^KHF|+m~mA#UG*K=l=P<{1br9# z0zFm+6jv~q5PcW*UetF{@0Efp^QSU{47xZ4PzN-?C6^&FWu^w0=at93Ca9}NR zYlihx8RBCce=g25;c@-z0>~by@Q0Y^slmp!xo$(2@GQ7d!3)vnS;yD=NCR4hdLp;Yf#C9)k z-4F3Y++>bCMTa=MGZ;f}?bn(1V@tptyeT&NBM$^}hOQKT*K_H|F3W%U^BBvQ4ODg+ zgz&>)>8cJ(;2)oJ4sh)#pB^E+KkZoI{r5Kr?`OYZILjBTQ}09=DisRG0K8kI+8P0! zlYag&F8gns54M2=a|u9=_m`=+rTAWk-f{%ep2YP@SG$-;(S99b0zMTKu$N-REON!sGdGRw&QE6vhtG8v#8ttr2{4Dt?;1xXJu3 z_TnaUr+slCUTn-Y$MLOW^ey6G*_W(foq0*F&N+pCYU3m~CZNtWjK zvOfU3A(SO&3Loa}TPtHSi zzn*{Jd!mnj_gJX>`$0@7%D04yh z4N+FG&g_YfS&_VkNiFzyAM`55zu`C~uf2t`=1^4k%lWtJM@KGhq0fxpZ_d&JZR|In zJ*x1eg#6QU!Z_dT{6u&}q)}*HwB?+HyvPZCbF9a@XLhs=Y%-oyP97>9aE15iS?G}a zunKmc@ul}c=|>-Uw4Q0{2B`K==ouI!(8(*ey+k#T)aGlw127- zFzL9Wo$U&6cH^)R@v8sUP*Y;Tq0qyH%vr~xW+0sA1SO}l&HHl~;>-P+vzSZ$Jjrq(vGS#6aqYGaBy)UD0UkJTpm9ke#?Ui;f7 zCmO}UjVb0IgKSUT{8(+0zZCg^8#kK#wT;Ddd{3ET=DD@G`LWt0e~Q*NRclMdm}11L zY+d`wi0vJ^VU?s1LH{rzItZ`07VM1|kbl5`WliHr{5gt02lA&2et_+Yr3AH@ECyY&&-V;Iwz+!p!&%i7!0bgh9$b?~HAS`GExR1H(qj-uIdQ{9lK)P|N z;B}JpVb4%eU1&n|+TSbf7NVj!`X#FtO79km%u-4>U5>-oA~RCJfKxfS9FylvPHgM} z=lEj2j(G2@ah}WT`Mv4-3%9%N`CD=@AF225>%{&KK|)}nEzeTfVID<3n0T6H;@c|kn|%%Vt%Va9;9EFJmPZAGsqznBdE$d zAF~OF1r$9avEYbMaHmLCA+2qp4;zQiug5totAD5fzl5$bPqrZ>VNIt2~TVf+gX3HlKUx za}otcN|95LC}{W7Q9%#wT!D^nox-<1MkZ>Jwt?9%@##(k7QrY~A-p93Q zb&3Zvr7zDu0`oz9f3Ly|w!g>S+PuHtu5GQq>om1le_zzpX8nCaQ=9d7k)}55?>tRy z*54~NwNpG4&ePPy_|$Ao?Hr$aw5IMEpSqu>!j|0+-42@CB|de_y8?%<@u}}>YPa~* z6-+H!6O139hmgwgS%v!B7$5qoQrh7p;si<$5yi?(vMK~=KL|6SdFQZTLO6RHS9g)q z!2WSc1K4UPGB6bB5eY&)vK4EYCM0Uin#iJ^cn&66*Q5nvm>01+YVMxc!wP9gtWH+4 z$Ks^&n-Zi(9kRlRQ&Y6Fef~ta-VA}GXKAoI!%om)6|aV~D^R!+&p=0d>e8zhTO{J; z3ujhm4*Z=EPMT-c&)H^99su?tjy3EnBGfQcaTB#WViqQ<`0z*OwDXbTo;D~hu~Vg0 ztk`@XE9t|!0OESx8u2oT@S{O*V+`07aVvITvrCGKjPuH9IV_3caAtvI;dzFGwhFxS*k0uP8Rl}(Fq!Ft>({0cB&-?h)5uzf|l z{NpfUWf-w?w2q^Mcd?Tu4#nItlhLZRqg9U~Dl-Qk;*Hkrhqp3XXa30@E!jiCXf2u` zqb0~Hj?8w;!Z$eZM8@G3nK@!G+q~(s0 zdwQt`gOUSGWs?VVP>M2196332)g>?>qDx>ELQ2y>N~d68DtT56z9o=Dh+lNL8n1FZ zN^xJ0YZGZ{Y&HmMC`=D=P18hCIBRc$t#Q{8c5e?_DuUHz@t9Vx|@kIXmc$w*C< zCZZmXf>5D)pd+=}j7GCux+2ic z+3-InT|EinGacXHU=>ox=lsOcGPt+=??9oa3eZ!f4AOhRO45@fev2HTMJcGVP#zQV zacrsGuCrdGHk9~i;|5F(k4AUxS#UVSBVt2|Bc^0zfp%;(BmlrZJb~S*28^rB-v5ue zFOSo)3jZE4rO-@eN?DRhB3Uw)7}-WM%#kr5I^Zm?2M(r?ilgnp7w)QfX2c z*(OqGQ<5cdPm|Jyi0A!&uXE15Jj=}OeLug?@Abzq&$-Wi?(1Cpxz2UYIp3CrsnEVk za}i3dxzd@Y8&bRR18c3PZzOt!R`{;a4j&a-l6DgmE%oxEV0VAe)fU zl6#4@Y#_=o|4D$tFn@tnDOch1R)~l7-WO5$bnHp%TG94o3brgot0-GNVO;;e8k7fX z+hqCUVnY^}L3wMU#+Y0%o&gngq#r5sf2)@=6qRP72Vs?124z0bZ>V$=fHI6v*|z#~ z;QH#eIav6`a)o!ah0v(;DOh`cgeZuXM~{Y(bqX6 z{s`x_tuW?cawR6n5c`e;a4g@7`kuqg2I8kod)}pRg{mbLVj(6_nWxLwVomJZ!RzhC z?tZ2@tc!m;xIPFbgZX$tWK7VL3L;}d6c#cjM1dh=Le8{6SK=0Qu7Urd^E%@lW=t@1 zBE29ZlwF|Ku&t)o0af~lnR>vT>nyJS){?`u{gwE6Tzq}LDGFa#kB*J6$1nEat0{iE z@wH=#AAJ3}=YI=d3CseBjjzwvMBvMu|GfZ&S8SFU_zIks6}&tnm^g3QJsdeM77r!P z<=;Hkbv#ZlID}(eXMnvqdHw{iW`@SMwhnJRJs}?#Ys_N>f?1qqo{HF6YwI|kWCt$0 z2&YhC!C{1ZH#I-ZxrvIU@FuKHr~z9h{t+UY=`bc9pD%yH8%h1?V}KD#soGZ75SPD= z2O*JZZ0{)22_OTOa{-ZZiB-~K=}n)`nwp2JigfF5!2jfZC=cQN z>G8_idp?_d^?C&h==?)0W{JSn}!x%im^{kF+>p&)DVxD!OxN`hiEndXp!l& z*@UU931tXp2uY#r~Bdi2*Q{B-ND^A}T^%G3AFcm8kbuMXG5)n8RtM(D3de6_Uxtn;fFLCnJ4 zM$jdfu%BX+Xq!mRP57VWEyn*OcM<-lO``l7xm<+b3qWQZtRXaho-6fA;!9_`)^E$! zr$1JA5Fu~K^hAo*hjHaC z6Zb$Zl}5{k#Fn>9(84QkY#v+Q?#uiilDFin|9g2;`C(jNvYo7~V0{LbD_hUw1`v8! zIL3_n;%ofO3f$s0UVP6Ethx1(D85e$geJ_V+=NsrygXzpjFn7jL%BuPunZtXTqW)Q zLzx(dlxe2w5HHCz)e#ORo9YM$IMvM0z^r;wW+uui@zhu(n~VQnl$&tpjmT=-_>w6@kxfj;BA7V)oqI6-{sP#hN}8O-_*N(}gj$y{oNBdRM`6IS znagV^h05w&868vda0q`26>&5?GlqrUuX>cnhUobhpSuL!tRW;w=TF7dfFNsQ-0Mr2wx6%{TLJzRlyX=umcnb4rJD z2Hs$}{#N{!Q~9QLuCTVERCPxcj^JURDyFe6o#ZDA{jyxt9waRBi#am#ofvKlek7EV zeT5A7zPU17x^Ecn){ccT+@`pA&(1f~9)}PSrwa4%dujC1zz7Yfe89xUav6XUN|lO$;GRnIRa~lc`CyHU=dJHc^jKB ztfwl2p+niT1U7bE_39hgb;%B3ACwXBZQLfww&juqc;;Cz;`)p}?`#3&5XVB1jg2Dw z5*rLQWd(;~5qe8TKu&JOalWn5VoZzdHv4d?Ty|2Y-?Q3|Oip^_MI@be3sv7Qv-`=C6-lf3&l>q}HE4y^_{kkrJVLU2by^E? zx}{ToEr+K*rShQ>#bIZ}QJYOkdE92+EmY|!k%<3yLiCII+}?k^6~8ir>A<$+ zcjG+V1{tAB|45giN*z#LB<EN9H< zC$Dti+r#8frL;qpicvF)HKD}uACO7ac|pNt1S12d4O`b>{=kJkeIihs^g^sjVi1TB zfeR>tm5QY55DgJ8p#*%m~ccB+tx!pA*=rI5Bgk^3S|w1R4{e0EUO1`RUCL zmYy*^GrX252w81jEy7b=f2EE&>(=I`x|MTrk+k5YTd-YSz*mGbEv|H zKz4<{lP2{ARkPX-NlwbUlu5_1UFfS@Ub_SMTTV&t7N~k4DWCU(lnevW9fL6)Q1Fz1 zT81Ap!>h4IlAP7%eWEcbe-iNBz0FOjm2-dY9(*tr9V##yDlj%>wSARHPRctEOGimZE zijj&l!bKT*>4ks{V$xQk*-4YfBIT>(IWjkoe;FcNF6<332{3r}o%dq$>~r0tdA29t z2hU~&p}??4deF*0i@H^Yo;3MA3=jAa2Ph061R8asgo|S}Yt(kQ1^%_-5Ads8%sXbN z;m|fWHTCdoQ^P0~FjEkI75;pt5&?4%bWPwgU`CzOsN(u<0FN4S(&Q8ntYk7ZqP|5J z4@g5~et^X|#XHst>?LYh$C#<9)scWQm(ZI*sL$2r6;bhe38yoZhF*eG>vjQi=<@+$ z+;B>ki&OT0Le`DTDea5B41CC%h9fK>7Q!h7U!zxj5Hu2vQZjmOvi>| zsPv4?Hiy8B$xsP2YZ!HF{5Sg2j5ceN9^u6jnJf2I1QIH8eF$Q6C3NIN05CIeUFEDc z$8&$>&5)P=n>2~02G*iMMw^uxNu5^0ZynPnBUJqezEPKZ@tTEko^E&@56#PHb9hYc z3GEZc{GO55?nnZb-IQv=5gXR0Y1jhU9Ow}QuS2I8%f!{Ryl(f^egU7ihO{T2(Is$^ z1ryN#X_8)m|3MIX5u^rJ7f1@OE_5OtglVyeR5Dg1x!O7J+$J}~{stwLY-PR&<9zAw zSrr8@Nt0$0w~i)ddPCpVxIyzlA}>_!G`tMD;2>Hn32z$jHndC}V#tM+(N=&3bXq6~ zpcV?ksD*-HYM~&cS|~U-(L$kO^5(E(k8IdnoHV&5HCI>Wx`wJvS%gFdBr*fG(eDBX z2PmbEzq5W#1@g~{@!(550LuO+fd)>2f9v+m0Ch`1K5al`uStRRwn<(jjXOw!3l%*A6_flCcbck&5iU!jBf< z6>I+cSZJ7wBI4zJ)M~Kv`ycX^vJz%fifm-JEkHL98T%EQ=HGCzuuLO=o2!-#Yq!36G8e)-=I2Xi(W|qtGQN6FrHFvl(hl7zke8Cw`y0RTg=|! z7GDoYVJxQ#SaYWHzdSXY#Sv408)OyV({V76PfGuD4g3qaIaB;$VhsLp1La@HuV6c* z&GLwMYi^;q7vQ6jo3bnXoHQvDaAmbsJdt;{KrCm58Gnob!yVq4ls^%yT5>U*GWYkf zV{a4e&+~Ag#7Ey>dV%v;{GT=O*Wn+(IuKwb<&Q=~_{W!sf86d84OLYI)fNCk$|mKN zVz^-Qsn9T(KFXCvj~IAjn33_e?AOV(cq{++4$uXEd z=oTF~U&5?`??nn`EhfE1bSG!h=;(V+>6CmYUaxGxW=1ysD~{dqufkM6S{>y5f|+h` zY(_?#12{~LDr9u4EP5mp*$Z<};gO(sg6?p@bhr~0z#rQ|w2ZtW1WeZE{+b2rtEpk#pB?1By}e3d`(N#m>F3aSnX@%uc`HX zXyM>^OlUAm{lseXIzAMtb|q_hKEx;1C9DamycyU^^2M#q1R8u^WdsQX=4LJcp{Y$c zG_}R^Q`8pEPf;7%TyDhEn9=^AAxzTbTR_*6(WEhrG_)6wFbRBTT?B5!k-*-{BvfLo z|1&^oM{40Z0JKuv&6Itw5^<6kh&v>$fp6gRp|p}9T(not0(_XcrETM{nfQgjKj7at zF2s}O8KJ~Md|SD_P_p1gDgmImGXArwqc3s)E<`J99te~hGOD=#W7+>-BJY_;RNtxy<$kDAoFeXaO==c_);l)}%cq2cen@OGrX zhy9Vk^Rt5YR>s~8dN-VmC1r-Lg+1AIAS3i(m1OL1%sUz$b0zjgbg!Iy1@t0zeTLPZ zh|HwU-(pY1Nv=H+XHuQnJ044}xq}cfVRHq%$UAx}`L!C>h)A<@1{jfOT~$CFe?;tR+&v!#W75wYn}4 zX3Ym)H2i8mZ{SND)`JZNR%@twb0?6sjp)N*F3Jql!ToN42rBnDUCV4xA~SF^cJkQ! za91dk@uO9Lu50}p^yvWNfIzucpbz#pC+;0{9JVukXNI5qX`jXP4BzO01hHcT-E|#` z%0E;0OZdj7uWc}~eUw_oR)ujQ1q9A5VCv+pp^ zn-#eZbJX&dvr14ah1u^SS8N@%Mgl>^=EcGq>#R$uWJ0Mkp+qT6b^hZFkGD9K$VE+@ z=XOiRlwo{9h1^R(^#!~Ua1ofK2sZ*2<3_-(!QAhF)?n@rf!tEqpPi-I7WMRsWPE-( z=VjKpRNMIG9Wa_7{>>F9NvUXzXG1fR?kuuzu3OZvzsli3!&-nS{SQN8o3Y@Rl{;Rc^#|@ZU5enArC=_Kdda2zVtvbPspz!(+iwQ5EWgFrmb1 zZ(qz5$hr_r#EO0r4@|w9y@gT+NT-;`+6t=I5nefwv}5G$Z9HLO5e5GQs>c_pRGx+-9VQ%TqXC@ z(z7roe8W0`-gqSyD&NC!0f)7nFkp2#SnUDV>+?!in0SE6*HQ6@ykFsKCH9b}YMjBe zE%inxbU3&UCs{Woa|W={t50z_<)b%%35>30M%o0Z-g|3g2KHuzGO+V**MZDSKhFyM zU0Rv5)3FGHL;qlcnKl(Yb(EfDI)_>C)U_Z1XGV!^+Bh??CL=U1*&3}-nUp^tk2BVx zz`P)^8e^2T74{aeFldHX`^%uo0nj<&l*<6tSuKPZk1DoCalGaDANw zz|EiFg%XgT(b_tQTMcz|1`MH9D6j57h$Hs^(9w+O2&0c`t%extY|6bL0~@GZ4zJMY zY^TAP9oCN+hE-alUxIb^x&2)HoKrHhZyncfd%q|YA@RTIR>OsxGJ6kkRV$+0u&VW)bH*b zfc*$rAzYgo$}U_Ac2AHq-5|kdzO153TPYjCv^NtBu}Y*OcM+teD4Y^{ErMDZfuD@D zWL%1X-VddxPz1(f+e07+^YheO&{M~QYaw>8D4UQp^&b3zklrF7CPH935!oczwQOq( z3^h^Ss$}Ug0LK6-VXf6rVHdt2BIDtdqYFr|q^T(aZ`z*lJzCnEO9k#_5^?_w&EyL~ z3|@=;SyH3|(lH}iS%JC^%*7CS$hii4 zwD1#MSOL3>fIV)obqPEPD28y#_w$9%ia5!#Qhu)m;z9a9LoHSQk(cn9U}~ZaZ*7HK zTmZ8pobnjo;ccDj3_#dt+?r<3TL1nP9D5Rf&(Q0?S43auSUX-oAC#CU zQ6sc^VnXeNj+Csatbxj2f+m@_9JiXks8n}DMH#TSV?Rlsad_^c4=>Du@jQ}a(=+@l9F0hOxN%Q}S{$Kymc9TVAxjo+F(r5`?*dk1q}F)*4Os~o4~$NeBA*V zJ5LmN)2bga+*VI2jJ~d=29T8RS6^@V*XZjX4YSR~A5r@HTOd$C=lrk?eZ5Nf$p-uB zxx#0?tb2JI1^KKYYQSe;4e0AWbv3WmVl8;B8=8^V)~e>z(72{~-*l0GfMEDb>*qQB z9sOKChJH>wll;Y^KZ_|Wt^$M-kHGxy{CNCDf2@P#`!v^CX`Cj-^1jm%`5BEb) zN+0hsD5r^xmhW4L1fTNVT_MNFcP)Sge>leqKd14&xIpk;Y^{7y<9q>Yfb(zAggEat zyKMQMh35wUz_pg|^KL9dzSGYD!bh>-Z6s0h-4dY0mT%&}=mtexh5y$N8T@ppawm|NM)B|GTY+pVjzpjvCRgn=h*kf4C8U z0{J)Kc^rSZfsoGjhhHK(#2=pD&p~<2`N$Nf0sP@>0Gd@Z8ARxc!ohb=Nmqd4{KjrQ zYtt-ky7OMZWwj^cxd`oe`~vB%g?J3JUFRTa0e31HWa@}#7zt;r;hol5_yqhZrN7rU z^7L=#Yv%o`_4oGc9TJC9_uUd#f6sl!qrd0;W0=9KziSf~H#d~4zk8!6-}-wChwoE= zFBQVuiZD3GqracG2jJD;H=&t)!LR;y;4fQ$pJPBTM}JrJg8kL=T7Q2qQ}gj~)Y$s_ z;+9&M+{9Y2^P^}+U2-z$10igv-~Utt*Va89MRyisSv-u9 zX#G7ewH*E$ulrZ?x#tJP<*!aNJoCBt|1|vNozE?seWLs|0zLVj&)q{LlfQh-=WY}X z+x*oCkl{@;pZo6*GXU>=?!V_wkiXtVM}FpW9{_;@dO7pCmxYgPu*U!%*r~zR^-pWX za~dHu{=xgrwF3I@S*3s)q8SuWYO90falVmF8xOPm7qVS?AQJF4BKPBMi6wj#wy=`Xev`| z&gaUBr(H;7`LthEKtCYM*smXE30>~CRy>J5=(pX28fCwV7|$8OpAh(G@jQ!!WGbRY(sM4!&W(0E+XQ_A43S$kcPyGq7LZ ztf-@aUxr__U!_k7`}`(zHEq8p;+bQ=p28<=`!y5qyZVoyZ(V^B@5=n|lLJQLJpN&j zy`LC;$Dt=*{$Xd*hV=C_{{t~x^!;z9&=>Q+>6*SzqDJUj;j=n={>K`ScnO-w{13<@ zspHQ7@Z89o;~yTm)**J({IAbxpy~t`uVE}v{^8gS@$hfvf6}=kK`8ZD|G4^n@Z%o+ zp7OgPmRG-TpAkW=a{Y%5zZw1LBVP9;k?m8z-%nO`&Hn(IOTSM$*-T))`n{GKfdBbl zXLRI8zkdq^3h3qN_f^7Awtj#5X|3PyeN6LNL)0k!o?XmLCSJW(XKNiLwJCfEmg|hx zl-CvNEppujQ0(4#LuG(u_)Ys0p=?LL$MPrAD}&WWv6#(bEsG|ASp12Mz#kf*oRVqZ zg7YHy(H(!Fey^)PrsRKdsbMKkye{}u1V_cu@2+^=F!barUPmkmO?<@b8YyHM{r=yR zik&20w{4nMnvbDYbinp?T5;y1hJ;v*Ca}BPWsshDT_?04eWK%a!$J;yRJ`uD?zS#K zylx4=mk`mnu4)snTjkV6$Lrdk0=nJK;%O94yskdLj;*h?z8ERJ8hx?%`ndX{dC;RT z_LmsqdiBMdPef3+Tz&B}dh+cL4kp%p>Wgl`wo6~s1Y|CKahW{;ufF(ox(vX-zWB*9 z@RuFmpAQ83(HBo~h>n`O74V2Zc=e;2CyzWXJXs|1qW1@!kJj);enl<$@;o#HU#83O z?D+m$d?zZtzZGpG^hHjlqc39lgF_O*W7AoD#9}XtGfqZv1jCEe4>=`g1H3Z%Z-0jR zo|=!0?xXpyC~AFa@l?fsT~xR)w9oM0V=CNNq?TtIbD(bTqD=nd`b=l^r1&qBJ&{Ft z!WQCvMbYa^y91ht+!*NuK!92uujGO(sK@oC^`wMD$k~r6{#(yCvG@~C`6DzsA+Rd% zFtUF|>kPpV#Z{|;rqnt()F}OSP2Z}hBYm$#BhYtiX`h9a=Y!5i5N05k1(!NQ{uxpR1fV#(Zv_f&of(16TD2rTeU=mB0}F zSxiCU&>!nP!{YHnYqj3Ey{p3ydB0Z93iVllb;l9CJ$i{o@`~lt^J}q!yOMP?ufDaxY{7BKik^jF^4;f9PW67 zbac35{4~WK7YMv*FW|Fk?WDa_m}vGjXeLU;Z#1Nj4gV4H3AuYY{)mcZpK3ra;M4f4 zkN>cp1NPdWXs0{DtqZ~_b@59WdQ5L?)@04h-BF3hMO0UT@2yH}>Yz^@G^hOgD2pdpe9WQ`pm&`| z2Yy`bv5%N9?abG3KlLc)OY??k@eAP>!Tku2A%54Ks;AqG_w~dx;6%s!^6(*hzBCl? zJN)nVm$d!e-`U}Jq&M}5umAFt{%fHaWXMm3LCB84tQCPvnpU z{1He0arhLp?c}By9PZYCLQ&iCogGjdzLak&{WsOte-lt?4Z#qV{zFshzl>YHT+U_C zW}jNsHfsN?5}uI|&CwW0x89QfC9YPBTF>P3P~RQKGs8ci)5J~=$HdZiZ%@*LyT|Ce zYn?Zs@6N%1g!Njxs;Tda62M!fC?fphj9b3Z@aL3dVGAKm;w|9NLehZ%xtlXe*r zd*;vGfi(|>^RL{P82A3399#Cz3Fb@Ls4P6_-~c zaX&+3LKaawvl@iE8|^rW-jDz3E?*4l;XOC~T7w`q{p|IXr5%VR6)cIGKhFqXpI{ZS zxE=6C&_f`}Dd`AMRQ_#5{9>T=4Co|&anjD1_}?()gz;av!zcdph&!M7AEA(A@ZSz# z$@Qf7A&7 zOLFOF%MAasn*5J;!vFX`4*pw%MA7(PnpOt>`y2!6C$P93@I~UEkbwUIN^Jg@o^Af$ z9uxl?@=h54g+KVje;#q?6aOO=at!|40W8J;;|>2$()eeZnw9mj;eS?>{~y%+kM?o! zUx-K1_`kAU8Te1d`4QGY79|)o8r`2V9A_&5G7;uFDyUma; z!vE#i-Lg~W>`46I?@2n&GyM3!K&g<=kN+!Vvb}@x6G^_LsoMX2>pL@m2>%z&4i#~wfI1*ccayaedXWvSI9E@;4*+khLV|emHRX? zmOmuKD7NM-*N**rs39G8j{|ZsuNI@@iRaye7E}}0GSq2+^|i|ZnpN{Ku-_GhBOl0r zyr!<}x7&Xors5a1r6VB$Vi&WrLOIj3Lb+43^f4Tv)XO_-RXzcC9CJhOQfw_x_>e_2 zL^C?}#t~lETdQ+15?t~@TrNSR0~va~zcl3JS$WVV6A5yt>I@spak+~7{QF795ND4`R#tAG5ev8`*D!Jj5>I#h>MNE zcD%HAVS$v|QQNX}r()a)HgraR0?P*&lTO6GA`^26d+)^;S%LpbFSNFfQ9w@~fiIWN zvWm^`{`@^By;(RbFn&Q+@ZwCdb*o|P#t=s0qc#4(PWq|1*eJItMv7TB(C`DPLo}Sr zcEN0nzcMx!;+z>AhCF_OU<4a{5(T zv%KKntm&6Oo0y3NAA5$uj}G>`V6ZOirwI7tZm|yELzA#BoU(8nAPtT$Ku=%->}&{T z7Y2Upf-|B1T~Sv|^%H2pouVu73Qcv}(fA)6&j9|?xD_iyyNTg8`jKJc=ww$ursO+N6(dxfsfZl`E%6Oj)*8a*j3<0Bt< z5>ZUa@{tcbT*zSSm$rb6a;5Wuv%W9`@aB_MRRi$9zEcq$Dfr9ICtC*u3h3qJlfBC! zIv!;HSb{ySmv!4H;i_=Td8jcCqm{Vyd^K&a%37GeE76S8#wDsbEuozcTp1ul@L#Bj z!+)`&q$z)axjL{I!D1$hCV)`qlTGs-Q*$#85K^(Mmo!m+DJt#tWl;u(PbX#1dee{1hax^i8#W1)4H#GaNe= z&UnLU%2D_uD>$TpTXnE(2MtI&)#5Hax}JO-Xn^^M-ZxmtT}Q!mL~CX5;Q1ID{)8`< z71$k4IWSrc?L2lLOlxC1k{zWY7fUkS%e4~CWF(I{BY}>O-2Dg>#f^_efc$sck^GOZ zkTzVY2jmO9kl(Mzo=@xNfxO5I`49}z1$j$>eB7P`Pj(-&85$=9?=89$vmjFGF$M3t`bYeed-@NBQ-kxS}4)tfcJ2;gkk?P<`=nI#2d~`I2JPSV<^^-)?4nzQ}ou zpt0mv7YdkR0kdbJKp7S&yYM{Cgo$ARvQ?qL7#0{C77B=A0kL)=17s7!0%3AqxYdV* zu#f;IWv|3}2od%-hP|!b&~0xYZxz?x?#6`&R6N?==B_i^!kfRHGfHIa1ng}i^yJ&# zo@r3(!`>cYTgPy1xXWX2tH!an&!d?T&2PkJ)#nEOvhD5l!!8^b+OZvbVEP7oiVoH*oYpEPMO@ zeu(`}7FB*j(UQdqjKtX6Rgv;(_M>ZmZrLSn{z^;L{1u%qG3hqNUl&2zpuUAx1!e2FC&;ZsJ=tHSnGq257mR2K>fqruuYsdus%qRlIj|+YOW7X_!U%M zh$2FNAfC{<9C~lO*iG*nu86Boo*bg+t@mGFyvoqqo1ayU$Z|)2%Jtv3ePZbCBcJmV zgCZaK`mYO3YUB=M29=;Yp^>gu=m-)rrV@KX7#WFhi*FouxSKdu$NUXWJg3hGeQ71)1n-( z7nAnH_zFICgY7-k-~|rP0sAh%!#;V!y>-nXK7*mIKqz4e5E26F#uq1DUzBtyj-bO7 zb9p9OB5!)ieaSQmFcB4U&*ia~l`+eio*76-$T&Ral#E-_XJrOX38yR{imqVYe;p_i zW(`x{;B4BpU#1YX5%QN-*O9+i{{GMVAZy7Minc6m9Ll9O@7f5=#O3aEiuc8&KCg~O5^p)e-u*AYbE5e8UxlChbq3z7&B$4|V!qe++A|dISHmxwkG6OW^RZ;T zHXqDC+kA^Kv&lc(>zePKjrSe>?$+mAFB(ahw?b2cjom_&~mpFe^B0G`Lef4`gfs*V56M2F!2+w;o7{}QJG@c$4%vuf@E{=1@ZV9k*{gVVxMR56mduV`^dL@0LXITKMP<< zzDtuEHU4)G(D>gq_98Wh-O3t};AAx69Ci}^Cn@6XS1ZPId_v+|h-Ja$EW+Yxw{sn0 zMCIEh{sgQyW$`b@5~1&NO8Np6haPVJAE)BS`)fENp!`X!m*Pm`P!85d)fGjdSLHm_ zQ0n;&2jDF2gIOUt4j#*=12GR<%J|KPEL3p0H$HNmmER9Y!Krb??QjHw;B$7jXG9N3 z#rtxaGS+CrDTiSiz%G)UXHy=+7+YAE;7nv zzO+(j(8>bwd1`b?`L6wX#@%rMUwus86`Ecr808 zEN9}6te~8Z&eb`_oDoq#%(;k|C)y9tF%IA~JhLuZz)?F3a|?kG*TUR`7!Nzbo?K^3Py94iCr7;}~~z zqlO2Ig*4W+)@Q&2{=_{Ya!l78jD)>@Pj@+(cHAacRrV8kHwLVl(f@}K%E$m=S|FI#39 z?Ix*^^=brX-a|8i+`AYM2XgrEjd$bXUj_L&2J(+FYTz8})o#c~YO3YWAyV9sW3iVk zWpLgPLv-Q%Qh|KjaI0z``czo!U2!9T2X0e?`-C6cp8h+#`=5vRW7`M%r<=}nj6*Q3;d_SjJodRQdp|M%Xy?1+ zJRkP?FOG)F%!hs62E@DU^BesrHaKtS@m}bIDC&e7@sBFBOHwFo%^EP#P&6TNe#8G| z+2;lTC)z&0enwgLnS9lh#SMTj%07>6>%l+hyR)aJ?^D;4e=;?FL-<7yKf+`1&*|T~ z_@^hHIsEh2b~pdveHVSv{{++j73_bg>A$h=zrX7LEt!jG{`sS?yZ=@0{_A`DkI3hr zp6uqIUvMR<3OafC=O}wWG5#q)Prmr)U5>^l|IAiQVEpSl0G9C2wLLWdoJ2t3UoY)8ZR=$^RADjapZ35 zMF-m=@=<0p%?7Gdkf$7vcApMeD^47z;{KmKK6dyBsI5qkhRcVucH~~7WF|d zuo}6}&PN%CI-{?2{Q6i`MgMqN%emi!)e2Z_U~!Peix`PsA8U!vyYxwfycg)s)qHNT zJ)iT;r>hWfH^)Rf`;qaCVd%-%e0mjeMtS!U&seCCW90q8UV?Yzzh-H?pNSf=7Z*HI zAM@!d{0W4&!E<6cR{pDy%$`qABsx_7YZXVtW9Pp*4VeE5(5!{u0rlUYaPW=uny1uv z{bu}<$pZ~~+KDe#L3eFGdb4te^)!GN^Vc1}shjRY16YvivIGDPe*p}A5}r90YQ3}*GC6;^Q@1)YOhFm*GISah~Sno z^$SDe{p}SAAM2w}s-gN?AH81~!`3g|0U2i$&id$w*Ak0nee@g*P#m@Otk&zJUB_!` zEJG!!QJP6^+hL7HYc0MhFd9Rr(_R#!(#S8U)bUh>Tgq;%_0hZ77rEbFA5C)J!20O7 z7_6+198-Da{gU*aU zRYDzUH`s(fPb$o6;srpAoAS7iG%`2s6ohETtC$X^q-jYu;lDOvfVmO|kjy%7Kd1}p6T&I& zQG=HyC4&)~z4lOER?z{h4l~VUCfdnR<~l=(8G~w+uCO|}A>L<%CY%)*54C#nG#MIW zP}i_$4vmXlyyngXppY_(0Mu1v5NaXIL<>v+s+h_VH)%1o3`A)NB)9@lN4u%Py~Edn zse9liDna{6D#lL@r;I`q#1YUtZhc0WBAjwLYB~m1tBjOayHJYPgj4#V7S9XeF%>aE z9amjt2M(tPc3De~UaH)uG&JFjd?WY{+^2o=u7nm^>U?sEFQft=c6_0hRTa(f`P?MA z#ML_1S$>YmSAmCuind7L~q2(S*f~EUp0d?E89hN=^p6 zvF&Y!lIO++q-c>SC0LDRBDJN4H z$7g;LWH_}udQ$%Jokj-Q;SYqB3K+QYUa)bd!l&NJVM4O5{3Hr7>?8T*2-`Yq)EhDs zzw8i3Py3<34B$VhFhcx1nh87l%?Nl39Vz$=4WmCOj2@8@aJ`~^QvS_+>Rwte@?->b z_JUnqgWW)&OuN_yTkqe{0{ipT8f?GQk{@0)U{^6JnU+nW(E zjl*-Wodb9<9j4eJVE;i^<8a<+HR-5r=WbLwQrD*#m&@Ju@1?SX;|n~Z5k1xcogy9V zKD?v79UePi=EudTHue(xEnj47$oli*v~*5zge%s{fA`H0pRp`nV(}S^LoDiTL9q?P zj+!6ml&n1*PrfAn6&`{S0a96?y2mD!Cw|eE!}j6dxc2ik5EkA1Y5HP&gW1xp%UDU|I3Vj0USdgXMO7R3^xG2DF3oAK#8s2i2okav%&wLFBl2;;Qym8Cyf6E=*d_7Xf$z0Vet`v?5~hx z@P8S=lK4?ldyW53I&1uIK3n6zkTt;n-ZX{(!Dw0*{ukhRH2xbND+B-Ue*x6*Wbqxw z5{3V+0L6uW#0Liw7RIm70&v#e8?+l-4ZkSCZSfe^dFUKvo#njk&7EWzI)42!K4!(RM}zMlERHummAzFhN%4(Q3({NX8%hV=C@e|SJ4-_SP;VBt-* zzqwI6jkF&-Y8qENPb2Ot)DUqep$QO|`kX?X>wb|Z(SlTu-rrn^cU<(wT5$WLHmxy# zI2jF6*Yh2;JU)CS`ryp2Ich{7uB@izu>or!kA2aE`fv;WFH0V4 z02~*6^m_es|JpQ)zF#DLBXB;7MJC{jlE;<+#gUiZJ*>@bG_?6wK^(8%b15QG6Y(d( ze4EdLiRY0j2s4?>9vN>`_sQY>KfK`d=Z@EC|8f6eo20J&W6xI6{v#%c*|VbdkIie1 z4{QIipPB>qdDbw)?P?A<9sVO0RBIDfH#d|Szv2F|D(Ff1Ul*|_%GjUEf1DoeKW-rk zD8OIP*NovmV*i-&AD0T@?f6Zwy%OLVd^4E#{7f@|#ZqB5(%yt-@&!NsBmLjr=qSSf zZLZ+w{x>Hz^Be;@Ggv*2SfR&%tmp;%t271nkIH}C|BL}UQGrdry$Jh%(abm4MF9I1 zbfmyuY5d0r@P~HW9k2(I_QW`qv-PRL!+>3#9g$mB)3J@r-+ir>274Z#y1jL;+dG59bKKscfCpB5jFs6^Yxw`#0z%o( zhBE zj@M`ZqvVq@zpG;GZ|n0ZRLKMu3t4=_qQZI#UvJQviJr_Fz0)zc<#K*-TEem ze%SbTEdB7rDP`)1DJ?L1uYO1coz&u=S3exPQV8yIeo6gM`m~|A5B;z>Rg>L^et3>F zb4Wh|kdd9Vet7UnGl0b&{m@PgASvIkez*c1`Oy!Dh(ronIr`xz4$%Soy*3{Gu<J)SZf8g)(>@TY;njFQ7Wc`hHCg%IyI}M}Z^P`zj03e9Vu(BpN9rKK#Lt6!MHeIIX2<_8jZ3rlctR z!Fs3>fAEPc?GM&q4IHhmXhMJR6Z~J6KUf*y82UK#<41odmg3Bh{~>+qk_>GCUz9(1 zGC+xs|EAJ2K$Q5zmd6eLJ?pKrQ%@NGQ_++1$4g-?iQqWr4fQ7Oh<_jJt!))@4F0PE zELhgNt=})#_@CQC<9|@MhVXJ{^Cyu1DV`JQG1gmWHQ}rFdg~cPhpe}r^P7Y6nCqz05BVW{E&Om&=E@5WW7CIQezD(!D>(Lk6wD_kn*Lg#KkMoq#B?(a*#JHZ zCax!L;>{=Uf`cEk{#?|YLsJW%U939jMj{BCrFw^T#*JG06{CXM@8D(pQ0k>YGOS*L zo~9b>Ai^tb0cK)d~zIuEXDmcEg2}3Y7^HJCM-cXJ8_*OTH7~l3) zF~>I)U3=iMiufkSHyRyUGkfdtjnuHr#$z+S^P|T%6zyI8x#BT;KDhlC3I@Iam7>o- z#F|1O&d|cdBDL4?o3Vn7`-j!MFcHl4Aq#VImNl&*pwp{^pNMDARhp?yO}Ka<6fEM$ z_o9NrGYCHm!YRY>Q=d3B0EXm@fKg;GsmVd1n$v7XGcrYYy%yIaI*Gc2HJlJYB~9j8 z8Ku*$8_n-#{QbDq&HTQAzn?H?Y?VyGFw|-nWZvFmVtQfLzlyNw#8!H*Bsb#E2neiHkN^0pN#>4ipKfRv9v#(`1z#b|L<{_FPQe^ zbi-1fcyLXQ38H0lRQdjY272-p5B?H(5@P%D{}r-~|2eIp@&7NPhR27MdJ2 zSVR9GO~n7l|7H6B0LRe7<^TUgEXDEvhb#jDrn6`R_#*I){fk$C4t73(TmFgvrqVM& z6#sv4zQMoO|G)Hv@m~Wy`SbsYJHP(FLXN?IRe+`Z|9Tq#a~l}^cf6ebKY!By$Mbmp z|AlsK{7 z4j=sQTECiwo)rFTz#I_4Q@@6u;GQ;b`ox#S9r5pD{puqi3(RToKkX8wPF4Qf1=@tx zL9NKZoFp$=1Cg1DCe&AF)-79K^}}-) zef0X(_dnV+ieA4;B;uR02w*Hx`fA?w9{giImP}Z&^_UFnu|BI9(=;iEh=lT$gH!hYm-`IGJ@#fH0P%2a9DmDYZwk)vjtouPdCoXnM7OAEdgS#nUJpdi5=nUOT^a z%h#Vay*&POccQ>;5#q>~%Rg9vo_zV!6^TUB%SSxDR3XpM>*LzuAKY!dcnD+`Y>)l^I@bu7*M85b6+x|X?ROA8 z`L^G^h-?zfhyA`%VK*y)(|C_yKN%pSfNA^P1#Uwu`~5>r8G!$I#?kQx{<7`&GeDq# zUXK0F6MnMYj_Uvq=54*KRwykzh5 zJ`wHlGk(0!#3yH+Yy5@IR&sT%I#;oBhxPa0X}}A_^CSGG;w(7}cnqf2x<@Ha*^l=y zo&kB<1Ac}rpmFT|c*z*G&fh?9&UnrDYq-8Y9WRT&(pi1Kh53G4{r%h3_n*Jp_5E-S z_xI0<{C?3p=KFj9@_gU5o2nBi=eR>DL0-xtt*Pf~Q{3HU(_)vxa(iD#$K1a}G)khQZ_+0!?29I~XkA>%k z-<|l-@Xd~LjXK|F@**(!A{OTYzNq=u*rR3PKUsQK$~2g^^e&@eJotZrgE%q#k3vtr z=DSxAcT|r)=DRgPD;NHMJzL}di)4-eNvIM0zjQ?7e;jKdQ}fV-_^)?H+4vuZ=h688 z<%=@#KjdwoemaY1F_tL&pAAqP`SYP~Dn;lMq&Rx?5q`$kFX+EVLXW1-`amf0^Ev~7 z0)1X6)^}e@(%8B#1=HH*S?} zpX7AQz+YIULkeFbe$59zx#k~D(Uan*qZq!(^Edb-I^OjYM?ij(J7?^4Pv|#&u0FPU znLU3Sz!WZidcL|cx8u>V^}y*GOP8aTJcYH*n@=B*uyjHlJZ)C3DX>Lrg2KT+pen8gs73&)oRa6NHcg0# z$LslNhqDN(T7U0hy--bS{GO~1rA|f{7|7BWIkq*YHf2-X|BHt}k2M^vVSe7c!=?Tc zq(5VRYOnHNs8l1-SFBEx0;sl>_S#s0hPXJF(mX{s6Rzn+%fY`>h1hQ-G9~=93TLCDM>~c3Ub2F-wv_?kCKqJ~eomU2Bv7aI#g~;A zdzn<2U3h1!Vff3EvddkB^Zf%CErS6;8WKx8vfNsYigvAC$h0lNrWL7mG(mI)i! zUhHGZN*k!`!qoYJTT3gV33~(bxwCefG$DZoNfUE)Z#y<4055>ZdeJoI zbt0QjRgg~JgNEih5$vo@YmT0k_N&UCNv)M=f=$ENS*xxSQ9EmYK248xE+4zE6G4&z zuM@$}TG{Tr2}r@8aAo8=k(ZLhl-_0K0|epzR;a-!3(W@EjKKHShMMh_pwz=d3Stie zjPvFvYC#+e%7;_-oGxhL*}ipoNr#aau18h|fOylr9vLcD@gT(_Z z=CRn!;y)IbypEz5i<%fx)OsZHbpW(W-lOHSn*KgQW-j^c{bQN(x%L!{+$*2Cw;9Iv z%4ZtUaia3s0G+8RrVsi2y|Sjd5BdC-By;3*LA6Nv9BL24E1zT0Qn=Vp7Bl6uwmpQh z<+GWAz8v|i?S=fesvh|~WoWc~-hw7B`TTW=A&^%-pJy{a^4aWUh36>wd=fqTlFxLq z4L?<$d^QDAT=H2#20QL9Yfqw<&u6Lt=m`02+egdiBs`>iE<$U_=Ln6PTqU1f_$uS% zG30X?h8Q8A`&XAOpNaD!d`(&OXEBAvJ1l-+amoS|%~?EvvB!|lDc6-FpCk46z4E#4 z`!eOTekF|DE1zHAV#x26&pD?F`R(ijU-ok}QrV ziMF5ru^9m<&wf5}l7ci!KK~r#Q$AmxAR-iSm(>Lzi2Xct3V@D~ z&qlqpeD20W%4aeGhW*sI(en8UUyUQ5#dsq^KC@SrEuTNX0^v)36-8SXLs>k*;$s&3 zSe!Wz#WsvRhJ23gS&n>eEQ;mdUiEF6@;M~|BlpT@>cH6YdF*5%|B1<`HQ)r~^X&?n z>OSQ28IsK5@?ikZE1z9$F80c2OEnDt{_QbgTCQuAEuVi7l|JNiJ4fk2{#K$#KG)qG zEuR;niOYVzAx)y?^CmX)BcFd9?BIUCs#46VOb0%5}7yGrJ`=PJY5XzR%p2rl|muElIypW$R zklXh263v6|`Db1QVMIVJ_Oq%qiI&fg+02i8_B^T}jgrsBH~N&%A!HkVsyzAZ0i?L( z^8$b<_OlW|5c&Kd0YFFC&(c%1e9px~%IBsd_*^ixvsXTE<*RYzb1M4Bo9_8%wWVdt z=c@$}zD+ESvZ((Oik>VUWHFz`78bKH_89Wn5A1Mt6|8AL})5`Scbg`W`qBm21b)2{;p1$4&m%GlxkE{EuVoqwEQ^Zwt% ztVf{mJk)?Wi)20X=PK>hT2EEhB3^kVnsKdRiE8dy&#Vj(BKR-#fx~~X@{wMB5zMuT z#ZeaZ$%IV+ps6U-!?HAhllyA;&p9y+0!~hxaq!WIvn=HiS{hwHt3% z_cx^DZinotv2Size-LQUH#bZ`;1Z#)`}!JQd_pR6Cm_w!hZw)0Q@-Y|Dbb7LR$lSTQ+l_@5i(L z9k?&?!hQIt79jyM?T;J-cVnqANBw__X8z&kxr+1Alft`ol7^d+C%}!P{#|hAk@y%@ zejb~-;V$&ReHX^(!gmJ^cQ)S&rggO8epo8xD2<|U${8mFH=;~whs2Sf(Yum85#QXd z0=RJ}y$kLQ|7f^3FoNoayT}9g2N<6V?x{x7IRr_WO10qh0mk7hQ)m>USaVCi(;U~yIz%3 zGPG+veXH&HvUl9}JX9Rlo=^J2W6x828d>(*^J9mEK~BJ)m-Zk7_{=X}43rE1`LO5D zk>wo2I0BH7yL5iim}|@cy!O1E8i0R$-UuD}vFC??Kmk1;Tw8`c|A|9%z<%$baBDB? znFFkcJ@1AZ$DU_vd)|(?;ig8+9r>ezvldNqWl%K>Epv+>_x26VEEv# zD@jm?P*nh#i@$EVHa36#@V5-WKYyKtj{NY~GeDpp{>l@^uvZSR13cm{w)#!;*Drs$ z_$&9A&Q1A&wcxMQ(2V>wMK$;E*H+X;@K?^8W%F0!vtX#EEc&yU!Xk{3X#P5g)TG$_ z)moqb{Dz~yl)s4G%c;Mw(tK7F%`r{rX?!(L{!$l>Yqtxq!$iNx;$}s>;4J3RqsE|I)@0rp}%9T&iG3v zum|xnbV_mH$3K&j(+jQkgRer$h=p3v(>fc?Na&iddS-o;`>ic@Warn`9zX%>jaayW=s~SMnoP;cwestNg=nJpCa*sX{`91Uo+|GJj~o z>kjh;)9!&Mqhd9le6-R75j<3Wesu%%q}6l&^@@@o>sb z01I-TV_o%&M%bUfD;}_RUDH7!&0-CZb~c(&=AXp>MUXuQT}f`5Cx!oV&WpK_ zxTCq4?-5{#RCNAU70}9s{~vx6{NHV@ur&VfK@DZlYBsh5gl`0Y0{PG4IguXYyqIAn zeAUj^+O>f4hd!$9oA01JX1>;1rvdV{9>XxKqfdhf^=G*AwQ@@4<;KH*hSI;|r6VDM z>%7Ie%eDT+R6Too)Om|7_W^FLfeY0ftC}r5pE`3aoVWPq{s`(t=L_LJp8cicC0U5) zsjcc|G;qF|WA(xx(7-&ekQ+|-^A<&wZZnw3CjpzVtEXduzY7Hy_&c8YvcC4UAQ~;ZT45)2rC7+y2o>8ap$4sypwO7G5 z`6+zCB-n8F`z(4^?8y`&_BC}B{=h7Y6Wk$A7@E8{+atI(5z{6C}ExYHMq zFYrRXUXMNh89sJHUgU-ReGJhB`IJ(Ts#~qwf7X_*7HS|>_Ph=!bX4fkLAJP^ibr_Y zYK68u#rs|UuR^gn#rt=LN1gc;^MMYd0bU@e2Xub__*aw(U_MZ+Q@j(Ogj6+U(VxW> z7Voh5fkg_S_w1h=daXy^c>d2GJ&@kNz@F{Bvjag4r)1+7VSfORF{}R^PNEz=#QU4i zz%%fy&MtfzA4)pkb z6vv!n^S+V}NiIXgWJie~Y2Kryxd_s{v6GSJMeLef`4IkqH1invi0$J~6B*?9{%mWc z+2v0aIsVjxLTuZg$_8ZYoTuo3<>$eTQ?|UlRN!n(aR}?E0r>acbI_6U2af<>0{?Qd zbY!&mJ0g*w7w~EP^E}sZh|Z*ArX~D-Cpa7~;DLQc0rj?q?bdu#6HV~Ah~eMB_g0tF zItuewMKu}dO0*;MFX8`W{yk&r!Ofd4`ELNq=J%@Bj$H!dn3u&>%X`V;{8%%`{?p0t zEZ$-91B;6Ry@%hIoZ8XFkKC^UwzB;#=AYN~{;m-5JE4R3`AHG`T`ENUhAQ^-kM2Cb z(cJSJ)c5>Gbl3a4gZFpki075v&)xo`o*$_YUUIMl~^H_a6b_&V?AJmDx?!b*Qu5|*L{u&09=fcLzckI_s7 z!SDX=+2}~YU-o%7_X2^^aXIJR+`=I`64pY%#(6jA?9c+WevcziR_at} zH{&<{N9Z=X^Ma2Kq0Q_tC2hfq?zp~f!4grAzdU^3b z4$0;Fvh`GuQr_S)#JY zeC3=clSd?wU3{D;GeRN9?3Zf?u*fc4OS5Wj)3X2hPQiV#6?#p}{c6-u?*IHAp9-d4 z+(ya0Yrps;v>+Lx_xCSAw}u{+^-bn2q_i(eB2 zo$h1t3JPbx_%{p6qSvBl9c6$#ekfMu19|9GlPK^ppLWs9x{4y=gI-?}i9YG|kwTuK z*R&ljdX4x_)2j|@AuGk!`1zV%)loxwbwU%+E4Nh?y|(-qk6wrIj+b5!&2rPLD?k!@ z-R7z`^y=-@Mbqo@M?tC^SmdK{=(ToUJbG#Uee4;BWTDhY7sb`zpM2}l-|51q(fT_L zgZEH3=6u`jp&xB+^q-IT`kz}hfqm%j?@1v?5iZ>B(cka2Fx=_Y-w&dhu#jK>VFWtz zqrY1j(96-^7ka_|`v=_&eaGvp7GGm@IxAxyTz*Ws-fd|J`hiqP zRzpEJW#Kk2N7jwz$Ru-oX-OWPWo{cQz}#^VdQ_Ah&K{}FTjLMRy{2;Rc$#^u^l}pp z>P;F^|0MGTHG!09iX9IsaNVfFx@De@8Q{F zm0qpC4?#nO4JmpLLM^SeThaeVE46fem9&xz1F@E$R(yp)*(_-#2^E+JjzcpU22WYj zA*RgeRr)qowXf88C)dUMB{zd!){!rDRW(-K&8mH->Ihu-(nr+VJDR`xANbU2|#vnMxe5@a=$>(98AaNJXyEj4hF%W zShttMCEogu$VI34#29%$^#;xy|j><_1Oi(n@kS5LfJj zW^B_$p(iUar10L$G6O$ngffyc@^&4_ymVt$;MdYx)-PK$K8^vGrEhX=!H`$p~2ZL*p|4Es_RzZ3q_DWah0&W_KD36A*r4 z$njg?41Zk$BkjE!*0m8gY20mr8=VAew5N8AsIuCbAES2%Z( z)#=r9BtApkb2i%Im|m+3M}=8`5&s8sbIUN!0j}eXcU1G{@e3^o`OddcM56 zv0-HIe0dt0iLCpzcMqT=KlA0QH!H?3?|j%RgoSK1SV_Rfe0kp&!dl^!=e`#HEF!lr zKOJn}Y>V|{y=1DpaLQypgxPx+t?8CE0ok#~Qxm@3B}eru{C?O|(t-?u&7w^8HP zmp$AF265TL7q&#%!;rAOfisIVC=J#E z(w{wC2b{U=;jGOrdw4GZ6MNVYwPo4ElL{Prcrx139=719U=J7Z|G4(>FrG%}pYe}6 z`X`n>Oql?M(}BeZ7Bg9_WbrGDb0(tb#9}0ilQBH6J?#5pJbNhX-}>V!zB1TW7@qut z5u3dF0_l>GD|C_f)zlD0!O7t+dMWg1V&@-RNOVy@_{cw~0!jmUX1@Nz7o;8X4_16C zD98D)sG%cb?fOU0iH5NT#$hI!a87jQ`m*y6`r)~ukCT7!{Zx`DUj6~e(1S$)V{xtb zDSxCdK#4s+(*DSJ=^RjsKl0Q|THQ16sBkHqVmp4{saW|VEyN8?TXU(ALoR1wZANDt zE&DuzT4nkp%s6@gJt?i;hCPv3$XVemrzm=b>>eVU1lvx+#_&g68Amq)o38nHBS6N^ zm-0<4Uxibi*huooF)c~?524!nYaL|}W_=zXftJg!Ve7#6%|5kC&r4?OaLSW-1}a%a zXiVz117@_zSF!O4cn9#evZmsRO;4JLiySrZ-t{THH$pnnF=kLLiIeVS8p8Ne^gKcGC0()}uV+sCc|nrse3Sw6-$Vb`6 zpCH$%c+PNUjC_=>@~WMW(v#?re3a`aJ0ch}AEl+!0Qo4#F$}Bwco1bQ3P=8ON|vmS zCy&JcfqX@7tqki(l42Prl-pXAuG9Kp*kuqiE~Who7xi;wACsg{!q3 z-Hck%i8W7|u z(d!l>(I>sSE94n@sRgj84uxJvKhgAht60-3`$nzpUO^4%wFON;ub(gAAU*UNj25x! zHFZ@ay-uIxrq?$BU+8scqEl_?^^;Qv{1xP}#t6kNGUROAE(ezq=A4pZgqBe8z>od@DFlI`T~^r@-k3*Hu&FizL6IX{x_^XVf;@;PrmS~ZpS+$1VcEW9r>01Tp_Am z@}cp6<@hr2|Ngx|{Z1Ao7)u2HZAfxTLdoKuIq@R;@9y{w{ew*py5*rcv`&nC?Y11t ziOGZIS04TXe*Ds7n?jbM#~Yt$dOZHIrbj2#h&*)MtjW-tH6X)KG@(4~#{Xr>Ljy%F zqpvhQUVoqrdQ2V*QY>O|1K^9G2mG^5WywPi>DkD`;<_>M|Ix}5#{V$%EPdzZqzV7@vSP0Pan0z8kFhlcl;f&U@7 zK>c(U-(f6K_@DPvS^n0h`#k&~TOYOMAWo3~>-fa~UqFms{BKjpG5CLDh2j4X4gaG? z`2UIB8vm_XL;gn-;(s^(FAM(-08TXiUmsTn{?o?*^`lta0QjQte=;+4)_~^>7tz3u!>-^eBxy}|$d*oarI&78H@S?5{L z>$$CGUAFiIzxSG~K}VAQh3tqw@htuU{Yyc=bAtV4GLfXW;8XYh+6-hz9kP20>9Uj9 z^%U8~1(mTaZL;f&3Vms20Zq2wMVS9eX|gZr2#SZ9K{mHFJ7jPBT#-$F7-Zv$Oc&WJ zIXs8kuYRGFrTbdeBY28N4U}b_$TX#O*lnF@Ra_qO$-^g5nmTAorTIvHg?dvF?px<0 z>A(NMBdsrL|G}sfX;MP%e@__%RawYl4~wfT?sySJB8zB{ZR`i`2&%mGhyJ^``Y}0Q zyjWVxkTJg>u`xggLgZIm`;(TUCtvf$`^g(hk&pR(IY0+yY5R3%gH!-9U)=MVnt!~4 zT4BSIYO49i5Y*sn)*>{){9~SwIAgw87cGcR@P4w+YaD#!{NtCwwk^Z_ehJ7IA@43% zwVr=`>eL0#KfW0VwEoAUDiCz$AG7Wbg_p{YCW~GnU?M*{B0c1KZRJmm_1eWy5E-1A z>$UUN2cR3)!ezk1b+J{=$9ipBa-9JCSg&meZo71@Fesz>QR}tkZ_xuV*K2=XCkEhu zf9b*E+Eo0dO$8@gFcs!~F>ir^g7gUco5ym9j;Ux5dJxxix9YEEJxs;v&xK58i1pg; z_$jQ{-kVQ_m_P6#tVJHQrkK7ezeRZrUa#FP8@bQRBn@)xh1YuRl>v~kN-v;j&0;8v za~PSuUMmSo&YYW91pM~92g8XW8+Ig4D-(mK6dB+i{IrE2UALXBlcsqj{dC4Vnp|@$0y1 z+4P4$&vLUSeIaGl?Qc!Tb%pI5Y23L+NTWK>QUjmFYVnYE*6fd!$!v{Em`sSLIL|Vq zRB>^hr7@~0kk6wXSMpBrZ@_t$20#{Vq&ya}qSyrJ$@46q4hS!q<@!SuTd)|!VlImg zpx*Fbr%HyhhdTaKzv9Rvc1Oj`oaBWxJ7 z6tfUpQDiby-n+_or*}mw;6_}yf9qrsJ<^8aJNh8jOg5vTo)7s7cZ%}vj|9k3<4LPN zMTvE@*fjJko&HI7!C}8oSxxJSSE9>PlrR<8vh@)8&z~C4$L_O;5M`dC#KleG6y;su z4gQ747pExyT`gp}t#xdL65Z*jk)qpScLEL~E`{u7N56(zO71E&<2A?8JbO5u=j$ht zcKdv9g`4_ALh(Lxc~T@#KSy4@PKwm*3jyuOVhoEFEPiCM5aa2k_J39f1>W(NlGk~C z1MMf}HP?hN^4fVhs5a&GM;k>`UiW|Ue~{P70yu_5KIC-_m@2^YA+LQTyY&Izh9J(A z*Wy)!<#oj>LtbMFdCTibHuEE|!#|V+2g&Qvn|;dbRPx`CyuJ+Hxa9Q_kcdd2tyK#o zh*jL*J~rjGH}*(nM;|~fSK_4w6GWxRPnn3Y%ux8J3m!8IZsGP0vETP7WdHGzkg~4Ut`8_Ih&P9$ zMmuyX=3$E13#>wvIS*|ZTJl6H7T?|L@3fD-fuT#@jz8y?x8Hj?^5zw3W<3YlD%~4J z9E*M|#$!x|KVR}t1bG{!enrl2N{$IBZ%vm-dD|`F`qGBWJU_Q-MNZ{ygpJpm?3yCc z9shXC+lyp6ZG(^V7f(v=YI&;(%GkL&Ki4>~mN)bK#r5Sml($QHw7i8sKleEpC`gZR z{^C6$S9Tyg1oQ~2)@iYlw?d>)1&~%eCN|=NnCl-(k-Hnsm)xVUlJ+Fk6uM_VX^3^k+hR2kz zWDYY&_N*LwlJ>xde3c;Ae9G6qg2OgYdzKmU_47@70H%D+MKkdWe(l*C=t$BZUcNfL z?@zv(nPis|Wb^&ci{jed_961+kP#s!o67!vkJo1A8o?;%LXLDiO)WH8ra+OiBG$Q zm$Yl$DPKKMJkDYyiw>aG@Ry}QPFQ=Eq<%%p+kL}B%3FyAhCQ2^OUs*S&(as?RNh*n zC*St0DVgrmp4~0EtNrD*_YHfNH+zs$7}K8ZMY9~)vyJ}^@@3B^f`Ovr2>x=gkSkl> znhUaF&+eSBxiEZD_>{3y6xFtFDdy7-jBO_u9UCAG9HToSEW5u`{LDp+*%x_%U^nD zRI0qdFwUdKgq%tLKPe4M`U}Zacafl*&3L>Y6%r zDSJG&^A>s<*vGJV8im}Cogb8j$Nxz;{zZp|#{V4?|LY;}2UBv6|FxXpFBugz&JX?) z0BvGsFAT(g)@>g6qm_d{hAr`Dt-}A?PXzu86#i%u0)ISl<4;~o{GTxJ2bI?9w+;MV z4Q%|KI#2xHc?!^f$>KZ;iGOua8Xo`7Zv5{a5*q*6CjS41z#mM>IsX643I38%{_vLo z*!a&6#DC@A97cftqm_d{hAr`Dt-`-JHcvtS=PCTrBn19=;>Mr6miTuv@CTLF>bDI1 zT@7sfojOna?@k8v9axM;A@T1O6$*c`|GT3Dep+nze>9}Ve!DIhrW;W|=V8#3ul+?O z$smRcKK46aLt8jUy*|8mF0sUUn2%?X$;gXzM-36OUcXDtQ9H8+K6e6|a1N0hJf_19 zwcjxT&$a)BfmQpvzV1LSg*Xor-xd5G$l_(t7reg(q=ePK{-SeGDb{;42Zq$Yx-$*^ zTXR)|W%}Qb=9p;t^1r>&nGErK_}^~iH!<^Je_K+hofVC;AkOr^6G{f#-^uR~HL;@6 z$NKI~rGMjCtMzXM^=~+8fR?osO}zDQ7)$q~&Qt&1c@k3aC5!VYl>RM`gum)k;-BY*(D=V$;(s{={%`+Z@JDC<@t2J9hra|s z+uyPv&cwgE*tTHW-^sJx_|MSzvsU|GWEp`!Y6Sjh5(0nl%#D9r8~?`*{4pY{E_!j{ z?`mM<@6>tXfA>nEc*CqZ{W&FM7qQ-xKsLHb^^%PPz2fgwFwdQeU$1-;{8b9ka#zpCh^wi zAJ1#N1I|Cr%qiX@(38a5&-q8qB0uLJ1uXVtt0pKT-p={QF>l(3*+)ZstSeI$=1cKF z=ys2Tn@8daw#uJ9uFh}0iDv|V8yeG>KLoxg@XJf^IbUb~9_JtN%#D8=8%=Ng*(LFR z(Z)Z?{s!^K;3fX9YT{qJBk=EnA^`t{9)}eDIRA(NxYu8358V6fRX(x5>RQS}=RP6j zp>Db%4{QGNmWPkt$f-Q^MNhuvp}S_84|#Y*AZ5!#IZ$TG!=M?aJe-`OA<`N*>1H8RcO$8dDzb1z$qR!!SH^$-_;FHoBhja38xg5kca7@m8+tBCxbX2eQ>gphzWcIudw+Jh=V*Iy+@z$d=bwm5ew0n z5>XzUQ4$ewKDsxaxa8qND;r%;d8o(^DG&Df=q=7SAP*BUcp(o9!jK2c~JSenWwcpnDc}5X{J2*nja*fGbs{2<_8aJ zuKAcB+$o^4MdF{S6bW~Ju7%hhV#bHhqZP#j!FnI-lSxWKo@K3$53%bZJNik~P%b8+ ziFbV189Z~vhuo0o$CkEaAV0SNBeF`M7yhK2AFOpX(DC6Sr_M7zyzOyFMLdgv zC{%nHX@5qN>Qv%Cx`)C)`2CS3CQAI({*0NH#@}3TN>4ZO4<8?9AUBG)9;C~8W0K)&&a8=X)84O$CUW&C!%X8gI;0vLKz&Ah>?|7mhNp;~* zUQ7HRHt+|P*0xtA{xY8EtXf8-J1pRYBF+9+f^(XnhK{2y}T|8AGi_`hP} z|62(B$NyjO|1~H0OGf#_AJDk*9~X%K1hH%#fInI}_+!`-f7UAeo0JjwqekG5CL!=A zsV@A z1pZ_HFZdtJ3I38%{_qDhZv0;h#D6Gu8U(KQ-G){U{us8zpS24AO3?y;)Cm01Bn18> z)rCKKE%9$;;14RTZ6gf)T@7sfojOna|7{8At0ka#428shXvp&kD&KUYp&S1{JB7x7 zxQYMIA@Cpbf5HD~PVkqE@`pd5apONa5dZ(M(j0_8S~>V**b;x%D*T_uDJ9r{)Cm01 zBn18>)rCKKE%ATQz#mjv+g>*CcQvr_cj`RxpWFh_uVL{U3W@*P5|Q-3fgArK9Yfxo9|&XDDL0uyGLalOW+xCZ-U0?-}*xQ6`_4VeyJd+MN6^Y8ON_*uWzI7 znP1xSk`Mt`eyN-D4aE0%Vn8A~OmI~*zONJy&|9Mji0^s-9tXhu(u%Lc&+i(@`=QU) zbL7D}?^&|Fk_(wuV^kdNzqjcpTF#ntkskG-S9_t~=>Q`jG z;lsy6+Na7xqKK;|2|peLE{@{w<7D_P`gJ+vY9#z`C%24%EQ zPQGE#%b?ZHH~ctQ0Xmu0$`f6ksPYY?P)RtKqZN(PonVK8)5$jsL#4(O_UNYj9R$7d z4fnAx=DY2D!~VMVH@Nl*A4L&hkCHQ6fZnip_g7s>yuW!gB;Ivj zG~$sp2Q}X2eDtGXCf>g0qrK6Y@BDT*%_SfC?Un)++vt=9ab|vd>IDwNoR3U?Ns0k9 z5BpyRDJdAoT6(A$>7lG^dzn&9K{e&zJ+xy`g0m6XLcf@g7zUm}ICw+K`Gm9z7wP~_ z5s&;`+rc%)+JX^TbT{b^gvzElN5&c zb^hr^{NsH-tgYmlzxyvF8rqZ>24&QLb^paZ`}F_>rTkU1;hQSuPwj`V!125CpT6wTVH-l;zC@5F6_p~G5u5_uKS1Gl z8my17AO3T}ecK*Q8f@F69sF`y%u^z5PkY2yvcTRTE&A_^gix%vjkMx0Y!NYEW-aZ} z!)%y(#Ok|S#mgt~gisepQ$jyQ{6)N+Jp}PGtkY#Mz;!S zpI+-L0J<|X6R`PYazm_lf zKTehD|2As>$A|QPXf6Do{8kA6CmR|5@6Pb@7V{tk>}eKhEY`9(hmqO-PZ9+Gx51zP ztM0aM`un&@`Wf<<7i$t; z^4As3gqZlv0Bl62TspvFgU|2?mD5C!I^lqoi*ktXNs*+$5;2fj7Egt<9!qfD7>G}a zdMIL11kD$bKRN;_vg0=o|5-u(g7lyDo4Dl0ywB#uGtz#k{R=&}Yl#s!+wYf2?wwPK zDTkh<#Q501P(m^?@PbT++v;u@=X$Vz+1Bx&d!CaLA>7h9~0mL{v&q zu$GBUNX<||OE3s6CAI$tousq@Si zOnv}3uR&qsnVgv)B!M-=liv1YhO{8lfkNuaEe< zuH=%h`(tjC+}H7UR!@nqioeHY=mD7V_ZMg;Y>r?5)Ce6(`oqWHFM)xg;|TG04-U~0 z%LfG6I1gW@8|x8&fBmeGzzh+8UwJ^C&HIA2a7?G4lJR#h*_;w-$KUHv7vPU#Z?`4U zGaoRsE`%zBMHY+F_oMg~BT@19Q2e~Ne5v)2V-;loj{o8PmlYcua%QfF%udEY&GnEn zTQpeadPo!poug=I-)4=LkM)op;H7}f$9l*L!EZYn8r4Hen_3Tw!dy8jZ@ zG=tBhow)y!e*@M-8UR^a{&4>#n*cp^|7E%GlDMZfMDHq#JL;fFWYGcC8|xvxK#jLN zs(e(E`W0#KK7G)TLw7#3L>I%}&HO?GXxh8H_5JZ0YdwHNF-EY88v4Eb`xrVj4!GX({$Cp=})W2 z7;I(;ZM5?e%sPk3zRXtrTpnb zpXmXZ{`9{tIh3|5pK56f?@!m0i6lLOKV2-O$|id#=yCk%w@*6$G@*m?r`J%a#Si}U zvl`N$o1}97e>#hQ1N^ClI$QpVSXJH_Ibdr&lHkq^`x z{jdcwgY%@4om%55Tl{Bhf5J_HHmb@?-DnYtkdwyDBExmpdza_hVZjK-tlgQKJRUN;$3W z2OP;-*t-wWjP|ZN@Cvkd!%%0-oAjqQZV4}C(RV|vny~20Vit=97>TlXS2Nx7(}Z0G z5Uu7~hlEhBxm_a7%IJAI<9u+zAI zDUsWykMbi7^v!r4BHw&id{ysH%J(?gA>V&ogp83_E_uKI*lED`A7dC+xoR-gEl@cA zANfR(;(T`VU&W_q3p)@v`(OLqXT$|&e7dwX2CU-K%S0+I_Jy6=x#ojFAkn3EA5|m| zaugj@Lr>DXX0U5Q#|TN^&OL6tquaI(i=NM7sgV*2AUI;bNDFco2? z46xgX3Vj>;Q)rf>=pf#XPYbal(*F%)3-p_B-?>$jzKTynzwacUN%o<~gw(x)cwlLE zbOJt!!TysyseGiZ~YiSaiUsjd*qFZ|-=)EuXXxkEx&F z4}aX;I}M+0OmvVF)9OB8&w?Q!ZoLGped?O-`#U-z?hk<8Ne;U16$`;cr! zwIZ{T2j133z_Q!g+EvY2*RcjToJ#1Nt2uD#j;1sfq3&l}isu>+=YF=k3p&Q))`aw) zhr7gejZ2PuDz01dcB>juc#OqQ7)wBWmYi7+q=dB(`wDp3hp{!o*oR3iF<{d^Othze zrhUjx3cxPxZB1N#h_z=AKJ3G1;H%JHANFCcfXSXc^ao{>3uPaAE!DDT+J}ea0Q~RH zsDO^7eG6|N{zoQ)fN>G*!$}U&Ng}RIblZm-_~h7!2`!X;c#zdD`!EPsaZo_-LOsnx zCp6>~_8|YtDeQg9JUH<^?L%1*spS#-<w7X4VnU^Iq( zI27`I@G3uCOZ|$>4;Q%0kV^(9>t%#uU2Ja5XRp}PL32LazjaO}a=ASp^pU@-OqLQ> zANjjN6afd?qmM|5RO?|oKGYIv&SzJknfL|2>tQ3%k)QeOa}wRCaS`UT?S$0Wid0pQ zjr?!{03ht(hE|UFS>rn?TeyO?u!TpO$@y$Y+1$tvFGZa#Z*o3cD^GYSi@zOWHIT&| z7CTw&$4JzCHa~ve+x{u}+Lzn0f9Wxst1I~mz8`u6nWk50WV-3#$8BnPGuthmc z-w_daV6;Y05}&(tL~&k56dA#rVYh*M0)0RCKL`%nK#fR{^5vYz_^zc+e+{u(VR&La z{W>aPJa`{KY6qG6x_~O$jf!YPyD^7u0E>h(9hJlWb4Y(6Kk@aj^aSQRg7^{P`+;~N{o?T7 z9ZxEKzVY9)5MPL=xNr7+)sXtU?IEep58xLNeAZg1^*P}DXM9fe`S%4{pC4q`3^FK0 z-uHW4d|0V~kNd@rG@;tr`nv{eY)VlQh^&67coFRDW_m)^SIQxFFZq7G&{u2Wd`kmmarhZSq z75cpqMSy;DKRXA&^Pkr{U}h2U+$|5{{^#qCFr>vkGG9Y%%rCk$3qUyX{2~{6@^}9; zS;=s~&;8G63+C$i#oneO(!>4FjR_0Fx9+GRhSoEERgSnbYk=4UG!gedgW=)k7YTT7 zzwIwN2bJ;PCZ^9EhW&Gi>GKBS zPeOV!UT(grx2WkkJ2CyEr$uc{*E^od6<_CSVtV`}y!?Fn25S6zsrGSgAOGN8kdv5X%8S;u_^wC34)Q+YLn=nHDN++UPoZ;6cpan#uJa}6Wh4N= zSiBL^Y9dv*DZiN(o4H8S|Foz`nGX7~Q*u3;iC>sb<&7N;8~Reo;4$Qp^sfT_3(%9K zzZ`p_4f+M&0{zpu`T8zR`(QGWv}fRHLMpC4*F>+vNF2JmVT@8X1>Ln3-SX}8n+RNX z^qhy~PEDLX7jNpUIa`lrE;~<4nT^rlxJ?$?iQio0jHXJf)ISr_6QUBv9zWmeuKkIr z*Rx7mqaT#Sjjw|5^G%)EiK(OTj{0ify~WY(!1TT)d*!D4sTbhvAc@18v>OUkK2>7iOZ|t1O81+J(ZYxIy?F?kjP#?6uv>oXm<3* zhd91nJY6rwcmF$jd^<(6l!X{yMs{>zJwB0hlxSgme>mgYo0$3s#<#G68ecPfpX2)@ zF|}t#Vp^@A-sbqe#P|lWXHrs0{6x~igw&+n&~P!v(PE6N6qm-`AUiq69j!1qXIFBJ zqcOGP80UZ)_%|{2uLQjBJv+KD#>1|^|iAQ!gf^{u9?BuDx|)Ash`z60cQTEZgq3 z4%C-6s|~t=*fG?NbKCR8v_>>-Gx0bv^%`+Kn^no`hi`!)*qGY`L|Mu5W7N0-_yqA! zNXvKqs^gRzCZ?VbOqg6Q30qdN6pBY!q_9}XVh@X}EbfR#F&TVy(upwG z#_(mG3|4M8=f?%hxPPxxTt~9B9k!0szZF+wmHD&hp%ya7Y2?>O;D_0NIb}I~yx*Xb zP%!4tBIMWa*Zdc7IM)P9BN4p_+XRmYe>s=+Ub$-1T zD5Le*DhyNXp_zIBzle$y>?)-({O>_AfT(fPXiJpq3LXUK`l-pVeKG0iNYeifJK|3~ zg?|t|F9rRM=UPuDlJq8g>dvoczgppXEUL6I2P1y~-dvwB2?VMPDO9P=SovcN5Sr29DfEp;v zI@sI{+H-5}J5-t$tcKDIK|3mqGe75f`GosLucV0Q<+om>zUcQyZ@=Ie&e|Sl7v>a) ze(Yp%fkpXSP_$(6B8x5{80ON+A4+?fA5=N|6d0dBrhZb|uMcNv8A>MfdVO$X{Qw;Z zj(iHjcV-Qj;SW+Ou}`BX8UB>jLd0_?!Rv#A$xcd;i-0OS`bD%LR;`7j*7l$I z*V*V6-(|>lo`|Fsz5Tpx*oM@!PJ#S7fWK$~S9PhZKSkZ8b9U2|9|FDLUs1s9R^r$k zMO4Km>VBo_AUiZ(3q_ZpTCCUnJKYnn!eoIDf8)Yy6?*c8*LE_|Ctk}X^YnabWQ+^1 zF83+CilJ8coLVsSLb39qhIrLQ6X2Edeh^;U9tee(h3}Yn4fx9j0eIB|NdlWru4;`} zGp8;XuWyP0s{gU53gjHThPDi+U+2$Cl~#C7@x-eOhLcmg(33B`N|K2_@wz6Nr}5f* zzYDMBwG>`Yp;q8k;ef)cJ!**8YiI(z_66%#3AFImuLk!9;L(U?0h)tXukXU))kJiu_3NE^&k^{;?-I*Pvcb{ zWZCxcT1|!5$~qda^6Fxr_fbQ<4xkC}N)od~!ya}=3vaw8-4lpcu`D-Uhd{o->+jP} zwZ`jrr!E+;sYL+QdKQ16aN$+Xolg$*U(-dGHeRWocwMWVbG*=#FT6e_6Mf<}M>0?2 z)emIZc(uM;;q~8r3a|9FO200nhImy*6XG>7$R4gn3vav*<2$B3d@9ocrlwULBniA) zx~er^_d9jLcnv5FsNQC=1BHXvp*5lOOXY`;StLM0mLBt7RLK1Bq8c(ktnNSAB*x7t z5x1*|s7qX+R)Gw2d%NJ^wg97(Q6j?Sde30=BtykkIyfngf4uX<2kue;i?GroLgxgF zQy@(6HxMBwW=y+R0{k`O3~`qBcr7(ejT$GSmJS%An5q^;Q(9H5`7EBOaKDbm#QknG z0`AEZH14x?+_C{J;4%q)Wxagt#DC)c6MWakKP}%ge@fnm$`?<&Qw_E|X7eI3e4q0T z-hTpSi0ZPgYUYd2-wZ)0R|rK56i)nt{N#jC^1%7?x2GIoNQ*r(-cx@YahPs|Bgdc9 z(UULzy`)F%BmO)pnW^=6#XTtHOpBHO} z(%-Tm&&E&0pYu<;^|u#D68byQRju`Ruu~VTzuy!DSpQ>D71%lYTN-3L__^(^nr~MS zy-NLc_Os-Ui%DJ%`YIDEJqhN)Bby#iYe04E;lG>c1wV4J&P5c73 zBjzOrG}k`%tDIq5N1Hd@E#X%CRW{qPoVj0RDw>I3@H=r$5uqIYZ}|Nxt*R-~S3&*5 zOk873vhxeFhpGK+!|nogOfHE1Y=^2Sp-pAAYro1ET%{mlaki)IE`jK`M6V`hqEW6)lbNH zd-519WX60pt44r~MYbnR(33BF@}3;Aula16WR|ukT|t%|4>YQ*p!w@g0nKhJ_G5*~ zAE+TFCC~)+q{5^id$I^EyyJo0_>RU$&S%>kciWTFAW7Jh`mSniPpUX|9`+<3(E1;X zszA`OClgkN!b|V}_|0(v=`mRaLdF9#DjEAfK6+Jy8?gU_40C&nuoi^zKo9gJEr_4} zA9o0m_H`fUheXJ+AS0?vfL;4Ps_C>f_J3e_A{MxgN)-!azAyKUT|gBfuZT8c{|Eni z?*G688(-}I_|?%kul3;t71dyz{U6RZxc>tK5dOY~tD63PU|s+{2Srf6sUApn`Hzn6 ztbzOyX3VN!6xPsGbv;%E4ihG&H6CN>RHWm#<9~das~fpgKBNWOyZUqGe;Gea|HToW zwAjF^3?+3EP{?$isR}9KcLb*p^ zIEG*60A5l!yPmpb=Uf%ZtqN#MNq8H7sp7oi5X_~%G2XM}W1X*3?-zdln62X}LHk$p zuK3H2$nWR3fcEtyEnkrw!_7uknXh~%*MkK?;2MKtt?GxgIiu{@# zA8bG3SSzpiU}G)_=_wYs+=QYri=G&@5g*KoGwe@*y?9#vgp3b1*cci1Vo#+28H;Q$ z1`3dT*o(1p#J={U^p(ug_M$P!6856vZGy?!(FZCDSaw@u)+;lyn>E1U>aEgDyn?1Q z6QTCIufubVhqK?k;ZI@g#g*)ixvWY=AroT>uouahS9uGUecz7TKG0tOcGxivu-7kX zB{$-;)*OUe$3yVnmA_tyo_xh;dB{7T`I;=r9L@hPZkGx!X6|#!D%EI%TH0*uMl+=o z%~3<0co9typKTf*6rbfr3-9=>hQv+VZ!9dV{L#h&`Rkz|NyKMwxvF)1HrA;Nj?d=* z2iU%1aT$dZpS1wlq4BCMx`arH^@fH+J@J}TA;)-~Pw|OYJ2KHHUX3L4G+sqOmK{%L zl~#DoFR$>5g`p5($(yJlUfa+Fc%2;_gjZX%@WyLc8AE@7*MC2_@!ARU1zvx;sx@8* zow{JWUbz9Nma+IAg@f0GCZX_B^Yc-nR|%QpfA6`Gj7Sb!y1eG+4Wcn})Bip?L_=-* z-;c`$U>!EPrvJ@{o_zb?XNdvf_ThgM!FyM9T>+F4ZZ$uD$R2>{fB(8o48Z?+k}Hr0 zNq>0%yNpaE=@IB`m&Uah=6UjN0(O`9WG}d-B@> zxBYKuV`SQYjy7lZ|GWT+{x`yUa~?8?DEY|uWl3gfd-6qDmpz$NLfe1T3j5!`pvw0( zM~$%mXaajOPizV@)>m?)g||Ja0YEf9a(=$@JGVU<3X-J#cU5b9GS;c{uqXcltz|5} zN8#9$wFN@WuarHhC3=N)+52mFUs>`0g|R1Aag5xwC)qD}+mmi(0nvts)P_AdWablG@x00(rK?||e5S`ty{hCg`20}YV#az>|Na`#smvSO_i^qk zl@p0%{-_Fil8E|PPkK$VC~BOK^`z$o_w5;GBTz;U=d35aUea7o%7-C}9MU>GpjF~} z(m;jn3e*wXBSirc)*J)sKuD58~!D$L;%8( z=NC=Tldt*3dwRq^{7af-ruHvgK^EZ^^NU7B6q0}4B9XK9jAW7zbUDevZRB`Hp{mXw>0M=bsQM55h$#`|#YEU4t{NKqkY8RC67 zEkv%^8c<24fWG8Ih}@+DLX@l*SdnPuyL z5v~9E6)sItBlQ2my;}cSL;Xh+q5t?BR{tevI{%~f|I0A?A9E1^Jk8<>&=5QasoC;N(N^-VuiX(HFq_CMxq`vsTtEOb0#_M_k z7hXqiQg}^8t-xzjn#x~{Lk;m-jV8b=Sr}ylucl~0EehT*-#fRVKfvp+3^!hDLB7E2 zM_0ARYr9hyjMx0X0M%D4E~9Y8mmu3azM*{^D7w^moe-kOERmsKNAu?xui5Cy7hZ3W zi9YcfA(^M~N(5Q>rkoGd%%$-9C7;5p=naL}_oyLWxzPl8ofJZ8;57p+yzyFx@3`z8 z@Oo&A8?XEzN#J#-t6Jk#(y0r^>y@*BY8i{~Q8;*YydDZKm2cX#*)fSu{`%QJjkpwN zYICh;Q70p=tu^ewPIkWO4;h{Q+D)sbd7tmOya8B8j812wCmEgkxX<_fY*0eDecb0e zg?Ks9X)-7y-0D8xSCaJr%=>)rl>_jfzm7pilK$}b`DT)dBz+;+8fJgl4;-RH_L4j# zTi=hL3!n7;_`_~=l1{iLDq&(WkYm}6%hHB4kegb{qndL22-uz&Y*|^^+tZ_RQ+)FzP9=aIX`XKMPp*b zr*m=#$W(}Yf@^+y{z+{=j)U7|dx-gIJ2Hi+_=t}hNoHyLQ3Pa(_~_gwi zaiN-uPiM0R@zG8+VSL&Y3=S6`O~P}HhZ7$a+GyL1;Q8s7r@{8~EY@QzLGe*9km7B> zl|A@qgO@$%^LrS3(EDEuSmmFUJ=kwUXWD~ba|K`*(H@LPPrmKJn`AxV^I;E0Qn($( zN&;n+3uO-mJfUUJvJCr;o$on)Zs9%9eNW|q3iRsDHk#|1vo03O)-Wa!Ey{wc1V zb?9#psw8q9k}5cH9BTvmm8j4sj+4ML@ZCNw?)^U3vzepWI}h#h(DC`s8q_iDjB@iR z{y_?2Vep~jY{|8#ardyT$B_otq2oUV2sXOwZV=t1)RR$@&PhjmsH2w4B61k&-0=jo z6yoFi+%Y(zO1g3xNgtB5=9$*6!{Cbqaw@)$JGgHTqkkLxlZDn#MH~U zPU7*aLK>sSe~*T|PJ)-2@HFfqdp7nryC4~#;2&HDvWhbsUYCKZIdGFnPl^eDY6c&t z*1#NAUz5uVL(<}BL-;wk$G`;q3sWzy1Gz&CZdf-fFGvs*-_NgsX!~?>(r(^Tx(BHM zrYYaUGb-A5SMY04v?S6^MLRpBVq)q!z5i02f5jtP-{gI871lUf=5%1NkIrBf(c zvlzs1uEqVrtV*k(N_FC5s{?GYej``mNJ^A8)JMzva z{~Jl>X#N)gSu*~)sQAC=AI1OIu}MK(hBBKqjDOHX#6Oq9^M4Ya2lKzs>M;E8`3G1( zoyB^LC5Zpw_e-q$#4Z0D9`odXISwLc@;?wg`QraU^3Es!H%jJc{!jT^%l`!}|ELl2 z|M)a5|E!_>qlu7z{0%GrASamrlUIe|fBf%Y{XiBEg1#XB??jr)TmIGhNG;L1RDtxE zRzDeWCtRMrK63F~CwiE1YJDX6aSfKaKGOec09p|v&XVX!dPX1XBbCW)lHp^0q>xYy z+qoaTB3-0fANkCdHgkPs1)7Op@Vh?JR|p$365-cJo;$BdkFY+{PRNr@c2z+()<+5e z0O9;LTo!Vc!3n1|^Hsh6jatZ#b>uJnOj^tjj}o7qH>ErS0nCmb!0*Ut6Yr4!GpZuo zGwy#tms;M``bdS9QYAU-gy%jSc(FswafsT}EYeu4WpSLv1`IE7Jp}t@UkN3Dw7;u9 za_fH~K{CCTalcSGlAbgD&uF9dKTAg>-uL$(B(o?^yiCQ36=5@0y|uzodC&WW zhB^&!ztBS<%}V=?c%X3f9s3Dx3&nrE|4DQNDvbS4y?!w4fSHf7vOu*t|9mt_TLW|c z+3jKgb`h;XKJ?^!{#lBwCwxBUpVtLUwp#7GAgzI#f9_1w12E^G^U*9v)?gGm@-zQ@ z;*27FAtWzMJ}TZMyR;x%=c9(5cjlkgX=NVfpb}yz%mc#W=8wy;cnYd%A2y&J!{T~G zF<|~V33awTC}MSEQ)r%iUt^vR9n0W#exdI#kiS_hwz4?GVlhT(#KUVJiy)8lmN_Ot z=0|zo)#(Gq{L_@j&Y2)n$)mdOYRe-UPV>I2{pWHbkDPj@peKo^kNd91Nrw5l@2a2R zzb%ikpbV0%@4IS|pa<}aoUN&OXE8Yd|My+pXsPKBf8W(tWFl25!hKh3I7BCnGvO~u zwz}_X8h%Y)5og|a)d|gVq(&`lvcunZRYH>;;l8W?*v=t)|5;(YJ6Ws$WIc>`Pt-tb z)`^{RyzlCsLNwwXSq&pT4(({f&HJu8TcTHe-_>^?(0=Rtt`077^u=o?dF?0^r25Y& z9%nI<#Rn`7u;>edgU+KRXU@7gg8n3{Uv=y`-~YaLzssI447e|@>?w>w=}%sf<%oUN z#xYu^J=E@(X=hCRiI}~~fC|;MvD`;lrj*aYKi)^!;|K`la2VTqWN$K@3n}iB?AKSu z{hLKlMfRqVP@0%;pQ1Q2H0vxXMlD2M1g(HLenZ@{d8N6Q*oLBsesRlUHX|L8(jpB{ zN`l9eR(D!t4tkc8kdq89IPCXn>(hF!(`gYXHPRw&$bbISc;O0y(;`b@lbIHI5WK;^ zh(JVIq>vadZpJ_Rhcf*OPlIS-`a2*c@{83wnKC>BwY2;hXvQo^G_oMQrt`kG*`(c$ zKPud^*e$;$-*@EKD-!H-1Y$aY#V0I&W>J7Ly$a*$rS8W+)isp7iumt6`4e*fT_|2d zVa9(PR1V`moAr_6Kd?lw-cS4oW=Zag``M;s3KN3(?{_kh@gHhL{I|7~i2wMJ@gJUt zivRfYHvjXzPIk!nZxI<2=KW1Wod%5mK$^AjC-D9h3U~Zh52QGs-TRaD{7-ZQD#ZS{ z&-N%g5xl?n;&D0ut18qaHo2Jwi-}5Se{p{+0IjeQANLoRL{HMg`Z%9nnarlH?4wS3 zmWagKl)8nY30=hrx>d!;@Uq+&^6VFre;& zB51x}4@=EATLf)92 z(KKEarV&vq?&;0P3yqxnugPsvaxgOFWdHyaN<(g)lpf(vT(!(Er^R%%JpyHi4nI5k zNwiWPp^x?MuSyQuvlendJNg(dM9+?X1T_?cVQ7N;f`?SVjn2+}MB@HS0&44Xg{=#y z&v_sTyXM=HFeJvBh7no0(F=w(BwZl9#MPiw)-h2x!>LQz<1rPVdVMUNc`3N3;I8-@qfj{{|^)YvJv&Y3VM>@`*?prUCE`WaX#K( zaGT`520!a}sqfDF3m!)effjd6zXJTNPmd|Id+`y_-h2neBJ~I^C%AS+?LcXZXT*Ip z8q=U(7k|CpUyuNvp{3l<1^u6Eqwe|sg6yA#2t@VzuBAMj_%ftCTs&&XLvpOQJoG=2Q+X(fo_xzgW%8cJ zz=u2(0vax3aP)YfJj9{Kl!x~)NZ|!K@)70X7F!;&E-86vif5FEfoM#5I3xag$wLDG z?2?DA?}V3!b4LQ@VVd&|$U`R#UdY2RSGBmW4hj!>-~cEO_kesK@=!r_E#={t z?IGpi#7{;%kkm-agBcGb|CUpE$b+7I#{(tEd&+~4c;H`&m$nakehrKV9z>0jhaoRo zZ()E!79L@>@&u<|R_WGQR8k1~q7{YUlK3lx0P*#oy~O^W1_0EJ|Lh3(A6A1It?#Fs z=6r+rV*nC=S2gkf_B-Hz4MhO{ct0QL4I2;CQe8>B|Jxc8?~6Z5yxR%$ADjH3#`{^r zAN2nvr+Ak{PZIBn?1{m^Pmozm4>N*;fy!hv@isSz3e>h2$94gC{6}?if`OyQB;MT6 z3pnBU>!3!)f6rLUFgzLmp^|9B?XQ2GZoeHWi1Zk=U>sjs=FjQxI}*8|?e7;kb)NqIk#B)=3JUxFiR8@EATcbyNvczcZ^I0Q zuRJI3Uf(HkNa8EDC#1!Ws;}`i-*1=xb58K(^#6YJB=Pm}e!HfUOTON3cemue*5_+S zCBEwYcI}($0hsT%+lyvGg8Z)U6h=pq{$D6Ll+Q&{J_F9bfPtc8-tQD9qdS;Gbi}f` zARDvzJAYt3=8;E^2noy(>pRh>)LPbAr|K_5;cFHbuxl{oqa?0FXij>rjYhy^+CgaREW{=nD(O< zhv}Z}M~o*AKA`dOVLwiQdjcdM_Ty{8VS6$$=chpXapACIKl)&J!hV!TGi5&>>`wbp z5*4%`acB`>KgyCC$9}v{UJCp1)(jgp*pF@?#5!<5P_FF9P*($OKe{`0p7!JJeZaN@ z3YYzu^-KhOi>gi~zU96MX+I8pC-FTX{X^{i8sFcge^433B=F2XzO)~g>S}!FYyZ#> z|9GblbA!nOUvXC1BR`Pgqz_NCt)qw=f0Xz}$pMtN4d6X;0LY{AwKh}GO#Fgh`*E?}=HDnI`8O)@I3uCQ zK_R6r(cGGRN=>ki<0&m>6q-|9)5Kp9Ti?mpTG%h<+YaM_?eB_MAMX=14|z)j$?ej^ z%WI>rAfUZiyw2ha7FRH8Q(hB#9N0|ik~6bTQef}Z`v;kC@t98^o8ri8dQ8>NL;Ax- zd!@Zp`IVygY6&&-D;3D89QniTwX}r#$gdobEb}#=-XP)75}I~ELha;NE_?@Cjr>YG z3{rT-{Af(CxH*o3A@VD8{!nmV#McOSB{U}7bH!h;`Lu;68gFFP2BkR&d*xRb>`^jo z=T{zfzJd8v0SripN)1;v=TpD!f-Dr?9WJei#NP?PP|K(Cn)@a>GU~N!;)gFGYPoizsL7%uix)tliobVmDjI%% z*I)JT_(!hy{<_*_cUA?g_tw~rfhzwvTX>V$X?JO`mWc|y^GO6d3%<#Tw9&uBqbG@$ zi0kPK%Arf|*?fEQkWS_wS_KbjbIs-(gSRf&ih?qB&i5_>EWE|C$3Ep~qQ*@Tl`*%r z;HbF#E3$=R&fg!cV3DXo!>rGC(LC+Sj(!fcG*79&;Jt#@O&1s}bwM36{8lO&5oM44 zTb;>CCw~8KBCwY8{|PqgLlUy?v!c-leiE-0?8(;(=9eF%#tqkro+Yj?l(7bYFTyZQ zbE;D^J(d7E?SQzv#^NIs9{UCAorjgO<9)Zk68oQ3_Y|JA*vWTlAu#tp?+uWF;KKpp z{aCK^Uro@Hul={}G$VZMKW_wPL%H<+yCNV`~i$(g4@?$;3O-{Yj1Nd9lA zqWN!}-z~>MxGjDN{=3e{4@6Ir|7EGpT2HVp5wNy)ki4S;n$uw@h(4I%+W#n-qxnDO zYpH%Fo}9S}Ky2bW9~mOQ8llwVI*{7T{7UYn^^*{KI z3lE&%ePyhT1c`A9rU|yYPX_BN#`<*cb($m#nrGJb#QuD#j9^ zFE%B~nWK(~@G4@w-Cz8egd{zt?uwA{Ro$&dd^JzVAvYVF@zqDW0?-Sae`0*q4n6sf zuey`@1kgu(^$55N5OjQ14wO-oRebf?9a{R#`0C6~F#!K3Ci|izKk?NEV4xs9LVWdx zkT09;XF-pMuUcksIFP%4zZ7x@Q9*najROk8R-a)lMD8{;qphALn;Y?!g*q*7D!%If zsx+aYPDw{^fv7cM(U-+67Ez#3=Ql&%hoR#4qN;zYe0t2uWg+G3z-B|fVk>EQO!-RU zFx}QXqI_MdsPXZUKhI6B`IN8Ig2OgY8+RD;wWFLKfGJ;7&`kV--}rq5I`Si5Ew}iS zulr51^9r&NzyG;O$=5sEUGmjol9I0}tc84SKr_l$J>Ug#G~{a%>H_4e=&11Wm9hx} zwUEUg7FSt(jFBk$I)v91Ao^QinGCWlLRS@K8{yXv4~@ZVTG2>Js2NpfaKkP@2zwMEY$QTX$Qw|Vk^&ek0B|NN~!`QMJb^U424k~y0H zML?E}e>W)pFUnB-f963Q|FQ=B--#w7{@oa!|C8`MnE!=_hvEOsjbMESi}e^w5dRP1 zHjL2xU-hzE{x_8MJ|2InJX#P*xqUC?RmVeX;`QM7W*Ks_0 z>_2(pqTa-t+Hc_l!0<3yg1y#8{G}RHK{692Nb-mI%z_{%nE#W9h2ek72C#l1iw8kp z0ROG}prp=MASCL|t*N_{w+B2AoDWtKzohly?lPWuq;1YI9>10LiAOW?(kC7@C9^ah z*EcCVe*IkGF#|OMk2<(iUf_{i;xUE~fXByZNjz$<3xUTlJP5|)-=Sgfh+hvV2C`U& zu>|nj`ru)SNAAdY==BfrV-gZ){bS?1MjR5b{;?JeQ2CudWPayk8%pzh)|M{Jjr(t-7=Zt1HyRyD z`orHBw4O{P=?gJA3bPuwSV)^q_E69Rt2_X5hqaGyH|VvGc2>d~*x*!HgKMb7;|zws zsYk5$u}_at@flQ87;i&6ZZe+5zX9j7EYxXv#Qh*!J`*&m^I1KHNMjl*5-$8Xgt8us zXIM;Okq^|n);qADgu4bk^F;~revli3ZIkV~A0%dhl1K0RLDqf>LX||S`#~y1Ye3EW zL28jZE^F_-pE%%tkZ)~JecTW7tK^!m`$2XI5Nvd3uP3_h`$2ZzqK9GL57G-Qh4}bc zm*XsQ6grY}8UB8dJ2dqX?guGqQvS<2sZI@q_V9j?MASgO#JiB1A^Z2U9etYjgUn?+ zDng`#Fm+Z7X$-y}W#5LE<#*_r29XJZ&}rK|NHQX{a^c7^xwwa|LaEo_q+Q) zwIs0r40Isu@L=|T2+sxm{Z;>SWdDCXK)qJ<*D?CfqzMA`)v>+niJ7T3` z;=QO9G1jOK@sg2MQA42Gq6q|HW>Lw=sPT5b_r#~6^1TH?9=ewmxS$VW~HM>ennT-Kp6YWSe6C&lu)A2-gGn@Va?1=Q&mGsZ%LE5``6%>y}*4Lz$ z;?vYh!dY$S9^ZAXQg=9HS24-H{D~y{7vbq*^A*x$tDQf9kN3ELiDtgZri1?CX3h4k z?3rYbz&~L7LWAtl#GWcfr8daUFv#x5;W^xnRb<~O$!>#RlicnsDpGj<8@tbnX|nxh z-}2dHmtsdGdj|v+Wb1p!B)7j>uE<`(r*3ZVHppJX;W=baSVe9R8)EhOP+5fXsDVXT z1qoS~kk$d(nzY+`^m2223vMDmp3*uzfab6cFBRZ0VP;=NpV`s7KgM@u%v+Tkecb+w z^J5F&()K~;fBQK8_+gI~(&&$&^G#UvWigAzRu*Silv#zMDU1Fru7U~f{XIBueW`f} z`=I7$XM5Ww9r3WX4^?Iw^Rqzvuw*Gluk1rHp-r(J3TnVBiVAT(8|1VCS>pBvVeJD2 zwJ>^;k>nAL_)`1>#8(B|hXczL?Bm(iV+B6LQM3)j%z-{_rBt-m{AOD0ihOziy+wsS zNZl39gg*GO58Oe}106~FtFj|XEH_SqesjNd8BIE07!yWf^O$6R|B)n{x9~tt7vjAZ zs1e2mH|6z36((+FP=!?qzDK;LHT46EHg*Zbv7wr|VGmRD)C<x}sx>)yrtCu6yUb{xleFSN} zZ6%6$76Vy42z~_Q82N6NF@0tz zQ63FfH)%tDux&jH>FVM-#&xoOT#Rvy-BF2FuM%V(((sgRzv_sJl+mzXU~HQeLK^Jr zAIk(MvkTNYnl(z^F1Qr83ziZFjJfPH+TC$K3y#r`=6ZHsw6>3m<|Wrj#cVdk{#lLzEv1z#!i>LU_wAh`wwKR_q6)BTIKiu_HG!wrdPLafphOWL; zGI$JmB>iyLu_MuwjLqt?CyMjGbZBWkCo#^k-CcqdfT(dlQ~y&D^=YD4VI&US514f4 zQ*8MYT7}KsVaRYL zN)fAsXq%xn=dOLmF>uX2-1axiVA1}^qUwhz9%V6{#bOrUvbe^g`f?PHvuFsuxZ?#m zza08^DF4m<9JLh{a{cE+TLz8$C+2)0ptMa^sQH*{{q1R62D8X+V(ESVSUbrSU-yqS z5}dW?V?{s~BCkQ#xrG3MvDKm_#4Ubz!mcK@@w32bHfy;4gC<;X2;A>K`(1w3zJKf% zvP0ZIQRZpF6XyPjtKIAdxPM|ZhGAVJTGauH<8KmnwG@;f7a{T)?)k8qUwtGx0u{#m zs?3zI^Q&G9K(~sYno5IRt-MymcG6(0`PH$-0qBK|pE$odYOhxp(*~O+8S#h5{Avc7 zPwTgy)=#^e9l#@DteC5~=2ycdw{?cQH7KKGyvlE;#lCNQ%(3J5|3~xaj`+>_)pj9Yb`JE-_a)gPO_>(E={C)Gd1JCL zfH2%W(MN`t4f;emVsoO^Q$5z*~i|KWZ%Nh(_)L+ zWH%KRdVaMM%>>zg=T~2frCxITKdtI3@ejy0=U08^D{eDzFt}~buR3sePLN$)kUi`v z>*jf^hn9b_2owg+ukPzo9_qe~kD%^9&Xww3ULKYhhhOBND_ToMCtBYt+>uOu*Y{Ob z=}MK(mB96bh8`w)#1iQD5*FXFxX$9v4^XsaF^a`f7N20Gc7AWxljRM25R`u`2-4j7 z$Vvg9IdyVBha?-Hi@QI&?F;SuV_oEsqLGEe8Hug_EZ^6OjZgO+jzY6MoFJV<>><45Sr zdOT+^;Llf>tT8+Qq_JjR{=PvzF`-_Knuz4N4zj*N?aQ#~r zcY(g3d`JtB5}N;&M9-T4M=omlH|$l~9Dn?G*{kX3$(OxqM&6PCKI~OZVCCZf^>gb!wUQI=R?HuFv+j*aO zy+J1W#A}3Pp0-zsAd8A9{7cO@6kfl~R(MqyukiXFHN-17ngB2EzX|X!Gtj~tuXXs2 zOMd{&Lv7u7G}aCl`r&R^GfeO*dV9Sr|c zlPt)YeH)FQeEFB(XDGaU_?JDBc^a>|Zz=!s>g(u(np77xLbnDzK>t#cA7R{{!1ECP zr3QcA@h|U^9m2nS@R$vYw||-7G=P6;1JbNU3&8zeC>;I3d87No`Ijc57tQ|?e|hT5 z@>%})@3L>Z&-&Dt9^{=*eQ6D5x$IkckY(%3wP{LUR?buyRLHC1vG-9!eK~+8(3g0S z7N9TP(ZX9_CQT32mtv3Fz`(v80{L|^phkbUajLbx{O;5R>&svB0M@PZQ8Y*4(w98p z@R}~V)OdA28jRv-S5-|NCoQ&!?dA503XyQZ%EaXvrWjNTPIN^j?26xwpU9OtmOsR| zYcb)qL3lfc03sDd(2~%#%DfCIq`#GQFIIxZ()`?XB^K34!Y+2n5irAueSmX5P9{fBnzD{;x>L_H- zs%;Xgu>;H)$zLL+;zsne{!4M^X9~7_#b*c}%qBF%MZQ6Rd&~-Am9W*=UB%gzU`JYf z2GZnY!Ykky{!L6hm6&=uJNi-3&924G&}pM4Wk)Zb&H?WdS5v;n!64n39X(Cd?hv(e zW$oR8o?CAM;gs&oRpR|tmrKJASJoRFH>Ob+R$KyI!vuPxe zH>LL)DO+Y(%lKt1Sym%U03c?!3Ao+#QLetb;%Ba3_C^z}Z&~+R5A&N?zpR|u1|n?L zRv$}dcHqZ5(F1I@_oL!{79s6r4Y{6~ ztbT)2*z}kMFB$9bkXHMBHkDJ2^IFliGc?a@&6{SbRoP&*D!}V%M+tReB6E*$hEyjX z=e62uCiyrI*iZmuCt?eOGRlxT57^#T5%av(&r_9(_|0e*w&@Rl-`QJWpiltj7sF&U z$8v}+{RchBYqhoNPZIK$9ep}o$ZQ5TL|cn*S98UmS&MM05SnqWI6*e2Be3r~JB&J8 z9_9Yb9ACG= zEnnLvNcn0m3|4H1EbY9fiVA(hLM(^rj&{S!7xzaLMo%(PF7CLZ2oy(`FxMHu`#Ua9 zR3M4hC`e09D{dQVCLooeJ|Z}5%h&QLQogvo0!9JW_9oPb`x2wZiCIeuhA6gD*1!YW z4cwV{<(itelt&%?`XgurzkaNs_Up6RAM;{I(ulA)fmd1W_6e{z|KPhC--NV$W8xib zz3zMYc)S{HcWrSVb-sc7UdmvA!VooZRr9`=^RplY<=#Tk0)>M=_D^6q&S$qgFu#1h zxg!i|u`gz7h>d(f7Y@^naOC`E4fNzIJ}XJ)(h2#<7hIFf)bZKg$r4_HAgN9U;^_}u)jB?V z!>RL#&t?Lw|FNhF?40@-jR};}Cgiho)D~q8ps4((t%TxW~<;t%e{!`<1oWf0& z^v%%!Y>%{+uAw3%(khR?6f z#&Z`wD!+DHQyZh;{MyMk!Smu|{8t!@OJC)Bdp(d6n*SMbZhdKbO6!X`|K}il=!=X0 z|D4qPkFXx|J9$U`e?XjUbLhDqvqv&V^MCF{!T&+lt78=Z>!L>J%Inp{{GT5=|HpHx zgGYY3hJen_FTYE6$oYR0hvlC6ysE5TZ#+=`E8k`1zq+E1c5gBo!R}QM8><-A+5YP`ek-j1Y5*SE`jwV%>qAof z8UK3uuXC@c!P@?7n)40b{|sgb|2522P5)JV21KC|i(V)k{Bi&DrBM2)>($-BxGM=;k`xI$`L(u~IsY%IF3Y=qjjD(!ujbkOzc3#ZW2dq4J2KH3owhn?WDI z6Dc#8VOc9Lwh;S3tD}}XquP^4m{fhszfwj5>;dOfWdXQLKHhEY$VZ&V3jF?&Vz{_P zsv9R*8S-P)xaV}Z^R&~!kS$gXj97?ED_8YWh|8eqkd(P7-19qWzfWBVB`=J3a;c7_ z|9tH?4Z7h!`@R-{d5Cz&WxpGsCmHV?5AQ##kevkFhyN@rnXB#h&tsJT+%iHyg8Oe! zLj>zw6_?-4Db+$ov)x$_Lp~i1X#vWD&ot=Vk`64@`7Pqt8Bc8dQV%Qtd8DCZ%x?{R ze`bei;QeS8sTfOu|CE#@XBG!3#DnLpih~LfWN#mh^Gf+Es<3PmK9RVr;TTO?%++6r zg*vY^2G1}6b>6BOek@9#x7vAoDF2}LvsVzr%P z?%0D2XSQ=jh=D!Z+4QQk2XXvnTI}t=YT15DROsF8Q_)QPf}d?ooUQ#}(|;Q~qCMlZ z8urZG&EASQlJpEdb??S9_Xow8Wan38PsX<(%h+Mv^%b2;d%^mCn3A1|sKnz8PO(#u zSii+7C-)NSDMgFX5K>e_OVLn>Pj>W!{FXFc_vs0megCPDe;}{rA6q={V=q8=qOdv# z>pRxW>-}Lzr$7nvr=zIDqAQDuECzxV`u$<`K&j);aK5ep2I}4qB)6iw&PxV758Pjr zFW`CL{vv>6^v@~1`}b~kfA)y4j@6T+rv9YIeB8^>8+U$S(NH7*H19_(aAy9g!l;~T zOgr=>HO5E&>A*`$?0n>(HV|INgQks?8l&=0dwto!t0gG9)}#8j6}MI#IQx-ph;kV*> zi20KxzG}~(o*_HL{OP&-$@MV%*;+UaFn=lr(yYQnq8!%CRldpVF6*7SQ_mS@@46GoWn*To!ljdRxIOO02<1D<$od@09xo&U}!UW3U*pLlhV z%+q+?1G4Z<3>0|H18D*4-7lhrH(s;Rt+rnhuiI<8 z@j3fLWTH>JmP_Voyhf(D@apn{!mAi+g?{yKq43I!8sb$KO`u<~!iX69wQWc!yexdj z#B0F4HVDwKdLT*Q)yY+@@oMJO1>^O~1VFWn#rG&2yw=8t)35Wj`0E<4Bj0GejQL;} z495>%uKD0}^yF(kSdvU6UOwi7*Cg{aUV8@%f0S%}+#h`~4(N^=fz`V(Dq_mjnKf`p z6VQa1-B^)ixyYH#U%UkKuNZ9 zzPUSUAmHMrA9cR@QB*;QMAfs_N6%BFaKQO#wsa0SC*r{0%%aUjVk-%cnAjSDwoGjO z&A+a>;dIUi6M(yx|E#iBMYd7rn@h_7hs+Rj!_V)Mh9lHYfT*!hh=weBvY5`|3GgFG zKdu%Db-qvKH+;|4PfNkNH?r$tGX- z1K&+8bLL~$21wx5eC$p9th_CW(y)^iNy zi^WD3r&yfBNYs3+7k=K`J}UV-TitPi=`n*lDftTC53stIlrN$5X|W&e((nwB2`20+ z;sqbII85L6kQt^P=tOG4en zilSZ+L0|%s1P~0M>`Fj|4g-Rq5EjY%IaSr$Z0US|zvunq<$0({S65e`I_GmvojP^8 zn^my4tU&9&LNi9TS)=%Gbi~nHC*^~c4{4kJh4C{`g;c2$~ zPDVC1`x`z=^>9wNO=e294iQ`*9?CC~zk_CBXR0#sOF9F?c>ED=7{~HU$S}4-)K+<) z4e8fPoKo})&gl{8*zIjJ9Yb>C!NC2BiMddfMO18{;v^Lf=Ah_J#WoDj@IJd9pemxh z+}K*vA8+?b!^6(U^B*?M$GKY+$rk0C{()vRAD`sS4fAm-NC?2&##S2MLd8cDX9HI0R7{~_2^Hf( zp%Nd(?L*^>;&Ts)&Ut)p{w4)7hWO~ti2;ZS6Q9$qM^n+0sraaym_X`oB0f5WGe=pE z_6AujKH6%$;QQVQjPHn#P8^8%=uSEW!>^1B8y_uUm#Xnm8?l4MM+e&B`O=t!<4>%SQI~f0q zTU5dS53~m0|C1n1?({tPKMIAO|N9?_#Q%p_FCc-%r{`}__-}|$?|j4@|8?={RPB5fI{xemzur<(FQ_?1a{wIwE+lvf?d7R*!R zb#$CgUK{Qg@_G`rOkQUn6!MyY8j{z`Xaad{ToWX(HfRxAzw8eL%4>HMy}Xuyd?v52 zbk&NyR%ms>^7{7-h-y0(f1=Rj)dOUQm)9`Xr6R9sYZZAJ;?o<(nv<8#A4o<|rsC7n ziHRgH6Y=RWoOz18I)f~h?`ypeeb5qM%Y#Bz$43hvY#r5LN;)};`(TftDM=>W_f=Nn zyiT7)eEPP=s*Hl;(`$0T^D-(9VJt!Gt!;yTwmBClanO`cxGUoewM+ZnN z;(CkXQ`f#AVbKh2;(3++#B5R+6ZyWkk#Mzz%e4o%fzzH>xfeD1eBW&&gw=Z%CrFYA zP))o~*u5uEM|STGG=kmx2~_iWO3nAZjjrM`t1!>2*ug_pzMj}U4LSV7<@;6+7lT#v zec#ruK>X@4FoP}97wW3n_lc(g4|S%a=z&6$Ki?M%{Z@aA-9PeIF9Q*nff znopxhq2fU*UZCO&DtciYhUay8KKCf2J;464Z>TVW(???ec+yB={-)xH%-=GchWQ%^ zbddRD`^PCbhe3+{dE#;>Jcq^Z=uThXBK+m^G_=UF^4!}e8JC4ZlU25+KmfXAVECXu6thcBPMG# z-ZyImM?5WH0T@K{_Y7B3aUYf)7#`alxsFOP_oUrRafOShAkMc&3&M@q521KM1**V! z5l?9O4DphEUwUR;6*bx2<$fSU{=&&9&tA-Cj8VDrsKIMIG0TAukPU7 zSDq(Yb}yH&i08hyQW=0Tp8EuvF$9^lXk*Y3r$2H$_g01UD&o0~jAZ{hj9Ikda`9jS z6D->Er~v|f?0M@Shb}Y-!Hg`FsvDT6@!6{^eXW6CBu#!q-~foGhM-uQ-qpfG=;Y$oT3$1%P^p3J(=)skjpq z3Vf}t6%JptU(iK#&f}%)KTtHfIwGQO9{$N$d6yt0fA!SL-kPh1WWuU-52*apN77O!qn zleivXzu;1=+5qwDO&Eqe1MLX8}2gLu?tQU~L;?+IhSNLy?f6_Sg zGeQ{t>*Am1-&6Qs#rr|`5$}lq#_1jtwZmP6_qgQf-p{%L%mO$S{{M3bS63FVo{}kM z_ghd)v%A~}xM$Y(Ce+aM-XBfiSWW$m25E>_?;RX2o>qZt6n)_F>NznQ-#f_zK~jnj z@#@EP)k-{VgjN?EPrK!D2+Ki5HVQ4Cwjiv&DESXHhyX4!E&ri@4`G)>=06O;$c_0A z_pDGv9gzP3Rv2U*(YvG7S1fws*3C@*LxvEynfwQmm$oo?%fZDh@*h5ZM;XAc+&xwD zAJB{e%FODKyqAgSh|^z1{)0k#RrwD_vQOGM*&_ep@^XdjfcytEV`Q6kT0TWboa`#{ zA4vA3U{&Qm(C{>F-^s|P{D=NjPx%jnm}2SjAI@fq{0BM%J9pg1Czi4N5;A$M0`nhm zO3^1J|G~oXOfi~J`40t?pd+iPI6_6u$55nD@gNo3Fg#=a1E|v3JFK^c5m}U{Q3G_! zMSqIVr2RdRn}tp|4YSaf2}Z293ULl266>wDxRJWvT7c_y{p-HxBGy}Dqcr`*`;WSY z^_SYD8~mk>Z!5?!`b%#SEqd!4Q6mY_)6o-$h6#UZI1QihVZvYP$pou99(6z&u2lS` z&TONCA`C`<>1ZY!fO&uE7ZzM53mw@Xe+>*|q*viDxoLp{H3E*3s~1iGxC=f@a6`8=^*L?@I3a$qs%^s%dCx^2-tR^Vhj}vsHnt9guk>T zto^6?I!biT=j#{WQXpg4Pnkl5>k$)XzShO_)6tWucz#=A0>Q<^eo7sT3d~XF>!Sl0 z-^a?E`v|^ILk*j&Tb~l9WHQx&=S$Fpc;2vY^*@%$wxtI+RU);XwT&zD}fL+E#KzG?s7T)*4#c*;-96k!?jO*i%rkXA(f zrg;7<=!xsMiG0&(#B36niG0)1;HFMdI)O6MZ!O>SbsLF?C$dkIFZU9L^&_el`KB{s zc)sbsQ3uJ$-=PuZo7%w*TuR!b%Qsz$T2+3Y*w)uH-3gU%dJlC*gHiKM&s|loK)n7d z43hPWkz}btDh1-%a-FYJT{GfgG!P%_HMq8=ED9QRV3_VXcjHmuc-gA@}Y*bdLS3usy7%Y>wtg9w@Cp`># z4?z(m@0uVv^!!csb-Cz=+t=HcDk3!4*E+<2>e<(_*G$^it;&c^*w>FaGZp(fyRWdX z<5L;;D-#={hS}GYKZJdaqZ-)P9%w@L^$YxxN`~97uE2R!UaEb4{xS(6jD3xL2(0fy zMMuyV#QzV@hqJH5|0LEkNM!5L!)gfH5D)P5sW$%?u@E%*CRM}(1`zKEaVFvcoggbP zN8$hV-i-gx$j5pJ{=bYG&i^+k&g`K>F#l_uC#Hvp2Q0jsE>+_J7GejB2h_Txu{`Aa zsZRc-Hb6Y!Qw&2sG7dthIo=o#_~3N|{^1{Y0Xa;uf9VDPxG~N%r|2gfkxtj4(RjKK zW#MAsAHRchAXE6q`*0uCKiv+qifW3l%HkmaN`HTfDAVg^#MzX*-UUzf{LiC+KIlUvsmK7ij}Rt7MXRVeQ_`4r9A9n3BS-$zHB{@TCkz#%Avpm9NRYZ`)(rb)G(Rjv1I6C>>&oNlI!Kdmsnobg5a-`V z3Ki*|^&s&60Tp|wxK73U7`0)2cI@Lq)zO@R`pUW(uEAFkz^(e;-gr;1T%j@k(fX*5?B-znVL15}(_NiKJRp;ByTP zQN!ngyP4G$_^jxm$LFXNfzNm}(&O{5L_g|e+C5`?2xgbQo(3w##lzEA+fwF%; zU#knbe}DKs(&+mQ`}g~+(&yVnr(C{sTZNVHg-!J zHY?xSocoFgbR;EEzBbe-`i$@2Vt`D-qp4cx^QG5F#KTZSBA$aLB;rO`Rg!$~Cz)yT z-Q!o}d*HNQzHftQxgoA4L-!if(6zb-ihSSI>O#tQ^eD);0EI3;V-)Dq^cU|(YsI`) z?R{vs1RQq_IBpzpTsz>{@V+zj-y-0AlYrw|0msb)j_U>-*9kc85pW#%{zrIPMm3e0#ug_kiQ{fa54s=;;j{e;~f2u!_>R55!{>I?$hw zii$HF=LOt9Dc~4~QR{GzD14LIu>N818x3AB*E`8AnQ=XGUGW1#y$`gcJuIDAkMP~m zJ~Q2lJ1??U#d^74=jzNBv|hd)J#p`EwX)uvgFiyAm;dY_W{WY@wwT5a6R-RFflpg6 zAH9{?a%Hwy)rrp*{Oc}#cF$J^(3iUMDC^}pXvXFvv+Lyobj0bu3S#Keg`4n4(0Vyd zA$>WW4ZmJ)ZzTKDZAA97Ph$SUdU+U*xC1jnE@>yGw^^vfX&YNuc6YSbOn7%p;Lvb$^ zv#BV+C=Kh6C40lg=j=RxJy+ZXc+};uKd1ODq4U>!v<0C8ks^QHHBS-f128$@#Uey- z@D}J*9jk*#%3rU6p14F!Yp|TWds+Izuw{{WdO$f^)tx=k+kD3 zK8e&QI1EKk|4U;jgJR$RDD+3pU;mJpNUn7i`RlLH5VaNZ1kgid?`C?_XX1+r*~a|! z?$sfi3_%NY#MvG>fBk$LL3S1S>qlvL8riFEoXP{t^=(e5`FSduyHE_I;u$L5q@tLL3slU)c!TDnvE`Rm z=>6Nk{IRFS&1rJ-^l6x@K+BLncBDNMk@kj&F#FNE{IQbRge{8KSCK#V3UQfq!noYT zG9oyCY!+vp60diHERsGgH|0*PgmM149g|jxybB-FVDkF`HDs5g(FB3;+d*1D{@BZC zK>`bY-gzCaQRKz*$NK(E;$nLzc;2}tNJ{Y`f9zIWwUR&9NUICZAA6D{`Z^WgqR{fk z8iQ{ZV~b_vA?pDGf$D% zn{An9;rkyg(FbW(SJcotQU2pES|oO&L#WaNI8WjTvA>c`w^!GTvF{K&*#63gM^&+e z`TnQY0Q)OLL7F^k2)O?N3XR`m%O`;p?KqJC>8ux!!1QJC^9uhB`torbbNtuoOB8xC zr7w>X?@a2;5HJhiRrucmWU2act+~*bPg@HaymeV5R=tNB(wDtx0)1)EHc<`vmXDxC zXnk4OB2ZuIA5jGZec2E4Q%GMfAJ(cBefdSJ3)YuA218g6P?3*9)0dN%4E_%G!;+Mt z?MuRbSdU^ctX(*wVO?v+hIPkt+zhbibN+>MfR)$}8^LbCz8?VlSrpj64;`>D$8_rd zB+fH1PZj+yFrZ}*;!!^W3hzM03DGPs|x zYNi5C+75$%Cf<)$k7&_bhhW!6_dP!Lel+yN9R(B5pKhVy6F|?B_Y`8qpo<@VL%IdT7(9J;!m*3D7@%#_IHR!ueABq3ztY?tO?SHnyf1~|xVUGWL`;VT?*?;1l zS^LkKqwv24$kOb8qGJD>3mI(uRI&f4AwAlQCeWjwgrT$+%qP91&ssc!7GdmvV}m?k z=5geVSnK{b!KGcYBI{DOYoAsZEU!=dLsW;T zh=I^FdG!F<;pLUbx>V%VW~!oJ2LHjIXii?b_2a=O6nPz|NrKoK`um+Lh>0XG6aIsT zGf$D%gCL8&&!?XieUSff;U*!gcaVS1{6d*(;6F4*6O!4>_$A4N^B)fKcHG}n{fE)J zRT%~Q58G_u`FSehL0^#n&={nI=YJIIS>b%*D%(lBCpZ^2q~`(4XZ7$ z1oUKTKAKKUG%2q!oOz18I)f}yL>3>bQ&-4qQv)HdvnPeT{)-xt*NHkzURjR^$!i)~ zgqGJ*bc<^h{efU^*{PS;Ns!OvRZCZ`$m`+`wP~=thW3M~o}=PD6q>wxfb7un66@u+ zSg%}U-tJ%43cFr@q_$zbJa)1oT;qEAr-T6MR=Hkogq}>VmtQ8XlYmXEm!Ai>b?fCJ zpo|2pt(QNyf>xg1Y0dv1SYo*m2FWaA5uFk_8DGSU(CF8wB+;LWXQChdm?HYcimN}9 z_ej!jMNb0g>>cHME=BjM{PFz9c9JO1@C=oIbr0Q#20KA{9^hPwdIdfI0cNoE@fe$SUXJOW99K5oC9M; z{O2O>qvk{R!1bZ=Ci0ZGGv<@?Wci9*C{eA*80RcfonYj)P-_!Hmv_+f&gK*sNT zyoqK^=w|lQDBk2jN1Xn4L=!<=2LFO~c<&=g5}HT>BJA)EFp_gcW#at0 zBz~S1ExzyZ6siCs@qLe7H3?GqzDFLl)DorX`yOk)7{IoFr{WZS-(wlt()Mo?60t59 zmGA$eQqdQD-=iP372o&h#{U-I_c*Xk)r*jO!E<{-7e1omM=GLvqj(Pd(CH_Ce^FzQ z7aG69UQQKvqL7BS`$y3R+)}d0*HonVf&`7dgAgn z@x1FJoK2>lcOA?`pzZ&HG6IwGK5;hDk-{0DcRf>E;MHtK!UomeM}FS*LokrxH9s<5 zU!fstYBmA%u;*O|#V|xwCSHx#P$+l*NyN_1P%V7lW@tvSvn9ManQry{ATsJy{PF$A zsaqo>?Z-62S5Fk3s2D|s6%;D(2RT~Bd|XfT&+#=rDlESCMjP-|@K9)cxoDWxvWLCU zlWBZK6W7S7n0TK0G~=*}uMKeqe2sim8GsRA|3ou(2ebI9gN``;k?}RChBCNQxuHJr4i!$J={WwKDM*DTPW_9s(WUL|| z6ZY#}VzNnmy~sGM;%f{j)7dX4ZX4?RM4kBn%s=5#L#015zD|LGjPxq(*FJ_LmF)Lo zh5dS=auflkGO;IWlvz}cJt*+inQDQr(P&2a+RvLC>{l{K2*B5>O_A}nxCa2`qry)` z%+{VT856y*smABKr{H7&VZrfD}#|u-@p1>;OlU- z4qrL@1-`zcTHx#Ib&jtYytx5iC8!I)m+PCz`1owVhT90nNDh8vzk6^rZ1=gd4D7GH8>#Auz>gxt6`%wh> z+a1E@Un=i^`dX8>_Wq|=FAKSceE-uGkSSJ+;`>*R-KR)D;Qdcg)sa4BFSbNaT>56- z|D-U?%=@31gjDIjRrxfVy_D}?jaCNmD_c*n_u2aJ{VOzM_%gFvq}A?O6}?rw|4AWz zAns>aE&7b#zcP}2@&+ecy#MKxy2uT9{}Y-qvdubm|5g{d7fBsxUSCDaf}rnTk?hHy z6F&@O8z1`}N5j)>`JIexdjC@e)kA@{{S6A~phRTCs@CTitQLn5dRnKj>Lc8mwNn%;eRI@ zMD_4*n*YBL?@aQ4Cufer|2MBF_`j&&A2kgBmNSC?$y7u5M-$@zUi?PHKgbE@{~KRK z;D6>FVExlnI6z+z|7Z9O{2w&}Pfb)N-d{m<@d#mtyy=2)RGwkg$K(cBL@*;e85N|r zOV9#)U)zU~g5aeat>KJx=8Z*=IfGh2NMEG*sAj8N4xZ=&3T^d<3K99>jap6HR5)XpZGmS-=}O z-sR)A=HEkYL->zAE#CYh1B&WFi~(iTc_O2?PYZPbU0H?lL{Vox0Q2kLeJcIGD^oFT zUI)dSPl169`xH5jFct5kA!<|cdzTpQACX@;FJRLXHNd@(9w3rqG2t=nbVe;~@UoXCIMkK>%!hwf>?Ge~HR>;XXkv;qUNST<+<A>oL4w{LKja{Wr0mTJ?!$|FriJZ8>eg zAw3lPHGeYJHe8;31|t;fDS8$QkG_1S3Nw*auWFSZVZk74c!-!tr28UU!)-J~4UJ3w;AFput6&51jOF$73|VZeZL0i;Uw||b4HYA4 z$77behSVbfRwl;a1mUzRS^}r5uzqE8>~!3vGO>vFMs~6@+psp|cgwg&#cN%8^JzAQ zY>6%MAN?pYa%Uw2r5{kShl=Y|+}aUE6oxoS#Ctk`%!u>#-~Z9@>g|4;Y{02LUcIH< zU@vnVihzytbsrjVwd`dl^kmvzUf?V;WiJntL^M%j092)Iq>M4xSXfNL$q6pJyFF!k5T{LE)CoWAB_HqL8+N8a7g4a4UwghE5ds$>x z24J+8zn>9kG!uU!dzp)l%-GBS5ED(<%f&QAO^GIf9wJ+_m*4prvV^_tdQyP&H>%cB z6J)O>aQXvI5Kg1f5;(0lSm2b~%O$+GF!pjCu2Jz?SAOX?HU?oYyS*P7xt-brrK6~r zN5v;p9H62UtWfOb$%WzYD*Ve`@9FL3&A%9Ms<)Rf|7x(8nHh?JjrOu04Y*qN^4b7J z!Y0-?TYeK_HsN1>L=w?NJ?pf=UY=1AYP6S5G^>`qT%jT~vc0UOkY0toyh!advcD}C z_VUAD1QbW3MuDQdZIZyD6SaiH=g|x}JPWSs>}7qrCdgi4U*CLG78ZXEPZ;pG%@!JeUb(vXn}wcC&)5Bl zyJTie;O{nYS0~78rwsTz$^=CDF-H7-hi28n-z%#AM8@9>U?A(b3j9r{A!_)`U}R&y zzV*1k-{F%w{H?*a$C=;w9cl@GSIclYo@?!Ez~BGSH9`1Whb{x~*JpWT{3W&l*3zk% zLd6m)3aL1JA{71_gS?3N+x52I{@wj^Sp2#>I6CKH;zA%pVfJgG63WLvlGp#g}+}0D)dLrZ>Xh^UPXSxMQW$v z@7rIQ{TnWS_%qdGg)$m7s{PB1Z_Yon;iOu`HlIf`ifvxv&1vRU^JnakVF2ECy`|wT z)LT;*CjnbND*RM5ZjIt8P$Tw;u7Q=wBFKM2kTHvc0ni0O1@a6`5$*2p!*VJW^@%7g&08~;d z6ho+(L4_3*3Vc;*zv_wpIlf*y6c%554;%1R&{GkQ5nnDEX0_~BFZ5&@U(v)hllVH# zIIIe4Lzw|zBYPU#3uWb(r zeEpMZfv@#wM)>Lhd5IZQwOU5wK-@m!{J3hV zetsN$AS}M79W>x8CsPrR5npG2t}ebhp(oS$dY71N5??Pe4y*VY1Il#v>sN;|03*IS z^8uLO|5%2O%;4)37|2Mk!hY>zI8w=e?)zX4zG zhp}JYqt(UNnCjTC{=_wt__~b*syQ;(ju`NjAIAUs4$Z1%zj~n~Gx&M|3^aqU=?oYu zzA_lul>hgmz}Ml!I(+@8q`7=YwZPZaA2_~d@a6`5m7p#FU#?dp<14Wl0F_R~6e^Zb zaSkI9_!<>9pGB-M&%UC!Un}>9#n%`64EUPZO;LZN{koloS*`i8IeIc}zfORAX7ROy zaaa}9vO@-Zolys1v|mr4S+(%BLZv^l|8=WEdKLDok&*0Q4+{HLyjS4sdDN)(YohWc z^Czel_<94)$bL13yaMOP$*2p!*V%tX##c^L0BSiEJE^!t#Y-58z}LyFD&|M8=%3rK z2TH@@Yxo`mzG72C<7?M}>f&odmulc^J~7#({rU&vu!^r z$7{DM^hd^5F&M~5uL56RG90O7=kFKzdaP97s~Kuke6=4T{I9xH3w-rNGs4$e-rQin z;y^+GzPv9*#@COH0jQ`ZC^}Iwii$fyp}^M%!^7c=^6|Qe&Iw$eKK&tR{zQTyA8*-@ z0f?zOAFtw0VmZa0j?+FNNj3EQ1V#`O2ree_!FqA#DEUZrK^DsgJGWc#{oNlJ-;s~^ zc7N`ZETtOoya-K*=l#EroR72+=N0~I`FOSeheQx2A1{&kpH9Ws7)ww-(kPG;(LY(` z)z2Sqd?)lfIDdTFF0S7he8YILsvgGYozLzIkXFR}3)%r0f}Z&N;ZSyrDO(mh#y)$& zk-+>PVm1lP#PiNCf}7yJ@S5czV~VVdS3Bth!ZjC2ui=q;&CtV6@pdk9tQV;5B){fa(@{vP*MWyBv+J2jyJLJ5AK z=f|9xiayTX!}RePdHhZiJ0#W+H6%s(_)Goqe#km>2xUyed9r#T-VYf^x7XeeIgi-E z-Vgc0i^O-Xf+4@ZHA!oL_e0(R(&Q{>q8;1ty!q-K0(6g-K8^UuzXaUI z;)vkp!D+zlcT6H|yCVT&YK?OsQ=|euid$&Uo8x+2{{inG^GO^&T)uCxKFLZN>}@CN zy?XK;#-=zE_VyPVjY)gE6LJCv6#2gSy|A})w+s1pMGcehGj9lcn@lwj@hCJQd%G9E zB+JZ!FY=9rXRs_6;G`VN^IkpH9DdzT3&y!|`AE>wQ?~pprc=y|6f} zy^Sv6_I5hAw`V&k%9zh8l=m^_?lwxRd9b~$otaWuo(F}3t)LIEc)Bk~XWZoWrq0MJ zUc&j%CihO_H_2?DK_{VNcK6nRPr5WA`D!Lt-bFHVA>UAZMYMYdv3+bUAm!#}cr;p3 zZ@}E+@;k*s9Y#{Ec#0=!DJk$^)R0O%izcpu%IubSUS6}W^gR$ec&6!Z%fc5(e``Qv ziWhL;BdZbLdwB^XlB3ZJ-O|e}=m)w6%J)EC*6Koj59Ij-bn`wHr6{=kXS`OG{6(i+ z{wubH^{1nY4F2@lj*9$^>$TkPjPh?9EPvhmIDHWQ3iM=pz1Ed;$<%&KGtPZwzV+|q z^R0-N*KMl|!01nZgJuj~X5*P#+bHx$_NQlpfvn>y{OLz&h#F?^Vq_y8&}19cV;&(+JfA?q{9pBqEHS5Lkru+^s4&y7enCjGf< zXbTP~^8IcblkZshv&}-jkD!Lh_nk$;#@PUgN7bL(F-H@2 zus>G^QXNLcbD%HCpKAT41dini1BP@aBg3Tt=OO zFEO7_oy}E{o|g%gU(r6E@I}QeDn6jX3JS%1J`lH$h_8C0e~z!S8^X@#dp8*7^H?^Y zkufmN=Pnwi-Wo*27tQAzS}F1|5ub@Bt`WXW%;%>WhgCssDCGFk=JN)qVV_SD@tFb) zkh+5zxiwQL4Nf#)G&Mh`HMmaCsPe{a0!}_4mJdX zBiZ}=abD3!Ena%~*$DRjx0>L30Aax`2Qftf*pKD?zc|x|H4MW|H9eiPx+}nBrrLz7k450QAYD z<_LA~gCkP+DL4&vUwgC8pR(|g2!HBJ+(PxI8smCh{{iu_QL|1 z)32uJ$&`L=rO}wwua6-Na6pmo>~DmAjbAI|+YmKOzwU(-$#T5ns0JeLfhMG1U*I>A zepTRnuzo$CqX|36pUR1WRF_lH5%dM=R}ozI(EJzvR7=)5S21sQ*P5{Y)QSHZ{HZlf z6lFB}Q)4#-NGsxeNB-0l^kh0d(vX-<0yE)HU8S~~Kecl`pYMb}^+N+?07if6O*CV7 zFdHB7pd(IyWPj?uHG=di{HXy(vTtH!BR+EZOM$bGzGgV{F@Gw@EwJ_`)dFif(2TG) z5b_eUubS_*6m<%|gg@1CI#e7U;QGi zKQ;dggFls(sEEhtPyM~FI`|@gst$TG9Uu9Em`wOG;ZME6IIQ|pQ$QK6)a`c_er5Eh zx?_mUpOSGx_)}SsADf+zqK*t~Z8U;`?QZ1;R=3~v23-}=pIV1&75QTNv^}HAHk3d0 z)aPQbsy}7bu7E#v0L)|0C0T%iAymvjq1l(Qr?*KpSQn6F|-6@@LN>?)R=F*qzCV`Q2x;v%marSixThqThyHvwJ)b7po z$&X~!1&1<$e^-g!lU0f{c4tyCv{y!PLr%n{;fXJm z-yg|{hd=2$2&&2gi7%Diq6HdwvVP^nA2kyH5OGf-p1mhP5I%^VI3}NhWVKMe`u%L8 zeX?CT58AEw`K%o?>Hli{UylEa?8TYq)4^)Hmwg-*t%~K7RyG_b_+4U`2Bb5-O9N8z zyAH=)@Vgqn$@pD~-z5Al$1j{W^yhIcgW_vY#0v$@Ym>5snUMCv_oD}o6%cW!;K&Q zQEr)hJHKC<$0d8R{^VReLtJIZ0f0CZ#%|TiJEc-ieB-t#cZJ3JD!#$2r-1E0Ff8Ey zDV3YBuM;IFzj+%8KltvS4QHdR`tI5-6ujB8Y$FBcbox_&UuUL2y?{KYRAw)fTUiTe z#sYkyOc|;&E&i@^1U&lWL{3=*Wx9ATqum!lnacKp8U>H)yDRM8KI5<44>;9}t1&Uk z>5VOqo`|C?-=+@4tdCbhx#|eu{+soHo!rm#_9Rf>no=uR4V}Ji10y2oTX#-<1bu5H zT13#dDE;{K`gUp$4g8oq^V9!@z7=QwnGQw>b^DXltw|{x%@C-||0i|xWTHErw%s|5 z$*>yQ#^!eg-?WuwCjm>K+%yXLXoRty%nv9X$?Og$)0x}yOpj}{xSVw)_NFO2+IYSftB*w zHni=E*F|_->(J$;ON7tdgHGv!Jf;=8^WepH1(&kxttWk^sbE{w-<6s%N!f1i zjJmh2oIr$5#48pc5=h6jR6g*|$f$guwcv5U!{Hf}4CQx98|~=Xn!g&ibb00`*$c~R zIK6kJXQuq>^iEx>;A@Cy_N{S4JlVG<$e*`mw_XUoW=_Jga1=Q4; zR^gIvIIaE9R{J@ZT7BehL{S$~; zOcSKRads)%?pZ_FA&qNb_iUuWGsTnd`TKe$NMM)E`<9@schbD|zGAn{IskKU7yk68 z0WDyH#qM#SU+@6Dz`2K5vwHvGtrz+mVlJAkUHSm~v(NB9?~mHl3HOkjzB>wt#)ZY# z(J35k3r)_T3f55WCc9~)9unAh+$wCXm+Yyx(DonZR$ZJ)pvO2#PKe_zjnRS<(ZS@ z@=QvmfW=)d?^AL9M9n*yw8-J!*3?n?9a)B)3cCDvhbK3RU%m*J`+s(L1~#SHI*~Ng z4h>x&2ky{E7oNs>?k~jYn$rY>hTuwRnmG+A(E{@bC*Zl%%#^cE=^Si@ zyki*z&de~*<$>gAWmbT1HSb&EfR0`AKdxS{v~48BG4GRRt6HccmVXKbC}HcW8+6av zxF-mDE&-WIAO+Br$KhVqI&ufh^Y+eIV1d@z{i_y%;*zdSHF2@FnF7(D%3V(=PbF!-!z@XZcyMmvaU06;k%GvWvY zF4~q?-atbkoLejCA~wrFGnkB|ld#IQoE|o-I6baBXIfd#gHFjy_RGoGkXs5G56F>DQkX}VkaGO!8;Y$2v{7?}}Wa4y--Ff{CuCfd=Z%E)~SlcqMNF`zdHjKg9(}+WBOvSyvm4=|3*$f{LPoRFsxU z#RciCCFqwKJJwLoa$Evha@N?rYv_!;81I5nIm8DjxmIJW#AujCGQWBF^?^;+0+xnN zOE_|eBsSrI#`~!$EwCjvwd2oH;0cWgQ)IxExxuI2+_f5UQG(iEM7%dQPo5pi2ziLz zmKKA&cMtDf0t=-~uy_sW@YnHd$j2_)-!D%fI~mAfa-N909vVs(NF4!bh?S+LFmRv9 ztD+>ff=kx?qU*|Z5_S1{W%*Y)By;O!Q?PtA2K2#degm6N)$ZKVsO&qK{bD_!C%NPj zx2#Kf8}%e9>nGyeY@7?SSHtYmP6t+`1$#;76#YK^8tI$^wm?GXAESc+^|e!9IJMG&8|bJg6zy7=_;?GPL+j zrenC2dMitz3Qsp?@9myh!rmYI>pFDhvi#XQG?+ZP%rJjY%){=%#6gy;G3fwCVE175 z@W!MAO(k}33%HY6KBs5Od8g;m3ZyE^nJJerWhnj_yck#7b?f{e&^K1B&W`7Yc(c2M zx{8G9-BR|_uv=;~z@$Zay&Lz;zTIBA#hzB0bHOfcN%5_;v$Y15}KG;ey)um_X%bcM(FZ$~UrstIT zI|-il2MmF-A>P@2AnB9NjyL2xQAHL7GcK~9NeIT-sPt9RjO;e@l8Zs}Q8!c(IuJT6 z^4GK}a~%&E%I_?vITN;q{^h|yz(iS`(!-ePpTQjUFg%bW^fJ8cE-vrPIDbPGk4SKD zYOmax-PGZkq4+O-x%;x`0^FBl%LR?+ z!3lP$KLVL5jqVc6>(Rz8wvsc*R5Q0!wqYowjjjL9f+4hD!1d8HFyTM=Gdiap{lw(d z9b3M}I}+>WbN{09=2u5jFji~N@HTRUL%L!2j0bM!CQu%4s?+;uoWH3aJsFS~);5mH z@3WgZJlX9SL(V!pz1wk)Z2kir`N`p_$<)-q4cJiP1Vu&4m!g?+V2GBXf3hcb&)sBr ztai^_Zg|F)PsAk@bmQkGiU*vP5f314jV*ud6GJ>ej0b~B;5e9fBM9c zqG0%@CEz#85@p*IgF1)%XCTjN?|29frz36m%tSI<{JQDA(ih%kDJPB5IqtB}HVNUA zpJ_T<;LnQ6AWyy$%TLHwxpdk#=|bL#etA3cY|?pKpf4?hpn)@E+=eyBU|3~vW$gwEg1_lEYvdE-`bXU94)u!75?5ZJ#Y7UA}nK} z)54lWqe%^i1q97Zp!W}RZW|b!uGwou3#ENb_b?NxuiMz?sO~w_#D!oe5X@(pT-JCI*H{#f`7dR8YWNa0%nCcyJsdaUOcvZUUYhC!Iw~bo14SVVNo09nuBZ;(94QN97hr<#uP9FB@~@ zR!7IJ({cxUThw-@9hsIzPdd$Vr1`81UO?xW*0s$tdbY6S?66mAm*s4C!USJFh#scR za9K(mmjR&CnYTJEJDgGzyL2ChGZQvuP*XO=j@@c6u7%F{go`6@z4PZLM3Ki`B#(O; zX3E=VE-K``Fm`rttOtMFr2{N*y+wX&F;yo1539s%QzUy>O`liklDBb*#(FjWt)EXO z)B4U^Z|`r!z1(%2Yw}6*7WtCVn!k!UuUS4cTdOuBMUyw{n^B~Lrar{UuzxnO6kbd= zmPav-?O#VBa*MMNa+Gy#U%R_9X=ak$y5h?8X7Gi#XAVXvd{I#%P|0%ix&9*JRFW)=K}q=-}wD3PZ>oh^xP6P9|Jg%qxkw)W;?cwwIK(8vcO4 z9@7Ry!6?c^+*s+7&N!r9=x~wSyz-y?@Tjs;Y06nnE-{v3N%(s;{$@)uEZ0)8AW4U-Y}c!Q?;%y-X* zu}H+IIAYgW3QQpU;LTkw-^PWqoP;tI>|4pk;$bmTkdgxurh}9mkT4yj03OnGkdgxu z5JM%l)2flcPP~yC`I`tb{E6ZZ=Bto}sOgZ%@uEE+9&Qcxca!tx*rKcj&4D@CLO5&C zhk@uGF%8eSWI$}4J#DM?HPp^Ya;9CgzFZhrXf2?phhR;fXqP(3x;DG>oeuZkv9t)a zx_^QoX?@#;&}p--Es`>S@Hf(wn);Z37cK``u-QYrccn7l_*U*4H^@l6t8sSMKz}W* z{5tw2f7g@y19`*k*HbhkvjiS-%knau6aE>0oJhOfBA0h|6N^il-7bkd-;U?3FZ-Om za@Sd3W8-)d`sTFI;vWmU({gvLT&P#L{{fqd)C z7M%PJjQn;6^8L*O&Ch(zY4*p%aK{RQvpZ-My3&l~<FJVWf9wW24POeD-zi;{cfk0& zq`nSm9M*Q2c;AEJY3830wVsR^O)0<2b^fWJ6S#h<`Bln(z(rbZl5(|#a>39ocVau` z^1)|XIQU$JMPi&-EFzW=6;<8{bRc3+A?=lN9H`v<5UMv(8~Hz{7}3`J8fb(y5!4>W zlH8)q<)p7zm|}qn<aFvLRtXDswNLu{L{GQi|Nb)mnT22R2= zI$b(M%D9_)Ux?lp4UwF8#|@EU?simuiwUEY9C%uBc-K(Ra&KDRd&Vx*NhED6UMk&d zqA%x5%r=XdC;K%G#I}xZ3byzt61L(vMQC$N{9fFtl;$NdCLiuvBF02$2?|7Srp`7! zghIA1lVexSO!ua5vMQ30Uuh=xlKwb@P2bl~)!7 zw6{xp?C8?l{Ur=!Z299a1fCCGudMl1zg`JGzgU0%|F`v5KlEy1{nZrBLM{&k|Nif< zp9cQ?|KR%R_C?iMKMnXP?D~oOLka5osHtv!^u({KK06OHeeQ`GV6`)jFdKBm&-!}M zI~$8EDC?tGS|2UqY8bRW(yteqIz5jeB=8jCPOv*SJR@1ys~eVM!+)VW=lGo7+)_7i^DKCzUa#ZfhImtT6MF*Jw^vP7(wPeqk{Zi*A_ZhoG`pzN!h`nlBt773V z?UwD&T3|-@QP{LTB3!r^S;#NvkBWll1CI-9gw^u&5ABq+*A3NWT2I1v{y}=$!klYvHoHD`K*rgVis! zuFd+s@I-?3tDIf&`#o9P?S&_k?S&`e?C}@u@mn0yD9m$16SS!Y9wiy}PI|-cDTB`5 zOmm7o4KC{;yR|=NlUp#Ivx{jWc7JQv`Sn;67N4LsA!bu=Y~5=VuBJ`$KCkYe-POeP zbkdu%Ty8D#$)3jenhE=7s_^)W+mk0iGMRV2Bu?NT94!f-N6{jqHEg-Me+Lnj;v+(^6R zolje$=V$E84`|88pn z<+_c7Qli&s>x(;AMu=pJXga){(1){#m*PbF<)XvE#J;*8E4=(goXimzg5K zaU~V-w_4aDj;AB&w0qJbSK4K3eivKuDvP~CF1xS9PWzSl_j+{(o}@$W zZHZ&-Muru&zE@%!R; z&bt;B)c_d~-;xvQE{@?hvCf|bFV3Han&`sgHRJz~b}A<*JJp|r6EzBt*NxvH?Nd%T za6(;AyRRi#^Y2Ct-&2`)Ef0*a&R>jDI#gI5=f2WvZcAjc-0i;7IA;P*H^%8#3ojMo zkuBOx^AE#fJiDv=N|&60AhC;f_5?x={;t-wI{}eBWn&Qes9T#|ww+Gg%ulQnCrZoN zsZVjrwvpl$=nHNlf|3|Ef|46!Q0KsE5Q|%%vmJ~BK?EV|@_S5gjF2PZi!pKO3$x=8 zUyO?`uS4{RU}T}cVcyR3Kmo#!aTaQW0ApN@@>5tM7=nN-fgyi?7Wv{OWEKfO3S-xz zb@?bTj-8+YfMkcSj_4AL!P{YT69N`QEZG6ebl|@}?XfZZ%a0y`34kf+_QEKPUj3)| zyUTCc~_3jxC{M_jxPMArj2UikD&7WwA*n( z3{DKL;XYBT@I*r!JAb@iX8a*r{2qTYPDcaW@rP~F9)B|&)hIks*A~AoQ#z#A7?|}7 z&W?NSmK~YidoSDES7WX7A0V^>b$I(b{Wb4O9!5WHQl_-SR(LuNZCcH3o{1ny5B%9U zXDBrQXl+1kd3|>2Ra{y@l67D0l5+>n6KvV}-%+b_r@RbDDce)_mZyRrEHDRCP5epb zEWP&Am?;0PXulWSyeYv}dfIkr3%E(^JSCpX+E;);gmN>io9?RwWzS-~&sAo6M`J+O zVy7MTKcNj7y*+TlmUqpU+ZIfI;BWR9nqS9>XRh1aCu`ZrR{YX0BmSbl0Z!Zi*ITi_ z{&xRj)k%T)YStlY^upW+i3HO4=IvF<8k-Kb1ypRLdj)?H()J3_3x);OoHZQfPE zx-I3c*`;JH>hQn1XC z&=&3y?Ux&ihVf_!VMO_V#2;iDk@=VAXtRhPmB|@S0~F_QNPJ zHr9tJqXZ|=!PwHG%rc98-5ofh|L`^r()0-*W1XCvh?qw1@+fQmk93N11UhbYSP-0G zKG~cGsHDx{uW;6pc3*;8(=xroP=A%`x7d6qP>(=pac1hC>~H+zu;Y?o?=>_oXSm&ic)O=ZN~IXD zJ?#qm&+biq^bFHC?isFcwp+^`FqY686hDaryB*R2#QvCnx`xt8>=MhbMB)aeNMK;# z*<#9YC}P=;;AJ}M=)YYmpu`5dcO%U$h*8kxa`H`4QEpZP@pQqofIOHuI`4Ul@+?(& zv-}ZhaWb9Ii9STSi3Qd+_eTtYXm@(sx7>Yyl)r^y5ArtJPz@i4r(+hh!QKZF82LCZ z$$c8pQ0Ynp5HP-BbU%^N=kYS8blmB%>;kFmpy0?P>$xL2Bgzxe5BWQye`~?^no&_j z1#~kD`e%(jZ?Q3V^jjDEYO~as-eBl*G<4Qr6u|SO?yUL6RA=$~+b>!Vg22#|a*g+C zm4EIC^HmEzKm$kGPuBd-xB(1RZd7`H<+BYPmD{|7O5GK;t!~PZ@gH3zRk+J&y2!G? zze&%lJT{|0j$CB>-N*aI??Ki1X@jVT8t$@Mg=G!l#kf!Pi~l~pcpjia9uN5oNSlk{ zJx}lBUx1_N!m^t2rBbn|OfDzWhWZ+XWp(2VrSAn9^Y25oW?d&SdXBk$o81-7tn+)~ zmu2!9u6Qkq4SRMDl}37WQK}Z#RKqH5D*bR1SFVzpg zlFyp|Ij{el)$gJDPOScQUVoj{mr{KrRzHu|Ut{&(r(4%v#)yjeh=>qp$0F-mAL>e| zZYPw7@CbDvFmgEXENRL65NaIWn7c0aw?1`Khe_7#(u>xoVxsW}ICNyoB6_>VhT`x7v0oSl9_@G372n(w|88M4+L1<1JRny zsvW^lZ0{9MKZL(Z9BJ1a)dt;(u60w&)J^3DQ?=B9yVlJ+5dFNQj8|yl-XWcGH zN69|w?37vJvQ+rrqRZ(X8h{s}H>-OZjk5B4d)oI__rvG{eb=(5owvF(aeztquAUh^ z?~2ae=d8g->GZrsL)0jpPY!7LYnTv`O2|!2E-`wkb*)IM1+1FUP11H)-F5IsUhgJ8 ztC#%3@(#F%oo5jer=8y3wJ;W97k1-RwuA09)U(4ou+pA}jhsHz9p^tTTjy_?;wxug zRkM7LX_9q=y=P(yWx@lSF+FMP#9>|Gn~oR4RnU&Iw|7sMbW!65_EVi{hq7-S>WyjT zpz+h%4ZMuOzG}&!o-wUl-Z7T!qqr1t9{*CicMuHngFP!<(s`G3nZ-vP?sJxD?T32n z!kqnKb*J(UoY9qode*Jsk}9%)w%5pAS57|XYD@V9kY+7tM~q9`K|{`|C7mxHidvda zn`9#CUOEo=WJo@kJ=BeCVzI&S+43sNtnsp&{7ncnvvZ%kjt6Z%9F zFwr8~CUipW1(ZpX#2 zv>EZGHp%CYhjF#V7iLN&t1av`kN2@yl5Ji^9tfOv3p0o~;!8LB0|t=glh`Sr#Bw3K zG59vU4xuTxPWe$>WG&cFV@unST?abQB!ByJHS(^MiFuhO((-K-(eZ3#6S!v$&FJ#o zNad-yN8gS&WoPyi%H((?8LF* z&AhRR;;L;=vpzTB6tfP9+MUQouu0qBy&8vPesawVJRoo#Z7ca>*~CEM_Ktmb6|Qdoc_qLuv+wQv(QN*GV^gCk%xtTQ`{q`3o<9Odmv<)(;>z8c~bHo z%;*R)+SWnCD{cGA@~$M|z8Tg5zKpgtQ?~mbEUJaPvkJC=@zlp=c8q6WU8nUuUy`G+ zEXfgH@_AnJ9(!>SUG6B}!hZIhKtj!>!gPl<^McEoxd#jAI*^Ioy4!`-ZZtx)tugxZ zpIa7Mkq2YJvjy=B?`uE?s$TwXhB`{JeE2ExytsAkJq_~uvIK*H7Ch?vMPBj_>)IVQ zij1mvbQBlTy>VCEafjVADjvV3xN|o`1E3(4`a7lUU7eI%VqIHe?Z1N!n2pz3VjZxh z?LbS)_Ec+jqZB-{3G$t-w}8seEveR=v-#Vz6YSkUXt(>~5y-^?V(iwmLBUUVX7Kf! z{2C^BT49M}Eq*@l%u0f;XCT%jNNa+fYKnk$2GdJAqti<}EfA66@K!oT1?Pi)&;lyS zQq+|-g-E;BJxwKfC({*QYwI(X&t1gw)sYjPnTKe3appqa8Ku1-gNA~~#hF9`+1b_D zP*_)lN4n6u#1h3G`emLz1zae{&bHRVmT~=YC+z4VAdjby7SclGO`K(?ZlzNQQ57`D zA1T`v|KE|eE4vrm-J7i5X`9pYZZu1`zFd^0j9|p!IAr@^kqk*YNwY+uQQ`-H}7_Nk`>w zmbQCI{+(tr7}CeZ^4LELE7=l}livCQ*yzqJi9*^g&tyr$FQ!tF!9tNOC7YaQ-1w74 zze_~F4aE8z*YJfprMSR<0Fx<+1j(Rm6{*eWLF-A5ms&*R6pE4;T%fBdout)ZYA?1=9UsdRN45$B>^mHZ)SkK5ANGr51xS3VZx_(9iX3B61!u&6&3oW{# zK;)})d{yi<&i@;f+wyXwZnx%>z98*9wi17z#NSSftf?EGN5jLHEE+|t@+eFf^|6L` zU%A~{FdvQmWlFd=*Me0!MSFXqVNP`6shZfoh`&LhUaE14FfYX>v8?|ieh;FmSiNVD zr{qHg?t=?}VRJ}u%k>L{M!y|>7H^)KrSBXP!k z{FuA&efO1=!KIe|RHR%cM{D0-v-=0%_V7ib?9X{YARwMAvugH%f~ z-l%eVZ3?8HH#Z$C!6T@Fh9?01cou4CQ+l?~;Te_eM3C-fAB5(k1rksF>W>Q{no_5w zf@Tn`d%ECv9e6Vknd1*3xP9 z$~;%ga+RhQ=@(bW-=_6IDy6f=#1fWqHqpm!o70+ZIoR7f8P~4ElO!v#WG<06lDCQE zOBl^z@PZk=^WVYU9MVyHuPomTshq+ywxWUQNczXVC)h`0gq6kIPC=6gBlQK}kJC&Zw_^Ig>dOD)HP}rVlH$fyo1{YbVrf<$%1P_t=J|RK$zK zKrie)wwEE+Z>7v{{P8URa5v8I1U{&>Z?N~SG)Ox1^Enx*?Ly`wHUtfXcTes&l#jR= zPbR4Oh?mek+lwSzl;c2C5hWjSPJ&DN+tqO!14r&^fywdE60i>xF@UUeqUU#>)N&I0 zvGX*(r{bK_T>kcu@_*52Jh`Rd%mVz0wIkm60aqRiMRjoc3`Gp6T|kCn20bRUMgD$K zs0_v1M1~@0PAk?EjI^^fJZzg=x(>IEn*O4{HWK-eYfn`?PtdplUGMv?DhMd`yUPUa z`F`vncv{g$|DD#g115UyfA_8dM}J*kbZi|^*!zy`&WLfjD{jwj=B{X;(}&zD@}K?P z0JS*bmQdxJxWIpl(=#gxu8sUVq_k-=s?=w4k8Z{`oOc6FH!`K{ZEA{woyFB!U*-Qr zJBL(cy!dTYQW9H{(gRr^f1LbZfSDTW`;w=jF)3^RDf%P@W%e2YMZe+n^dl;1(Qdp^ z4_xc=%z%*bCh35)mvvOuM>}jc>My=5U)jWW8n^!gR>gR-Qa*~4NGW7JBhvs4@cth( zl+RBjg;eub*q)Ac?VwPiXe~rxB~c(_1#f_rqll5XF=1^f9?FXvGww zTVFA}hk^PXg31;|Wk08<7iIL`O-LCBf;g4uFyee zAI>S5^&=D!0QLXkG~>KBX1e2Bs3vYqolI!ajfc(8(BbjOcgKdrW(bK{V$a;BME$cg zD>yw#lWd4Lw?mxSce&K%eWG20zpGw+=}{S2{9UwuQ(|jfWWRjKKBaK7!#g`>soV}D z$GVdq-Re9EtEdCQ-=YpP!P^5q$GmUzu3!!4-j>jZJm>6RFPHjP+ox=ujMtXTw7bjB z+b#5M3A}y4Rf;W2Pnx}B@p_8eP}+;(>Cy7F8z5FgRp9<3y{%~886U3Z?;LP?CdJvk z8$;(x6`vR89$g_qI0sud3vlibDY`)Azh^jRxi{cEw_0LX~FBj6-#_W zc;AEgm1nQ-V*l-c|F$e{;4It$I{jJ&ioPBaB@H{@g@B8_i&*x;WduFYf zHEU+ptXVVn@odBYV(pw9tf;1T+-6)?`*eT)Ez`aETX1i~eVlVku3=#7fabc2Mc?Am z#J;l_tag(_E2}p4v6DD(uHepk5(?}fu8X+Y#LZin_)X;kHpI0gbc-fPSVXvfdec{h z8e3<-=5f#0y3cF8PRL%jp$kVs58DP;N#3#7fl0Om-abe$i>oGYxa^{&32G!1uRgp# zxmE;LL;&GQ-8(e|3k%79^Y~p6Z)lH=Q&}3i6GAsBcT?qpF*qRl>5YvIiphRnU7nu$ zqk9ouUUa@O7s2V|IXU@_=G1C`F(VMYk{^?*({ScSj9m;YsdGbeK}l{*ZrQQf#$B@n_w{SIW;1R^W z7jMjsN6y)qiWracdzN6kjxG!bq(;c`9U6kK4J>)zw&cL9;<~c?DnOucrjBfIWp}g8 zLoR@G*?nNiyM-rZB#Z0ziZWSA?PzH`;V7`(x6@OS4M;A`R@;-yN-nOI{0Hl+?FFsq%{P$Ab{HN+uDdD8l-3p|- zMMJ0Z&sC;Ef>Y^zdc=6|wDe50dEOY!41ABqWa6~@r=@F%dYvfb&cB${ok%q*VNDm( z-^cJJFBo$j8Z!gEGbTM>cd>7^PB!*iH=o)C|49Z`9k;zQb~HOB(?!K~r@*v3@W8^w zw1YLD5+HT&Lu$|i86;AFr!CCJ#tc+Fp)WO^Xe_aOB`GYluiGH{j7edu#%^Rs*vI+o z%CLb%jQ2DNPNwgVQ3GtFX0;SS_ipMi9nQ5l_n`+vj^79WIQQ%#9iBx$sT$^oe|Y|p z({H}+xl%Y2_iu~gD2e6w(`0t*4Z)Xa{0g)}IoX4;qJC`$#Zvhk|FJ!!LZOz34jmh5 z-qbnDozHf}Ik9Z3>}=Aqbt;=*$%Ub(x$K&_@g%gvlm32Zr1v_44QFxnEQMDTd4N}W@N!;MQe(lqe2cG)~|+AY=TPUWO4 zm8F>v%j|ozkANv1SB$jBgNk!)lD94oRYO<@BvQB9(6=m8&(39u=4{LI53;a?aKNn7 zang+ot#MaYs5U<|u#%och(ns{@m&ZG4K7BUfw$7YqJge|9G)QpUNW(Y>BrAZ;G3%P zzeQ1dvqpj6UQR?Xc>$!c0>fj88U5$bZgnXQU2(v)LP-m&*k)Nrg;z3dFoj@ zPd$#5sE~paDU}t{F<@vIWIq9sv9O$rlPEFuuS7|v)(FZO(KE9;=`99bO%uJ-Yu>tM zR#2=L?LZfA3*K#{yp$+G9mMR}pkv{6_FHbA;PgyC3^k(e>HdrdrX$S4eF%4R_7;Zd zzpnBcDzBmP8Y-`0K&GNm{yP}5}=OqaW? zuJxQ+8J3e=+9aHcrp^i+7CL^-W-m1jzn7k_bl+KIl17C)5!+-VNNg}aoDGw-Z9{@7 zAI`B|$W5af5}9X?(>3u;ERL|Nq1rS2@HXKUj(D3!oPTE*N1oLVC`I~X+4=qyXx1ySqGSc(XO`=pU(`-)r3LLd~iv>H|?hE1L6 zvb1yu4zP8*ECo%S+2XSFSeBK&=A;9c)3vn0N4@32ve}QY{dYrezB9q+q%(KZXF&9X_aJ!!<;9#$4WxLf4VF7qZ`o1^NBAgJYu{!TS!Cv? ziu6)<;54PX`R|*xGe51C_R$ePxAj*!R?(R>5wy7sAqy}LH@#ojS*>UFwi(aDTf{Fw|!_T5|;ExUMw>^d!Kc3-v9urm;@nYUGn9h)GkYlGf_d zH2z5ww4|vwNz=gRI~(|ZTJVylZX``3o-~bkM!^bmGHvGAzQgMj7w~OZc5A|HM=PU_y`Lge=r1h*16$ zUQoWUWNTpXfu%w;o7JBdmV_z@(E{C;Gr}wBvItqS%r>Be7o0|b(iihwNYE2n;6g%B z{e&~!PYHRtb&(u)F+y#+-!67H-D|IeR0xUf5vm}RJ(vY63K_+kS2mg9Jey)-$Jm=p zp~J$;G$8GO zm$@x9Pfg;e+_5 z3h9XEAf0AHqQ1+tAE>a@O|>&3Zn)&NSWXST@ez{^jN_mcRhl`abq6Q?#Tfg% zrX;x5lGyg!!37!;GM;r_sLz!v_1t`^rWnI*nNx%5u2c-ohNYtG5SBXLB^^RiITe=6 zYVTrB)2}HD_OYZTdxZ5+BheE`o*=6}2kYY7Gki9Q&nDIVKG^zU1O3syT}i3?1$isT zr-N&MF~03~crA_Lv8V!dEq|cyc0Nw>ak6e@aI1YBA;*0i6o;hfQ#UWfCo=hK_$+Z% zor+RVY1NdoOY2U+>|KdOi@~`rX&g!AB$d};0q*iLlFEWp3hIbAV1<(hT3=YJQSymF z6TEJD*OGm~q!=7@{5U_mn8>g}2FptlYj!_rx4NmE?jNLc0FJm#S*fJ%C^Uj7;o9Q9 z{UL*jlV(;RB9?`zO(vrXR?Rlal+^d6<<~Z9zSDjI9$5*WGPAtyeG~>kfa<$AIR{lP z5_!B7fub;n1RH}-SrIxmH=01iQ;m_f#G2h2r;MsA0gGpoK4$x-Oe?PYL*JO?U3I@n z`d88{pD#14RwA6sqa%GSA3I=EW|nf70aC_SRyR2Z%&|Glj?7b=aJ05V73)`L386UU zB-ZRQt?`smb^8HIb{g86Q!2+qz5T&a2J@i$!?vr)*I=c)h72yV8tO#0KsTq%$QG%? zHKoBh|DDPcci&i|HkfjQoVsfYY7MSoL<9K6H0TZA$A40z{&W8$y%_oTHMOoA|Hur4 zTyI8I`o30@lj)zxG5d#n%xPbvv@vOqrgh5GO!B6@KMaSD|Ph?!>b0zWsykDr?u^ zS{1Sz-Lt2LQ+NtQ8#t7ZyZ*)4SyvzTo&TI{+*E-SkeiMb!EUTm`hLC|_}=dCVP=u| z?<&H>l@ZS)|8RMRi>BHpzEOATtt>xFnZy~?ozF!MY(QjY!9L8@Keo}soe%BMG zlk8992US<(dfP-*3lodFr$bhI-!^t0r?}VFv?=C!#oQXkbP+wHhZytpqWQH=B_-1s zz(C!9mV~_iGTw&y^Q7dS%K|&%)7|WeuW<0wmK@c?rlupg?*6@#qkfs3cz<%;x{~C? z7nAF{%95jggW#T|eUlSkA|4Cw8_SXt*Ci)n1!=oL*4KQckHatZ8DI0IKI7}~OTN;_ z|Kt4mvIP%{)>dIpaw0X!lE&;|-siFNK6^a}-Y;E9II~@Ht=keBCfXXvo-jOR=8;Xh z{YnDEx=2R?SA_}VSQ5DuTf>v`Nm6S3Q!tK?w#bErX*1l{rg{8SpeF-lI1`nXQqHsr zvr1osiY)6(U{Df`9BD?`{5mH&>YNGH{#m-`u;kcj9RffX8zytEy16EC+7|ARjk)aI z)BOX(`xRK;cwiJai7q>&?-&-FS>3495*AyGQPScA5_ccETY9gbtCHmAr>n;PK8Z!z z>d9Lcm%tMb-3?>?T#wlNbj{e`pO)V1VP&h@{8aUx=S-^h_)Wfl@g7y99iM!Epcde-A8T*)8aXJ?P z_QTQ~T96-f4Vm2htc=E}s^~KbzT&wPw74RnB^HvRWHD+BT{)Pc#@E#s)fKm zhyZoqna?UK4N~^hLk>f--dvE?cUdP)?9wSmrfUe<|A#WLj(s16fz6bj}a(O1q)qP z+VgVSbI^dUie)Vv(8rPzU#(3K&(rO;e#o2P-+^(MbX^dg=G*)l1$6lTEc2~XgTXRq zJmbS8xOTA(&d~LFFog}REzG??+6wk)!g-i->m~HBj8(!5PQ_|ZFSYbW5Cos0mKpTg zlxbXUTyhnSR!mEj&=Q6DP8Bq<{tFcmvpP@LHBoTw)nRi%;d_v1%MbTu@G5HqapsC9 ztd9zch%-Ma;YMD&u~2_((0IZCvj3T(qvYEvA_VZMpqUV@T0Vs2my!UdryUAe_xbvO zCaB}}6X_%knjk8yyldcV(x1xnbzPnwOs~22mdfLx=I%GOEvhNi2EYrO!Nd(rL%+Aw zjm2urkZ|%n)k$L1Z4gerxw79SCDI2R%73nf$$o|o9W=Tx<)eIiEl|z6x-uB?(_I3H z4{DKPT*A;6K7fQ7!?f`0{b37-sJr%$P~S>wyk#T%vTqrmZ>xZO{}Y0iQHx(#HU#y> z1z9g7G#tDZBn3-7TiBSr}kyo1L7&@r)nM|?~${t0VLoZ2)4%a?U8%EkWPCH$Ylj`{@1~^qSl@>*c-dZY z@Nj>LpRi*9Y;Hqxa z$$gBo921S!n0`lmzJ^I&%O>)4Hjx8tBD>Z)wQOxJpBzF+M^X5+hJT#0bbK+95h z#szz|upSzC5^$tBRmfvr`+L-*VPm6^HJG8ilg$L}yTz0>wRnw|sQ2-)sc>ckT4tCp zmoe^!iCzc~9wz!b&~FXKS6CWsA8u)I7S)*+mv&9Ve7}|1ewgU`;cI)6h8iaK!J1w{ zHsp1AWFP(8U|yGJx$UG4Q`SB?^n=9|JCWV(!06#HtK)l1TfT_4Mk|l4>yU0}etFnR zuAtS1$^8-PUf8@B#l79%k$e;XT}*2aS4KRK{KMrLF78h9eq)&YI*2%oUk|@O^Lufa zJSwj$_B)Y$jf5}ZcU#%oK9l8Nct zl2ewJEWNBcy}F#z?r9^tSqR)7eEVcw1nE>XLh=bX*s@!4BKn4scvoG#srJnDCFLdg zwT|g$8@qcx`1|fu%T3b8pV!t*egpgU*KH6av2*BTdJgm1Rx^(hZ2!XCqHH~=q0vs) z2G261_mu??oxo9w6gjcn?*K9VLA@X$F_AdaM^8d4|2FcCpiil_!CS+>41&E!*(3a? z82*X||8krNeH_~Z>^b;Cog zbOT-xKtOG4^c#PrwORvB7|H|mezPnfbDO|t;im+IJku5>H%(h)euT(+1G{+u>CTh} zCZ{FE!7X$WA=V4cYtig0LM^my6w{nuRpyZ9v&(fzbHJ2lv>oS?9IR7s7Uq{g=_?*02AZ`$>$G{FM#e=gwcSP%obBqxKx#Pf}|9PEmf&&hAgXA(u7=z7SoP2}}4Q zC2&7!|Ko*TfCpe!sM;p&$_n>h;x^%Vgy&okQqX7UnKWP_p{Dmcm>}$cDVNa*WJ(h>y54h zM!28#OH1Awd|Pa*;69U$_y6ttS!YpwzWW&=vGzWmG_|*bd`QdhPx3JLvtGZ!4eEy( z@dfxq_owGUHr46Rl<9y%&+}apFn4;Jl8slDaDjS>#*e=rcSed~M#*(AOy=IvBTn`{ zsi?a;{U0lkvMx+q{@BFrHHYtz8L>l8TA29Udb1!lJ@MP#8N5<+71vB!xc${CfqnzW z>}^!l!8IO9@aH$bJS}nW2CiLKAFekVk{55QtseD!l1m_B5%2%gzyPO^*G%ILk%5KN z5AU7kZ9t^ohKRqFJS|jK(;xsO)t43_5%Zhtei-dwsv2MA)_qO)lKr?7ww`I?u$QNE zovdcmD>a9|2$a8f(RJge*`Bg*7w|znpqppkPQj4t#**wfTlQ=XKEjx38`U=#A?KJq zmUmHK&lR5^H;U~KPZDgaKK#Ygnoi!MqUq{AN;t@ICE??g`P)ogQmpz6nfM$ zn?n1WqAB#64-7kno@KnM0gjPhf5g_ms@(3-wCN6wE_}N*PVhpkmsTPzXvLHrRu5lN-c#^ZMKDRdRZF_;x>y}E!Dy7 ziJFr1;bMK*xW1UI?hChqO<%|ttMx_SK04oST-L!rm}#|Omrh@PQ2||JkhTxa{cLb~ zaxCT{R3obG$C132O9@OZnDXAvvV)E8%uhF^_NRU%S__<+O0=jld~os}iRA(7ro`Qu zuMxBllkVam2EFYnOIjZ`)hu^f{ybaWG$Xapn|s5_yVNa0Axvl`SpmyIxBfEhx9_^} zDvr;l?4DSzQ`unCy(9_pW5|OITrVw9r2%YCMjHl=Z^R6D{6OO^v0V3Gv!4d8`0A1Q z`{Z2{sX$*fTD>&Q?+Mj-f5Y-!mG=aSGSUsDX)qwyISH?%-B{G)N?m$hao<>4+}_(m zPoa|M_PUlZ(x))y=h+@UsJR|C_ISR|W(qXKxQO8OVf2mVEv9;+E=nx_gkXt3w9GK* z4tArM>@)*&6Lw`cz7cHr8Tr%%M-yvfD*Jb(ACGG6@oA%+u~# zK-B+sZR7Hp@%|?{?0;EMw=S#q34YT{#t zjksU7TG`c&?V6e1WUTkSYs!q)#BwbHnar1q{Y2yWa+}z~{uH+@?9cB_kM-xLNPav0 zd2l{I^+v_5aNPM$Km(%*s;nAUXU&Ti-TZ1UK& zcS2je3O5Ud(Tq$`qbHd@;WZNPX{A?!4*&}Gfr1K5`TV6QcxoB1L}@kVUWsZXD1P<< zO~vW&suY*t8b+oO) zzCa&*63n!}vi+yQ-@<(?;QQ{C2E5^WEobXQ^}8q?R|J<>RA&bT0+pijD4y^kW(jJu zjFm3q>|rwcyIy|B=b%d6RhuB*mp%I(F9}TX;-}R@tFZXa?{xJ6CBfL6H zDWOtt0dW4VFXg^`MpJhBglz1~jQg^5m^#xZbjR^`8TC9E;z6(WRk>o(hrP4kxOu=^NXN@Rn9Mx3vPCP5oM5eevxf(o%4&ZgF5Fo zE_4z8tR_Ln%dG6VF5Swma(*j&s`Fdf6P@46KGONE?1P-&%HA7)_C9r+@kuN16;4J% zE)x9J`K`Pso!`p)wewqf4>-S-*NMOH^Ay&1nk&&_zpvPjy9fjGYl@%`#G9?`R4l?O zSV9DeRza=vTT!1-#**Mxm^+_qYxetlL?l~-lbE-HFA$$!okjATLGx45=XWwc%_7mw zPidwI%}*2D{B+vVg8Av`%SWD{=J4g4&QD`Y^CY%KeZEfj*Ffa+M}Ww>cMYDOn%O+S zwJ*5LfY-&5VC#Ms)#0MHDC!}L>MX_&*HBcRN1d=Emhrom(HO>{T$2~O=23CWTyZTn zng$iuS6a-S^7?KgS(hYg4S5#x0J~HB^vpb+gC(M z@F)y79MEH_O5@<7!x#r^iO&z{ynX2Sdb8}3os8#;Np$166F#l+T;|5}Wt`Z?)|>kg z9BIAT$d_+Ao+t00Z$KN*FFIj;a0@&sc=4dZ@x1fHj`t!3lQFjaWuc1J+8S(N5!Cli zH~kU(J47XWSX%>G$Bqs(PGx;iaG;_5*{aJ-(ivqsm`t2mEC8TL{+T=Pe>YjhQ=f^i3yxQMEltdwx4}>l|Ox)ZD{{m<)1t* zzoY%x=h+ec&h(ua0PiZ4HF#U2!@KNP$rlA;=Xd$@A^-{Py9G3KUd*dgp0oKFjWUF+ zJAz*fN{!ohJBEBvUHs!6!9f!uM*XaCUn|2IzK^GZ=60!5pz8mw6 ze}0*gY6>bR#(Ly#6%w}yrmVLTDR?iVv^>R!`;)|)8&}cg!`SURQF`zpxePVC_E|o1 zBJP;kHBG9RU0a~qWX?B^p)Od?AngcDS2zK32u-FwLl*J_Rdduyf!*N z0k-`4-9Ce$8wjpe)o=Oyc2KRCk4&)cxZlT<54)UDpeg8u z;C!q6XFU`}{WARYR_fPvk7@TZD_H&C6z-x^)vw6FLk%@vf0T3IA@y&)Sjhiu5*1Uw z?zX*I{pW)JJn~Jumt}y%KVH8ggR!cg`wK>h<@uanrdN~@k6IpU$7ubbf_IX=JP*kJ=jaQ49Uj$18>d!Eay}!F%6f z#I_vRV&^aa6MEYOh7QIUy}g4S>0o+$Lns%ZaLIrC59#fPQIR=%yP3^vyuTxQJ3N9i z;$XoG7g>M*kLc~_c>P9i2Mww}qPJUUkb?dWKIiIx8}z2}R!DC@6jl+v8@=6($S00} zM45*VssDvq!(W>W=zUij>doj~^>-P)bEswXessKkMFs~Asz1tk3+*xpe^JQl}4%6a&Z`d|2r;lIe$|LeC{f3wvO`*!%p>sMrO z(4hLGoVU;}gYb9tZ*lccg;3r~`}bS@#S#9(D#Blp!Oh5f;`m274<9AWcTWFU8{38~Z{S0tKft~TYQ^_|xzbk>r z9lv{xT5|mE*?r-6C+Ea-zL$n{?;&`B1rA*fB+QCdOB8Ynwa9q;8N2>`+Qo(=&TH!M=+>)n=CMFij9 z&24ew00vV+IQ9gNXuXbpyG}4PFa*Rr0a3~*bwIrGX#*m$Tu}gm1~Z%2ZssXnr7?q( z?t}rMgJL78M^$=FD`13qgX0YDWetOK`7>*=rN0RIK?Tb$qzOqJ_DA)^%r@^04JroX z7cSJ~LJM4|*@bFdNY7-FQx+Sl{2N+asGiUa|2|!?X5TLmfk9hTgOpBD6Q(;S5JQ5X za2w{EXrg=c6|F2(uO>X*`eT6 ze{_K(ifa;s*KeYTdUeKwWQkG4B?Ltg5=@ zxA#+`H5``j6E@be-at||#VsN(=o(u;^R3CCWY4^B$0zBFD3p6ipW(?=9mq$bh z=y63DZU{8(zVY-6KY$5K4>JZk0$;rz$-^(4(D%zI%TaynBk%Ej9m&R1&`o%ss&L<} z2UuD;dmvF!zW4SuN8b1Kr6TXUvrB21XW#5OvGj3Sy~iEpJ~}%k z7CIsOfmmpt>|wFc`?I{?DSV_*7IO(ZrO5A$xe<%kIfz(3muTv{m-bly|al} zXwU4ZSm^NV%g}3-^F7%=#X<*Ve;W&ZF#A9(bYd1u<+<+;%t{{&pbpO77K=VC`?Xl8 zEQ`{nGQBG+dj>q3%-zAuX+FCch$hH;tNlxhQKEqk%0@eO`kivPBfE|*#9Fi$0f@{cSTzW3&@-tL( zJ{NhHTK`k*G1(g_7QF;doTfZ`1)=6=0PH1xck=7zhdg}XV5s#}e!szg5w140dbEBP zZX-XvdQgh{U;GmM_Mt;-i0kC1dm>W0`YOK%`L&X+>$uzSzf6U{!hMS0Qhr5zm%=@q z^ilktAU)tGvy6-Q{ea)G#GlJgpnn6_p*t~O!T$>1$$mpS{#)=*CC`s>S$W#G`ab&2 zp`OSexw`Gl;LiO;@=M7lMzU{TJ342)UKdiR-R#?cl&PwWfTrRLIq(hDU9fT%Wl5xD zgdEc>NO5>0@zKN$-(o_J%x%gB6}S0i{IA;k4cGehP7;c4reNl0CQ)=~-ahGfYURP< z#5_4>#3^RpKBdKm4s2aw2VPB~f6wKIvTr?Q>#YVB)?K=Ju9N-1`mm#9J|OzZ+%%N~*^{ zW+v{>#-hNlE;}c=mgcmx_Ugl5L3?QoR(8BfI(1G-^f29;w{6qDuaWcczn+Iy&x#@~ zEtVTi=IAlhAMF+ap}K|^v#c+r&A4Xp8%J)X0EJ~~5n=Ad1&c#vbMrrpB3%~K*>DOj zKT(041pxhvva@`{Z6lH7c1Ti>kwTJ2(9SF-Bsod-`Ody|XfoC2v>bKjY<#+h7kGmq zMxDI4V3zS@hAyH;+$N|}ZyVLDfEsUx8nID3_glD|vyFiKe;SAy@9(V2s=bSuWQP!D z3xwGUMKEvc?FA!DP@daC+-%|s-d^Ye@oo|pxwjWW!Zbs+g>NsY>$QuVAHBZt!Ew;$ ziPht`Re5`jtMceWGyDCznx}(42`Mx%TKEu}h>jNijL{#itWA6%`0=l#_NUmDdUNu!r9R@E2U#4UUg?amQ&6sgbl_+}e!e*x^t9gZSwCdxG zquH;|Wy>)2PWi{+&*_te_oYYT?@ex~7%z|U_xSrIsaJCRos-=>f4>75?Ck8{@0T#W z{J;2q$%6RM>9?VS*4U6|OZI;T0(gr#K!YHzde@+vJ?R;k6U)YX14I?U2=SP z;)Wu|idnwoddoWZtPaZ#6y<*-b3$X{Ox`Tb4`%Z2bscX8jLxJU(uczi>jI&N{a-nH zzRo>(kGCVwo;qczvrwbYUKOcbTQ5{@nnGgUhZ!^ox z@5N=7ng2A8>u||;h1d!9kIgYFyor6&+Gi%c&MrAJ^={1GOzmP#S({XB>`JskV#xKK zm3S|sn*^9Ow^!~F1NB=bw6bjmNEKPTrHgSevt5G2Gq!%s(_TtjXV0!hz+w%iv>EhY zn-GWgHc1lV+ZW07RmEZKMq;ZaIk4w^oFcABER>Y6E9^<8$MAd))|hy*(5u-}HTjo` z>-SdgcTizCeH6aolSrjiWxBH&*n@peH+qxb5!!sd8W}`K%`xz}ZL+0k$+d4jkR)Rc zCkN^lzYT7k2fKf->f4lR1psnLrANIIdesN=ZnE}94#G^*`8OgrrqsCDXYIL*(F3{v2eVe^7307uP@Oj{~oXZZ;#g! zNXcHq3dgGkY6&#SCGcpVN@n{{9-)^!JVvudeuQe{oFAb>fU@}}2G@Ucgig>1E#jK_ z|9phrV?!`MLe*wNN9a#K%m_XIWv0}eF_!{;jOab9a!%`Pf;Cw*(+~3g&R&ECv`M{y z_IX9T(PBo|UCz|BIMb|s$sb9+mf z7;+!T%*#!<2Bo92sLp8Y-zAZHg?OHp&(?GJ#38^W#1_1?BfxAmjl_}laPW;+w4&X$ zp&Erc&#a8Y@n%!V0V1Td*<41bEeXWp=e0sjs|3tN2npU4*(O}V7guBf8sp=F*G=Rl z&daVkRqDK&!ONT%AwsI$dAq=N0$#A4q!>&>o0CbJ(=IU~7hW~TH>m;V5%x2m;6Ix; zKO^&`tPGj27ARxmE29(3_k=lTx9|_t+c>X*zKj5;?I2BBX6S3_MT zfVw&c)U9LuRFmp-s5d(=^LJ{6^9uDA=N0O$&MVa0oL8uK;05(A#qipdIhh`FOaV8J zdN0v_Mpowyby@Uts0Ye#sF%>;*(Y4DOW+0SBAz(vw=wb1>*t zD<wWv^)s3+0i8_! z_-Mu^9QNKTcC(NT1HKTHI=s{&JytY9PAIg~ByyhYQ)#l&9HT zXpwTRd$PQ0-Lu72V}A)J*rt97Il+rIZWS}SZYc%!D~+Qq#OvuI72s!ztsEz-&x`6HuZswp>lL$*=q$X*t z_*iGRvB1_!D(ORHo(UV0Jj}u411&s0P@)vCvlxe$H6$(#6bOam|& znIM&AH_smWb(_7q2Z;tdCr8>_{&xG>?xi~PE7Z}Am=-GkoZtGVb@?JefQc_k+eSIw^WE|`bxX~FcS zi|fOULb&^~RzM_0X<^gN0=~3szFEL#&(4qmxYDluGOjh}loJa)JSAZ}Jzf~~<}C89 z5q;O7bFTJgT`?jYZtd+hESj%lLa*HVJDSh?X)^+tsTGnZr|=( zU$T1^{jv-*-tF5HwG4O$i76A<*pJ?tig-ke8r%A|hL@nODUj*=tXe#ziQ%I)7?{u= zy2+pGiD}Qhi7}S-4Cwz&Fj$T^uzkh~MW$ZpMPRUl_Vk7o?oGIx?U`ElDvsCLz<6hj zHko7ZU$CJTQ)e)?Dv}qpAR8zS9#M zKoU5+Gd2U^sm%M+_RwmU_V%fRx9{xCO?~4{%JnS!Dg4R zLQn>R|9k;Z{MDK(_*&41NpA#KD9N)@sy&yZaalKP>n>Hbsj?VHZdvF~3f0MEw|uDW=8Xw0C2ch|Cy6UFjGDJlhTbKa{S z4rA4y@^T*sU${B{1Ky1$7AeYJfS(3XgWTiPX0`_3c%Ey5S6IT-`)9D?|LmXXCN8V^ zt`j+}eQhR{qWbjUa}xLtvA?lGUE<{z|Eb3k%U=bID(_cVY-yT-sp+&Wg1DdUsCs2U zeVDe8wTMffH4d>&F}{1u&p1RECDeG&hq-E>j^#@C3tY=}jOymyxEim!YJ6AX#=9(R zXLDzy_a9q59u8we2?A>1E#<`Z@70nR{g(fttBr<|hZE2as7T*Vel?Nu@bG4mfW%BV z4<)|ATC!^3!7A*=I58B1r&lnfx;V7p)lW*Q+VME^W>a=Nc|kdQIId=4l3-Rg!#MFF zOh~LNWL9p1k(z>8OCYhrC5l-kowwC7vgv;2qeQ^-<|&>RZ!DSl&2O)D-VUDWU4(bK zpI#z|=LhlXWoNxenEf6|{vU*CrGrUN@~w0*&F`u49_f3B9z|Sd!WiB~ahIARV$k8U9*T8uCpRGSa!!V zcWj}c9z|?2PAh_g)rjsHl0qSw&UE7hd-cX>ePusUgZnJB;o%NRq}Srk4Vl28Bip+` z5{`~+6XEEnuGMd!EjsZ#MMsRyF2C~=_`GG^#EF`qEm0CJ53gUQDbQYYK?P{o+hLR>51d4y;4G#rc1(=Q<&`Z)d5xNW3&;9o?ZdeQ+As`qZZ zjzXt&QWbrA8bFK;);wPTcyfrl~ zf6tS1jsHoL!EsPD%IX4IejA->0}|Wf!Pu?VmKF|$_wH>xJ73`b(z0zuOU`;*Yu>(N zHFeQBOrfP~xtcABjme@psq^NP^d(qynlBWzx@lEFVyrMP!pWbHMC-l4$!`i4dvyO? z=3i6!Os4BPf=#`W&uDAThT;nps-3O2=+!T9l^I9^%fg7xs|nX>fOX$WBI=J z#PBP_&nq9j8?6jm;G-k247ZS*bw;z>@ zV?a9D&e#87Vq=vMVTMfUw*=i5`q%iz@*u~PWz+ptj}oXF`w+u&3qJZq>l~1iEXW=c zSJ(LMlNh=j;TU`3ET2&Jd`O+KRw__-zLIUt^M5Ejd^I&($%aqjhKpHy40YJ`tb1%U zTGHBTEx)SmwpHze*^JuaUjUL@+Zsr@;4B_-Ys3vaPRJ6&S?5h&7+-otHkS;V}x&h4_GJ8MEBVOgX1aC=C9n(? zzR-_qr|VTalbvd>@t&(%_gpcAw}=pg*I-To;Z?1BrkErAUssQPD#?+Sw&Cga9A)Mt z<>l_x`%qHuI0swUQnrxw)t;$LRC_-YlTLPsKl9gMO0$xvi)F+)rS{zEy*T&kVOaz3 zn9*fw6TfEc#uw|nmY!c|VUnngLK!x~I#_ep7!)Vug~7Bsv`oGr?z8rHCLIPB64&c1 z&OwD4r))G$y&>6IVWW`jul`WtVFk%P4Hi-3{e=Zxl87o90j!$5K9SOfgN8KPavPSR zBe)wlW=wp>o*QKSw2wwF_CbhMd*H3ldz(Qtk?{6(|}x- z&Jmgs-2{6)ZAA0fi6R>Gu{O-@EXF+iW=ww{U={X}~mibP9c3 zZdkKQfK+C*Wd8t8)m|@49eqco^IR!!N(f=u5Rb}AEdMG6y|uyCsa1Z#cw6blekfnF zC)X4Enkg?{1ZhA|ixto^v|N>`o<}NV&%c_noAT z=id@H9S8U|sb><)#|w{(|K@g_(%;|ncs8B;5ldGH&fH${(q8t8uS#&2p8B;9u^gKA zJIGBoN&c+qcJn0YlzrlN|7fvMCsb3TqHiKP_yb?$7b6AdNm^5BP>!sxaoQGJGidf? z)R$=zWo^Bf2zPY}}{~7>H#-c7PEbd%igE?4J47;l)aSqRP6xi&qAjBNp zVrfpSl;1{mSl00MH(oiQ82u+T9ZcA4ndfFbm@dxsoKF8H>Z^&o& zR0D0Yz5`UvR4afr^tR=_-JuuzF!R*%9^APBEfw|95X3N(o)tC)7Ffh z*oCrXxgvRwTdc`*+%i-qOs}l4w5>9wdI&n0fTtMEDN3*{$RsUCbg%2#p!CsL7B`|T zOGa6o4a;gCenWZp#?gR>;7_N%AnQO#YpSdswXS-6S9FqsB~(|RpsO1H^ThSP#(=Ay zenjna$wWk1u%jMJ`%P8iv|r0wvftiKM6mDUH0KJ;lO|?tlPIw1#XVK!DkC9pwMHKE zuc5=4HOB4~0lz(dvygBCBUU$tr_Ot>V|5muZcpfmWwEntJ10zKwddpLmXdf7uWJ1I z#EqXsTNH>?cy29ci)@*Z z+bDj@>cjS%WwDp!fvn9zX7yn$&VAlxP)9otS5Z`Lk4xL)zO#yWu-$#v>(T<3X2Y+s zA2H=31HkkXFd2O*yVYztL}x>3pj$$=hZiO;;kngoEzdOXmk^mK5c2L((W%G6L6%5m z6n1Bm*^05YQl1TgB}y_2L}yN#K_i<)!kq^o6ln#m`~Vn?N3rkgaT%yf@sO>c2oT?3{~qTr=^U7D`?R5W#N!-*u4 zFXH#oe^YvBGu9-MHWD|b`T^f&hsbDY`y%B`XOs|J`JlLnW3i!B+IPq7Ji=}r*trOY zwUNkyP5CxxfW>wLUXcUdCf3ZXIBa8$cLm;J`vln@htSoYsaoPilxNFf2`V6k`E-E< z#`Ect`7Ge)w_qAQWi-f`78~(0&E~YPz)_>OSg^BAj&H&d$knKlsl(FJ+Cu=Fwqax` zXzk1vm!-$Dtn4)>9k`sXu?;@z?RPn~{Lm@|MA;W`LY`eC2JBjh{kvKS@->)IY9d4r zsG;cEVjC=aQr@%&)KCb&SR0xyDqhBoX%Miwn(o)#MguT%w2;b7uutv$z8r62OL&GUW}t2ELFogRS;k=QR(S0&zwmJJDChJrNok0CdZq@BrqpA-D{Uh zRJFHqfh$13kjKFDGPRbLS%l++}(f1f!ImJ*1FgQ zE;dOlSlRgniS-t1DqmpqY1IYc6G_?%m!^BBM79v}GfN0~nO5@~dcL72#SPnc7)X>P z04btFMR=JuIS{TQowf;S-7c-mr3pOJ1T1M=Tw0GyTjbIND`|mC>oq6cFMi@XMQ=Z> zFI{9@GgFKMLnu)Qr3QWAht;M_U6wL)I?G*_us&CNdVj`5*R2|9`?F^l13tI@ZP3jXkobuG`VvCxwE=}D>nxGV!xis-) zI%I`8nKpCGxC59G@J-%}4uTSV+nkd7Z!RPRXg8q*p+9Herlm$Wy~$LiBJHFxWbo3X zl&$eKR;Z?)l}Pn6JF?W9K(iO=q)U?}+p3Dv&<#(zD%?p|g*)kLXi#eQ9{%x#q^R~P zeTR<0;;hAFQk!P96kA5yxZu;SO>;-+)x_bvGbEM8qGOkqn>!=B24U%T4$)Np% zmJ-8nxfO$8(7vd5YSdB*_DT`=YKImV_ok<=IFfB$8bb1fA>b|1~dq;!TY;b zNliVSlQCCttjl8=B3|UWvixx00}|~jW^~A&J*VO1d~?bIK`od0P#Tj`n6bvy?V zuBnaevR|QIc1CJ0marnFP#}O{YJ0HeVF9}9sb%wu`i>-<5gw1+4a)WUSz{du)SvDM*UPeZ?lm4+d9Tg@FFCb2xW(o&%B3LNLHRD;+k8M&CqU z_ue;=*L_jM7;1&hw}pt46&R%+YIsDGz9GkvskM`nhPVw04Qsls*FZ^0qCI+#SyI+zHy}6ly7rzd%1pIBePJ`s6rF3W7!{?H%$XgTLVZ z_AzU7dBXLH@|GvL1QbSPp7S99WM=L~d|NpwbJ?c%C7uPw4qg7Jy$Bj0$hS3KPbjD-*JtPowo8ZJIwMo}C1lPf=dE^j*2_x_*S{0GPDihzhO&OcQ zhTx8$DN_$slBrKkAKtKY<{%063LLb(7Bj;^Nq?Vj_lz$?3E#J1qQ*?AFLx8LHt>`>ZUo%il! zY-h-J6)hFCtth|N}M zNT8sB&KMLMlgHSd>-XMkeOXyDB9_GtOBkr0#{+#Y{B*~%W-{qv-1keTbx%|-tN4@@=oU!mL1OPuuNS~U$Qdr>%Qu7xl$M5 zdUVUuPBOjr@4}DR05_RHln#gIyd@D=R%Y`3j6V0~e8P97%{dnnbV#^#iE>scM>-so ze7qcq*90_DIUc#Hf~{;4!NBb4OmBziz6tMq`FYcrn3Q^ZLyH4fxt5Y3z>!@J%8iLgPd1AaJciT2gW(WA38X z<9=UvQgOe7TZ{X3+y&~X#h=jK*u}K%es8OJP4J?LJSIaN$$nlEZ521)bHsqcA~qIG zRkW@-_;Q=(J_ScF`7r&|<3@@i;{9}BhxOA(_q2X8!D~2D5WLz9)_;fkDP;xQ@_lzE z3$=A%RdtqWaHgs8b3ajy3c4DTu0}<~YrO4ltMSEHjUk_nYP`YKXa!r1@7DC>uP#?j zx%=B~V7o#crn+CgOLZ&g>efSwP^BW`b(g!kQzO^ChpXEPwz`jY%Z3&s4H;yN3@LO` ze@RsTVyj<4SN|kezarxGx2`eV4;Z=rFZ|G2+X}Y&Kj`W&wfddliIWExnxr|7Ta6k6 zYK6bvsa8MlJF#SspQ@9dH9^Fci@#zA2P8x$XMP&BKi&~!L4iJpo5~^L7|8^6yIvMwirJ$6xaN~+QJGpC{A)v6uWwDhUe7vV#n?yLUEac!U{GhDjXF3s>zvPhct^E6!i{@+6anY z|5$XPpo60MZ`Kxyh(oc5gJSu}P(0UaZD9o)6qP^$PhLbxniZ|W&en({yz53?22gPH zk~uWXJmVO4vSjrJD}G{l9~rB$ENp$UyK>s~RdAWB*`loGcWA2IxiYws~@#0n!D|%cPY~T4H84 zPWC3Fgmk%Zc7RN9UI8-6TEZ?ug@7c9(IUqj(}!S+U0@-*?L$AhV6!GD9Hn2%SvZ~q{snMjFY{Rg+3V_&on?B!!$t3T`3dfxUQLG#iuLGF}pti zGTTD!^UUd7V9u&qb5<|Hq5LK}u4|f|S1nR+iJ1nR?29bTh;nSx0C7Ci0BI59qK%Ay z8I5QyM2mEoW4g8g(ruyk9&GUev1oM4VKZ^b6U zLaUPIte%ZSp|x@xAd8$=fXuVR%mSS3!>pr;5(_1x0I7Fg0n#8Zl;&atNHbmlSz%75 z#hjI`<~U__!-8dA{E5`v6IIjTdvBb<4oa}T5h+~ev6dlN5JTkhIb~HS+ z%?=3d5;jL%X4=M%5hrNQF-s}Vg0eTOoX;y<>;$~FOz_Osip|{KtO}LyG9>YuOo>ef zUYka}S@ZBNav2ujwQ0?pRm-kq5xbK5q|8IoJYsdRDhrQE&~vj;c=Tujm2v}y1K{CILaD#HD3whB^Nb`#qn!EhnpI0+0x1s679?TXK2eD^Z@I z^8EKRwEk`1@hzM$x+(SlN_(u6Amp`B6WdE?k2SnAW4BWoA~sUIS@n1|c8nSaY5dL+ zjV_RAJ1nTcGNj0{K(%0~?bf#=`+q6WP&eV4ll_~lFem#Tj7})~cL)kDr%mv$mi^x( zcHyr0h}l>>37AmC63YI+H*i5w@ZnqH_F7?*hb2>wFF7``rZV?HPltP;XWhxiEO~$U z?Bl_Db8@P#0Is9_zT*qt%G??}L`YAARMufjqyP&HFatd%a1jDa7h~WR2eI)k#P^bw>=V zYskkH%Yx+KB8%J_Oa{QRn1%OQH9kfd z8pnj~d#Kv?)M|f@)TB|6QIrZjfFN~cRe||G_)Cx3HVxh(f+b^ELE<+U5op9+&ghE!o3~$leo9wA_d(O!6@cnvDFNkI28bt43Tep&z{sCUI}(rVz@TA<9CVc z%5CIfl-1?r7!IpbK?C`#{)-~@M+?}OG?bdHdUAgvWv1?;Pq2RVR8W(z0`X%m<1Un6 z!>c7OFDNzD~Z&fl*K8fY2tGiOv5Gkrd^~NZK-q-6L)D= zj~P*l=!wpclIcB5?)&U;X;PBa5yFnXs^OBuPmdTbO$u}NX|Sg5&?1bF1wS(P&%yU_ zlm4=vU?rYxukEh~g9ULpsMlGtje;E1(r9Fr&3il9TWx>LwfP;vS(Mg?q9cJ9g3}b( zO}%P&>VxB=I>*by*sOvVl4fum5XPM_EPvE{9O3&mtwxEt@tVF>E$T=%?Z&Hn2+?eF z*eZlO^;bhDwuwPon=Xjbu!%E+t_a^8T{rDs&Gyq1mAwe}d&xH=vF0Ds(x<=N*ne2! z#*IwY$@Jc>d*fU%=DOsl?txwi)r#dVta=ulR-UhGvj2F0;)Z$12ePkAY~ofU@ruy~ z%@*1H#)9u1^{?H7kAi2a_bh_FID&ID?DcXZBhm0}m1!?Ctrj8Gr2d*%p5jtt)qOy( zKSm;kMAG$>m^VlF9g^3U*83(^jhm8H0}m&be?*`7*Y;NVOM{JEY~`_(J?^1#i-O;A zyN;B8)&)xrsPaElnEEqIUD{nedHdCO>8sV`?QvgzhqS(xgIXoT>QrI1&xlxcOPn$Y zs~;DSh}8kn`ArU=>y>#}e8%n+pT2Fvc6fXqA#EglDumA|vqtJAJyJUupRJ7e5qfDT zK6feeu=q?ih)3$5Lw17Czzf1hBenfYyTAaFlK>HNNlrj^TQ9EUC(H3Ja^5n$wa#0L zSMwhk81;@-`0TbT-~-OQvU~Rw20^<}v>TFWbDqV1!3L959{y+?Xd2Do%uB%ihzT2O;{-+3zvtL$%Zv&T!z{w=cA{{eQ zKf`m7Ou~_6aPOhHxq`1WS0uwZZ>D6g9219g49Y1yiWJ;L{&*i6p6u`4EVC_HxYsUu5u?1dVxwm`ove3&*icu?I5|iww)1uKTP$l*0R_ zT{I&?YuSC(kZCg#jryXJH?e>aZ+1np*$969LDd(c?D%+N|DK7|fY?IVRd*g7L)1NR z7j{)(&^o1HByi%zoS&=Dz3nw#fAG#@>9kI&)?Y*Q1wl5EI#CT7TM$&ZP8KynUfTqcvkMwhV}#oYaoimK zA#Q)PdB-X>5_~EcOWt9YU18U=?CQ@q8VF5%EO=i{4xjk)tWiY|*U7;RzY?I~7>-k* zlLYLm_Re=+{Xr^z$l~ZL`CNdJ^zIM7QMzgZ#u{ zqDeb9_E)*qUhT$yXOX(s=|@G4-c=d{r(o=#q3VW={bus-bnNR|P*`|4_UGrTh!4&? z^BHaCbR+bY;2P$W+%U-V6kB@?+fh$Ew$qN%%jU6;dgPr$JL<(msw1BZ5>rQQKRpLW zuA^WRx8%VN-osEH-075cj=CT=01mQ_8@jff8gktYN1`XUE%T&W3NHMNeC6-^bdl zDEn>o*2u`cAj-j9nx^1b8LX8%q)V~Z%4i$5jNDe`(VZuoa4?)oqy5*c;NVS8V8T*q3@>MMvXD1b7I&yr%T?`-VW+-7B>U&!1GUo&Oy@e&@cUb!FfR~Q2@80#~A(~Tz6J9)`DBC&g#%wrr27;f~fzD0Q zR&5}-jj%Q>8@_CtFx7DO0fj5S%k~a; zn>&I}ivp?XZ_P;Arr%_;!KE(`44jT)#w{=LPBH33KEF@mep^{m0Z@5lJI|&ZzEt zKM!VC`v?Zve-O?~>J)PUmDTu5i{<}%l-hSV`Sp$`BCQ=k1JPCK`&wzMKz5t+@@`UN zqQcS~+~-X@AHlY_UiO67N1slPKJ7~c2Y&&=gm4Clq<{02#H3q;?|pHINP0)GmP7_X zvT;*!fHc6!ZW$SahdpOcdD_`?beO>Rzl49}(IkfRnfcjz3Mdd@D(eMS>W<)eO3H89 z^X;8%e2z`n%TQ3T;?bknuXimuvdY`UVp@jhFZ{+)MX9c9PN?yC^q1X{{WVm1yY=eIWwivoP`-7#;5-<&YVPVsyG`-A)MTc0b7`tMPf7uuX80`*bLA$~z&vo!B%djK(IpaU< zzpsQ*cM+Axak%~~9g5%IJ9my>`}^MvzpsWlc8cFIA^2bW!3g;69cHMr3_F59!IDD! zJ{3kiM%2#noAmII{yX4J@cXsxn0LlseiG)`DSl_J8cd&e+@7P)i7qj?nJCfc*gS4G zgi+g@;<$}OpYt9Xg5RIMy7T_~`%!P!f1AS`JH_wP+Z_3=*>CFb^jQ;T$XJFQ!I2;o z_TTkk)H@1rjOa6xkJqveVvdN(2b_t;;OVcil=W9OFeBBZKQo$DZIdl-O*6&mj(&m$ zt)BdJ-9aRlF-cmiTDp>iY(D}eq!uM4utRVk=d%Tekq2v2Dj!39$~9xT_ClL>)A9yU z`|G42YR_IoIr*S$lbpPZSM#gHnwS7SnKpYx2;iTamY(4R@JHJoZow|!v7NL0?6}L#G3$a(#BrjNNm#PC z(aGc&eQ3|3>|eAi8n(nczrE8EpK-hFs6>;8zgs2hzS!_3p1<=FzfxGDNu(b-krHPr z!Fwcl-3k{gLGL8zWk(o3u@(t>t(Ba0SNfF}0&Zus z$Jr9C@@BH6I8%b&36w#w6t9ZITZUJa;FX|PRpXVQR{-Hf&};HxyrHbOMe+t#GdWpr zkhuO#gmBp#m4LcDBn1I=;cao=R=lmw+lE(iJ~HqG)oMxkAm1*<4BLHQL7xK|jrGqk z1aYLQbhIOZ)2o7)k* zXZY+Hm%TLvrCN^)Jr!)5G7az}mkqnzb`i``6DTUS`kN)f*_Q*G5d#k_g+Da8CZtoE}Nllzvfpb?~+*aKu(M8{Yz)DJ5R2SIBGKS-F1sOCf+o< zdh%;mA1w8^1E|dA_KRN*Uv2xvW^H%3$#NQP78g{8l>Z8nuD*Ll20y#P8gp=~tsBb)JqLipr=on2tvF=o3{OqG9i|PoTdiW4pWm#KryNhWJTAZgV__}$l zk+b(1p$`T2a@S1$<~H_S=?d!#o}WY1fl;Vep+l76T#GUUf?p^$*{5Zr;jiFiW%?lhOp10` z;hcKeA$@x*eSiH+@Glv5Y#H}U;Q&SsY;X@p2S&W=%gc~;JXt@t=oPM^%|fR3ecW%L z?>-sj`|I(qB<`Q_Q(4!*{RfwYq-5Zu{Nn5TX#LwnOV@Z0@up;z&YWJ;>l4T~nv=2* zeSh%!H|G>JE^8iDw-=Iaj+%f*JF4tG|^`xkB1-itL};J8pwQ?Dk)5U#JQ zRCTQe%c1b;?xc4b1)M=imz5?rjTT4Bz91$gefR&5y|;mns<DwN%>bQ~E+nTd_eKO+X=P z)d;O(v5GI%yRKDyseoAW|DJR1z9a;TZJ+K1Q86B@xf%i+S=zmB+Dn zAY85lk;|)ecPe>-3d@)bj&(G+1`O${W6SM|%7-&)<)8U{1E2SQ^j@(JwG+FQnj_v< zXd6+o<1>TNjIPj|B3F`GlUO)1*A9Acc71C5HIL%rLb<;8Y(_u!etS0iX|C+qytaqG z%IlA+e@8;_fnS4S;Y?IkkSvZ3XMl_|3q$vcei89b#9|vgHRXox6}mB5+3|wdPq(Q3 zRG94tR7elIq$&m-O-FhyZ`POSP~sQ`W%yTVITS-on?q~|5C)qisn_2xB%CW|y>;^b zaNbK-;eSdRE{;|>Sre4;0ILG52?G66sfYUfYXW;@j{npSDzEV#;rf-Za0%wxX1lns>KWjQieBPfm}l&FuyberIFwOOAyLBIK!eL^MVahr1}gcv>>2X`eLv`eO=uzDPpvk4&tZe=czI(aogk3 zCfJ6xK=kW8p}FXHc(%r)-{>sq9ZK%pgN3b`||md=6;`2M0*%t-imUVABUE5GYG z-b41nQ1e|4jEaQVj&2HhH(d`9^6qNlfw?ui;T85q>>u`q4aCc{GViO)ope;o>fgSve+%H0h)j{Ag{afq(X2QNu|r_K)F;1`c~q%g9|A5j@B~Va7r; zg(RKKv)CH1rMmr-^~wHU@Kz0P_3*Dw&tK)>K$-JV^GX)R^0!Bo|KzvJ4Key?>tZu6 zvmwp_-st5Fs%u4Z^F+#iryUXEe5a$ZqhV)$^g8A~am10318uxeow#)5KhO*cxM}Ty zHR1&6Oz6ZOlW^BJ?(9GBw8kCBaZREb8)i`6KX`vMzLAi|93=p~P$l=18twAi4N6TC z^in#NrO9Yra5y-m{6Wa$TW2P4#) z{o;!37gyOABlg8ke}a6`lbKK^0}W5Z2L-Esxs_R-hIhPPoVS82I{MKkx1eshv$#=y zdBbv=xD;o(h_^Fi8fcm$bAa6tYY|d$#u2I7ke)lfK>N{`IyInl*n2do-ZbwsSZC7= zTHNX{ee8n_)*s>OV!=}IqOB2sA*1w)v%iN0INj}@*rI0xaVlRLv+yZ`ey89a+o#m8DX2azBB6rU5R z)pJ<<2JTW*)h68WvN+6i2YS?Y|J(=AZw~2MoT1fG6lFz>NvKZyXY?L_ByZ@jwu*Mv zu&5Pnh78Wthunm&hQ3NPxHqX5PujA@!AfR|o+n zN7JoY;-B!0;NEU14cr&S&H^4qj?k{;--4b6y^`KYub@vc3(hJ-XwnVt3<)~Wma-0L zGuHc`rUMB1s*&j->?!5Dgi&sM0z~S_C5F@r>87U+f9}J@dC4MLAR~mb?EmV5g1ppz zKyqH;M*uXX94e{gIfm!IDCW`n(f*@dsVRZ`lmZjr3Z1&s_qPaF;uM{BM4C{@T3f~m z%9azJMa0{3w9`SDK^_o;U<6{wPC3$|K2Y6%iwKC9#0IGlf1C`voe<}iQE9*u z6&yC(S$K@xibYN;BkMIeNr;GrVa;;?ONbs@P~>xS6I=l;$hi5Bi&5BC?MMwBqM>O4 zz$$CEU)Hg!yYCS?K?bk>P#vM;o!B!}C%aQc;rO*>zFZ%cb<&WAKiMuOuh;z}=s<4H z>wX(K$z!l@@V&i@r(Dt0>U&aK{NgSn-2RV^>o*U%{IcKC>$@-epQj{o`sp*BUew^< z$M*v``3O!$^46};7s$Z>XDC%DPS8Muhq9ItTF?>o|8(Cjxhqx%;~|D!23to~S}$Yi zG=2}dNIoDhC&u4)KgVg;Uc@Hh4K$sZAFXW@X=B?{L-@IhpCs1Exl&xecl*;X#OvmK zB!!+lvTK!ql=v+q9#Tzt#WP`&7=Ka6bjD=JN~tO_;3gh!LY@5YJ(f@U7xVGdV4Cs? za{TQ;4nB81yn0^t^XQb0>m`hQ@^^5Cte}nQL?p!CiJqF=C4;X^Zl@_hkv-<7yYGbr zuC$j$t8RKw`)rGI#0vU|l=v;Ff+ufXvLX9Zu6F3vuI>ID%4@qGW2loySk*o0u3Cz) zG8_ISbx2~#6EyLcRH!HeRWh_Ar}6OdrQhsq}h~4yBD2i-YLY}J1#n` zVNq9J{js!G)otlb>aaBQeX7JyYaSStcg5ThWiEWy-|vfc)^Yia$PxcY`4l;C%;8-3 zW_ z8FI{$g}91c#hdB#;&P!(Zf>q8U#)zhCmV0~D>U(0zvvRBiQIR){SjoQ&x@A<_|fC3icTCsaorH z|D)8D9dh-D#8nVAWt;0Q+TkWnj@~m}ri9<#D^o(vj=R-5>uvD+eQ_$69Nk|sb6xiJ zocm&?;7p0czh?jHu^eV*W_rdy`?Ga<;#Aq~AH>H)5?moq{|E`Z(8>_tbh(MHrUpo? z4Fu8=t~Uv3^!bvU;mv+c=)?7PG<-U*9t%Jo0x)l#b60JC+a?i}efT}q+rcV16PCssyA!?gwdo!CM8t3PRjt?+>E2OD>O%(?L&BWOip_-&-R z7Y_cKoBw$CbJR7cxOO17Jdp`dR9su=#5NhQUvX`*6I*Ymdyo^GZ@?kNwWUt%%LaU;xb{#dcD@0J z71xe%VrLt0L~-rmPOQp+Ba3UxoY*M_e6+asC<194aCC9)NGEof0ml^AevH%P28=GQ z9p%Id3^=y9_Tx_MosVcwk1MYIgcC~|a6)k{n%>g}j4iGmWReudar4927v=lb(9ON_|4Zc|+JF!n%YH@LGkrVrv z0fUQcIRbZx0s9x%4gvoLloZ!G9F99wYdWB~cBm73(|}>cwFh!8-GGCNYll0r%?6Yf z*B|6srQCthXhYdKsxE8D8I0MEM*Rt$A z!GIHsYsWgVqYOByxb~AyY`6iRDy}`*i4_`9UR-;M6Weu&j=`zLwG~e6H3P;K*PiCY zo-^Rn#kC;fj{ptVo(=~+#IH5qh53>P3$I;UP*Bhh{`jpH5d8d9e--lUHhu{MHSQeZ zG%Z6nYuve?({!w&Y>*Rcuxw+gD-AG~nr(ow)MpGZmWmi)EOoj8#!@F5U@UdC0mf3L z1{h22XMnNP?ow@_vD6y|7)!lqfU(q*1{g~{WPq_$n*qjBs|+xf`mq7VQa2l5Eae$s zEVa-8W2wsxFqXQ&0Ar~-1B|6y1B|6kGr(Btcms^3js#e98-ty^fuRQv#v8>}#(3i& z>`;?qys^yyzcRph<3|Pe1{iNlGr)Lbk^#mWry5|qahw6h8?yaQ=ZrTFG{AUcpaI4kJBcn#G2@L_4KUt# z)&S#;jRqKRJYazFMk|2v#xMD`<~Dev;o3@g;x@pvf2sPf>z4XD)cG#&QU8Lsido>f zr?FnR{ys`#3EC_N+Omg#leEMU>vgA0OODq1{jCjYJhRbO$Hc;TyKDJNWB5Z zA(t3n9P(KMj6-S+Fb=6Sz&PZS1{jBY%mCw%Lkutu8Ek-YNcS+%^<&`>IsKFwXrE*N z8|W;E zfDQEN2G~HKXn+m$(FWK+ml|LLy`KR#(7OpNOiyi~-!Q-i`b7h5pr16r2KpfbY@pi= zuz_A>fDQDI4X}Z}8DPyF3^aUEpC# zz>sm00fvlY3@~IIYJeeQhyjL-JOd0FZylgRVaRyN07J%81{gB_V1OaxJ_8IHzcIj& zafbnhjHLz`GU5gpGOjhika2|phK!30Fl0smK0fvn61{gBN7+}cwr~!tIgA6ca z6alP}Q}M~a57j;!3f?rpQ1Dj+3($g8_zuyA3cDtTez-u-pJc!M6=C6x;x?W{aR;o+TR!E;qnXaDf4a zf;s~X1+D>xg3}Bz6dZ4Wq2NdZ3YQ1Ge&hJt4eFcfSwz)*JLfPnTp))s0SpCO3@{WtYJj1j!vI6Uody^Reqw;3;Club3K9kw3K{^``~?&+ zD-3X&Hj2gYQY&D{_`CszjB^YyWKv}307J%hd>QDl zA>$PT3>kkhz>v{pfFWa@0fvmb3@~K;)Br=q_YE*)e8T`k#$p2u8Bqfa8FLIUe)yaL zhKyPR3>hH<3>haGV8}Se07J&11{gAi7+}cAGr*AX78~JfWalsWEWa}R@U#Jjg2xOn z6s$GCP_WtnL%|9I3Fch>HU?^xdz)-Nj07JoL z1{eyyV1S`ungND_Nd_1SPBp+#aGU{#f-(aP1qT{nC>UsfpbKD3DNQ0EU7u8ek|m&j3TgSq2yi&M?4GaIyi0 zf>8z-3O-_hp+J21_>Q3<-vC3w+wAC)V<>nTV9i5ppHr~!t8IR+RCK4*ZTK+Z1GN<%@&07HS?NkopJ;1~l81&117 zC>UaZp&-uyL%~~SBQq4dWPqXIDFX}ze=xvMaGwE&g5MZmD7eD_L%~u530}KTpGr&-AhyjLz!3G!#Bsd&jG!(pP zfT7^81{ex98(=7S*Z@Ppy#^Qxerxg3}Bz z6dZ4Wq2NdZ307HQs59A#~!7mIj z6o@6197Dmk3@{YL3@{YTH^5NvWdjTa=L4+y1FcO;Ksl;16ihO}P;jaNhJxb^Fcg#- zU?@1y07Jn*0}KT_WwS8N1+N-lD0tQYL%~J^3ZEl zP|#$6pdh+{A~O8ZdHj%}kA9IKGVIY={E#7!PUnXVca-ozI@D3l_Un`z9mfwD;^-&& zA;TN}I6q`)qet>XhBaEs4;j*^v*uxj(-vG`NaB3d%_+Oua@TY5*{dDH6Q8|WTnO>s zi`SO%9L2MgXBkg+jd3-M@9)OXW!H9!fU+@*9L-x-6Tdb;9G{3wSZ#&40P-9wE`U5o z^BlwTNS>p39>TMX=TM$hjf=O0*!d0fk=VaC$fZsAJK+_d4Ii`QOV4+APsg+J{r=yM ze@XBBdRCQh;FGfDwLSBCmrcFV-ThVkQ+lTh{15z83UCIJON3_pt-Jd&d|S@n*4_Ol zj#p%Nth4*$>GKG(O)V~g;+aBZWoq(AH{yvF*Wbi(C?~18y4_9K1+o@s`R+*!fj@W> z-U4yCkNYdloQhh46Wr2pV|PCsJUgA(9Tedtz@qkuw{jGf;QQSL%(0zBTao&eX>3%h zs$*guag}$oDfbeu;qKGg@aY2eRf@eyLa3p;K;6=s9+q00gJ{of4_ZA^oz-&<^#uK( z#p2!Se|D?*A!@(^{I#V!;;8L3Jx5K+Z>y-OS>9aJ8n3=RAmX$ZadV6=N_)h`)$J^G5x%gM zd=`g%MqSTe%8|^7_a(%{nWagG)@6!BDWZqQU5@p;9N~85(D;iq7>-y%^{2+f8$VhK zt(^^c_vti%LH6I8P)D4udItmt=dF@uk#w5NbP;4~Zjj8oBTIf5!+QW80I^6;mBDHWu-L!G3fe!6KAi?D#Mz!u*@qtp>kKsX>FVD^-y`@J{KV9@?Ts zMl^)e|GkWo^a-z;@P# zHHbs)SFa)L;laTO_%ea!d_tVQzPp@YV0!3=Gxp#AhD1Gl-M{D{JO1^H+lYP$qb5Hi zrz`9N0`0d2%>qaGU`RCbWG3a6!)PA8&|pk3eS^mqTj(jO(g z=lvf4G5^C`zb*cSdyh}JK=bSO;(s`k+x97ADqyh?{GwD^R27mR<#JP^Ws+<1TC z=Vq=;$BR$zXNRWA4PHwG+n(GeFhl6;S62#8S&(wO!ag|T24&Axeruc0!y*K&Ho}w_ zMbci`u5wdA1lTN1waYVpoh_)RB;WNXQMQNl)Jl*~^0I`H`CjfT@A$X8lBpZ1l_|9} zTgo4{S~LmP+kqyvBvRpn91dINJeojy0 z=g5z=j7ZuX+&h~FsCY>JmFnnIsSt0j^jTop_wFUzgiG?4KC{!`PD!kpJ!%f*(wTkb z*;iBCuVX>I(k;r$Eb(VQcYo6cYUQct5tyDs3W%yiyk;%X?H{Ml*Zre;x^h-zg#2KZ zy8eEVTsaE|Trjo5a(K2mrm{U zztO8)m%k`m&FlVL0B!Uo@&jRf<0K?5IOqorY8aJv zKYlW9+5{dt!zGwTB=LzYZsM>bzA2}CqU{mZ)!DlAynMvFxJzOrGpHPQVJYFi^2w=0 zb$_5W`XbBlc7NAN>h?|C){Ih+ts*#|5kGxq@}r!0PT#*qd<>y>+_-7TLShyda)h8f zd>?X0{xzfyKv@!#2MS%|de`lKSmMWDOL*q1dPQem_BGLdu1(*a^QoS(nXl8_tB6Ii zdto|${Ix-3<_pP7{V>;$ywCUmo23onuD;9UazEiU2<-L~it;3|6aTtNIkLmOTLBTB z6^}bDz%Ug5By(+~;(47a>gU(QFE0#akQ^UcDb?6~8OTKq@o`ziv#?qwcckQxKhbB& zs&IT#A(v`}N4GmSh@oqC*tu-|-C`0M+f7sui3jpSfNYRrx4Ru-BC<+`JGq-bZ#kE1 zggB=pF^VR`3g!CH>%CZ2E`b4DN#Tqv)5jFcoM9=;$rSyE%oP@)pemlYl!VL#tx6oH z2UbD24Ln=1LNpT!{Z{7%#^zZ-g2&+P~r@oT!sJ~qk=D9vy^t1 z16RVCE@^z3)2!ZvDWuKtrp_Wsx^@wg*PB2D5F{v3KuDQOf%%oq_cYK~)(-KSO@Y zWDyF<^`4OFb;@UCEKM1bfDtF>AOQ@Z_%SbCS(>~;CQ7#a(a$?-Om$BULiV@r(2vi!a(&F`%Nzr*LfD9!jBepkLn zj!T0H$0QBrQcYVE1%Wq$N012qS??v^5^Gox%^)}kDCW3#`vq7 zkt|1zMzZwMXRd$M=3|L87ydnH%uCP5!$$o}^5m*s^5ih7COsc#<;jIP^5oE?Gey9% zEHy;raKMSyu%UtZ>2V3;al?Z&Z?>D3Cj{pLi!vJ@C3Lu90xlKuv`M&`w0}ZYy(VG1 zk1M!a#j68>*-1DMDlIk%2e-?$%vWlYAhLB0%+;;f{;QjrgbB+Puk)CJlg+efZ>>=K zr;rnLYpOsLRUl|ZTC~xMv}jwA7Hzq$fRdyYhzf#F*d(K^K$P?lDNLcL1VT!t4)hiw zS@D60nG8KG*i#))kpju>O&zFe)`iqQs{_PT8GMjC8e1s=!oaeq11}2-GwML($Q_~w zNbnU|Ao|Z;q)Z^cgQa+SaCMFvone9G-(eTnS`~nMGi)sZ-IDLYdHbf8{Zop7L~P2h zYmc|+lwZf}WW+#Tnm+cVi}@m3662q1f-Ap%^!v~EoeW7@U&d`XFHfi)eYt+*zr>$u zeYsT0X1BjcsR4WkzO0;Rx1x)_d?o%|eUv;cS6`O7UG?QP8GU&pV}666 zwHJqOB~8#bicf-%a`|$g6sIp;ln9eSC_M?XVw@0|_0&2Q1kqz_OHEcx`wOL8aDr1( z*UTip6s7pPFvItCetlo1cmA3NTzS6)sSvSoph@G$z)mGvxOA9!jw@bn4um zim3^82<%dkb!8y#p9F>6oY{QQ0Bpt zYGMyMO|tzhd?3b7w1(28UKthW!fTWjWECS=kvZr;i~$6gU_h1NMNMeHSv*vO166sy zD=Kdd;jxqpHdNma&E&o5lnnpYLDO}HUW0pxt+k|;=NPZ7z8+qgb(EdQo(e8@2@_m5 z=P0=~#>rg=6r>7eY2RO>!(^=I*%kEmXB%HGsQ;K7+gN|}`hnvcyYuT0aU0*wuRnPG z#C*Vh^~Hew>I>IT>^Gjn&+EkC?j{B_(EwLhB67dnU9_aH{Rg+=A!qSZbRfcYJ>C=H z(T_%tlqiz?_YR+Qng-C@aQ>s~ClwO2=jxK=DXbYIiIMx`P0)WNcKPwqVPiMC`47$B zfRiELpI(v_*AX_(N+%FEXh7aL0(PhoJpYNB#I%w5;fgn%rsa$nHB^nv*H9W#PyOAK zoV%tCU}yPV-uMQeMf!KuB+eVzFI@4K)AXb?gbE6HZy{-o-JCKNCzG)E_nOgvai!W% z@ny6%_9EBti^J$r)!8J38paKyxHR7FURynOOSs~R=+@A^QYv*ahwAb>=^^{rlZrTC zUXnbUdhIy63_@%dIF;5^kNq0~Hmk>Oq=xFT-OgQgqnb9#ZTA~N2uFRX4T6v4zrxHw z)$goj$M`-HCnSb_ia|Svcpe>F52XVeLmkf#3l*(p&vaeK*8O=r+3|cKu(zqYXj8+Y zvb<=h%G){;`~FKc-m78nFIC=_u=kkPvFQcEe#N##yi|?%*Rc0?{UKn7IG}tk+%0J8 zC!I)65h^6oXsB^_zj=qNO}b*+l~;s1UMa0==4P}+WxixZPl|Z$V>c2$(P>#5&VSJL z4vw&aCS#DAE~!l+*n?UNQlVDHBrmyUbJ^&@0Hy)(z>aPE)B35=) zY7&u={gr46gkGGO>{<|z5B!Hm|0!JYhSTJeqU-07@??O2!KL9}T^R)bbV2biw30lT zFB-vsR%=W0aMD_(wbg9xKEv#+0Aylxo_vC&ka)8Z!bNFyAcRMdF6MuH-B1 zu3CeFZ#q(|BA@STbv&A^n3o8!+Xca zZG3eO!WS)MQAs3m?F3YhbMyIgKIGG#A3e(TI^9M;pOAQkveSPO$-Bqb@5jiT0%wbR zD`JW=qj$K@gl*iP9W92L8(-`1I%ie{uhNSI<7qI*Zr9pJ1d*#6*Zp; zi4$yiLq9=r@+_8E?mb%>EdE{R9{HAA@vw7aL{hPWR5j0hvZ}f62~3s909I5r%SC@h z6<*;q$?Xu~yMO*O`xl`p#KGSFyz6zj-n(vx-``F2uZ$#yJy6PrOsaY_8?dQ1N5rZo zYof&b(s0GQPE#@8o9Nv2i4&2V{ZDYmV>o0P*ok67>ZK>62T}h?)W6%(hm+1Fcc+FsUN|XSvGb`mW-xu&X>I*UI(=}@K72QwKBQ-##S>RQyFcY~#`LS{bcgi8j73oY z7fELvPGvk!iWF^@u?TlOH!588RJf?a?Rbf?cyUCy=7V*O}I&oMYK{n4R(G)pdW8MqcdfaDyq5NBOYKd|Q*JeN)%M)@2( zcBRvY_Z)-!(&-0LK4%PmnNB~L^qetRM*6=#27@zWP@;`5?KuXM(jPs9k7mc#Nm|=-H?K>GZ>Tj=@_94K05-<#WdD`E>dbr00x*L@8kxqwIag z;pKo9;09>nrAX1EN(*lUv~WOX91dbdGao61cV9!K;w@}#EW$0aJ- zO6hjI&aG4ZuM1ba=PX`JBixEdof{vM*05dBxOIfnq)uaEA|Kr$_Gh;M7EFvd6y=Y( z!SuzNL~TLjw3>G3#&e_!@2NYb%iMO->1pm4+YG4-kIg4}@abtr5EC0g zoHeH(IU`O_ODjQzHY?NP|NX$zul*6QXsc0+5Q}a@n zX(02|C9OjRn$^n5?Yz`yS~<6#mpZ4Fll*z9$*n{*$V*j85Q@Ci_*NoYHeBU?Wrk3(BW$m76PVjdCluk~I^z+b;K4C#D`6VU={_g^1QjVoF&}#aidaF9Vzz zA9lFwJS5Aej@M2_BGjK!P}O`=z9pO#YJBPRbYgveka~R2)P7cWRL|4`OFgP*YJW=| z(KB^G$a^Bx@!CN>QwPExjnAJB7t|kIaAthk;R9)CRdap*Agd(P+WLIVmD2uR%`LLj zUd=7G)LzZq&r*9ems?Dw-d@ce(r0t`x8}0`JGh{ETD~JK9=zw!*5{X4rM((E)KYsj z_5e%m)z||qwO3=giKUOm4)3$E2lZ_1!P3|R`f6;cRobhuhgfQ_#vW>^y&B6^Gt#VH zjU8dBy+-!1J{x;@&&D1RZd}KjvMXExl^=yh@AlALQCuH?#Z3%5CtR_~X?z(z=6>YF z=L#aC536@@;*9>03g&`aka`gJNrzW^+e6GV{9br^!NlfqL*>`u`Jwig`d54Jh1y^3 zUtRb%!u{+`;o1tzr1L<_2%C_kU8N%d=J4lom_5K~pf>t@j%(<#tjc-eZz-g{Ax~Tjukm zWKC5W{|Sv1_y$T#KWsydTMIBQU?LL2nyKcgP|p1*OBoj19~J}IW$0WI>HfQ!*pW z2{+C^(aqnOin3`#?P?*0lH{rOjpRJ0jTQOzQ)$SQ@UiE*ym8H=K@F+XsrZAphL*@D zWgPS0a5uDDW6tQTY@$t7j}m{7m2Rio-2udeyR#@H2aNL~&V=V`VlPUp#lPXFES}+i zEhIqXuP!0XVw*Ht!z_w7c7!Aev$&b4^rAV1n(*P&;u=mW(Vcrr)^!nE%8)oW$M$WA!{c^{PBGt+@%g z#0qo9TEF#+)5NQ-J$av)T8so!H>*x1e!Jogh`%B`UzjndMV#4$jdGPOaXX8)N}Op9 zUoC1^Gpj%MVsMSExpJt4W^IxIHht*asR+AM-1ziLamtF|QG^+)U-XC&1LZUwDu}9B z=fvKlJXSn;Eh&cKNc{72BJs1PIKR7kh8sU?mh-zwb0hKTuDn)XqOUxdeZ>`fzXv=U za@!9>+FYvn25_X}srpOZL?|D-<1FW{{HFG67ISo9#_1#V8)eY)Zw2XCSx- zm9EN{__gaAuPe)s9^l3&jdCj{jfpzEQ^qS;doM#(GXsfRnBA6Qki7ApI0 z$Mb`Wp76GfmmRWs@kF!uk#!`CuYWLab6(!ja@2N6-qZT&xn5`T5{M@&Un?GsqHVu1 zGkNdtBqm&L#MO*`TW22k(kT{5_!n%3m?B&>!h@}sYlevG`z#bkz;R{+yb_(J&2$#~ zBo5NzwCj2aaYpd3xo}taJu)1D(Ae%DOo|ANdtvJp{NF0ahQyeK#E`y6IE6!lCA@WF zz?)x^d54vy_Zs>%dqd^I2;N)%H@|{M;9YtfEfPRe?K}q`78e7WA$vaL*@m;aAB^ko zG~GrsLvbe*pU(Uj{h@bmfd`e_JLzEm+(M^*Yk}i;&C=%T<%q=kY8oIT;lJ=DIid5s zJ9@3NcnG5%$tQ}swJm{AV0rTR$xh}mu3bUF&m;KRPIckloU$<@~IPPkOy3eirk+UjGbrEFqQ6n+ARg3dm3tcx`!#G`sV} zGp`4`|BKI-NnYUX;n|I+-pVl~h8zD;>D>5r=?H>4G8*<3%`w7i-8sV-K}H%o=~sVR z&S!DeQ~v$TNv>VFgnPDs>i(RkDd2Vot`b5(Hv4Ut$TbMBMo#<63f7U%;*}_|sd0OV z(U;`qD=wNQ-^C;8;!Zq0H&ok{vY}e$EqL2#l@d%bbr@{VD3unOXq9^bxgT(YaDQI% zPAP9!C})c*Ie>PN@ph4*z94m{W>Z>6EK{)#C#7vTGu3P95a^={y;B+Vy&jHF$KkYP zDF^_Qf)a!|4dixbJNib$#1j!>Vn}{A8#3Kf*f)M29+eY~dwM!2hTL??g?V>ZQo~qK z{F;AC0a2)jxrqVilPoy}*ynyD zCxFCny~cYi>^&mO81HS}8PzMcAUTyf!R-?h1k>Enb2$hpaVt8mo{fpBL0TZ{Ox+hn zc2qAXvl)~uVVp`84=qNFVyI8ZUj4ZK(KA4X{A5!c46CCnh|qF!ABg$F%5WxSW#A?j z6#7^Ff-&7tpowBFj@SH<8|=Im*)8@G*GOf7Uwhm>=modt*$rL6J*l3mHO*$Rqu~(t zEMAp8LNDph`*IM^v-yg8=~j^I+BFL*Ec{x^gvAw1{xw7@qRmk^r>uWCLJSeOgt-3s z(aYTUM7m>rO&_{WH_t|g0kD%pg()F+21$klC5PK&&?j;S13@K?^(SA%CsfA})aB|J z2_4Fw=U_#u1S#v$66N%p)cj?~<~ah)3DCSabp+`JjkO|ct4 z2fcD{bQ5qzx?{&(z!g7_izOj3pyI-eP~rAhnL(f3Jx%VdOAI-jEau||l{u+Fq>Lm5 zTOhi*1Gfu{_q8%a3jTb`HhHaK)U!{`PusgGV964SIZGAvNwlZ z5j8Y=LJix1kH5;Le6BZhRs9M6&p*4XJG1(!1<+Gs*C{nTmpUjr;V1VeO?SP=vN10D zHWNi~I}FnmGZ!h#ohC8ghSV1kjVdu z@8h@AcmpN-KN#{JsHu3{Y5Y~@y{Z}cRf+k$*j+rYEO>E0UL5Ki(LkX*eSg5!XUe-9 z+|y>ZJ2AY}K_5ps@^($jOHLL@=8gEwRfq>!ZnPsFI&+pAjrW)5%7Ltkq_1Eqk8%wC zo%%nzoU^r+$2&7PY;ixMQ~iZtbZ`uQ*^WQA`lWd?(cH&y!*MV9r@jl-fM{95XhpJw z2`XAiMM46L&{;G3u-Fr(PQj2XK@(UO9);(TzmAfMXDL2gUPEC$R@bk)Qv>v4VefFR z3WeDJ>_5(2M{t1Ldj+(JTvPC~ozrCG>|byFdIznp@*ZYOm=UU3753g^z{;SEr7jBP z2EB1d-sEQfSxL85XPJNan8H?eJMXHv93^NDds#jfepk2)% z-g9^DfE2c%usTiR7w<>+tmllNo=50xYigJdmvh%!tRz^+zU#+jRT0$8N95R()3k)T zunvvg7~YPC!x_qVS(86S<_>rJb56rBJ_z3N?34K#Cfi%Vw^@XSy$9%QIR9B^@mqj= z;~GcQnce=*?KJ*y>cW!IUVpsbdTxg0yZtzTp_VbgLHz!7BiZ1O4&l0CWo0>-G#(;$ zn(m-(oC*@dkD4VCD^k(zG)^K-wz%>_&4b6ud76rCdX#~ceuvw=!L4|9-ji}C=~;T? z@}-nUJd47CBuNba>F25Foq!+R#JIz?&bRPpV4>T;u)4WFb#_E5-ndVx#i@FXs4HBj zJZ}?cPD}HyIZ#(_G`rMyq^BoQfBl*M#=6{P8Z1-l-$s&(typ{X#MDD7%miC$e8lDo zbtT3>J5&5OV7sJGE7HYKi2KobGiLop=5)Ii!SxsAVJo2 zTcvC~p|8YsmBU0VD*{MaRxspkmLi^N&$6bg?av@3TAm{{nCGM4Oi%LqqQ$!4jrm#) zZmVh4yQaChdWlWdnkW8`oa^+5GB+{q+6X&oqRY5WC)OeBJ)QgI1y+GLRr$}$?9ylP zZ}lkd|8$lt#H3oZf&0lzYXjCnv;pxfKj@PU zs+9K|p@hsR$)?~38Kp#<*6|pzEIIt=#Ga5=#cf5@_%7Ppc{GjzM4jD?XR5RKAR(WM zF07$lY$JyApKuFsD@v@^Hox7CJ_>cdnY}YiIDw|IBs+I~eSmx&5%K9gMFhp7 ze?;twfWvVKCqs!MIktTX;Rvn_&t^f(s-{cqCEaXkKI!Ifa2BVe*&=?v#Sg^KN#oct z>3>jFenx0SLI~NQ|7^sPb zsZ*d*%U5mF>P~B$R%Z~PL|*J;t!p%K&vZ0Swc@@1=Pv#r?N6QgZ#PaPiGMha6Tz&8 zR~>v&UHt85ako^?eY0pjyZz@$Ocz05fuJr@ptDjL_27m;nKVp=`mJW7i*ZLbB%7;% z1vvfTx$<$<));lS5DG$eYt*e$+!f>>jc{UDQ)eoM{N6UBx59q>TOi+7AwxEj%N|r< zCh!lGEH&pQhWsx3qQ6V%<=50rpQv-3zE!=Pk1zL6e}_DAdSs4q&z{a>_^Z<|%)9qQ zlKi#IU8w~!5~UPNUBMPpis^B{0an8bMs9__>}|5n<@IU2Cku!17xKgZUy^(}&{qVS zFVI+^OL$ca9nTLxB*}-8JWC2~5=d?=d`O_9fyB0f5|J90IyP0BI)&_Cht)1-RA`|zM*#rrEYWNS5I)B(>2 zreAIKAI;|Ng$#Z{38bvQ5T!KtJ~TV;ef_JQ46T_}B5_n((-i%QZxzx~U9S^OLWoL_ zP1FVXqIFN$mQ!SPx(FBbNQLn#iJtHVenQR-a*nPQKR+DGFT+n9e`o~Y*o`RjxW5;Y z2??vYCEg+vV&3YV6R2 z9F~aJ;j~}3N!?@qPdB1Q%;+p~zRdDM;vGyawZqH{#=xS&9V=K|mCLye4obSDts#~T>>K29xNf4`tUM=XTnCymUU+!#DE%niew zT4Emg8Rc?ME&1*m@fTtrf+@5!dQ3nR!SRh_t4R*5W^!%=Q|*fc6cV-*3RNiJA zbWHGc<+)+PEaqgS!j~^v-`F52$r*}cwJdNTN@*mqT9u~6g3>kO$Rs8cZz`lFVIT^U z$H)tb@tdc?u?M~(1fT1_gEg_8cWn1K5}z&9E_Cb9FjAJ^>F-F(h1xZZJ&!sfH`6Nt z(JQnm6yZKLsgOf_uJ^bS`|_T|j_1G9JH~`3q4wRBb}fVr^j1z~P|oc~y;fCGFgkK3lWI zw>SD+{mO^*IoJ55Pwx0HrBBgy{`b)5ci#9n=<}AdpwEq|eWlORREGHWMxVp|Op*7M zpWppZe*X8!&t5Wb-G4-IKFogj2N#@InBd$UfiNqQ5M~d56tU;OkNljUCBD7UXY{Wh z(&ztm@^hc)b5_rZy>Ulzw6FPm8h3DfaI*ZWk>w?4LY6;zX+{ur$XeH1LuS+h?ONuL|8BWHOY+lS@39KDm606f(qC6=h=SfE%S*RepZ zV}YDmqW}Nef}Trsf^%h-=zExUji{i9s%AOZ2Fa)3-DBBk#7z``=s$Vz;J}jXa7pbGyL=iT<`DFll&@87|Au@$xE$I%=Z`()Yj8fR@BR9ljoeBh?Y-^Sf4fU5(u#bzU;pnq4g44H z*NcC3uF;eI`rO@29A9$7EiO1ze8+-QF6PBAiScs_^LG3zJNFV-1t$&JC&z1S zj7nU)x-GGwY>h-B$?V)uC=mw%5zL2ZvGIqV4Dr`JE=#hieOr$$HPY6-`oK@1_j;`5 zk$scLy_{7(+`r#r|K8%zvw;uJt}MezWt2wl&TimWLOCw6Ij7`o;Ljj!mN==*!6{`f z8R-rD`L3syfvV1e|Yi)Nb`U{^w1yPN1vVXaE93SMvrx!nIa$Rvwe79{a5;z?32*kL!T|^Q=h&4 z-?0}=Iu3eV{NTRQV`rAw_C}8nJn$hs{?D{ueb9}ldtMmyFBq}{f0AE*9KuYlhcMGN zfZpfz`d)8+Y`v1-`>nS=x-O^4hwH8X!RxJmpcLk6p1%6ZpAt#jq4eRsY@X3$AN0Gw zSI8MBN$nS%5SD=2=Y|?i&x@WD?%q)2y_dXAYT8Gm?3XV}g*dPzmEA3RsT^B9?P1PO zoI%RG6aRTNoZL$r#*+K<4ks(t>oO1@>}_u2HbRm8et`AhP5-%vrg0eLo%%A)5%nM0 zJb{Q3b`!}T<>*dg{Kdz>NXyp|KqE2!3i&;a-#zSU?`yw!Vr>qy^nKo7(|tKbKIEtW z!TfZfxLvnGk-^1F#!nS}@YAnu$?{V*{8SX3q5L!rej59raFm{1_%}EzxdDz65B(3y zQG0eZsP{_t>5&QP_Z!7$>ENd3f5Fg{^&Qt@%|%Sr_yMh)6p%-Xn5; zkYn&i5n2wzk`;_)3)b*i(p?>(4mmY(;}()4-paWgEW}(SADf&QJTNjEdwmctM~jC? z-|sBG3tJY^3i@%vxPkID-plnTN4#CEN@fANqc;(g^+_By%B5voqDG>B7&E-PG}i7q z)tfn~?KHpa$Ol)?kvF*C+l<@53V!ttpbRB72J;Wxa5 zFOPVlLB4E9WyA3+OT+O6WiH{Hv^}eLP=?eoq?VIfVyT7tirzv@hFcS#Foj?|Wt!Pm z$|J6)ok>5hCO-Kh@+wIrHk8YQ)JsX3!q4jXg!(EkHiMtI!)P?0>iFbqs^e1^;tlgK zx5RbU#N$ih4L7lD6j7?>#urkSC^tq#a~4QMyZB zGcPyL?N-Z_o{=g2By%~Lut-anWl9IhlUoP z`}JTD7@yn_iAx9c$}Yxn1~ftHQc`Joi!2046)z-GIWHtlu4^D^z9n(~O&Thu5^lSW zPktJhW)R@otD`uL7J9Y|dD(*-r;in+2CSF`aw3r%C5k{h*j{&m&XzyykVhvcdGf#}O zbdJQb8o9pQR^BYO8%QcAX^fuirPq{vhs{)dv zXp_iSxvT22+0Lb%vz_a-08?Vf<9gymIpjq*MLN=Hk({(YkS0#-?=lGSnM;!gAwQfF z4g27fv^2;|@s=g}u#^9uUE~x`EVl|vrB!i_8^>2xS)v%`fm#icO#$vhO0-)wo%(3& z(#*CoT2v$MA#ciooV)aj!>V{pVm-*^O8k7$er`%Wz##s&G%#Tetf7GkYhcZ$8m}WY zGJX2BQ}7{&U%8-42%J$TX85QUK^+w6s)S2S;lXXTF+$LEJ40LM@PHEM%foIe2L(FJ zUW^-WB(GT?tCv_28*MwIh&Zt#%XwgbPpnWdvC4|tXa@)MW386g&ZDxqt&>M^Y&7;D zzrDmCBtIZLg3k#XY*29p4$?Cbx`Hdk5-lRf{9pbyqXR$ya}?DrbM>)$zCPN7n%F8@ zDi6=DNRMk|J0R&Mc`LMtQWL^P`p4)AH311V0SOf$EQE>>h|({h%?1e-F~4XKt*ZDk zLyg==y37zZ6Q|5&LXC1;n9?{@jc{OOOZBn3jEA6Pl!9&L@(8XlOXH%&)x1O{51HPq zNDo}J%(5agw8*kK`bf;Rl7`8vP7geUnhs6{hA zMKr3!YHc&o=ybPF_ty%N=ZR(&Pb?8WXOMZoEz5=8;;UEbBi1SpA~|Z6v37%&D%93# zMY=3;xfR)L&-2Q)KI`%3JmaBV3h<@fI04%IIi%0a0sUIzlEe-TfHF zVWBtmn$!fEAaClmOPSWuwA4}HUI{x0N)m5dMLCOI14?{ps5Q-vABaAH9+lX}SK$C( z9`UJ6y_3sG&6A?US+!JV-^t~qmRM?`JmPHr#V4Z>Cdw?e)KbqQ^&(!a1SHe7)JsX3 z!q52BdQSt!#HU_^BC=495PLNbGeXh;dN0l4wOQ~ougs7Kp<69a8b#h*%M&$-JZTK? zNz>47(ERMeO8C_>q;+I0;jDBs*P;S(gDCGwYe>Vd*_ui;Su2SO$c5#!D_(=XmJs#9 zYiZ}NFd~y^mx@Pi8s7~Xx|u|pwpAZ7--<{J!AQ{FZI-t~^0>uaIVfmrRGM9=?6bN= zA8n}TM*-7-!J(B?jh(+O+^~a)e*H3L4gw}Zn}gQguiTQ)*`Cwk+(#P zSo|Ds^?b#rhMpl%UqeQ_P#R`w%TTnn>idh9#M|2Wg@W+3JcuyNFpGtXaBHpnG`^C1 zqhj}4>IzwSY}I#y={rylgBe`M1#}9*A>Rb6%rB)vcQ#3oXXp&H@Rl)_H%cB^b(NP~ z%c#^0QNu+Y*ExZzW{@hXD}>c#1yJD=3+<;Wu#~MA&`VsZWpmZoDw`L0StkZqk0Ovx zxjt4;;o-H-k=L4I&61`o_6J4FYt%3sdG#m!bAusa!_o#rf~J`L&mw(_ks&9Ngs8bh zv|Y9W6#yl96%R3WV8K~Xm^wJC?23Ib+_(Y#_|f_i#I!a2I2=Dcs~`WZQ1s(Hm141W zK29DgYo{n04@CRrwMqkXsuE=zZDkgi=9l~wIt+day#+s41V7g+QDpS& zzSNyU8Au|u@ znM$+@af#G;x6w{yPZxbvI!{D9{gw^g-Hi(Ni=N0B3)z!jDZC>2CvP5zrCC7i6cWqF z3@-5&x#KUj5aWihJ#n|CMztTa%#heRJMNUm4Y-xdN{QpPnE;ksVfKgbDnU{QReuxg45H z-oqO-T!@;6OW$%Ee!4aM{^8k%AKtU!M_R+>#oW=L^;1X!l{%~RY`r$SNnJ)eo-gy- z-6GI{>kDdbP9Gx@R$m-rt}G!=Zl++6)Pq$7rv!QreSYS;p8idNy>32~ico7uw!6|Q zrbl^*z3vXUEOe(C>q?CHq=*JE4MK0JnGE^9nZ~i}0P*+>ey%hrFR&^U$z|L>i`w8K z!TJ0ZIYnaGBF{(>n+GBUUldE-rDmyjc*nz6>=qItyalw`?@ys{OU-TQZ&qbW-9TIY?xr|rQW^BIH-q0zbF^qOy@<_DF zL@5+$fd(Zi^*5FKmT5-(4xKg|cR_S=8KlzgYyM3?k)CQ18k8#k+|`6Y;jbpSA8sQct2y(BSV_FP~{q9LAT~c)!b4 z6}M0(93MnTZ_IQS$JJ27VftMMyO-*Q@}3mEWtt#@nbqci*RyuuaTW z{z1Q*mZx}u9CvJ|VTskam)7rHv*JVscCEwM|+>&%7T8P_mi zbL6v(vJyyau0cWv^uHMhR4=#00I97&X}opuyLs6*$xpONP5v#j)nq1;AK^z7&d-?5 zOvG5mW(G%2kpkUnrg=1NHj^?T?+RbKQ~eoB-1xiswkkxN3+FtbZG z3~6JzH2V%Aan`w`cnIB;^Mnj$FakoyJZikNh}%D13}`Z{q{?uTI)zj*py|RnFr&s> zWb7!@zymrmx=si^6SR&+_pR05Sqnqn^lMV5@o{;zrv+{77B!$LZO2!;+L|_DCsUQc z%2EI!sBrvXuE!DU*^=N}Jh+{OP0O>&NL_BJOD%N_spX`uvQ$x8D9d*0Sz(P)QGlC`FrV$PU+kZver4=u&7{(KX%H{YGG3ZtoFxq*Pnt#E zT+5qddD0y6q;Wm%XVM}vqfW(M!F=@tSS1??GVAY7D?OAW?9}GdEHw*S012SJD|3+`Igb3kG5vb&)CkE zYHG_89<1;AD~d|&_gYAFmDrv36Lm$RZ?^nGKrePXkLE->e|xAdiTg?MVjWUwpCo;y zlnf;O4LF9${G+sGl0IWT6K+5N=%8>>j21C{B4a*N4zYb;`d_I9wdPo% zlu%nnr;u)=1_sHi9~<7lT!CJ{VPa|U91}cUd4@JjoF%r5(E1x11Wpa&1xx`f8@J)6 zEvx=q16ra@6@X_y*W0Rvd_>M9AEYrGVuCDQ6l+!qKc!xN3WWqeg%X0Ff^_-0UeP7Q zRw-<<7iFYbdY;}{c-!jlWBN59Rlg z-u|?6)TSj7y9qWeR*lzbl$tOWwbD7(^@8%m#qGg;2fA>7$zN>@qM7lPqS+V{bbTpy zsh9lUSOcX9Opq;dkhqh{i6aZqdSkP~v>*{I=k2N%UC3XnG3+@oMA9x_?wHE{_PECE&P z#Kc|K5QY~hKf%0BE(wlf>s_LH_izy(pp|IBmt=&$Ht&~lO^=d#6yXAa15c-yG<=QQ8ybX?l zIJ{*_vRwND-lZz$1|@g1x?c1hWj}cv1C|a-(BbsWUFva!)S971B#6H1N^V@b7VN#( zLNm4>1EW!H4U1Ghv|2`2c8n2h(McF+JE4t5t+FW~LJO%fNu?T3m1;ays&Ox-8fb59 zkW#7RUGMX_EDjR6mO7GQZ*>!2Eunh-6ec}8^+|*wuIc=2q022U*WWJ!p@--jf5+95 zcs`H*LJiGGPN+dzmrD)TER${zcxC6g^eU!bW|c^b4y651gtpNr;+$`(%c0aj$J(T0 zOvab+=-67~{4Q}Zzl!h%dakT0zVZtI;i5+n;B)weX^0KM*j)R$3h^;tewuVAlg-bV z%+CC5$2`8&GHq5wkYZr7%r1Uz)}MjuVkQ;SAcUX~)oeH&W)<kv@Qbn|O zYT4jgkDlhjT(Mi#tcwEHPYh!`A%p3~lDz9BUga3fA`YS%DYQ?6A~u$S>uy2dC7Wdd~?w9TL{g93`) zY*0Y$TMY_0!8fP`qU1=M;(*?hSmXU8-0`;HI~f50qayXh0#ErkN%rMK$Ml{Qr-=_YbVQsPg{PVlj1<8-IX7L82h0 zu8ToYgHlatA~!UFK#fKPjS4jiYNUyTg-Wown2(pMMT~@9(74)tvg=mkk3c9!ZWY?7 zh(Sc7qDDdZTmupmNwV6AZf??o)USNk=Xo}NWPW_+&YYP!=ggTiXU_cNMMejz z0n8gBD56|un3T|sZj5+TYr&YJpt|RPW|>KkYAu-ZkJFw5wwd8rhb(5Hsz5n&R$C@e)hwyPJ<9UI(kK$uxQ6K9d~_s4cNl59;I&zH9^1{HysYqL z+mHt%s*Eive)!G!tIGLvYBNlP#o0VLzbt%^U#G6hyb*BMMVWP!r^hEa@NZKp5hF%5 zz+3g+Ks-9|hO+wp@l*Ztq}taUzwgbP%DaFtH?P|4o}NEm0nqCsvi! z29`fe!finD^4xf}Mpp*+@rp~VTh6N!U`K=q+=Nh&oQotNPx`k&=FYbhz-1!O?`HjX z1~}I~Y?zb#LdF67AddbU2PhuA8V5*xVw&MDm6h4_*cl)+E+PVK!#MAl7#2)boC@V^ z-hy#sO>TQiE8<1<{afthWaEY*Y)jrE33A73=|&V*g|Ie+Eedh$VS5*M>Je5A1n4aQ z#G|Lju>5{!3@R;4t=`s$nf>pnGj(O&jt_4lE|%Z-X_^)p@tgSAla`hhG6InI$el1n z>RAOVk}F$fTC82TDfg%t zc7=;7m7XJpUFA^;H`NwRgqs>q1vXskslcM^JQdh?+EanGw|Gjz4RtPLV@7w$isQ^O zu0DQgS*qH=E<8gE9PV|!Lmdk`)I%zCsMn+FP`{$=PdrB*8uX|-G-T1FL&Kg59UAde z=+Ky_LWlC63LTp8ROnEfQqJcJFBVqjoY_}PD!>ly`cH62@FM!bj7)Zg$`7EDs-U6Q=tR3o(dhP^HdNwofBrn36q)N zG}{1jzF2stuT^tkZ~V|I@OT^qW~`OLp;$+J`Uy+RzBvUo6tASL{q;k;3ZFJSU-|AC zcIp52QSdwZ_QF#CL@ABYpD(hH(27`Ye0Z7zd9v>yJAP&V9`4`E{%sC2Gu5EB_b|}b zDSp4nK;`wje-ovE2c$tDi3Fy;;PJQlGN0L4EQ6?;l;J^7dIA%lN}g?cAuW~c*ca-e z3O3QmPHMvMwy+_U;K6P)Z<)a&sCh^Wj&gLjDp(AJN5r)R`B?}b$Fvol^`FjJ5F}=l zqFhQd*4L`n$_B)Nvjg^odFym`;8`T2*4zA%yeAYS&Lhid4E@~%QGrCX2oi^uf(d2b zG*LlC^fnWY&B7FMcazuwdrAw;?uU)0W*-sD#4t1_Y*vQh;CU4CG% zlz*Hi&=xbcq?@N>>}*>e1WC^=V=Q&#OOS1t&Nkl`WtJ0{%34@D&xu;AF#;DUOd3FDThTEc8B=%4`+FA#l=u{NVSO zz{)Ld@7?#ki{X0|;NBxxP{bSfX5vx2-NCMa+#=MkqohV%B{y!EVio*^+Wc!)!9YQA z#Tq!lgQ{?cO)B+KVP=RqmSD-%3R6TqveM8oc` z`NPKGtVLI6Ayah-pExQM7~xo#ZMCO*{9CQ1kaPWZDlDm=Xxei(5pD74Akj9DLaeS( z_SfmOjpb)zYMmZM_;u@klbaKL1`I8zmn1ibgYo7mqJ#dk>B4fRiP0!mw|q8BM`In! z1EcZF-!2}F=j=8buiN14-si@rXkf~w2tLDsv`2y2@3n*zYtMz1_`MdLO!>`VmK6SWi*y_=y=SR8QQb5P{B}bGCL%d#wk=AF=d#NQ z$|Bp&_^t$vQ{*ZcneUlO%5K_`TkTj?r65{U2b{jwK>-w$KU~!%suhI-)kL+T5UnC= zopJS1Z2j`i%DaEGrkny^eQ0b=8bwhHxwT$H8&Lx=TGLK6?YSL9tuwAkYV+J4a@#HH znxtqSe+xLhxRfH>4N|j{0dWz>?QKbuW&GL+#fR;eW+Fyv#8VyK?=eqxddkEd z@Y_?@`?n32Dn+mowA;j>Nr+*gEB;rPbP(CGPF%L-nnT&q6(JoV$b-fn>#~1ELb)4U_+XuISk1z8-uf|BPFvz^AD*nTYB zLll0*PUEfm!Q$P;5BQ=gKijJVLIZWNy+Ng2b6^88T4r?ba&~TfR-?f=1DWygXCyNy z2btkY`paU}W&qlEUBJKPKxy8TNs$|o2a(N3+etR)S@$X`hB8cQOD*iJ|i6 zUZ%>G!!P>_BqfC-deI}!TY+02rCKUwr5olju2K8juF-n zLh2{iLe&!m`OE?8vY2VaMcavg0AFc9S2E*B}jgO1QI{nR#mU{twE^wP7Gs`ToN=>kK8X4JX z$$-(2Z7lq*b;&a3R$kQxkSqq=8L~_ZvN~KgD-CkR%-mEwJGz!QG6Lod44!kjq?oZ! zY|^Y_UKNLkp0YNI=7}|G(d`nc#mU;tZAlrpSkn6MtRInG8s?NI+s%FONoG76y;=MH zjpOCiRMyqBSF~OD730J$nof`zmGW0CFokX5=fV-cqwGtr!@(V8ayJPio}(t(@6lSK zy&kP0YJH8?RulE5#K!`s!ThX}yZXSKHOQm2Z;sZVV*ZYzHP~RRZwuS6!fJ~a4q7NZj!N(A-4$&Q%I%1sdVD;3lJfust3ZYE%!$2X1|4Tk>6!PL<%~Ob< zxQjyUV%%+Km2+$306q5Hm_4DQG22aYLy=-h8^sbD#S$9D5*o!48pRSqvE365sVhI! z)|l-&>_uRfh(K|EF)H#9l<%a^Y^eR07f}{(Rwh- z;fvOTQ4U|U9*i=eFkh8 zgqU+FyS(pQLx%ES%p=48>f}7T{BftTOXKs&)%w84ZG+1UGm7B`v+*VuxWv)jIf^lL zbD>1p5pu`od7cYd;_iO05_A#!om2^Qa#qksKRbG_r-U_p(-}HbCcGgf_ZFmtIi!B- zDZ`uW=uMt#(Kkb%o6rXqzQKSjyq~*xJ&hR%Q}akC2P(B<<1=m`<+?}W{nl$-%;bry zT4h!_CPgQemU)VeT`1$LvK^mZZ+O&z*PcJfPu7LMW=Xr2DJx6fP(SiJ9J^vc^Ge&* z`$Fyl8j4rLgn%vKh4pAdFDOzgAh;!tuFh~RYZso$VS@ZsH`d#%krSG%Qz(tPOGAeK zPNRzHn^bukQldjlgh{MevY$tmEZK;j!+hH4b*fs#$xWl$#k{1im(dE(N zT?e^9Pu;y3#`Y7(2wm2Kde5zUQv}OSGQLTf*QC@QwAI zxPb4e@3(zaAib|$K<}e#`uN`zoly>(hjFdpk@wXQC^uw9gunhw=pT>C*r}{?8K3b3a%zrd)`G13uBMO!RHX4MJoYRJ$Nj9Vh+R$0T<`cM5=&BH38h_L(QRFR`P5(T@>1`zYEYLogJJ5j1D{mls@$guO1eBqk}eMu zsLLbznjOe1D0X?mQ=!X~US!HLt;^FMRhMI;4cWsEGu2Y|)dVtKUb-sVTDB_Ny$_rg zQ5*T`$sEnLrutil`SMKs1QJxR2a-SCRAv|ytB>yBoC{}LAN~RVUVXp~O8~lpo$9vf z^7Qfvo$RKUZ0k=>%{cdOqkGzJTczDW%yMK{kEtpwS~SLMyoZ%k@A9Zn=SZ`WPzqDx-R-dHy- zH`X`W;hagsos5Ds{vY|E4a8YLT1=)v$8A9RPW`Rxj5DbQ5nY}T5GEBwel4nKlN*Rm zdmW0HVk#24x}g=uK@i;>AM3N5byWs=s0>tr=FA!;o3Y!H4L4^qx)x*Bkmh5I@0Dcq zHw}`(>P{Hoi18u1$Wc;@>$&$nX2AtO-|t4O@}XauHWipEqKe zK}&7EmT9xs;Zey7C+^k#!y6UAgY*~5LE;Q!FsTH%5!Zw1Z|z_ z+<-xnn~UCb&&R{<-nhPCb%f23o4q9lUuym+xjJ0@uzTFnD(27Re7q5>} z4GWa=9o#n<$1sCc9>`qUbtr=|CfM9_ZCXdQuyIChg52!r4g6mROYEgeLOUlif3J)I z7a<|j5?-7}wNsDvV&QjK?)2*@D9l-M2Gql^81_yD3GxQdtuPhZc&pFMp@meQ!V>9G;qJ6WlP<@e zvT+EPNw5X>;h6IuX$dV;?JS{Lvu;4hU|eKm0?kwqXpJQ3Z}C{`}QdY&Fp?xWQ~9Gbc9zbQUgY+3x_6!!WL>FidOp$}~;6+UYn`7QVO6D2$G#FW}nE# z4y<=xXgaFwxN*sGamjh{B#}u}|+o%G5{dP{# z{$b|X9J3`@_5K&Qo!)Cthu4w)mx%GTSNnn7exZCo)JvbUv}~q4Zf^Hl0?Ix;RQ~JJ z_F(_FD)EQLwQAEp6qSu82}#*_(x7%2O0sjorpnIbOgQofF4HP>%z727WV9&seBT#n zwSjga#BoV^(4&?YtZQraA!nE1?Z@|=uODlJzO)ISY^lt}svxl*r}o!wP=VM%kg`Lv zC@GYUa|Dc+7AA-xAm^->XRJ4Dl{Ob2e0NxcJ;n05S+k&=X zh(q6DhjZM9EZ2%a^ho?v0UEt;LbK!;r>`!W-1Sb0CYI0W_2_ePwQO-%!fM&(saX|? z!jm6cq{5=}{TBE*<95sL0J{swG&BocP2%1&)mJHY%{Bd|Tu=GT0qc_YxZFSJ4XM64 zeu`T&^AY;H1wKN*^Yw>z&HO}&V$5t*x09xNTPa-#dIn2gfU3T#RhV`+FlWC;NUa2uo8%nk;ee56e1o&iC+Ui2{FI43cml6xb-dk>HuF> zY;2yb{PK7u`JO9|9BALNBC z5uRu(N12be7R!LjNtsmU%j#cN#&F+CulR22!Y|X3DR9>Dpuz&*1iUL$c#@&2tsMxM zB3$gjYpvbnI*(DjOPXzJ+%6vln>&{#ec#mSAI%=TM{%5;Fsw*hx){LqEw(dg7+MFj z4VOh&G&fuxHQZL%Xy85;0IsH&dj@pS)&?gB!Scw(Lo){RV+Eb!$sj!efOQ6qsO-LV zSyX0Md&Is43waojIsGfWBFu(t zNFhQX*>yOzIV(VQ&DzWu8Gx?mX(P83)P$5h~5SB9W zXM_CVM!adS+dal}B7tRC_e%i+Gz zDD$1J6ZcAYJM&VMUUDm2TA{g>U0bf(turZ3(=4`tTtyK@%XDm2b4M-3O)Dp}lWf(n zOuzB0_oTl`-@+-{Bk5~dS<99Re~*47)%ONI(0dIL**a@cw?Z^OAJr@=cZbc0#9!w8 zJ~Fr4uD-00BaRsP_Nx&i|E0C`L}~H)aV?j!T%H>O?KskK_l3Fcq4?f)2p*hs?@wi` zdLLPp$_USyNnQ71CbgcF&Sdi`Hj`Dx+TED}Zk=J%uIsR8HNs3Dev&Q6wjv?Jifcn) zTgw@O5s@-bIw=_eu5ri9W8{cn2>Fj-O0*)H*-f=d0Fi=50dBYz|bQx=aN>rPfLX z+06Srv&vH+@>I2_KJ2L)OEp}`Z)-jJaiVn|74y)91J@*Qi9rC#zYy4j1CF4I?|(B3 zK8|O|2hD{noC~F?f(agN@v1l?&z!92#tp-qFu#hy-fIb&-v}MlPTcxz#9l;Sp?jT+ zF+!RI-Q#xvQ#!Zoz-vv68AF)MKi7Zm(roLP#NF4OU^*tpzEOR#3gSc6qpYDJovffi z+SQD0?bL)mNtL70P`;BzIZ;Q6rw~hKGqay%+k_SlmGFkY$~jdwDx59?`}H;h_M~q< zCa|AuHej6^N`U8=1l;Is-^G4w7i52-5Q% zq|c8(CP=%Q3?wJM5|D0tlYylCdGg!r7f7{@i4S9ffo(C` z%eFK_c}L0Bm8^we>FNqrgXb7hYFbZI^ATqvJN7Z0F+&P5(h^CHx`(-fsHxDr_G>7p zdj&rQZ!Y}Ce7}QwvJ`Kg?ETg+sbC&&X5Q#iLB6KKKlfW;Y+-A=(C2zeX^P0VDavNd zz`(Hvy!vPTAe@>8W2q=3Mp1aZRps1tnyMuIolR|p1C5%chOoiAbAOi%uX+R51)toq zr}ahhVN4af$%op`n(TL$h{H{|K`)67X~~Bt(nzt)``46|G0{S0V9o-L`-08UWaEl_ z>cX#p{5s|PmR%a;fKP8aeW##nO;QC(sz4<4ot>$u8HPIR6QZ3vpNG;0QSF$Zn4AGL z4Dqqu%MJU@b8JD*Bm*(TM8!m(){5d1NfE&f;Sil{>qWencN<|uI9>QC@c#Dzaw>qF z3LvKf$f?uK5qievJkM`nbHvkp=ax%Dh_4RreV7fBZo$a7R{Fv9btwF>L270cWSS@) z;rg~{bvq-UhbT^iHlo#XAWi2bE=n`Frl zyhlF^Cz+=zo?H2n5k#hUH|=J>E`081J=hJOr;TQG|J86c9LX3vEZ%=DmibIt_#CVl z2E;P`jC-5Lr{w-C%HzL$|8-VBcl$$-TT(b!X>^oan$XO-R~I*$a{>q+UF@n@t$H2q zzZyXV)mU+t!mcOTyJ+KMmU!8LcknatIy-QhMT+-dpFoh%qPMAwwhuCp!dA#Y;`Bu@ z`G)8ULFIcQe4E)rmi9Sa>%6)#s+{_)2x{i?6?4rRsgR6o2f!OAunO9KQu1 z@O85)W%pkf0VhW)TEE@{Fd(q5V!<#!%`)>#qAW9?p}J{x!%HIjP_n*%!$7$F`f;_m zH`X&rmr+?Wn{ihPf$U*5%kGeX>a;)7G=`|=FhsR7D(X&Z!v3g_%r z=P9U#?&Bx2(EW>jSb6w=!3Ext-h;o)O8AHEmqvw+oG#n)K;KR3u*^7pf%Xx~VX68c zv&Hakb|Ge5I!{{GkK+;3g)4`0r)z)Ui#-F}uVViE9w}K6kg{blxQQ#er54@uZO#B6 zpDn5W`P|pn#14RDOe}32%uuj#o0u~gR5oDUu6WZ4CYT)g1qmj88i!>+zw}32f_Ba> zZ%R#hI?g_#$x||qd3#MUafALdImTyAXnbbLmHa$pL6lUWn zMvNkrrIz;y@R=dW_v7ue;N%gI!8i250Ee4uXqNkeom=EC`ztsv5rZ_#uDVxAL|6cDoBUyV;&F8YkKH0;mr4!grHus(Q zZyV{;EOK+nFZ&Lj-xTz*-XKTfunMx43281I*BqSJo?WR60>cHW#P=oU>K5g9$Zp80D-rQ)lGP~M%zmZVe zLQxyfdWZx9Tf6L76LOTr*mUZPT_^~PPHEAPzpkX{mieMD*ZSq6cXJe*i2ov{P9pyG zTY0Xo;uekiN$){jaC?(BeWm=K*PXpa8=!EBCx&jw@=u6Q|=BC{** z!?qj4I6u=th)gD9DprSn1u%Xahaj^CFGIOOD>6FdMSN(Jm+6Q7=OYBT47U=xL1B*M zad8r5z8+&d zIcDOVEN>rz38b6R`a_G99`x52{TyUU1rujDVHj*sU>(9Uvy~C1MGY9j2+!;cWZ{G? za5EQEov@uB4a^;iFDO0=0pM@{_LaI6*!qK>(tue zRG`HK(x~9a^s8J!sgFFfapHTGePF2l$!2>;p~`CD1k3zUWU8$SGr$YpwVS`FLos|n zZ;NaCS3lchRqLYF``1V3K3(QSmHb;<&FvKqRYKzdl+|_Y{L@@fYT-+zwH|yitZw5A zMn!8n^u@qmeWoAvMXPy)$^l8-p{(vn`y=%A{q`h1mT_6&+88mrQT8I6<1@rA7;aT*ErWG;cp%i1$PGGm0o(D@W-5$-Rucqp74l|L;nD?NtsBx>i zDf(S}`+c?|b*OK)n!SvLr#YIb@88^F{Vl!iq(xY`haqH&K$jh^8h9G9<=@q7gosPa z1{~R zbzl0%GG6L>^$Wghi}JTQu53jwbLM2>L@Gi1i>cc^`K^re{8If75-nXIcmfwHR(Y+b zy0xDj*ITm@&c*$CL)O@7GPK`k&{9bVZc~;i)PI z9}`^t4y>{k-aw*E4<^`O*bJ}PL=lsW=o(lY? zgA@vp9s&`zy{OAMbd)XEhRm^}E+7j?(Bw10Fhhyg3HkXoLVazJd7fA;4A&Nj@{xrAHic7c3!|G zrAWv9*edet;gzVv=lBIhmERKbH<6#%&n!NF#qr*}PBEWGlA{q@w{qS2_=H!P2%&UQ zN6w+PY$%Fljz6kcCa@DHRViXvb2+}aNl%4dcmNy9NB5~`9>Br{ZokQ;7+A^SSAb|{!=5Ipdbgx9_8ZvMyp#tI&$ujp)rqIZ!U<@ zL#>8MPYf6sQS_oYeA4W!W@74d!Yq|j38yX==PascMn>ySv}V+_3pFL?oFT%(PFq)+C7x@sXjSL(Nof=H0R!5KC_>_zZ>))UFk&k z@q4^Fl;}Rr{5S?!KjS#Anq{gAILu&Euts|D_gqYHhhhw+GL7ppX@vD+Y#ku&DnjMv+K&6v+u`4$m@Bf=Z#g& zTAC^iZ_tQ=I%X*JN>Djp*7c^nLgSg&1xzf~Xv_6Ja)K{=K9I5!L!qh}#OZ}O3*=V~ zddXbRZ%O9wf9w3IQetZ)-$@!en2gp!x+CIDlrLwtYKD{pE{@rNB!;B=QGC}uvPsdR z%=Z@B)ni3kj@gY0gQ-r6rKGxXE3O=h-yz({8S?2@TB}pl=J70b0Ov&I>1<0mf`{?^ z65JG}y6-2C5pSD|jMGb|+K@j+Wv?t7)kgRmx{^^xAZ`b7J=k2hC^OpKY zn>YP1U?q6iPpXi&g0ja5a%H-fXthBP{ve2Yw3?`Q4J=EfS`d#p^a2$`H7=}s8kck= zlr6_4hO9XNzpU^MW`IuE;5jjrcB11I)`=fp^r)RU{>9b_(M%u`Iw46G($f4S=7}by z^;HN6cLurJd`mOpS}ph0=kpCt72gBVw3DheY@<4ZN2mUYytgJzRJ@)7bwmvwnF=r|o~xNKU?TG=S!r+uNY+C3 zYhVHU*kHQ{AQ)QW-|>(>2ES~#^+@)9?9_T~uH5BLWG-CovAX|6rd@UA(j!^Eub8F? z>x9U0o`G)SSu;q<2s3C{5$ZGN8bm$thz&nVu3gKd!$RSbYRFsp8cqC#r3I=6z~jydF4_)BgU_~ zjzmWac5WixxZ=l+sblHDuh@Kw4&vKh2Ko)6=uS1v>Mgr|y{N)lWg;2&O=9GrnE(ap zlo?;s#Fxb6z=X=CoJpLG*(HtHlfeFgw2HfivN5}gMe-!3%HJ)63+baP&-hrwN7%I8 z>EI{r_R-Yed_-nDr-jMt@%lOm+{}i2TtJx=y()XoY3>zSt8Oau3AFhL{B@KCN{3{; z+S2Q#OeD3-9YTZ2p9DpF4P|cVZ_FOuoL$92-!LR~ z1HI%GzExGEA*Bt&qYif#l2g`c3H@Ydd8FD1xS#;?S?h_R#0 z80|07+KEF_YpTLsZzN9poNGnllqHz31U~}qfh=J;VLc7J$ZXv8BD-;^#Fizvl^P!t z{O($c;m)gF-f3f;(D=CZNCVryj9ZU1++4UGe)RVOV9o)w7ug*^y~w`p(OzUXmSZon zYl5KEIVKvBpo~=sEpDbn0VgAztvhWTIWTEZ3u((68t0# zwD67XY&e9?wR=$??H~w+XYTCvY|dADD3WYy&moQ?$bV!w_`np+R|xJM=J`VF!aP?~ zPdKO+J;uL$ff%!48u%JJa6%|J)|>@qSP0o`DH3s!Nvg_I>M1F$SO`yA!x$oUk(3rU zQX`&9TajRPWJh{MdnDWHOPlJLlo%i30V**`;$q_!LP%*n%LrKn@-{2xVIRtzB&AuI zvRpf*q&tF@g}|pHxWYC+`}CvCzAX|aE0l@XX@MMFQE5Rq3veM6XFyiOJh(`1Accyd zmcXwT7n*EEGlF3Z+I$SoGnmJ_2#N%g;Nt{}=YWsj;}>;mG;1pgSN!|YuHeAT3=}k8 z`e>(r+;u}wDE>y7e*0+B?#w}8hT+1=GfT?G zWZlQv@DFAF$(3M6su#q9Ny22CxkTgd<@#I448Wjao%C2@;pQrZGQ-M^Mo0YPFw!>s zJiLrJnzxVk{ISVS?#6V=a&wae+?wG(eu$!sdvWo5JW=L8m05h0qhoup{dNNAq6`E` z&K;jbJj$4MH}K}irVDj6p^NQ@>_!*1MJ`AtWHW*ych+-R zNYQrSF3M4>T=?d9=0Ur|tQFr~MLGEo03SrO@Xpu*dr}n_o%&h7*(@Pv>qh>-F=R!# zqxGAOe?rK!B`}rwo_N|uJM2e)R+!`S4)Hm5Ty?tnq_8H0X@xuL{B76XUZo13Q~_EK z2m?9nf&S-yAv7++L$UY&&i%rxUT7QkZ6DT#-A|zXexds`E4^R1={f)R-7jSG5){@? z!2QBqy^!y#58l)Lk3^rW6DN+G*#L2}rT67O3qULtlMP4Sjh1DWMXM>dAiCgoUeyw)T@yQUIP9hz867fsgY_)(lEpG}D>ZHn%U zZ^3&lzwFef6}K(H%;V4ObM~RW#$DgHLyYcB;{(4)b8~wJr}1|;MIS&RWG`p?v)Jm# z0zP&{6;+#NNJ;|qMd}Ia>*Hvcnz+NSTVcAWLc>~c9!N*OjQ^=pOv{{6pf}fY59gHl zqHaN&S4)Sj(+oDp-Kz{R!IbJdLv*`0uYVWn^$R^d>u-K9s9k4UxX^fSdEt2~m0Nl6 z`OM_(b2Mf;<+O2H@*6+ayb1msKmQ;d7u4;ppFw+3yc2<#Wd4UukdU{Jk3&&(SLsJN zzZ{7__UvLA_>&19rWpw5mt)EKZg^DG)^_1fLJw%9NQ6A=@Pv^?^0aL?zL z$U@2a<$4CItv#A>9N--(6ssbM zA{Mxdi;6%{xlHhQIR~|wjFNa~IkzGt6Hg2a&Sugecq!p)Gf+G$1mWc%d3)+3pV!7| z49uB7D^$y6;#fydq%z-j)}>CzwO`YNV_Ov0HQ-d=g9vQ%!%(O3!L}aLldZMu~;Fe<_N;Iz~rT<+@vy5qxv^NL8?r2;)4zQE)FZ~Rt$_+Pr3hC>_Clopq(17 zej4KftJG1M`ysXQ_ftFnsfHkM`%zUB-^(IHm73U4*nS?_AOfzz!r{C6=}vMU)PVmr zPI73*X6fI4Zc9cF=o0U|bxB!4kEemRYC|(ibaFl_eOkyB%_zzX(8Q2`>FoGHM7L)| z3}ppfhoI+`_E_VnCN4Q)h?iSGm%X;vju-N*AQOIWAM8D}N7)(Q`E*z&1I#bAd@v7I zLHs?KGb``!6C)tY_y`$R_kk>rOZlbQFC_Lo<{t$VEUt}{tc`jvv(l)B`+{dZ z)7Cwui~AQA{npYl@2@D9VcGFLjI*9Cj52Ay!~ToUQd9LWXmB-z%> zbU(25ay^c@QK*zya{uiCU`0f1{EO~U5P3>Hp|Bk04ZWoAK*NFZz!1yMn4~T6kMz15 z5yYQ1jLbiRR=!y)8y?Bh88Q72PrqS`$H=hqNtEG{tZeITQO-P}*lVGn=CFQ@dy(Qv zV1&Vd8~}08+|I??n6bZb!_V{wW3*6QZ#K?7wfi)XM|?bP-Nz6|aga+y#smzhU6ZZO z=4bH9sj{xK_U?rD6#ek8bxQ&+%6Ubxui?Pe7WUlAuXaI~cUP2dCiY;TQfvDO*+3Zn zMO?aeD;&mEIq?}sX=&@F9q1%@_~ucK7<3y7Ji5`ZH2@Nkeuw4X^5*1XC(P}OSF?4LjO{n>bOZ-JC+1uGiCVMU>?rB@N-JuuKXaann$M$5n^>ovQn}+} zGv#-kzG+U~+lyXdrw(JY=G8d#2ggL}64ubFvOgz9s6S1K`i(ehH!b+G+qYm#iv{Do z7L4{2pj5k`fQv`DorK_SFKRQ{7w;ARCYMU19r2;JuvVN#1I=jdi2ddQ&?c(3K1K4UnbKhv<#^$b#S~ASHRR0xltwiuBEqpOSCsu* z?BA+AHS4JwPtAF%)>A>=sUw9XDFmEHH(_2tH<)sQZo<4lE9d8EvJnUKK*(j^%wl(RBP?npWp)208q$`Hb z?hD2*iws$5BbQ;1sw*QNRR_mBD)*6jqLAl=a{OK;?S$c+wqnUpPkE}+VQ^ipnMoFo z(sGIWVYc@W${f>O6nxHjrVYa}=h`ro3vf0h1TV5-7&jE*Xo?)+PhB}o7_mx-gBzKo zruZ;b6FgG-tzK}Z%s}5F&ce3}15YNQ=G&c_Ld_no#M-5wYA>Mv*LYO@uO%uuns=O( z$!WKJ3tlfXot_E<-{Gk+DeayLgVpA#fR`rWx zW1>ZORa)HgC0veK-A(~(Ia=L8v{qF|t2@=0M|+4`gVDxbFrX=VW@6^Y8drxUYP!g9 z^wy5nuF|b!zzMU`Lr8tv(}OcViJpCvE?vGMg>?Car%1X~6Gi=t$(PXVqsy1ifDnOC zlLltkOiHP=!2jNU`xeVAkT1VXON>@gzPyx{7Ri_9a5o+OBnX(ul8!p1@*Ofq+6XMz z5;YG!aRTNO2*BePFl`gfZqFF)U-ZA%s^xORP-$S2peS{U?op&A{`bsL$Zk@n*nn)g zk|X7EMmmu?!&~c*$N%1?`x#IB*t?CV8Hu}oJa}z0{Be8nPJ~LPbdw;?K2HC8D^1Ky z^&Jma-K(X#@FM->2sYmHH5^Er%5? zyaiY4d@#52UGG7h{>-w4;`F@!*7%2XR*@c#gK_)jRCUWS=WkylDY=s5((Y4OPO6A; zt81E3Gf-4!o0U-#Njjz3a<92u!yGagUG#9Mzrx_a5KEyhe1hK~b5yaOu;8k(QkmnC ze=x-S(t8Xstw!H?R8bYumvVx=?@!8vm}b)|8w&x;f@`eX-w{Z5TJF*RVJhG%`G>db z2HOGoC3^z6??n2wR|w0{2&DME*CSYdUESr5hA;gZqoix`;oh&Y4)qHnM#U3+Y*-(2 zuHtzTT`CT?ji*%*$1DYORW)Loqy;gxLi-1QxN%``)42`P@ijLt(T%-^5r609N$QqU z)iC3p3=Cf0F+jlx*7u(vMza5ul7woys7Bh3>&jV=p7o^N)}!RSr-PMZ!FkWYOtKka zZWufA=L|`Yri~Myu%1a;K~y?@sVzkIF}t}}6KEUNJ2Z}72NP*78Y`_oL}~H&f~7PozzuSX9&=q7LN7%NVEl#Ltz%8x#e@kJE<- z>@0(U+tu}afD!r2@6`URK4KyB*MzToD{gl;{)s~-dub^9zKQg%?=@%cX3wc|58y+1 z!&u=+2KvaK7hWtv%=#^(tUXwXhGtL$<>Gr&?urpojoE)_%!=@(aFNY}8CNxC*I=?K z>smA!99zgVf64~Q%-#7^+nm*Vg7_%o+(4E}b9`QvUEA1@eJk0My6#l?jHv1{VK9dV zjoJO0vnQadkQh}0!wHx^zOjnh_5=f;fZ=Vxa4H93^Ds1I-v$gHY61X&=;qGVk7f>h zR5>Fob!-#MHH4A-jPrMZInEHL#FoTlL=*HFC4W;Z9ldcb9ld^*^);# z{C%?wrM5TpiZe(shv})FgfoZ^mOmM$2XaJL7=q(Jm8r5SbLMd>FuXhdWVE1Pb4qH% z5xSb)FP(iOD3Yrc3b3&@OgMp#=3F#Bp^|8e=Yli2Hjh>lZTBd>4nD6=s3qFzxf9eo zNwQ2ybX=Z0MNWlBr-@d2G$vZ*(OII^9%T;Pcwb`ZamWP|Al!zru9xoBx#r9f>FDjr z+3XBNs1wJ3u3)MKS@HbTPB_!iTNsKtL~pUB1)}%L)$e3|{O}`dA@-GrDE@~(uPvLu zZ?ozRS|O!BDoWTBkk2Hn!H7QBJrR%m*=9j$By6MqM8YnX`LBnHW#C##nN&ts(?CQ< z)HS%}wDhQ$UwDe~G#BC%=I{23VdGOg(gd@M!Zr+|%`l{RC6kXG%Hgt$PB%OKYmWtb z2BbC5c=i&G>1dNjKrTiu$hLkeYW;cPLWB5;gaJ8Q7K8b4#OW|_u6Z&1VT$lmgg^It znH|ivjH!iLiNX13FDV#7zkLhJj)c@*`5Bpu7Wlx3erSX)u2_0$Q`}&}s&z|!oF~8y z@)Vl#+-U;j?3jQZQnvZ$kvqr8$yWxHorki)MnRZRcKot^5-SDw>GlHB+c$1zM1xN^ zA)4^h93!UnYIO085wvTVv@=F~Xm^asnipvooH0u106*1o{HYD*c5GZ;2UeL^H(Av! z0#5*Fvw6uGT1+Poh{LIvjYM`ulE>s!CogZ9mf_;Ue&g-bW@F;a>^{MCLe;_o-%ev^l-R@(Q733>98FrmrNm#jN3CBMFY9CgveH%3X z@rR)CBa*w=d$MPU*`vEmJfzi<(J)kz>*o(XS2D4ZNCQ8n2}X0wDj(lub50p?0j}SX zq>Ri}U<`v|_1VosR>o{q5wVBjPg>D(FZw*@A4Oh;$`n;Td0Lka)QbP{1*W$qNzJ_! z=XoW5A?2v+q&Hbfw<6K~U01qFkK8b5O5}#ir9nQ}5CRQy<~2wiaDj%r+$w!n2K|Le zfsq^CxM1JC1eXFRhyEDG<(1*BxSfCp2f3mu+8tA%>l3QIvN6v0s zEr*F{*foIV{Rr>=5@&YHr2TSqN{tlNq_x6N^m@uf@#CpkPx;F3e(;jJbIGxAo0qh8 zl9NzR8H+A@>tZrgr#NEayP7wwiWvnkN|PBzVORW~U0N`f9rYFy-bWDL$7HR^M5*&> zGxT{RKJGr4J|{7nP0o4wVim;y$gdd{CEbmbonApLRyK>xz80Z91(R6!tsDhU&Ss`beL zsv*XYYY7VGi3QE33<2=I4(1gBI?e&Qqir4_H`iDI&k&<;QEJy<;1+ zrb4eXvsyH#Oim_)1gZ0%7)81Md2F)XYpJl4K^%1 z7jajPe(^wOB>bR1_g@raffMc^@K#wcP)*>Ak()tBTWamYXdMAZBwGk{MDit-lPB~p zWL2n~9`9Hktcq9HgtS`~uXd|q(_gYAh3@W%pTst*;G0FCo` z^g=pIyH2LXD&`nItBgQ6JLCQSWUS>3r)0a({&bDGUuXx>^&{?Yn>?vs`VKkgVD>8m zClk6K7G5D59dtG>))rc^z4m5i3Lcg&Y3LcnhQPL+@khN8J$0yD*P(8|0 z0bYrp4QG>_cGS=Ym{>ORezrM6Mxfthfvs~uKV&I;Sd(!Zap--OTL^vb+*d!?4T_Xl1tbjb-tES1rL|$j+|i z=)8vF-oV->DHK=T%fILH@3G~_YD80)AM@}x#CW?#3e(ERHyMBHq2n;53xufB3YB>B zX%Cq1gl6)IDZxG^=2cRz?Jh%7i8G+Xe7OgV$u)q>_nOC_&jL%yo>CX0bT&&0#+1B_YS+Qob53Zo z69q)LI1_Xb{=8nIhR98O$#zi{7y3Na;i*|qb$V*fQ$0#0_u;}zGKph6;UC|`Ld5$$ zB~C(0*vPjkPYruYe1&g@o5e#%L(y>PXpj9J&&UjiWdLarocT>m^{kmw?+2GTvh7T?KgJuJrpJ?M@4$@)gBe#rm8(MkoZjUyITLf zpfpGKF{ZtYA~H+A1~W2kCima`vv!cOgQn;+&Fr?*-kCXm! zia>kwX-ht)&m?o*5ma`WC5&CsXVRk>dR+2H!}eb^Eyi|VfJ?Fc%-FD9eS}F3SzuCH ziS?rT3g7|nY#jUsBQ#L%-^vuogHi|L=>#-LWy)J1o|-vjiG*q@vsB+@u#Uar=mjyG zM{mbXaf<#ST;UhVMTDyX%}Yek6WVJgJOk0eNqIZx2<4^VMbDghj`HY>c$0mSG+ye~ zNc^#cQ#WNdbTaRpj*qO2cjt}L8 z3EEY|E*SmMJ1vH^J#z(P%Y_G1v2)zBi6p6ZzLDw>^@sbm=sPV{9-P@!Da8$G%QR;; zH6E>GGHX3rMYPVN)naoVts&ZC(Yji&p-oW~zM6PH^Ge32@Sr~ZCB+8?Citxe!7ux{ z4rFtwf2ZeIb7pu5r>WFX(3AysB%Pf0&>>+Z+Hws9!1WRoZZ$Mq`Qm02C8rlyHV>(v zw>L=6ccvumMmjTuHqo8=Goh?+!||$qNzX$5rQIjPs*E}sa8l7X3DB!HKC-l%t2I0M ziBX1r@}+h9iIOad2fYHNSpDc8Bi}w3>+CV6 zXW8WI6()MQGrsb6sUyrnPb~~l0jiMyMc@vyHxpZKZs~b8S}!y-F24a}8YU)`RA)vM z&y9YCps-D~`zbjwMQa)45EX+D(T)(^(a^h`tnCd$>P5NtLi1AEi~YP8-*gdiPraDE z&3d69su$IS^g?f+crX5mSg{u?NO&)5h$X!cob=*o3&uYOzHI#fki{4Oey#3AF$+}; zbvC0f+1wZS&qLzq9}{j`shr$%`42N1DcjozSDr=XjoWT7=RNBkP0Odby{UEvRA03A zplHp39BM;(I?P*LQQyD5GVqSV&jFI5Q*q>aAx!De-F&wpz`8e@bZtWyHWdj1jQ+-k zPCrEWtkhi2W0&TKExgLk0I`7`xb`SD5&!; z8{!|HFu#HEcU!e}vMtWZzqXZ8zvlvYrw!z27r{&`GgskAFX&2V?m(~h(voTyZ3q7} zZPn_BRO|g2z1_NHPdZ$E2yko9&6SgLpA}NuNwHz52aCWUX+XlkHltTE!ZWXBRh(6a zdFapJb|3UPgBv`MD^sgdwU6sGe{0?<+aAB2jRkq?ATwT4kOie(RYqQA6sk0z@{}xA z5+6(r_0fhAC<(`NEqi@gMcootP4yk(zb{;gkgT-5URD3#6iT4wO};%B|N@jBOwTAMfQBiNKf zn+LKj1eeqH-JH57T{!*aT6m^F@}*s!%}5Zr@hQKKqr3$1<9}uuOy`z8(qLFWtP7oo zY5vg}&1pQ)w?vOLvte$B)e#>}1uQ(uclNr1XAJ20v)X zUjwG{9n9kdrhB_hhU_=HG@BC|SwS&6;WvYnkx+DeyhCwd2^8UV=Xof0#?=mmez^dO zr#ckMcPPf#$1^OGD(EK#Qx^5JgWPzF54R1{yAIHdD#yXAbMTZ=1n-M?+8}+pettR+ zUp$>VUiQFkg6HUObsYrI?TRBoD@abw?KN@s zb6Sz9NsDpNp`|LW5ZWWP8D;o!f^8{4Fv-w<$-xzjer;O07!f;Nl!*<=NEjiy(VobY z+bS?q&hvH1GpR$KNqOj&N2hO*)x1eZK26!vCkhYH5oWX#w1p5v*vXLT*r)pr8@27L zHEJ1~NDLrQ{Xdg#qy1J+kh4zsxh=D*L5pe!Ari_52wXyWAF)J28GjE69wMRZoy5@d z5A+hkiY4Ze4BlCSI~Fs59^nh!%+v8Piv|PUOx{yf8V0Q-lLm@r>YOHL^2Wui z8xs~yx-sdg&<(A5jCkmVEqz6;MC{)}H)cJhZh%nYm0{``T(L|I?j}M8cZi^{uXnYb zu0nz0mPuFRkKS(m99%U|BYPm>(|>9-5;*TXjWqIWFkATmk`}e1PjR9R6ENnf0D0b1 zg1iWFriD!Wk#<567&En7O1@+^cM_#9nI1wN2%$j8^bxfb@cJ*6Cn;37|i}928ZbU_}U-S1OzTfq{M|&^g znpfbk_@`7SYUjW}NI3J2Hqbd1P5x;SO;KTpodQTFR+}RJ*5=20W$4>FzAesk;h_2vAOu(D_QD zf}@HsL4X>o!Mb1TQFXu0qDlADo(kP>@sxFcj9sVxdO28|Odq}Nyl3mR@MomYxVO!e z-|6gziFoJB9}~L znF;Yf7?uR5On$8GM;$C225NZME!-^R3`Qdu^s&j^1UEuVt|$1epYD6fDj^-FVM-y? z>%7)&x3&(^=hTWTL}Sg-4oqSyC=*B1&~G$erGjRil&SV8JF-lTMFX4()M=|Trzf=- zgE=*n_|DC=`8QpcT~2^mt0AIX zr&U;4$N^2Q|E%19R_7mj`A{vopTAQ=iZ=#omATP;F~S9QO0D}>-WnHx@i#6-{Qg&J z0huSM8f2bQP(dc^RPt|m`6MnU>@^SfI07}0P}>W0?d=163iN^c9IGI0ine%;x}JW(ua#K z_CC~;8OV)tS`p)W=~k-RFdod2`166*UcACf8?n7<`5X)Yifqk8A+v@%LCGAf8V3w^ zyeiwb;IGnc8&T^De-Z5bcZS=z5cHJcw!6kd5)^KOuzE-5UA6oqR-tTYaZL-`);4mj zk;FM0n$~D-2f0o`a@rgGP@9t0X(!vugz>>?C)=;-i_R#QA|>_ox9aI0eD;=VVztvN z*$XFf@?^G%vT*%t7jw6SYB+808eO=C07{sWuxbz~Glx-67BNtxlf&}E^<{k=w2 z@-kIY9=F}%Z3Lva^>T0euAfTbx$u5OEo{1I{W*!cbHV-nuilIZ394AI| z@B`3OTIz}$g)IZB0mLd3OF>^`@P}&;$r{@0MZy}|uas*=i>FXJTRI)>mWe^A-zegn zM>J)&ofIS?N7hd$p{7{>dWD#KV=^>z#-lfqxQ|I#Q;$JyX1W|9^>BpLiO#OP6pE4~ zq#}TVu9R_!ER)+Q**#zWda{_<7(JY~l%->3$;%yYXS7s(yx$KfxA>%Fn8jj#9I;hD zhc4PQxMp|ZIF^j8#<5_N@wd1D_8$^b-Tl9>Cweo%o&fM=z#k|`&RS{Nh3aca{J|_<{vQ34Jfj9GYQABi0nh?^>X(Y!&PJyY7N%h` z)9O*Kdn)d}K-x(qmv+C654IoGhl@V04@#o1mh6Sht?enJ(q`1VVJe>cE`xQo7+4u6 zi|OZYvv>8<-?SWUSdP9om6_qUg>$s=;Bt{KMQW~eDf+J;+EVo1SKCt5CfK;1L=Y5t z$_YzR23Ld3h{2z=yAH5P9VsH`UqBT5OGP81M|<>QqN_Z58PP_Mevar#9{mrZZ}#X{ zh_-uljLpTY+U2!Fa_F|W8%o1!g8qhHN}AYIG#d}Hwb(b(bf*R8K)BH`=VAt>z&=L9 zFw16v6-fqKSvy~mtya2A|1#mkoNDe%-!(d)J zfG0WEH-P%~)l!tpl-c)D`>wO#U?r-1X69h%YrU3@}i#+w;f+^w(T z;IO*zT2*;9E!pa(D~ucS_oZ(lm|LFu=mWHL_2+~Zsn2g)|6YKynHI9`I>)Ha((ZrT zj4l#8k7l%9!TJMLhz;lMf=YWLJCn6{ZB0)S1=}n;kYh}yt$VH-2%~^bnO>?7sVnR1 z`ngp1sH5N@mh>8FWV%cj!&vI6<#8D=&%9Vehs31rSzQtwI0Y;ny9I)T=rs`}{9-DD zHLKy1hdTXQ7k}Kf)08^suA~^4kWZ5ufj8ykXzZG{g2L(<>%Y7yf~ku10~$&ExlPYdBK-87vRK!<7_l5W}_o z(svvdJ0uGabT$k@{%t@4tHH84I3)8&1>HG}(|<#WJ7cko$K#MJo%k`g)0n?00FQUU zFK%Sqjx5{&c)DLsOWcz+GX}DQ3y(`J+{lP~$WcUi*lLlZh@g$zD@PH@jw5I0Yr!$5 zZyAu(b=}Nqx=ALva%v)^N{Gm$@h2USUU3r>#)i3hs`2O>Qy+Pn_|+KGI4_MaxVM&5 zt-f=L&txrP;gMkAsAZ0C!!~FSK$#q00+;P$y3XG#&OzHXz!q0z(P~n@!BBl-bxv5YZytZ0jqNs}aNsZo7`pSsnQCJOX-zM3m-~LJO$acK3;;WnP>wDPxPQv-WSOcPOEo zquIt4`P7A6@VB>ow{I2U%6%Y2n=e$8EzO%P%N02%{hU^3IFN=7m>@ZS-#+3Jsb2~p zC+#265Zb#LlpExTluR7!pF+Six2s6jAHwl>dYzy*3}fHaV?_tfQ^4Dx_1S@QJUUsp z1PK4$fNGBJ=V|*qul-!d&bG!Se;f|+Ko*AUb?kW4;gqSE7RcLd|g zqujU>Q*ecv`_O;hH~Aq5JpI2BaLrIPg!{#)QFMHw+aqF5?*20LEn;;~FLl zW*8O@2GHC}7_;jS30a@(WPSIckacxlTWw8K2|e3=@<~`maRr`$A|@GY6S8%my!~3E zRHa#gW7U|fz{N7Be4|(fx=PBVGTSr_c4FiA$-jgE_~;r%5jCSA!5exN`(ObS`(R8e zG+h3!0vsHTcu*;W+Tn4x0cZkyL>MtCkWN01R zG-^-xS8TXAs&96rhp^0M#frK=z{qZ-^O50_*NI?sYbNosXdkk&;VqxU_eAjEXYclK z+dNO1g}7p@D}@ zDd2q{#AH$vmYKZKH>6A+h*E$qmB0ouKASaK=Z&5}Vga;zRIB#wO0sWnFc8dvECe)0 zCZv+LU_dqT{!^s|<5dL3!ORo~GuaIuUjfPWrn65;XHPC?yP+j8+2!W!nXWLbIJ4Er z0;#ArWXj1VplXV7si`UE87R>>xI1S7&mieSir?QqOi=IbS*J~&^Q^dP1Mo8y3yN+cp#@(30c7LB;XyvPEiFu`Gx$}2&Cs5DSlZt2 z7*g6h?$O)3;p^6(eh7(cOw^tRh4v;auotD7`zca0XV6%UH>NQvZES-#_Wr8*&K+u4 zCzEIE+}ph|8*4YtP-8XTSe-YPCZMqv3&w?SiGIlL|GZv~$gbnxs}Hz-353a<^qr}) zd!_n#QBZv>s6Kk8tm#ckEY7NJ*@S~7V&c5ApyYfY!Ph}yjC7i#ox;JulJtC_N`YUVxSGYe?gU9EddT7&%>4aChw$N@8Jq)YCU%*0r*}}_2*H9HR%KI!$ z(Qo3d&wzY`lL>?GJNnEvyK&<~xbqrQec3GnrE%AHanvLznUZn8A2GEd-keqK(`Gy|p?Pxh`Fc>Mxw(b^{u8pLqZ($xr%4z?D_X5*VM81uO&Umb>5+-XiXdG zmU>2>yD4XqpC^49A?nTM5#pVc>ES!qdz){rk2YRF-StscO|Z>x3hHd%^`m5n)}lvf z4{8Dzs>QKOxVz4O_eV&%WoMxICt+lDt`PC04n<$A{ zLD*~XUHE}OG8MlNL3^Vmkur`10ywB>4pcIBv{>5K%Fj2OLM+Znna&+C4jHzfLmV2Z zX0e2ss@2kU`L|b@5b$POm;JIfud-0qWx@dy^n8K-=6`8Jph}Ja8aGOAdb)a46fNz$umiY^Fm0qa3KLkvdAOxkG}|+CDSo4JI7o3HU0N#vW)?yilZ&?ANMrL zEyO+DdO3{&>AOdx0)YF-=>zZ78fJD^}0DPR2K=`F^r z^h5S*qV2N*F;Pfnf zI)zPH=I5#YD>Y2TXOSk=UbJP3fcf`ar1V$YGMv&UBQv1;LR!OCieoY`Y*_*l!w2_q@n-mwf$X*{#Xruo>yEZFkl&#a(` z;#>CEu3+w*J@!lr%-WD0dkW=GqcU4u+#|NGn^iz7*<;Vi9)Dic{6(D(MfSvUqdgW_ zuImlamYDw9D^gg6Y3x=-f7S%D$CSVy-K@PbMVg}<5&`dQi0(qdv(b*O zsAU2e$swP>VS>i!#Qw(UxL#^)@sGwvvbJ{eafpwsR9C2OE~>46k5}GO+tC zz5dY#BWrKYP{AZ0SsykJ^3fHqtD@uX0|*TX-|iwh?eJ(+_{Hty-pYDCre8D+XPduB zFRvyMov=@|FU9MGELd=>Ilm*y-ftt9yc)B|^)_Zt>}P~Kyo}fbxjbioB2;F+C-`Nj z=Z=tzJdY_-)WGkKn;<<&9J*@e7suU7`gYPIQXP`Mi+Fxj_PG1FMZNV}G0DhISV6;1 zZn0r`9v|@4wZ)em$L<5Z-00bSiXYK}l^hW`aJhk66^MkFdP-M7K~+5lxbRVU+0ct9 z1AIb3p`y&H(Nsplx?@RBM8|d!D z!I&Bg#?uDK744SV(nG+6ZBnMccF~_1Q37|_1o0a`0E6RfnLBCme|FmbA}ydd&atET ze7R`V9INVX7T3@V)!<*73hdHd5#h09;Tv>e3+rbqx+=O+KeDcys}c4fLRsxW5*jz= zm&%kI<()bdxNxBl@<0p|nWriShVARXm<2hv#dh;zuvMA3byX|avwIOEWH)36f@v>O zO%a6fTl2z9Io8>UYaJ}NnXDu8spjv(!Y|=-ifM&LZP_TU=6r8dGXh;d6NC}}x385G=ArwPYWtoOhq=Zm>6C$Cl7b3Ce zsIkleArdL|khNgIG3g4Qol`lsxx(k{RIYAaA%v7xW|)w1s1o1ApN9qJK}`EAiI`w! zT0yX_56*fcGY8^_Eqnv=b}u4WS&;=KwRPIh&07lVP>+@L{a83ENw)89+v^7cX!Qpv z8P4_wE+-!4E>lfeNYw<7>m`tH9B-o)WXzTHdaq>6!oTYG3)U{?SNxs+bXX7kn8BB> zz~%YYWbX2)oL6O>QUgoPX{{}CRYM5~Uj2aJg`P~b=v1shfj>XUH=!rr>inB%*L-D} z_vm1~=j4ih1pUt-WksRX(?P(-8sRGUDgRlX+>1QQsh|!L2Kv0L-YNq+2Xa6XL49OY z%8!jqgE#YNz}SX+eQ;mYxZ)IP8xi-tMr4Z{9%abdJ=r)WhxXdhlZcUe)ieV zzO1$O+H0-7))u>C2}>YVN|w1ZBD}={cZTG6xpXQdH`~+-+0$C&JrMGG>%*8@O$hlH z*BdO^n}qHRs6x>i$}f7>0t5!9eMzU#MekSoJHw<++hLe``+K=ob8tNG-;z>ea&Dkh zC%U1paH6}1U(eNt%lzVQ#VYPo~K6^VM7o|EUd+#k@ z89O?$KW~e^-?ng5>cano^R#>KW|SsBcstmz3&p2WuFavI)?r>6^^wQ&-v&x_TAd_J z<}llZ6V#3o%qV#mWUK*N*&~dYni{<1S-mxj?=~W1;>is;OEJql{6%{K7CO!--digN zmsa^!Z^f0|>7UTu8lDl)84Qh(4TBOL*SmxXdrBG8<<`JIFK5#S&;U$om*ZW-Am>jot_9^Yr8nZXKf}?zm7GE$>C?2ZCv^bbA-MgLD zqQfMNoAbx$S{SeV&7iQZDasiWD09a=Q0B0I*+t%#=vQ3kwuY(dWf#F=q*N;_0L#T= z^N%Yazt{=Rw&%|%B=^muZQ4iM@tX#IVWJbi&~d=(g#&>x4|3!Lahnv*d(DQ=8%B9e zzh7iEGt|_U`~Nr}&q%9}3072W;#<6fH zvy;)wO`c*yD4mReD?+Il(|vPt9vbGyizS`eppSA$Q)igT%IV8ot1?+=Y^kvY5-4!U z5TI}h5(P*Yx{`fMKiJ)@7smN`h@Fx%N6;dPw4j(PRiPFh+oY{zRmApr9?f(7xuy6m zfad>Bck*uJWG5W&&SRf&#MapfN7D|EGj3~X_738uCD!DGGi@)2barLdnMuW$$ZYr0 zo%V3E=CT{eTCEV#<$35-Q*YT2NThWbh=k&VEAV#Hmh((Ab&~VU@uZ0^uV3j{Z+qZ& z<=9erFu#Jlohm`WtRCdeNFrYMIpKw28f#kPkRZ4Kif!NV*mh9SCJLdR{Uik!B(o%2 zlyta|c?C&r5+o7&SMxI~hGAcN?4?^Ci7azo@oBfCi!X*9T~_ik*%#pHoXr^O)BxQ4 zNYmYAS&xLlWh0+w503;R&r1$1S=BMy!xa#6J9g0CpuJo_Y>!}ml$ak5jq4{KCnGUG z>X^!{xFs5r;Zc;AHpsBa1a30kDxNAbl3zavzk~3;o(VQ7wh^Bl@k_)ul-9*2d5ft* zeO)Xj5i(|!uyO5>t%q6wB^!7!$&I#PiM!*KeBP{HB*S(NjB(o32*uT@%(Yr@MVUc7 zPoKbh`_z^e89u>XwKRoiTF)&l?g_oWU%BEJRAiFeT2g?J;6`sq3MN9bv78hXsC2XK zwH0IC6$V>0dANzPhr{5(pS3aDn`8t7ucb-q*}~`hDp<#Q46j{`{@f_ip{kjfmh%zwgGy(z@73dy!5)6n}eCY8{o#?|na#D1-mt zxG3>{>NP)WH3duadwby5Ml?1zz+l(FXNq}|hq1GEH#f*ArQT|vMYRU2?c6>G;^NJk z=zMZVh+l7LNx+HCMaDie>ov>;TOL|bGy5j0POAm`&<5F#1pSFs9rLRHsHzL8>IkGh zZII3Jh>Bv2)Be$xyBX@RPNA7$AU!C00 zmOH7jEq5B%Pu#?VyY)ao?-bx^w+|eAH8h-fj8m4JacmkI+$_J z=7FHL=Vi_-f1&Ns8LaUAZ78Mw(Lg#F4sS4wH+JJ)v;faw6MBD~`^OSf0zq14y!P_$R4>1*Llt!xeK$(sKs8#QH3DY- z8RM_KMRtm3ut{AmFh>B0uYUECzY2>+DqGG+4Y!7?YtrWgxO)p^4ExD zDHzpo;BdyR1q+13);mcq;c&K+j`BD0e|9PRP?`kOsx7Ijoa`$n2Sd`Yvw$RE$p#sG zY<6G5{7^^$P=Ookvk5WOj_tdSDD8*V0lrUc<31&CxU7EdVmMp}NSC6s=^+2#hyd3f zy%%GP{ebeCst9mZ->?X9?a{k9l_>(82w4TyV~bq;AY0^lgN!b}=m@2^e@ci-yvqsU zYW%=5mtlN=h+TB9{34-`ji!&*{t0`_QJLQ|diJ?&JZ~Rua>~Mt3_;EifXV;n35!=R zN?ks*!|J(zbayvrVPV)Ykb3hjGDrCYgwg$?Z2nfdv??0f#v_~gA^+3)Lq7aF_9^Uc z#NFV&Po4h7!HP7Z5ZlenWs+XTQn(tg8 zR_-@kFwNXeVYYQZgSdwzZA{#&dKmKQ;pQIOJvmOPWLL$nGDskO#y$RNrNYq6q3s&h zozY$7qnl#(7~M3F1{>XwN+7|)k<&hI_afDTdZ1NS4{V8DI39Xn`%A5FESdHN&A#0}jxdCS3)s zZ=fJRYrE>rh1QEH3=^}Fq~_uqst3cYhtI$GSdyCmf+q|31B(Bia~417*oG)?vUoRC zT|d89HS!Y%rIp@g zWbqixh8L1uwRr6x4o+ppg=?61?JDx7R4NGGt3nMURucL{%Dk;-npMW2ntf1eqco`D zf3!iJwZjmk0vL8bsNM^0P--GjS|8M#)eKiYRBnU1nn7s@1*b|`?k8NIyX?V^2 zuoCeH+A-bxF(o1c>3m*5OwR?poHCEqD&;eId*nZ9g+qfpijqT6Prbde-hTeG_#jx1 zVm`FRjBjXW^>}VPo+oSfY94{0oS=1`OHjT@VIU~$NouYBMfFhr>fviO;z_O5s3%#g z33*P84>_5!tX0Q+EDpY7*Q#1Rb3G5n@;nx}J)eKR*4b|(@tvbmmp^q?)WODF-jQ`V zNnRhi=u&IyvZmJ5<;P?CRY&86bYfWM3gM&!pY51e6LuAfw8z9BqewK4k92IqN8b&b zX5^~x*8Q(FcGS#vxKn3AbZ8eNFpkRy2G}Wa2CW0xC9?AYWMmM%qz55=A9-Ynrj+13 zy$Y*ZKxNqhL>xGa#JOiDD{a>$#Nt(Qj<~x^Ih$xxcN<_pmxWUC&7^1RdD$NQD&C~b zlSAfG)j}aQkV7GM>xH}M10LTW(}_a&$MHA!+6zi`Bsl|zoGQ70hO)o8+kmvheg)ljR8F^Ed&i+rGvZyMv6zQWd}8b& zSUdF)#dGH(&J~({Cnr9M7lW!Se-PegXBqG)jR0?*x~Oy7g{~m`;9il+;(OKQKh=!_nmNTSw!sB; z+F@!hzbJn%=d{TScCSy)viI(yPqwL+K6$?5hVl&0rd-22jp3K-JaWEGf#oZOQJX{= zxqq8P>pqIZ-+^()wmmgc!Aqh*fs=2P9#eR{9Uxv%#ml55rUg>YU?2(9HAm$#T z0SziiX=h2CtQAF*I1CT z7%;l=G4r2@QAPxt(a@;<(66lITA42SNpb&=kzu7UZp!Kgv_vgr+lHGaxlu6~x1Bn< z)|p(#T~X!%(vh9HIbG@80|VJZS>V#_WccojjCuU88DrE8THrugm*7atV9Za3C!A*x zr53(QHY35yEffg3bmps{&yOG}{?6Bm%cg)qbE&VSUbC;p6N(%j9OLTfM+y z$U1XwJ^h-~A$!9jTD|3L+shy_`^+A}_T#7#>`u{kM`*nrMV$-@2OozF#X_bkGIRyB zt0r;IxGW%K{4thp?iZ!t3T|*QM$;sn!6Z>Ai{EhTUc5lZWbqpHev4hqr*)kXH2Wbr zTuzRMsCRfLu*aCbP_l%|xjZXsouJ_%($CrCI04#aM{~fO_3I3 zrfrEUNlWcoBP|2>inOrdY-ycwS79rrgS_Ux4~wEWb5|1QciSYp8z{GvV+vyRJTZ@V zf9=u`m)H+bCTP2Lk1$+D)p0DCe~VuZwk_fQLjoWp)^Y+Mqn--@B77W?N|)f05F{|P0n{eWRqj4f&r=kDBwoP zYrdZu6R-K(4cts<8K5({`IRO#)b0T+vEmCp7^0^q%WRC8usWfD=y+-WO4A|1{2xRA zXMbF&a4Y$bOytRSg(%W}>lw|CyK$grY2}z09&vh|1j{M`|8)SBkw7O|c}8y%BrvI} z55gda?^ZHrG5)|`&Gu3cg$EfJ<6Ra*FwTpYsTzRlb7mj<*J~uSPzfJe3-A+Ji42mO z>yY4Sk;%11n-vE;^DPx^F^?duiIS2+g`{KyA=wj>&|^~O=@33Kd5@gQK;OMS(j46l z0qqOkvqq|N{A}Pw{L|HTzt7%aT&@Z^7n|dDpB!%Yx7+B0qyQxhuGUq}L=J}P%&}n) z{GO`1nJkx?YW;_GUf5^TI%E_MhgaYq!*1zu;Iy1rI30 zU0g;MoLFi~0>QZA9GfJyfKpI!!pa$zMy*$qoKQ*Bx(RT&fn>Io{$=E*Y*o~HD-$tE z62;+49s;y3p0Kq&R=T0jatUzxM7q6+-x;F)K~)KM=L8F|ALNIvP}IoGC4k5gN^+S? z`R~+UdMdg#>K6`WR9C#yWZn~!qJRs6%P=L6##3u-J{H_+b8KAoK&hO)QdvchyG{RE?s6Kn)20uBA_D+?o z7Y2YD^xpzd>qt33T}sLU>SBK@fKn_*z9)eCq9+AVV^&oFbs4DuP~-ky05zpa%sX5~ z^ZM6h7o>*J)Z?Ursllf1{7pnVNqu%x?Ix_|L>hX}YR9s(BXjra*L391uAQx~q*m}R zZEJ6+NBg|`h_+noPN}Q!Z_BNzDeJ0ly7}QpXK$;m{SD3Y@23g5*>p>DU}2(0r4~6J}~W zKq&2WStCVM44dGTmdCBepjK(`lF=>>FM5amj>&-EkPX3J@f-cWTR?CD=BZ)<&M$~O z5BxKwENg1uhiVl0S9`vvcJ?W4Yd32>Qv>oQj1`Nm>3wav*Or&`;hR`eX8l}@PL|Xq zEn|DOq+acC1Zc$Wq=_Nf< zI+_Q&fBB?ZGq(Bp422A>`5qH=0#RjThoh4X=~!W zW{WllAB(W1G8?poMr*QwKXysnIbGfA2++M}`u5yC(6?V~eVALTJ0WJXx9$pXMEfbWVb_P9?)vc89b^G!ut_RY=<+ z%uYyH32B|o8PXd0TXG(x^henxYf!)3x++=%?!G3WCJ7oF=Pcg0TF?&sc7h!7wimhd z{G`<=hF_f6VpPU!De=$ZLd8Ez`U)q8U|ujO|62b^yk`PEk%gO$Aa~NU^pIu#RdH0v zsfyDs2vr_k*|>_4G^8@$5#_9?H}&^AY}ge#*ram3<8@wVBWaHwNbB~=l4@z;R^2^# zl*^*g4g{S9P!pRsYx^$=w!Jqpo7tdA~f`oaG(Hc#VA z1_qP#0UNz3RIdCe{g3~H7K?U(=Dxm$mNQWq)>u=Pb9a;>E|J;2he%&CY_1mna8xV_ zW6b|!1*Bk1ChiL(=uwglo|OMbbGOVT8F`TBvdK*(U+&581u5nKv~JPy-H}qJtxDp!;X4b2|E)XG}yW22XkTPNQ2`bK4nll;?KR; zU`H(gGiiHF><4l62-fG&l3>aPkMn=M$Ch89h5vug8R>_s@!X?AtNd6|^vuJR8uURn z@+mXIz$;2A3=80U8zje7(}$*@E7!1#@TnGf8E}fuW$* zz@6H84W2T3Wwrw&y{dN4_ubE^~$m5v3jp{JK*7=g4Z9G2ZBafI8_IXs~ zx(ntdv#LlSdUU3e3u}hNq?s-2Bk{5i*o>d>{kb##JnC>})d$0&?C4cC<7z=OYbS;L z*hk0~J2bBxUZ~8^>>yoEt}G{eLed4Buy=H0<0mNG?B1)3chVZ@Epj0ih6iggX%91m zEr~I?SgktT{nkr|_2QTLHM{NeDPp&ke)na*nl|b&J{P~Whsfrc#ni~>zC{DqiXKkMUPnWvzXMZ@&0HVAy@0Uz+KdN&i6_WGgsn6 zj_`NA`dxlPP-qu{x4++ULd$H$khoYqU^MZZ5AT5V{SU-X$9 z5hLIH-aYMqkFP(T4~{d5`XcO~D6+}VtK#`Q^6pX{04J%F$|UzG6aANDm~-@Ba)8hl zO|hfxs~s(oOq%;THkW3751+F3NbXGyvwzsyV)zlR%1~k}%DzFeN7cDHF7;QR{gh+e z6LRnW7wiDnga>hJh#k#}EYAY?y9f30|MGY~hnM5|EO?s%&LGeWaILe4%Z!b4`kxrj z=fp`6YR!A95vnAQ6+Z0*kay81*9r`!Prk%(#rS51Y^)D~x6Su{sm?dJQxte4l%h$U zuqB~S?ue$$_x^_<2XZ5Fts&KMKQM11TZ?scAh`er4mBDExHG&UKal60L>Z%l+C(6n zj#aH7SaOMG#Dyf>XqVGF(8F+R*XzkTg)ZfKGQ1i0f>&@am>bFx%m3f$Nc9Ef4qZ@A zeC(SB2O6CP+H@06zy~un%mWThgcLT4>FJe5Lxh}C+XSNt+XT(mzHTuG7tnTV)ICgz zduJcKn;)581%Hw%VZIs{FKxDxOzHMxP0fS!}t8=2i(@A~5 z8qJ&4M|{ZJ4S(#7w3^NI08d_p)vw#k zDVQl@b!`4%TiH))`%w?4ucX6vTQ+_C_j{k-p}Wa4?66zaKRB*1n@a9g%PVS432wWr z2a9H|2g9EA&Poj1#UJvt1T?1aF#4`o5{dKTF_px>k4zIvi=4pBF(83k$boZB_L+%w zKAl#(V`d)W8%lq(fX@eRr6CcqR{gve*d(C5^!5>)_i0s&D>Qht+KhyrYsM;j{xK@k^Dj=8d;Z+&p1=F8)^q)kL$W4>u8iv8 zlQ!-pCfD;WPx?!BdCHUO@-)fN<=a$R+2!A#VWKKcy!AXo_-!m%86QRw$h=?4;BsRc zB1oKN4PeX$c|UFD?Dm@XbayYK>Kg_ARe_+1NV_=JM*`tnBax@ zzb;3Jc#GEGB%^26Inh{Bk1(`>GzYjPjXXK1ENNoQ>L1Bw#;iUf2x$qTuq7u_rmj*3 zC+YqJKBAVf7@;cbBZ#eBpF7#NSf8oQ<@GtXdVQ{Yv#pPQs0r7@mtoqIT80@KbB zlE&UgOL|E9F1Dnbr0r|bk}i^Iue*|DizhotHhVHXXBE(KYsy;(ZN6JaB29Md#hU5% z=w%g4SG`;&j}mRFIDb~zZzS?2g^#b0H?d+(>Ih;aopq1I-$-!j-rI_5%gvZ*MdBuNag@FaR8s_e*a4mp@U30zpT?P`@ zUTGjx3eeTp9WP5GKD$DzO5D`cB(N$1Z!9FkRP@Hd1p*atDcU2{EvwR#%Y zTMtGTHMgj0SJP5dEZ3^4^%6ff$tLA%RX{d~$+ibT$@doG1@E(yes4y%NP4*mF(wOX zW^Ox!tVFzSwlfg#gbB^EsjYQj1W6@wU^gETzB+AReA<4dlTZ_&PmRIFn6U%lmT-up zQIzebG+7tYr6$&hxv=l*T7A5u%WiPoAo_qk`(}GTAxs0x3h|9O!Hu%>dtb~}(oM>V z<#(+|b|0Ar)$Wz+)ZhjhEOO)&d1+*nywuN=QN|hGGsIV2ZGbe&t~LG~Z%Ttp=T~sS zcSrp06>uy#leK<~>5VlIzn)*G8f_;cV7zvstW~j#uZd|A)6t_+lyiDSL3N*~k!^dR zZMqzv`|Np|#n!3WSJ13}rDkcM-QX-wq_*Vx!cpNx^J<6?Y^gyZFM}fFiq0Y0G#i z%$SM?D2{LayWQHqKlXX+M9`^pmfFL4>$S@(>iq4zCDg(jtnIE(@Zk6V@Of+1n9*dz z89#5iIc^d}(+P&3w>ESNP+Z#hKk2;17WSu~w|Xw;y!G|vk9po&XXmZnf^C30&ndKq z2|3n`A9p(&p0=s>vcD+K~gN&(sBX(!2Hu0Y05DX}*Hnnr&xEnlCdnXibA?%}f3$@6~pC z60uJWjPcSOWl+O65t9R83~QScrD;eXdqJaq{>3*-@nErSc%xHB{FG;u=;P|601&Gl zoHBIkrzNKhcYPh}m9@XeDMPb5o$JLb)r}pQ9jT0N>8BsMJuQz6ayxO{?ZwSDW+z%X z3k!)jr$IA4$6c#DY`PZ)cO;ai4kgb0+NR<>amTPCUUd1}ZhM&NKg&AG?Dwby-wYB> z_UBf7Os*JK49E||e`sq9;;O$)PY`tV@p&Yp9ID;+Dd`D!Yd*#u8(it0KEU%9ytU6h zV~!lzobz$d73XJjly2_E-?cPB>4wU}w%$D`-I7QdY{q}0(rsvj#Z25Ul$CDgenBwA zZ2svA8aPLRvA7LbFbrMD6|?t{2kLJ9g`Oq3RpvdLbRXrPf_9h~`u<=3L|1dE5gR`bHeQ1qXMV;L|#WDSGvD zzB{kz9v#LSXb%|C*h(M+tlY?SrSl7FFD)MdpC$k;hvVAVCNOa~#BPfzv96|rrv)CS zw*{LW(-an$X#fQH^V5)KsPcnv@eiK+t?~yCum0c({z02*xAM{l#fs~L(>(cLY*T2r zP>Q!{p^!`Y2Q}4|A1t!FF~VP8QvP7D0O!OCzU+u^Oxp-;$&d>8hcbdHeXx@!AMD}* zesuGgeIH-Tx&~c~R{6Da{cERJeC-9*!#mx-W{dBa_cc5jjp=KXS|)-I@!)G_L**`r z5@$|rQK4;9+@MHcu3L6>;$AwVyo)}yZJKF_3hnztHABoVjuFcm2>jKQNR)K_kFnPH zSOtrfWBt^rHnVU3&ppoU2VQS8s~=W@t47>Np+?-ylM&mtMbI;HfPD+_l#JMhI&cUt z$~|@`S5>v5a_qA5I9w=GZ6uV$2YCYe&o>x_RQDkSLbu)MKTj&v0ZWoPf75?fDPaGm z|Ey_0YA3++^s@f*kk=aEh#;4Cng8kf&#$xZu6cd+23yj9Ci2a0lbI!~m(U!urzSmg zc=#|odx*EQA-pSy*m3#G(aZ|-7Mg|Azm5s#I*PT}`;A5@>?9#BI#lUfVw34rT-<9_ zhEyeS!s+34=F>f_UW~Mc=)~Nj5ZO(_>v*@!-kr@_y=zm5ogan}JHdnP{h<4lz1ybn zI_|+%$J6w3y$QG|)r3hF-I&I&*!d?#5XmiXFU&X@zr1eRxbo404{c(Yp zyHd=Z*c1Z(bbH+{uZt-D4V`qe&r5r(G&B@sW0`(^+;umMxYMcxX_{$Cc(+bfPz(4w z|3uz4TrBYYoi`mmlpnV?-II>{->OMvo`*+9TCwltOjktHB_PcPW*gr%F1^?`fzl*(1p#hYFQ(}*GAU{K`3SY*KO7711yNNqv)ginK zKxPa?v{8@=zDa^ldpHwQ-W7z!7H&}Ka*AHm4Rz^z;rzGfn}71{Z&&_mth!zKt0l>q zQZh{4lw5;8B%D{}oZ48|)MaZ5gr?hszhaJXt=IFs#eypSRlncC_vNd&gYU~x@eO+l z#jvP78Gje^z;*F<9?8k_0n%JL*L!EJ+5XmY!43Z!zTlBoikFE1hxqSqepZsC*hH}cnkbgGR^8I=axM;qi6T2lw%*@hSYju5 zoDVF`_5M2(0OrW;z1dTe1c}V4ZR)b#LT<(N(a>vXIk#ey$F6aO-e0gQvVpf4H)+55 z+(@^rE2m!{t+%e6zKIBDHriWe4|d}tBCTMaPPmn}=m*DbMeZOdWZi3dXa(yvu?YBV zM$B0^z9YSkLIf;lGq7ut%yEP2Sdf6_>7~)w+pMAWUEY8?L!Blb%u=_#v-@)%EC;)A z^)MQeP3+QW=sX^?OX!YTadVSWPx0{o9P9_{c!O-Kkq6M;!UGjD|8Zc|r&r$1bnfZx zx#g&OLfj6&f0L$%k z`n!T2xgm9rcj_$frv2TNzw7aLef}=?cQf|L?-V`B+4-MV{CoKtqnZ|734&0k98vA{ z1HUo=j@NsY27632dX?}!|9ZIVHPp;Ikh;aI*k^O*`I>=s+RyW89?0|f@1Z)0sbjUB zkB&0$^W32Iz#`hxgZHQ~%Djz7OLnY}2WAJkjvJ%=d8DJvNA&&)(Nvp*KvOSl-i4+n zZd!vZ)_I3uzRJWK4h@Cb>GqthO|luA{SoNsvqPYr5Tzie&6vFF8}{VIB-eTJ-$`mpAj$ZW%-QZZ8Ft4TL5fkU=0@O7jaker(8fD; z7jRKO0hbXKM)_fXr+)HItH`^8zZ>^=T0Y(hh6HB*Zi)vBvd$hBgq0yql4E52&)NM2 z;*IHjE?DX1AM~6C090v6z{4+880GKgfggq%3NiP|fg3~nl8*B8R1FvJtZOsLRAxq- zquW_n@Lp|}h-IIUqjwoYB_SbX<~+V1{}gV@iQsWti+2D*TUv)}t)iKnkdo9_yK6}H zl#;Ew4^XqYwIFu0L4fekGyqzoF;#8l{VMU3L$Z~pUTI)wZz{$&V9g+aB!^*zKNSz!mUzfk;< z+vo|LhuFx!#UEks`~PqJk@}Y!+V2!ut7drr7Jq~}fqmCTl>|zZE!*7qBbPyPi|0Ua z;PG^fM};EB00&o2azPwiZTXJD=?#868rFvuf-sjki4tSYuOwau%(&xXlTKu?c{D~2^6!Yn4$8*As#4ogtTOC-8q)sZM8*BgsJD=GlTzCO$ zxIOBk?J5Rmi+T+hivuIt`9>a`H0%IXQrj26;k2sZgbW_5(|(a$bCNBX^NJnobg8M^ z-->pD1WS~Z!t*&ODdJu2+bmzO>=8A zsJ!Udj`)kO5+pA8{->n!asY9=p{Hn;{boiG)%G51*EQ7;@NUD!XdX&aa$=UxOwl|q zOQj_EMoxp)^W3p85Ey34qTLccUGIlj2iKCBbM~f zWfrqxn9dS51cU#FH6wXnEcX!y5=ok61Wo3<77n0^l0Y&y#~*#AjAJ&qf#`&t{)A2M z>y)NkSp?Mst{ko>7kDbP+oN&)yH!WzlR67n1DL)h%^cDaJ7@;#nQyd057ml{g?EVP z)r-;`XXeZ%UWhx}FX1^d@d>R!PZegd*nieL}>c&^U+~E6XpD>kfLD7ud9Kh{L zEvV6s`11=P?AW5(BAR)!H4vZAuSHZ<9t7v?s>+4a3>pg0)zSs340^6kxquu(B$lH% zqJHCU$vY{?NboQ|%sY8(MJHtzO$$!JR}`d8`E8?hQojT?^u{~+V>S~y8Oode)1!2x z5qxRip=pUGKA?3^<9O`WySQfIdF;w=9!fUh_e%;g#J20!&!X;G4zQ z*^5Pg{1m%b^Rdjc8L!y-Zv8b@_b-iq<)y&`^h5C_6f-Jodj}wpIFYu3dnmBBkHb86 zj9(@`E-LlgG4oQ|3#ZsCrc1NLeZ=P+qYZkOy^t7EVJ4|_q^2>c<6i#k1m@9sbRTij z?jv5pP-TU($>OD2uvD&l?fyQZh2dsKTUZqKJne8{`@`%i+(%5dKS+48{f*2Cmm2OP z1~CalFee#F?>O>G_MQ&*oDS|IcCZI^?BPD*U!@~+?PI@(&<+S~y}mM(sRvJ$BvjX6 z6!}MfRhGBl^(0Lhvmj5kOFAj@;HkQ8xa2*$YG}U78N9rsa|Z@r$+J5|G?=gG{k!UG=>FmEHH~UHvQ@Pz20;cYb2h8GW0*m~jTR#D!q!w1QdrQmy zP!oB?PSjau&oySOQ3zUHa)_kDxb`kxd62?}{pBjg1cS11ge=douiEzEvPdj^RDZlp z`;nxR)c+1-8AV!?;qOGfb_r1_RMWl*igTv zIMq`Qv6>YIL80rf!9jMYq}~7c58YB!$^6wl(8Zk|twaSSy7=gejd(whHRhyGAK22` z@5WBSNn>Ep9*KYST%(TR6QY7n9j{Uwpu0Y8cz%+re{FF8_I!SHg#e+39VUI$rp4FT zj%9Z~WrWO~&!yR3T!%e_ZKqnPytYs@t>#6KXi`dk^sL?Qd%wFEj%j>m{w>AObTPkzD6FEaS4n7-gSsABro9c9y}7Q}z) zOV|e52kl-Uxv)=${*L%N2`pNp`xkGzzqTX#RokXt)oEgzd6~<+n*ZcByq0I%retDU z?1wh7X-{fmJ3Xn1UFk_pY?qSUUGNf3Y>y{3v3;J@#P(a#Z#b4%5}T(IOQNYP4%KS9 zCi)4O1Rjp^s}in#<`|o+-)5?CE!-Zksmqse?aT(lHT|Au^wM$d6t&?dfGmE2aChz;S5|&l&qFBH^GHs z!g_19Sl)5IRJ~{zyMUkt@4;j)b1f+?-DaNUrJMBk!igzQjuemM>;hGq5)FY01izd{ z1unf+G+HI|SAQ5N?Qs&Pf&@zA!(V9A{@Q`6X+O#vtD5#5@qXJ(4ul`VL^a~=R#U2?*WuaHUiZ4`)`2}0oR`u%H zyXn>a1T2Z)>KzLoDtGL4)-gZZm~~B!^v?NA9WwxQ>mbxdhwYX@vwG=EE^d%5#127X zrno@MFs4{L+ol*x6XVlXg?f-pp(J52ZA5!+y`&2r(H(7@eo@z!L-b@OnOxgU*RG13 zM}s%lhLB68b04OHygcItA$Lk0X@K>VdY;I4WRm(OHrK_`W?^_+v_%-cIJ%*@Ok#0h zd}(g%nY1KWu}EHkp&E9=+2~2(catZD2+f`pBD8o?h>-TA5TVnPLWGr`6e4t4GQsg~ z&jm#2@mwI6eVz-XwBK`qY-K$c5J3w8+}B$nSC#Ro%+%GaK92d8&?f%=k_EzO6X0+K z1rO2(dY#ZyozTSdCS*qLqrTx|d}q)CY1ESx8J4p8{lZpLR?8lkFZm ze4gtv&E;3(s~j|AO{#sBkR&iDH-vR=B5l0mON>D3FKD|l|)bK{;H_1viEMm%Sek@Lxj?7XIV z)jMo0cpz&ME5hEH<^lh)zSBx)(%4_)Hb8OdmPQ*+wZfr3<+2+O<`Yt@W-}Io4xjsi zkkr8WVx#^}xjEv?oOqIz6dTuk@rw-Q`J*y4#Z)b&n;J zQTKT+jJn@*VbodA1)4DExiIQ=p3|rqZlmQi+!vD4a9_-`JlrOKui*xoJ+cedYv!P! zh4{`N*%qYzC~p0+rHvwd^}jR`rz0E|Md;uLz|ZT5YjyLcJ8Rqbe^`O8()&;P32^t6 zL5Ihotb>2Q9tmX#79W8!n1KoJY!>#KG9;M0teGYT?PJTDNcsoE=a)BfZfu~hER%d5 zViaS?-Q_DOPg8r?y5~KKmUU61n^H&JWj!Rvz2!cV1xx1owbSAW*mGGy4QEqM!*yWo zTk93)*-&=Lk$3}mCgw#gRq|9FAS>jlx%?YIxYXriC-Y#>6xK6)_1>?Qo@?-2m**Ni zXY?zv<55v3vK(5Oi;TPwu8PJ!$0N#rn*V@hlh@?NwsJNUr1YNi zLFa9>Y#%DbjKm&8<6b50KQ~b}Fm7GSw^(6*(tl9!nxRWIf_9M6f2XLbhIicv?O33l9H>DxRzAusf!~r=1Uv?>!i95IZqeBb+foUL)+BD`88t z=E7cIbo1QKSA6^-#A%2*pYcWanWE>mzCMfixL1zDh8Oy5WPH(s9dpJP-97VgaP*os zH;Ff#;Q7-;y>!BtIoLr4tLDt0eJJc#iT$(96l_@UG3`V!ejdkkrV5`!pMFpi;YW`d zAqz6e?;nXw^7l|0c)2N2V7l#~fPyQ51EaP+2>}SO^mT5{#}-x^meb^TiN7IH+p1-A zqMO7z^Fbtzvy#P+ZJiUq*zP%-m=Mfp7k=xVuYLmj*86%Y_^n6$==n!6rU}2b>?h_T zXmT+@_yXHi{5(K9%RF7Dfv|gR z8E^WELxcdqGR!>}OY!-(In`eLv{E(DWmJn`G8p+g<>%ILP=7ujwsgZDejy*b8RJ!OX`zP@QhKckceQBrgu?P&2uOovpWFIw8rK@gCI0 zX}c*!r9f>`9gcurRsGYJYo7|9dd(yOHEJhSAb<2OmscO7%o{0*@<>3XUaE!hL3pA* zC&zcGW!~~kJ1akXwbAVnea79VBIDx_ZTo(Z(Y-8XBwH;2LDM`?QR=H)7qr3WCNy}U zQiEqG;2mM0MND7j`nNGV5|;L|2>N+P=A>gTw4 zE>NVEU3>K9e%5aD+C2Xk2NeS}se+|q`HYAr zTIxj5y^@(SU3Da}&^Wn0=&J7(F>zpu-}VVv-w7%ZH+)8Goj2g%y%_bTImt7~%~%fOlEmN| zx3xKUeU)6jfOik!E{SLZvWOxRxQPF5kAApXGOog7k$N1O1HE(ENnd;0Ax3{b z{r>Xgy6r}A`nY0Pb{^vgFtH^7(zLtC_KW&8vUr0Q1Dpm+nn4dxU|>|zAN#!9jdE}| zP^T9Eff0$|Ed&XJCIe2x+hyJZ%h{@V?^0>PXd02~@p_u~K9af2XZi0$>J$E|zz+sI zDI%r20>F~yeVvl7JBiLJ$Q-r3qu?pIx5C zDiHNq{NVmJivgR;vv`_*oru~si^+{WArW9TqDKjAM?L4$Hza0>cRqbXE`s)pkN~*7 zGq9cVq^56LNnqMb1h%m!HGSJj=7tVrP8@9awTW86^bJ|4a|hc8{Rf)9I;&vtn$Cwn zgY%O4oF^s@W`{Ze!=$P*k#IqRgfP*?TXZU+TlO{>HzmL!c-MB|)wg?yW7)vy};<aF77*-240R;ZLqB3=vZG73xd*}+8 z4&I!wxVO&7W1vzzfPoMX@??Ev?wy4$6^5HJvQpEXh2%<%1p=cX`YcDgeitV4o2un7 z$XRP)%r>GN3*z@;hv_T!Y$)yqToI9jnO>S@#{%%Ph?LfW?rS+ z9^Rp<$jcCv?OvtNtMuy;nb4EQc9L5f1)`_!L`M3UhILkN=y3W*&IXb5K}2H~lsOtQ zA}F}<3q4e`Z6}FNYhgiTN2TFqUcrBasB(jeym=*$8e-AxjXpium|Z6jpN{UOc-l^y zb8nJY4njY5+9=d@J%}w5VxIkyQa%8-qn#TN@)!h?seIEA&a_(LM z$Lt5abr&J~2i(es!%Q1Q??U&@BGdbJhE=%?)$&FT`+P>>a#{M{Q^*{kS(kecIZM}+o z`}Tb*>VzBf@-gPNyoghEnEih0!b!eVahNSf+}VZ=%TtYCbRL#_bj&|z*)Cg+Z~-)7 z`fY7IWU640J6Ks}N&1Tht8N#kh1r~9TWtanIdDfdxIrQGP2}NjQkQk0EnC4g*%dQ9 zxi-7vuHuD4)xb;tRr_Jrb?Jv)-@OZ;>L8m|7BXoBIvNXfPqdKJ=!mU)IQ)k@&Ea5P z8EqRvEPBlLJg#&eVdaN^PY^{ZGv>{xnhli+&a!tS+0dV43eSgwXUc?r{(qwpR zj^7g|MyJu6o@|&uy~<9b1~glY9dfHjBy{FCkcB~*S_!v zh~*4z+K%6ry5Iy+<|~+xaLU44J0&$9M*I7{?_^OM83}TUCLfSZNN|03$a53{CwQj_ z9G8p66vNtH;&2Q8^qP+54ljnriyc1~f zuHZRA2st}4MB&np`7EHOK!bPFUQ@t8ZpL$h3DDNg4XnQvx;U()gxIMldve< zQ4a#oaFIUK$Y+5jO$p07Zf%+vNBiKUWrIye^&KKV&_qTRkj=)_O!mPd=_qeBAwMQH zH}Kv~StYz*zpugjoo}8C?{%8yyxR>qysv-Q;9V`S^V!I_3P7%O)y=s;x?ih0VawzO zfaf$bybDlivzCNMP2zhQG)s+jMmq0z1o9^4c6+91i<{jF2SbUj$*|QfgX&%71s=bD9kyyHWg-^s zfM_bH%9hjxhYG*O8DZF}x4Ye~Z`DMoYb_JS`1cpWRUveuHd>0AqpQm~42XH|LE z6mS%U-rI7qCdGeIeZ;Ty4X6=!BH#>3L3T)vh9u$ANjXb0b`#0X#-r2}zf7wvxG@^o z%JHU*41sM89&4&+&Q~HF<&wadeq;*DEv%eqjnSx+#n;$(7F~HdoA7TRK9wsUOUw4~ z=FbqYDV>*+Ex2AwsvY*FhPu1Nb32XQwN&TDJ8XBge5F6bZ)$=RVJPgb|HPN}yt^u( z8`RmUnZ>tYduSFY%z;x={;gC8|NH^n{(>D~XBgzlBa*Yn3+NUg-++ScVc1r4Y=j5f zg8&PxD5$Wkv=flA1y0$^;4(})A-M?(0a%Q{YfIQ}bpw9OhFI*rJ4$emOl$^1!DKTy zh;)>fAPVMZ9q`X)APB463@(4;3vV1UM1mBH29k*=}@E=*tKjk za1{~QpfLhj4Lqt2MT-KZeuH3SZzy$9uEWFGsIt|Hvynv-Oy_n(Q*jmkut0d6&X<); z0C8}hKH2-$fClkvp7lmq{i<3jlhcp5b;l@3DXG;8$?1^XV(Xy7%|`H4O>?4>;%7)y z&7n?CtPYu^mn`1Ws4eVlm6D`jM8 z^1F5L@Waf?PPL!!T^ApBlz4b$k)V8z!C{?O!#uJ3)arpG4#~8U{M-fu93q}3KYq`V z`mwV7_z(P;U-ju_$wEv`NwRH^4c^Q~Yi8}5VLbAs7>>q?5)-ZCyD{uKlg)sTNfCBt zAqdj9r~_zgR{*rt)k@I5N%UFx@~4mxFI{?UCb-k=w* zvqvxjw9!=}Z!$W$?^Jw2dInp(W|ZLQt6v4(8fnk>)y^K2+&^qvyQRME(VJEu-j;j) zPT9@e-=~{gj1Amx?eeSK>BGC#OGT5qK^FPqibgm7;Ia+nf`uP z{XHq^?`zBbeUbIIBlGC$w_KYFFCo@K>zklrozj)qPSyw%|1+-5+;h*X%p z1YVJoCLnB}YheS?*4xcIpnf)fK$Se1YjjY%kDIs z8h@kVl-cwWa2(aEU&Objs91`qAmS)7Dg`l#F*YVf%x$b5eWOVrpVam{MbQ!fZC<0h%ceq;(Y5hKmhi|ljB0O z)RIjDT<-e;laRWsU_MI6NJ~mHuu;q6a`*UmjI;Pf3Ye77(J+&8EAPzwI*diOBJs)A zm5rJqRE%2DZ0nB#KvZ?+c~sPHA=EPAda$L=w{V<=Mr7f6(w-b7+388PFSiL7YlT|V zOGij{lSB`s^$+X(b3UuV$5*mH@@>Incy(|570S5XFTlsP|3_K3pmN&J?_}3~=@*1#CWj%?T{V*79PkKHnE&b+;{o zOrPm|Oh@D1OR+Hg2fAnYs(4|dAGbevYEAJqyr-JxJ-+!rSSxA4*)&wpmOsBcKAzux zdz!`qrF$rT!Rra=wAJxQ4aT42ceBrG%dhEhuM_W=*2&)Z*&r&~a^L@er-e9volwOM90L=TjSf zoTu=U_+NRqsuVv|=c8`G*l8ndaqIUA-)p*B z@45w-L7>Ck1JC)M8Vn`_hdk$uo>kM>XzKy5VyhAyHm{hBmtHL^BbCyj4O+h>P^&4p zOQ+aFc?G2q&4YMq012fKb-qt?mtXMSw-~XQhNGBqBk2{0sUe#?;+uYM0v-L3v83%G zQ?(!_Fy)n4GB6K}a^;{4?u<1v9blr}8l{5qNM^uhl0AM_ptM;nBu5?B8{n|j=XRyP zoAO+kziH2fxt;M`kJmJGDy@mYHY}ECh~Gn7U=!x|A@OxVd63cs=}`~!S}C`Yq9!$< zoo=rXlyy@}@qYgaY>TO7B~-vlXyqzbqU!-$iECGuS3;o>)A`a$oOrLTgaJaZ-U~~P zV#Zb=F^)FoGhy#s5}2=o3K!M>Uel4^(&h@(I~R_ZgIQ^#8AxPaJl?A<`F4GKRBW zLw5PZ^9`MXZMD(1?f>=vwtRwHgS*NnzHq?*PWi-LY2*_}-cx z^2wUwD}9rlbkaU|lg-Q;M82b=Oxh1ISS*qD_s$sE(ho!5+_w3nNovvbsX^ZFspYqwMLw!LB;O_nL>!yqXZdH{iRatOne?C@@Rzx5Ji_3;BLUhR~UBv!xCJ z_kv-93=773ti|3D`4}gO*Yfl9z*is1k9cyb_!;{CKdn<8(QomkRFLnYjwo*16tlQb z=33#IwQZYz*`&l%mqtqtuw^ehG$L*-QgUQ;%?LhP+@X=wz;bf5tdp{p(ULBf2`;h1 zp%F7B0R7i;e3*9y7Wuf8fj87j8$ZFv{xT5D%T& z#jJCs{5N(i5UVEW5;uHrd-Ut$w#Lu6yaZ5+bJF{AHR= zB-E(M^QbfXD!#JS2>XWSKUDv)!++Sg%MXLc9W~`}89)EFC)IT1UeKDl?ESS2X)z53 z`2;m~#QV?^-;pDhP;4HNesQ;YRw2#0or3o0xl6NWBF&OGDqPsnq*Y6^9%0lH+^~mg zQV>Ci!kd7m^6NX|tiFNI0p7|=MGv_k@%x~5ZgW2+c4&)QLF}NlG8aj|_4*s*MHOw>`GT73G%sOsT#b5HzktV#)Q6qla}6HWA(~8dpRc+(<}d zB}6`W>jmQ1slo(j_%#l!El1B~7$-yHjDZg^5?H+`=#mk%f-9 z)-*o(&I8&8fy;R1gLW}mX&`N#VAxK{BL8593}qyN-78UtNd})iJXbRKl$RkHe2vuN4HRgsLa~W~^_}V{9Am<6&#K4yMc+RGl7HZjp)b`E!-wL3dZ~*B-~0Ic!3f)u z?+35~7<6IJs@~#u*8F#JCjd`>l+5paKNn%d@3C`>*Q4gJ^}}o4y}xRzWPWcCRB=S_ zxU#Q@RBT){tEhdM)mF*;-m|FIV72Xba`AkgA=fKAG3T%Br_9VeC~)sYA9y1#-Mf_8;b%qUi$6mqIEPTAF z%1TYr9Qu5;WgNlIM9X_FT3-BxMAGsuZ<>Afp56q=38xK~yka*i-!0f(JmAR%bK%2g zI>5*M`)Sox!g=vU!ZRG{`1HcV2GjJ`b*#Qkdid42{YoYL>PY|9O8=Gizb;P}_>~5p zz~Tk=E0yr86u$xghstJv#)-b2qzFzGOs`fmpt+T{zu|#rk=!Q zoI^WurvdyY0sJS|1NgvSYXL-P1R8M}P-k0i_0a%lZ&nFv_Vz2m zG}-Y^={nNl%-eD=Ke{b<-qE#eOWout?$Sf1j>|Yej1XE z++7Yv(&SicU75{#vOsdslbo}HNxa?s9rn^`ZX(`566Z0Q%__pZ1wAR5XzTdv@#Z4= zJPJ0hIsoTQ&>x{y!C9v@X4Y`Eo*bdH&XaH=`3Xzrja^QBAO+JxzipEn8?`E~YjjKC z{@)#t8i+L^?kcWRbLR@1v?qt*U0OW3F45BXeI?;7b?Lo;$@k3CEhZ+Yw?O@ssuZBu zOwZh?lnsuT24%U9X_9@`nD;)){}N)ukhc4fV$aPeM__Ls#Ec3(E-N*SRpxfJea#I; zBNLYK&iaYTywADzZGI=>$2%Jtz4V+78NUpkv$-hwoU;x_c~e*B5?fdiMOx|hHbp7P z*^m=t88h;Vr!2k0KQA?5t-h`q-y4+OymkX9a6td>7Nmv>2;|P+l+J8TeRfmrrc`Db zjbVL~8hAj7{HoejMAXyyb@u723}4#TUXT6C_t3Rcp)I%cXft9dw&hMZx@^Vr-h~en zAL0G}!|$?_G}8ivR7evjq#YQq+Gg1K(_`%@Tc?q4F@wn zybd)iAA3-vEoO++hd|G7!oYrkP98l^mMI>tj?yWTowo2Cm?FcN88zz|6MIq^v)z-z zn1DRPBm?pYV*>Jw3d4mx#rx@wU9-?8D^E*|W{ zxpD5D)=;KAsi91JG8sy@WexdzJgK4dc~V2^_oRlB^`wR}=t&#OI?~MUh&|kSPvZSd zN08tX4W}Xh9Xywi&c&XUc&_Uh0ndkQhj;>b?zm-s;2i1951eD;vPSyrXbNAK;4f@N zg65$M%h@%TnFyJk=A2G;pOsW`?DLM4y~8<%VvL`l?y^3Tj?=E)jP?mQ<_w~C7424T zgU{VM_dd;!#80uqu|;!d6$!6r>0NNnfP_$WhmRg=g`NU|%Ag&lFMvi-nDqu0(Zy`Q-CB ze!W076Z^Zl^7S-~Udbk$#RTz6{{0K_k&eZpT;Q!Ce4=wzSz6Xf&zv;SxBPD6;Y=nr z;fFG-dzML<>EIKJha>bz>*MT=C2zF>25pNpIK*IFD$j0J4D0UkaK=GFU;7oK$nXB- zcsPG*HxNqnV;nAz)anLF?*`X~b`uXr$j>!eNBqj$wAhCa+q+a>2bJ`JK6g_W=nGyH|{qd4pvDx*mr4e9&_FlAS`pU zs?F_k}IjAXa77ffVsy_z7 z&GId}p;Go&XZ-vi+6I@#KsL+*OVV`6%w&AmePZL4Wsn!}mG;~k-S=-6bEOI&+-!76 zc_5`l#U|D25o}b{`}^xk^#Hzdy4@I0x$@u?Fap4l^Kub@ z^-#ShVG4#CJP9HXHF{FiuE~?YmD5dl18Y7BB{u1~m4F$fa>{eQnS0!E_+WoGF%sb?t#Xs3VAn=K)InSsDijXH*~cnZckkM{gpZityd?x zEn2Wanhzs#m7T<;pL)s7(P@(EC&}CW66v5wEnXCig$UkWEeM%z3E4Yi-9dX1NS0i4 z2_>Jj9}I~JXD<*FP8FY0civbPKF#FU_6uj9aX)IU1xLDmMbmwF>)sIWxbcvFipM<{pt#_<0L4B>$r)5r70wtoU4F)x@ltL1u_wX71ENgtPVYL117LKd2$HkvqaH9W-NK6YD+k?mTBW7=?>o zoRCW9nL_#&`=GXV=dAq{(B!3X1&K}OFv$ilg^>uB4my}Xe4@m!jBV(QQuW*=^GJlAQKr1IbAxlY`OndgrLCo!GekpStz_wJws@!Dv}G$wn{j zA!&ob6o6#2l_pk;HuflIrqANrD|a|;Hf1(H*9+%+;GyY-Yyi3@*E(fp0jIEyRqnyt z*;MxJJvnSB@r#aEXuPlq`KH7D=|rd%f1FLOZLO5a{J?;i*b$|-@8fOpJ779kqnALx zHrJ7IQlJ`21&&H`n~YSVCn3oNFs8Dm_%Tr!r2nGBNRBOMN{1wBofxX!^y1#l!p6*Y zx@9#9GlYGNKd>Ia>SVL_?0&;hf@^gYEQU+&BmcTF-TYKopH4G<{7DAGV$d&WcxF7Z7VQjdw1gbamY9Hpal&fb`p1y z+Vg3}5q)gRes25#9rBIW$H1=WH63-`iC^O7z<2jxaK-w0O{W4wfdO#xFyvf;X<1na zADB5NcVgGB@4y3ikN(O;3<1Q*@82k$G@K)O!Qkpyl{tsdw#)# z09>BIlz9j5@#J{f{8%{7VU;ru&n(Y^PT}ivt^XXg&g5FZ7`2w%cNl@s?e>Cr*gg&O z9lI1^HthESr=+6~2(_ZB15eQYc?*y-2-E^M##TM<{cM?}Rl4C2&n2i=lxRO%`&MY1 zW7%3D;P;>De)eITjJdk)8OB^0YPkJ#uo_ZHkkM`*+k5+G_IAK1v-MAPTh+jXBp1Fb zu4eDSZB^wJW%)$RzkGgr;U=_bU`GeOFmC?f|4DzF0fhtdBk60ncNc7;A4v_oi5J>i z`DWNfN6N`UIjL0&dn>7MaILUGDCQ~V;QEfkLEF!dR~nhkm8Y2vhS`@*g1|bUwx|<2 zpx(J{0f$y&$AY5+@VJw=99IRy=ySWQuB+YL@USEnY#oX0DhEbQ7iTjkP?6Ne)a5I_ z(PrkXGAb;6%`PUFerh}sg7eg6dHpWiF<^u)HLy*;*&9{F2~t6HAUkpG!*+g;03|i> zT_q$$c}m+_lb@sp6!tHXq1@M&tCXSatV4#f4M1WW3yd0um}XCdE)usXD3hyYDK2i= z$tuhl)UxhmP|MzzU2@i{X!+Ug(UWK2vWFJ57Nr(C`r#w-q&JW){WkE2v(MCx-a~eg z*u0L8yNFoJTp=AP+YprC!S$1XV~L_e9Uw_1r&l9!0sMo2cEPRy3Ekpa66vbS0Gg5b z>Pt#>pk_&(R7Nvyge7>~c=uyUS6fWBVV9BE8vAIRGkL##w>nk?syTwJ=;PoQz&fI2 z$wyUby*FN6biLqpChZY8uE1slzRnI0I*rdzCpUB_|B-;^hVHh+RmCsaVE*#m z;~XxAkdwDjL1#P3iC0Lv$KhN35LC9MumNnl+PY8OcgbX}m!& z4aJ5YrQC+FUG_6`;tBb!D)C#1PslYX*XYeRhUP6oU25TaF@t<_&>kj6;&;Zay2C^z z%Z_)F-8LKz*Y-09se{gxO6lD_Rma38aJcfAI8r_)g3+y`CaRU7u=1F=v&!@?m3gla z(3d3s2-eLdR~NcR&yoqGp#OSkiu!$u;FIzbCUg@iSbU2lpvocveFqJ)#wLTqBGuSR z>iqH^)lrr@&w|UNfhh)Vw4{Np4NC~Jyu5;!gb!S)UxwI{5TDgYKxJn11CH=|$ejfT zdr!i$h0{EnNuz>eZy z>M$+r3`zAYB*#P29ZH4`|5ge&yRVkwWek|9GgwYVdb9#bAi%0&caCqm#m|Oq#UNu7R~EZZq)N(Cp(AyoB-nJl=Mhjqj3Ym&fN) z>)@?Xa zc(|b9{h8?Mgvno6ghY1aBBnm|otw^lsZ4N1M-Z`jNE&c?hD!J`*Yu|v0r`WHSXomx za_1w~t{JUa{U@Kt)pmRgb5eXM9Zc5Roz(m+zW-aC$Dd&@7F}2eW54NQ0AB%^9*VcU zpQ{lY@{mt;;7_!|8U2@Fz zeb3bhI6Wc|JYcPXYViB*fxZ%vtobk%4=5;ObMO;;;<3KjT62+>oZo*Q=i-aqB7f)*=aTf<_An z!$%It?&5()Mre=Uwt(S2r5+$qHwDq^wfpUt2A`frJ#+~MIVKFCu4m~q6k^7?Cs-LB zvJ)@O;^!18NylAL>(;2_CKv~iAvP-YCy+tYn;Zm0rt=G~+TVCRgD3Y-_zc^sTo2_6 z$on=JjHv}y(5ahA{0D`IE;L-{$zddE!=9v<9wW-dj-y^mFGHX$6Hykt6s#YbRI=pD z&?hYMWvF@M-Js1!Vo)by?1DL?n)%gVBXukOg1*sRB-9^?*yUM+kkD7*51$rF1i7+Hw|g zIoM;AeENCMlJIqQ@8T`u6ZhssUc5-ZNNl{^ZY&9i8RAG)k2U!5@`zALP)-jKm{^r1 zK7}<_$d1O!cr;dKti=k0FXC`|4}OYG|1xe1ZPr!>6t1fo@zO4OY5){1TS?L(ET|Wj zcLs%0pMA&_NVQB2+UbBNNKD0YK#&3!*7e7fr^6Lp-cEE7Fl z(DEj>*6!Cexj#_*WQw6zYVS9^}WMw|9Y5yesj zwk*3^7Wz7Foe{YV_DxPsOHOs1EQHf`5I84}l%1R;PIa811^cjIL1|cAyiH7}JM?Gb zby(0ZLsHb+ldXe#5@ySf32QFi+&YQ2O^icgLyW#KQ9RmlsmbOLjccN$6hRNFON7M9 z?&${Is+)xEkOh|+fBS3)VM_4Y8+2?X=ic_ippZ^1G`8E^2jl9XmQHlrKHE^ul4e>n zExKR)mYo9@eRMzApew)pSn|zoW&znpv(_iE`}Q4P4gf#Qv25{W^N%Z_h-|b;2tk;P zL4eJ%!uxhQQ@{x#0|o*fXNHBrLwp ze82bq4nI1#ZdKi?Q>RXyI(6#Qsg+zvy!dCCei(z3RWb_++2x=p$X3i!`;aG#O5>8H zf?4zsexX$l#jtO7Cx8cMTojC5LLkuh!+>wd2ROW0GFtC6)tCGh4Q*H_KF) z$WreMl30-p zZ)}^*L~IIjiY);k$WqQn@+GlzG;OY?jc3`;v=FV5v~Z=S$+Y1ZQAcYvt(uQgF{On4 z+Y#`*h#I6mOy`ot7)m=FN9r@Tk2z{OW42%_a;nwY!O_`CMVOJb+GfFlv9VM+S$yM7 z7678n$VDASy}v$|1)>wy(bh;u6mLSU(TL@pk7KqcXsqkk z2LA=`g1IaQn)=m2okFC8^-)OyY;qqTYQJy^p1!?h`yb*?C1(d`eWY7-n0*)tb*?;W zYBh@@%~j`W7AiL&%{%6F%QdSa&{gM3)~JmK?%P<0hhu2_9l}uOGTm(BZdeY0WhBD= z0>GEK$=O^o>Xr&7*a!ZRTtr!HqP3B3Gr=~G zDqDu&Tm(rD2x60URJGBVBUo!x=~yz2s)GeHx?mg}Nyvpja4S2mQqEH0Q;unwnkq!* zQ(HD7U8TW=)xu+pIg`P*F&L5U2EZmO2xEB!(-0}tnIJh`;_j4Yc{nnUB3pMNa4DNq zFA@-~n$b|4LyC-gFE*bHSg#6!U_Tb+f_%rbctsR?K*x=_u|R~9bb}~}D|65>8F)ny zv$q`Og~4@xB=iUnfRTd(F6PP{T`FZEuWvpabc|YTRSZBqxW`Gak%&EnUj2815&|eS z*#c__=*x7ZpcAw30JZ1hp@%c*`-Djfra!W8 zVT1=7&3ZvkAVo%IAT|@RW7#50Pas8bpfxfQ2U;t1YBMXwk$%LYRTYz^fqG|Qq(a&k zskoGN>9slda4w6BR9vNzm3WI(6yrrN0D_Mngz5E%4{OxxdJ-y^ z6=@p5L|UV!)$svSBTXZ)NL#LHO`0aK;t+zS*_zfYk7%oK9&_!8sZVs#s5T8u1`Hvc zJk%UBa*jGhGZ+bTBY7;$(k!Mvtv#BpS#t2epw87SQmt!LR3urVemvl#6@S%e)e09& zZgV$E_$qyyBh870l}g z**lTxU@8SK3fSuM!Ce{tZDQ0KrEPBuc=NVOkTB*|E{gj;~`-5NeQ8Egv9C zkQq9&oDc0xq>+Y@R;6i`n%1P>u@{k6r)ga5<2yo%?+7KyOw-7d!S?6M!x#q2fp)!| zTvaeubTiYT6~MR1{iD9I0U%%P(~7UPB-x8CmqjB^nME)*D!L$_6-{OC(oK+1!#N20 z!p-2LymAa^7uQ3aEU~`JHD17TjTi7-KjW9?su%E*628S~x8PqYYw_4q2-ni0#LHS@ zpMr#z7F2S@jx}R0E72h54in@ItHFYDJ{t<^C~jsV+TX!cUcy%D$^o0Pt*FEvey5O~ zqO0$OQj1`&1B^ZSDu*eTo@u7IoTt3BZyE-6vqmN{xub{J7jXTfyxo zM@YjZaI`<8loqg>;O>LwXW-XaEHuITi>C@C(kzH&{Y<1|(Hyt_G73alafZ>!PMV)V&FsAi1YDp_Mg?u&LRH|h9Hz)4 z1JkiIqs<#<`Crs8O%*G`Cc0y{1zj3WI$_2fny%I`^dG$gmDlT}fLe5itMV#s-9L0G zh=*g{{_++fE{35c;J8Nz2u~3Dxsm-y&osr?@0xb>0)DtFu4fi{%)UU2^mFC5)p&ap z(K9;e?DZH)(L24$l5Ng2Ra4O?)?iRQ(A!u|4gnHxV;k&Bu+P$kjOi5mHFp2WN|2=* zbvjudcuP(_A*NGkFh*Z3LNU2pL)}o(;2T`P*#V`qul?^6)&C1Wo`b4&f7%D+xAcQD zLO46TZX|v3`CR$rI?pHjvA?3+>&1S;YI{l4c)qv{Tk@x;quX);i4cTt+sko0-e?KG zT0iqfOSeQ}W$-dF0s02sXz7F!%rb~t*DRwQ`>RpvA)?%CfmMx8s0HlWgYX}D8qNR! zt9%F9rL%89Z(>vH=J^epZt{SqIeDBrV!1JcJ7Vj7x6T4UNj!~`v$;`l=g+s+VK(#= z5*$Oo+*-t-b23D9gX1-EF8AFgX{zu!J>QBIhp`(URY}%X9vNl95HT|9cKDEtS;B~w zVXKodYz1ba5DYgVO;@G)bHM<2!%C9YxB>=(3P$_qTdP5d*heD`lflVDgaquPQGkFj z)67UZoDpAIM!PJQ{}5bSHE|9SAtxDyvYZ>BEmb;4lI~-ogi6t5=n4(7SxCf6FdGkN z+1(FeD|!;Y(qkCtQl4WHC}H0LEvXr40BpVeH(XV(w%R?w!9E+mPppV!rjD~ss#=wn(E;Km; ze7upw7$NcK3xHy8$cN}bMLn{y=?j`j6lmd-cadxAy}s-qJvDCK*sJ6AWeL(R$U7~Twlm8 z=~WXvh@}F$LwZ#TGsi6G#6Dz%poc_npWsI~9l>;*Z70OzNd&MK38Bu|U`ZIX=UNC6 z{@Z|OYY`eP{rfSG|XCMo1dgeD0u>=uP_8(x0vIJjlA&x{nZl1okdh)2OFGAX5L_1ii*^9ZA zSMxd(qE{0Ov1$vlQZ>jG0<_fGtOsYY<>5?zb1}e+7-Lb+7YljBn8^>boGa&J9&|Rm zrb-FZOZ*m;)RF0s@2A&6OFah*=R2UC#>v`(yYc*_W#)gj_8@8xqV^za4}KD~7K;cy zL49ER_8yt3dNL>w<-8VMXwez+6hH8Zrb4Q>h87`iEM~P~+3~Klgzs=hU%TVqdoJgt1X>hgAT5r-sL@4y zr%(VaDu$4RA`HG4`8c3 zkLx$5Z$!S)Nx;I_KomPExp%}7y|Gv*(AEe(2V7&I1w^?g&f;k|V-)WBOq zLc4qgdwN&Ld$X`7BxZnL;UEHDk$9rY=ae(S^n~#m6ClS!f-1^g)15}v;n*(8&BYMm zCrhNUxNU#Nu+1kWaIV-de}Y}54ct>bgn>{=RYHrD`4zniSz z8BD35q$iPRfCXntzOY<@8x;p0X0{T9IqT4cDdeD>xXgM;F9o4J{w~crvCfKp7Kdq= zbmYbU=vxK*xw5K;${2T&snM!?T}sY0!9G6(oGEM{7UyW6M`$OeKz@#g@w|P_S*92NAC?LJBRb&={*5wlxsiTqZxa0T!=$QVvLg_vw2rZdnq952(AWzELJ4O% zgS#S4#$Le}6a*D;Hp>h6!3y|qKaLOEbXF0+LalA80L~8~W^mX8AHt7thJkO15C^Rd zf%wB+}Sbax|zJw{FPH)x=6Zl*3hNP&Q<$ zHI=;qUMk(7yWP?;x-(PJgw#mIJNPT71$ah_TQn8YfPW`Q?mj5g_R8s@%H(E|fP@19 zgvp!@AXM?Q0cj*p7)z1oz)(saHJNxor$Yay*I&ZV3NmRXltC4eFev3yER+XK z_3kLS{z07eavF4mGAGDs6A;ZLLEb{6U*jxjryb16fid9vm!fA%7E;rO`|8JIoP&g) zyaTTVW#9P1XCnd)BCVQMWW|HI@gRv%+eX6cj$nhjEJBAFA9yUo={GJ3e?LR!k$x*= zIa01joP&pP1j!gPpO14@E?y28oC!O5wV_e&Z)=(A|gd`LPT(Q#GZu3a6!Ls^2?uOCmO;6iGjf^OySo! zZ%GQhtP?4eF`&?okq&fUjW@U?FCGL}>DOr9G!7tNz^y+V(U7a-7B7G;VT#zBE`yeHB3cfzp!++J1zYPSi)*F{S#0=6GFcob_>yBc zW_+A6S;#^#h|9TA5b2W$W48#haJv^?(dq0Ku4@ovx0E1g{j2_~w1Bk*_pqgN@T4OS zG?R%3kdV#H&~o#kG?S}A(u`jdi{v3*95Ip4#g3;{Fb8hV5e=%5P7tb5>#Kss*dt(n zRIyS5AbAqe=8%$EHaV`U%*3x}1|uqlIZm>TM%ZyL#g&{|8NopAYZM6p*Gb8G+n+g) zhpB};QIF+e7^UG2_zL^*%&TusC(ianxS;!@K>g>Lxc7_~NCmqukKwB7|9wygt<^9T zgi&trIS2xD;|5oet$5HlGX*;l5IfSjCkF3+e3)AcodYXj-93xS&YC6Hl_Lvfdvq8v zPWePX_u~OWNGSy3i4{HvLFl1jZYOc(XtZyC6k2uudON#3 zd?Q{0^>!wlT8Bf-9qromkqn1ScI(n`79KR(0{f5&BwEAvK^Mz(JNs(omP!H~p;l|X zoo30Eb{=|9AVO79;Ffp!N>6iPUs2j?oHxl%I2op9Sz?<0tWNsAZ} z)sgUz2~C)d?`Xy~N^>jyUGBX~Ms@xVDN^GBxFwaiDkm4pgMZ7`xG zRe&x&Ey2w>7ACCT{>#pm43@{fk3?@qFJLB3_sw5czbdV;do0&Cf2qHFBUbe#kiE+x zT;&oP_?_T`CnUtmz?@Yv7Qqz1W%~)9gqq6DSt~AtDA}8HF=B^{J1?`ao00>f(DF>_ z!*a2)!0X+PSAm9kDh2g`$QaK znr%0k^u#UZnLLtIi=4)sEAgr^U-$u%oDN!;4`F%7qU>)!+6p{wJNsIid#bPiov6R~ zD}9wPrc?1vxJDC(PEDWn83Y zohE_EYFaf|1tkUUAm!Nh&h~P$$a)7mq@!^E=v7TYtHElB?S^j(ahoph_guhriYu|a z2vOzVIBf%g$||Q(?yFO6ADn5BP#@a|8w4R2$ z7}BlURO?U+fsKl?2C;JyEYb`Zx;2wQ!icRzP=^!Mc{MVm^!^{bWgrhG)l57vnO5Ut zz*#3{)JO$ZO{2a^%}F+yTCr8rtXZUPxWT|1j)64MN*(1IxBJfROL7CAxuX?1HtVMX zl_lm2=z0OylADjf&(qlsIJ!hmu=P3o!1yhsmcVGkEs?~aA=rX+@Ph|v-w0_viyxPY zz>FE<91h1_T{a6>(E(?VIR?w-`()respF@nN(WB04jc>&aR!4i#3`>%VvR1z@e70T z5pL4#7$3_KvI<^8+@~6c$uRr{f|w5x`cgt4Vd=0MA*=-^5dqjH(9F=Yhiwg3g2lBW zh(kUc)9|>Gj;uoTc%?U$$$005z4?|MmnI-OgKNyi$g%sLh<$dMJv=iRg-X`h!E_e8 zOO3nOJqxOY0k5>Lx)y8y>qVd$)a4DV{RdCNCOMspI90uT0(t_QI1gUk-u?~EZacnD z^peYE{UWrhrhcw|ka2$6YhQS&n+L3p^sURGrwO4)KltDKM4|j^glS{BQ38&d3wy@< zRQ)&Ze%1Z`KX;#K^8FKulYD3*sFZxhZk@G*`$UU>w@Z3{T2giSHCV{mB*;04;!9O&McfCL3N)c67yd$DY3P3~C((o`|?-^s(`(ws) zVN<~(1F~zvlkO!8>+lXG9=FfHW}d9at0?h)BCK%lvcXm2HOGUk@nCwZqr}TXNR@bg z#sTQ5KM2q)!wdAX-wM!ucLL}?UnD@Y1VYz@CxI`%DrkM{k4Do_kv|&Flt+z?RFKa) zc~qnz65q^whu=oR@ABb$zUD(b1NEyjgWVe-S}n&LgeW#G_9-+gs%K&~rtL=0RHQX< zUbpvx-W%@l5TjkQ?t5t^BfPEr{0eF1c}>Y(NW|a~a#waY46c$E!VHu;aeDQWNEC;ifqjGZ9kV&?}!V(mgXFw+C zOTW~*upD$KJECfs3UH_uaKI^z5*)^KD#jI?3!A@_G)5S3+U(acANiwQLkf$Sh~jP+ zG*9uOi^pgM6R7d694Df+sfF|`CD~;x2JXaJyO8rcB3g$tWJWeC*l@bOiOK=OAm8Aq zLL${`g8ILuj4s32)UIPNgb@SO%NUB(a8&6;_M@&WWVD%n_${H-tN<#WH3O0`;-zq7 z(m#8z?QM(Q%@3l{Rt!TBcDf+FX1TmAY?epGIy^wwGIB}a9I_zrS0(!Sng%@M1m1`@ zY8~Wph(B_wKQa?5I9f4sCGi`7WN&}uI>bPPjRex67=X};6~ZwW7;ehH)1J zk92rLi~X9Vh!5u;4YQ7SUEYq@Jd@<1$9>ICjIMNnYc8YF<#M}Kq=NUfsvG`DMVW*T zM|y08GLJga4mR#SAck&HKH6_w0gQXi|AJfwajyLL{&5}V&pIlIC0q62c zbJcK;23cXQ23etBgRHPff(~tr)i*;M6%+9HX5C0>Rs4ee;qNHlImP zSiVtW#~UdMZzL(P7m)2>ELclKIk2!?9cS0* zKT%!ix}2O6r6Y?dF)VTH%K)U#sJA!W}Blrj>`pVD)apFNhzTqvOG{9|;&%GS;Nv);}eBl8c7z%0i^oqxKp75wrp9o96hlQc%S;JkFPfOB_aGB_&1B~FLy?K?&bIHs03I3X5; z{Y2I-n@_9hX9p~j5%48JJY%rwn=I=wJoyIO3W+q9W@^0!Aqw-n(~RlR^@8ivRQ!a! z4!AS&g;%4klnJyw%+#Z_PnJr1NMVqqNOnC%)L1A8hhJ#K@SsQiC~1$Wj){ui zc`ODyF$4pK;U{B#J4U%JIYmgix zM}y=Txf-lQ&@VxUV-)F|;TU7}&2WtI`er!BBz-d+W3s*p2gb%ES`0nN!BCIpTNA6{ z4oYs_R&U(0uO=txsHDP~F)9z&eJe#U!VDPP?J`aV%*%_D2TW!= z17@o|=WH1;rk41CDP}QHNKqvu3?P^G15oQC0xrdhdm*uviP%1(%#0ImlnijfjSoGC z=nVLm)(~u-OjNLQ6m0KNMZ1fFebhE!AKEV1ACC~QSp;f{gT3$q0bAk)>{qdbgf?xG zfc=GlJz2q?$_Ky(VhJ`MaDL9V7{1KpS(wzJG!?3|s-eu^|gWNsjs^D7NPn8lfUX+QC#AlR_9;(nmwTy%xq?S?KK!3<-6viMgJ zsijN3_b=Of|E(2L8F!=$t%GzG-Rp;KppJJ-K8?mR1lPXIe^9H8iEiIO0eFHt;HWS zC`}twXvKooPx+CF)fm*?HUYe+3BJ=wKwCje5`4}6k52(}L4!M*0*Z&C zVwe4Ac-enGk5CBzFFwSbOTS6HyZ(vC!TUdscLw%p;S3It_fCR*A?pZOZ`(KFi$ZH7 z`jTj8%;gZ^g4Vx42W*1&0rAg%2x3vNIz7)f{|(tB{th8-64L}L-&%%UW9;;n_;uf@ zn$wCpazZR9n43+;eUdRZmh0FWnGc?ugf44@bRkj8$HobeUZrN-c;Ma_Ay)U2IDK2E zrA*Z~)peeqg>tJTLH$T@!&!ZB)oN^=R5Q{KoAn~(6;N=n5J4$Vw~+B>Yrd%nHfwM) zf&!%a5Lcu3k>e4|y0Q7JyUruixa$m4XlNX8hr2Z`H^G=RYwv_TXGol+L(mCTm=q#R zuqqy;oWt0qvf6;w1^lMwQ$#k1n357(2<0VN3p$Wn*tVA$Zf)2y+>ziRXMfzqK&RBgj3}?K)8HO`S-=w?D{4P@Qyc8zj z05y znyeAb9kx&%YMN4Nc&ffB#fL@scMllJ!T_SOmLiJ=%sKid3ySzr9F&4{{<`qN#0LL~ zU?>nPQlxm2-&X71S4+Pp>H7xV)74qpSKc-$z96I%q^+Wl?u?emsA|cu? zLs*nrl^P^Qsx(N9RBMnJsnsAcQl~*;q)~znMw;}^U}U+z8H_aRo56^!Zw4dl^vz(T zMBW4=`GzJ&iDp#3}O|2au=SMEX403D@3vvqO(^ZZX=S5KL^H$VmR#}adQLs}z zw+MUM`>_7#pzJ5H&vs=XzNanS08c1xO*nPQu+;QV9|*FB6pH=txNJ3`UD>MU&zSWw zxh!hI^d_DY*u%f}6n(g-=-DW`Wt?UdHhTjiP%p)5`(HF=GA&=LVS(ptew2lexE)!* zmxHtfA)v*coLMXlZEp?YsHGq6jmt3G*zZ?y+;T&aUb^5wBPvo8Hsf)OdV@XV_gofn zymtx>0)?|G2%(fSkyDtS$$4p*IT_O_bUM%_>`~qN#U2C_v8Ea;U&#S+v!+@@HO~68 zWLb5|JT9v+(3ci8(P4)8hvIAjORF64VDBf3^pkF$Px=Zg!JfGKhnhFETS_p}Ef~2h zEf~2b9X_Hm0+G>~z^flcit#pfh_D|r&O{)Z*GZPUC|ZU z1PItyVpD?>$H>f<1CnDB^!A58DgL!@{?Lh0|CWKBVHa3?8k*@F zT0ijk;$waD>q=XXD?YHa^@z|Qc6UAS+j646ba9&F`wWpUVJY8oNMU4JCN}Bpy>K%9 zj_Wi^2wz$%ZhpJU_E&cT7`%t`i&Wxs)Fw&MOX?3w}m>5TjalT=~z=49rlci-GNWt@i(%l zWN=FHDHwW%(V3u^Hv5vxyFfv=8`p2W{gG+u{wvlsqf9Nr?bO&XloIckMO@*!*OBG*E+d3uU$B0+Q~@w@MjC7T3Hy5Ku1V~;SnL7X#Cr1QjmaAg?`8a~yX&+g zU~TnBE=n(q%*^2Bl&2I%C!~wL?c&@(+uOxQ=B>}~vo5vxTX&uGW#T%i6t%Rx6NuaZ z7}gh8`RiAAbGpW{e)L(O?M?fWi@I%q1+ zi+cv6&+`NJ;_WC7=QLZ^xW)BMD$cf8KxBH8J=PEYTs71?99;SUzDXcgC!zUNpgFB& z-*}UDxE?(SwY7W<1}JSiIB^kbt#ony!=GB)oR>xM@}2QX?{%0aN|%nemr+(J9gtEy zwlFdU1Takq;J9G)vb2`&JA@~KdbmCwD)8)=01pS&l}KMdG&8mMLX@73(sM{&r=s-q zmOU<`K6~fr>u}cdjz2Obi}ba(OJA&GH>o4nOU?ku&%uC;7N!-sgTX;a?1MiFiy)gl zkD_;UTBf~i)#Zx|rinf^Q+`5f@K)1QFkVsAH|BHg%;JN|bF&x`kMzd!$kbf9az4OgrwftOuQ z85x>g*ni#42N3D|0O>g{((Os|$%~C(SM~)Io6tARi}|pw_`vo%=p=mOHWy5>r5C5A z$h2%wK#o0H1VAlucPVk29|=YFASAHg-pt2PJUI7kwZ9rY(l>uLMZb1tp@YmUv^xcd zY|OOd7V%H)M6LrcWk;t?vLA&o7N34VAClvax#ZkSi{zyYSvWoyz&Nfe-j-hsK>GU5Nkdt93x{%iUUP^ewmUwE4^a<)+wS~!yo^wuC)tty?;h{? ztWMx>LJ1ehG!-jFzHRWg{tPfaj>n&muVbWs44Dq_wFlCLd-pBGA!`y(>_S)Y*j9%4 zw1Vt-S6Joa_+oof$!$n?*yc4b-5|}Ll?S$&Fu#v1!gS-Ce@1(v@1aKY^-=Uafu!32 z4FcCjEA2PHh~x6^Az(LNVsEp1u=ZOPQQk#%&(Qb*vLOd#!nj&-H#$=UT=x_EHDn~r ze+0L%zZ%dUzaQ<+l{|Ms>g+0v!kP8HPohk)k7CqBj)f+iE2@_bc7Ighl?Q+j|1C?? zP@;W0{zxZI^z!cC2=CrMPTV^)pKQ8o`~3S8r0Y07*GrejOINWBJi( zQ|;@~CA&sxx%d<~YdP2;u8tZh&dkqiV5%)Ub7qR}B$}@c_CLY6>=S-N?gjZx#y|Oe zyOef#^nQeMs) zgr1vEq+X1b5|Avnz_nJaUDa)0r99Uz!djaRj;WyD91)!4@e|VV)WAV@IPyV1X$rIpo zp7~1nGnWIqx?YcvK_6jvS*Ltj*XuVRGA;_S(=SD}2`g_8tM(%efG2)%A|l&aulF+G ze=P$(*DJ4Z%n#h%v!sQ{@&iVgi05B<8EZdbc6-tv(vIi<-+TG#UlQhj@CCOUN|7%S zpOM}jsCte!T&Neh(BQ(z09g?cOK(Brsk{Wbz?JsfU~%!u?@%xbF9&L~eW)`YlQjQD z6{*UZh~9*m@O>mJdfjN&xDe6gcG3Q4lYR_8g}#9F@q=J;AHTK2(|OZ=N`*jwMmkx| zDPWdqg;%uJ;={l#OJ&QNSM05~D{@m)%IZP~1a4_yA{rdTk{#SGw4w#q`Nhlg3_am* zB{TPf2bWW>PL-bamwpX46@q)DP^*3MLQa~C)5m$faruY9TRJ#3G|!xH2M%UTHwnU_>O{ToGZZ1tP6e7l7RsMrtWQS;fBXE^Hz za+(!6nP@!d#ngZD2&w-#;D_moA7%l5+JWLSAUzQZr#(*nGQZ$}Nh3-_&k++)<0>Q* zfRgmWE1SoH_^aZ)SMV+HY_%uiPUk$U0bMo|=o*W|+QI0heX2suE!UzH;H03=mwraN zZ*M4gqs9?NsLr0zt5ZtJ^x96Lt_A(px8y@foQ^g?<2y+nSJ%xE_hle;oZ6+QGGc$L zy|x{Zr1fCG(jvBlS< zg1sq!0M%p@0VfHaMuunj>sNL2r`9(Vv~fmT4g<1ge>8|`FlhUu)0g|Bqqg>2Z(n>` zmz0)c*jy*0X|j`fohNht&@L%B7vFYLDh4;GGJD)2R~|wAnNIy_{ws#3`zh|Z^*3w1 zQa_7C@ml{7r+$BAc)Ee1qs%7(Sa1EAiSYUU^52@6z9?d?y-zZ@$a4(_VCSq7J|J$y622T@tDx%7Jq7E8_;la_%G+A zEEtTwCv&{_l(SR9b-uC-X)ql<`7v+WG?Vtx9+LK^H|-*mb{v%D`0hJz+E7gkpMd%s zhF-mItcPa0{V7kyhnNBealITpx!Rl7$)qh%px*bUtv*=*4u8Pzj*3Ylc}@Rpye2tT zF#GK09K5*&(%3nxp9nE4TgqA-->0uMrU)aLM@_iv6DXzS@A3@6S?|~v2%w_n-ip3D zNjr-w4Ww=MroCm-PE?#_R(gPV)}+nRj?DL_-J@w?sw6!4?A{T8rz(JZ#D*$>r~cVf zQNUDmrUH2Wqn@8G&d%eL>yJ}I(;hQvKWN&3$2{$enza7= z$afcc)2`Dr^+y(GI?o-BtUJMUgw4DQceLmXA(Cx)%Rus$R@e~%;xGT`foemxVqpdp zmPqUVCr{cZChah6Un1=|Z`vy+ZKn3t2yfb7Ojnl#=ng7)3wO&e*_-qN&r-n3Iq+UJ_K z%$s(QNo&=#Z@g)3$7|d7R7&03JEA@}X@_ar$=rESA(yBEr=uPWw(q7iIXS`{hP1+_+`@oyF<~YU6 zMLJ41dedGvX|0-euvaE|+N2HJPy6o?4-MXB(lV7J&hw_-XwrJY+7$i1%$s(;NqbP! zuJ+FRgEcLDJa;_e9OL^wC}w9lMkUMbh-1K-p>wQ3D94>IPdaMnN_Xc<&QEGv|0?B^ zoe+XfW3|H*tNjdSE$s?39PkjFI>!#sKzghbtt8{<_)AA$z5}L@FVkY53HNtf_$uaY z2Y)zz#>qG;SM0q2UdFo_v^9Am`NEZwnM6$@N`!}`&apov7J6_;Pz+Nj_K%H8{NU@d z4jO!*e$XX$Wa0;ZIwB6X5oCNjC{nJjdf%sm{Y-luf5#*fmO`J$BInTKqo7wkft- zB3Ko(I%vltSn8l1yT{%}APMo=htju!aZ+a%5_FDfoOw}p=K84bA#OHfK8|af9@S@GTv?7r8y1{>3dF0KAU^oDn+&0nZ12 z@92Y75I4}mZn1ADcff76h}kvNaNry`WqDY5mH^G=5Rd1GJPXfmxTqFEUUn`WVCjXl zu>MC%6;j|r3qJTFI29z<(5X>>WKTmyrMk{xV?Ix`hr)e19o>uxJxCbc$|4MovFoI~Mxg}U! z3RdE^Qra)~)p%OTgNC>u)f`>eaVuZv$o$1I4V%+OoP(~Fe&JnXaZJPc&O12pOk5-Q zK7zzHd?CU0RU?~ZEtL7llH(LO^xVus93NX1+Uqs!aWqnvNRA&ZJzE>8P{gRorKPt% zsvj^OdgfXUbdkk}-l&X$KsXVZEol`wc)-tAE*|PeGa>|GMe`72Rpc|5@m^|0C-KvW ztl&_>czq+tcpIy4%k`~D-=vM^G=_6;xvtHkHPW2uv>dtPPM393zBLTC8CtkCEDJ#? znMX976`rv5T&ck`>);jG2B_eZ2wXU^i_Rad9Q$Q`iG-upe{fU=Y@;*sS5p}?X zz3&jVMh}C?^c2OO7b2wh9RF~ML(cIttV2#uVmZD7_3B(b`T<7bC(bRoU<`K0*}zp6 zZI5v#3OA+=#i*G^HDBM@mz?qALh9DvbaxGT?>hmjTfjOC*m}b^YcXer?O>}_VH0e19m>g1u%(kZE)JpIr~}$cBn!ZCyqM&Y zQDB_&Bp3M=%4d)mH$jdI2H`>@SOcwrv|8{{k{_Do`{#dOT2uQzV$0Av4x;D(A% ziFHd9B>vRV2g~#WU+e>ld_NaLiZ11(qxLF?2G+H|CTuwU$i z#1GcMt^&RWMKXgsE8weBs5crv0KQ#2$9m{j2gcT6I}))6#nvEz&J$J|#r3gRL2yAM zxmTzry;tm2&3$m}1ZG$%sYG0=%Zpi5&JOEFpPmlrw@WgXLUg{S7Np?2F8%0|v(dBDRh^ZgET zc08{a!V2@&#CGNG z?Pl{J6c;I>XzvR14sf83SC|JTlIAq-b?73CPDjVG6*50zN0-RYj*Vuw{^HW~u1WM0 z2}8U$KJ4uRO~H{c?}XAJVh*XB)2GhPNi*k8`qz`=r_)}EtpG-cYu)@kd+}XPocd0>sU>q zEOMGCHxlnSFbz-GiWl(Yj;W5=LVx1rpVXlLT*(iD-=;*tuTpmVcM7`DVI4B8-w-mt z==Qf^Sh2gmBApES{q^Hh>_hj0eR5<4?jv5+*7o*FeSX~B)^^`N+uDx#0`jzpW4iOp zL3-R8=Q6Rs^35MUF`BofWFw9^)-BK@j!m_oDp;tzi=Bx_NCXpl-s4aGzU`kp6*b`% zEHYAHa&!C|c>1+omAvB?y+Q&0W$5EmTE4VL9-5LeZjrsY7awAXcAWk6{$25+*|54# zX?fY++()uiXzrH}<6FtbPNAdvy^F8UnkT7CA@AZXT~h6jrAYe{`4Waix%N>%u-rKl z!QOZE_a?sa{@&@J3~wHWceb8CBJb*U^52EH1^6w;?;HI7j$eCamLT5wJ&N#3{Oa+$ z-ScZi*lSNF{W(JW^EK0-@A&4w=8x_-h|}tX9=G{Z-)URrk9NKL=5v5K1op5@V90C} zcp+>8)lSk;mw)gTTbS#PGIvb=JUThfuo(zFLr7l>%oZ9DTIaaG6a+Z^RlLJe&Q_rJLVGlYL?&kzS0t z^i0r!uFQ#<=6v<6gMgS5$aKm%z=_$*!Eu2TxY_BeADohpmY6wjfam`MoPIujl(cTd zkBY2p{CEQ*^-+Jq6WW%xiFn?L-%$wX;rR-Fzs8SuKJ-W2E%@=mfkW`T7QcD;J&E^6 z@LPuP!FWD}=kxfTgWu&+evW;j=deQk3(78W z`#`-vy65*`YH@qGNH_TGwU&;Htr-n&S;wQX-TXLy$f$gL=XqVyH{o^ksrqWZKkDLy z)Y{7vUY89{c>Twf39m2SgjX<0Pi0vbAPP2^mY$1VHZb9X1w#{Fue?NG4Je!YC8P$y zx91!H-0bS_2z=xH@%(suWq9*2++Lpc;xOe2KTS?6M*N-l@%q+v__5!U^YFc|=QkSR zMfjECm*e?8j4IzDjRo>7vDwVLFLirM&8;Ly$B9)9LC20)u2h>SrO3t8 z;|U0^Wu=#A2A$;^_qfbjEm+5WuM*iTle>@T%Wc#gc&^~JG@~jbqaL1N@Y9Szx%*Aa>IFBmZTy=;mLflyBP*c7){HD?a;}1pPFBO7n_FbFe1TE ztVkKcR_QHl>@ADy@Nl&Z?TOsiU(vA&Hgo{&tCI?eZ3?3+c6ci?B`-Ae(uUF!gi>PH zu>+%nE}H~7abssW%tScj=L2}2yd(O|>Fg4pmp;$&(C5i1o-7{vd>U22(FfEn??C(P zyY>D=`dr3agxmVPTWEa<@wpQcvBSfu14Qm2Pta_UQs7uVaCtB&FixJ~ogh!{+~Nv6 z5J(UN5+s2HEAv60xEl`yG71FZlIVXFfJ&}{Sc^SN~Bcs>j@l_g}q|K+#saQpu|{C3z?Ac3FDZ`WS}; zUa6oE`Y(N2?Moy7cj)sVNT)xWK1YuSea1HJB7J6Ua*3}a`aGi5&GKLV`G1;!Zu()% z&!^A%<3OK*jk`#n<#FQk(x+Em4gciQC+^UQuc!ViueuAm4kYIP4f1Lfvf{S#YEQ_k zX`y_71j>$~KVMG0i8A3X$f*I9Q(MjhDbH9BQcm!{;GXy0j=WmyCD!)k)tc{Jdj2oJ z{Xflbhv5#3pDhoZJ{Cm!@ejMmZ!@snVuVpIzxB$i`>k`c{FgrePt)i5*d_ki^!e9O zpwIr_CDEsIKA)}{cHw+}eJ4Hj4p*iF#2G^-HS#E7$EWpg-P&1B>%+go68|eWJC;JD zE1X=gk9`e#je-TT_EQ+f$RrbqBO5PZGgn zza0VJ3-R?T{V(_0%Cxc>m7C;Hc zAwzJvFFlt&D4b8d4jD?jIK4v@d-1faF^(to)DTCp>|cA}9W3x(nM;=mI|BBd4L=*$ z(d(Q~lY#BE9bldPBjaB|T#NRG%GW*v8}`^0vWM^04RnH=lF;R^!0K5j?6sxZ^~g88 zxvdR!G_x@EU%pwlF#W|iqE?a|AJEK>FT%Ch24TVL_hiAvr@MuQBp+@d*HfPL7Y-;YGNJHiS2 z5B3lJX>h!zW3=t0KaV?L(n}W^?syeq+9~fIm$f;cCilGSbYkDcnAGJ{4njkZV6kISY}_ct zK9}hp4%A?u;eku|C)u?L#CehHKL*~H&_A9McT*S~Kb~_HEAb9mv#8w;YGSmRTawVR zXA$78jE!)-EQ!AwcRs8pYuKT`nrB)ay4&UXaI{P9Bw6o#*vkVmFx2jR=;7Bxgu6-R33_vq`VU@tn*PxL&h2zz}-d`MaOzvxNEE-ms*- z{HY!0A5+y{{&(u*U?r5#`2+r{;APL>_Xpps3n+?|Zkp-4^%#W68LX87@PX_0#koui zdpEIE->l(C3Pw&(FYI6MD?JY{@Z$t#!M(aXt1hpku_V8|%kFUg-wfJ;>n~r~w|GX2 z+DiV_+c$dvK8W`CfJr4AbA6>hArP>Z2i~*u%L|$ZV#;~~G5I)hmRHicn{PIA4vF>v z8kq0nzQp;=`h6HZt~XH+J>F-HLl)OY*&z@^NbhriFgz zo8Q>7FCA0U$yQqV1=(%=>RR^bx6B_M)of4Q2b-I&$9M9>Q-)!*j z->2cD8IDSLKgRp5w+pQX`}{TX)j3S{Y3fvjUr9p?U*;dXKXN3@mm(jG;tp-;*Vvx^ zA%M%%#H>yw#|`%7j|jb7jSeJ#uYx&VAQHkah%LGA{e55a_iwskc;0iVU;@`)iD7k$ zzkj{ocSb$z47%q@)rG#Ht%1lW93`G!nc;;zcjUY7{0Ca-?FJh zD!94{uhqWN*?0>^rsEe%5BA^SD;o$IGuVG?2)oDM+IKaNK!Xa>hLrcp4zx7{tx$T5 za#6w;&ycE}FD`bzXy}p+KbP`}9~YE~f3gRJsKe(&IfK%9Z24IjZ{iZRn4kI@v};H@ znqe&lG^_&Ln(@GbvoIu-BU?#nw?2FLlxKD+Z`6J`dycPE1 z`&l8-;tQ{V36Vd7E3o>m^Ucafi4dM^{rwB7ec^6+E9mz{Y%#Kc1Tdckqc^6Cu|Xt{ zP0uN`uEYI#8}dpvrxsXW7vIl7=)k<1RM2W2*tQrut?t1A_2L zcVFq>5yFuC1}IFyI6%*0Z#)~VEZ&!Gn+@Qb>_gDF7!_W_qbCi9*QoBbq|id&kaf(@ zYsI~^LfR2F@||5UL`lY1wj1gp*{H=t9{RFhVdN(1;Bar0+;Yz_(&J7L;(F5J*LhCC zm9WzC(xZ|MIw=Lni*?4IT`Kr4x8O56Dma9M7;hs(!Gi^28L${S>)IbW;Hcl(zcB@e z($M>{uV^Cdjv^&3m!f=SkF$y=@ux7lXZ;yq8qrWCcu*~jB$nBg{}k476XNZj8Xm=P zE%EW;nc ziJx{@MnSIAO&>b_51nhFHNePWIw-D%;S;LC>=J$&*>DYFHSR#H4BWD{1Y|a)zdsTJ zQ65?@=7NU;B!P!E`@*|R=HtC7JE^QY6xPvYP!v}UBoPL`68-lJOzZwg`& zr@`C`MXd3ak?e7IVV<=jujDO^;>}vv$%%z!2HLO|x-7ly6JOa%fPx!-dHr|G5p#mk zoBLouN|l+cFKBHp*_4`ZwG>7|Rlc(4ksI%!qhv@1-dl^xQE_n|t9q4izxIj3-SQmQ z7x~dEWqA5#KLN-}HeqDmgMc$K-2y_d437@%6DVzShhVFpbG3(6>+oC6QPOalgZ{oK zOotyZg>$lnmchklUzmnAu`BQ=XstmDG2*K+yV%RHxC5)INevyWY^v2a>p&I*HWldK z;0u3-HWu{zCf~A?n7cbJUQ#wOw3#pxE|lv9Rk*||ySD+e_&EVlDCBTlF#$4MA-zRw z&e%aZl=~#|2&d%4Vx{$sgPhi%D~-d2D&#*22#6DauWSKWXqC z4pxYnfAdfbxO-PfcsawvG%WECAsiokarvM3wV3(aAFzJH_>0fqGz65T0X%BjYoC|3 zy<9b4x&*7YZ|!Lips53}fOK~e(|~+fkNal9%Oi#j?KbUa5!cQreqKlM`#)zC&m8C= z@>Yk8%qT{+sCTtJ$N~6U`(22$5Q?X}KprY-i-W0~eY5Vs8B~FDh5fr!4EpC~&<_Ss z81!=kw`?v!fe-_l(DX|30bl7etRgaiet$(8xEYycZs+72Ud}-@6a&8xrGY|gN_y-y zfeE-+VecQW1KvaviunxhZZW5sVulzIf#slh&`Op4&%JxX3nk9c!}I*xl18I4miQoJdj@xgi6vgGCs*p}WkjuYSZP!0(Hh*@b`I z1mWSE(3v7UkVh&gV+0gm*$T7}sEct9?%qaOe{Y zq7%VyHbaKrA21;m3?~I4Fq|(@Iv^TXohS|v`?#l+;(!kzw?ubU7U=&Qhl+ABwsb7g z-A$q_a3a!L?$Z`m+7pj4$PXRjib}*Uc+eabm5#z&K|fxg3nt|ENSNEs`t46rB2GNe z-+_%r=5a1$$PUs34Z~y0@n@IHEpW>%?4aCJSZ;qUH%XWfnX%o8RRoGyjsr6d)#ES= zxw%y4E4zm^{1Jb^&O(EQoy~s#s-zd#cm&g`@>?bu(wM zMwKZJg7MU|!d<=wS$o6@aF*&Rr;v_$ZA;{Gl?QltGN!H{wR827LlZa-+SbVH7Ln`FQFurOlFEO!4d2T6GsuB!RX}>C!|Km z_5jLS;}s|1gG|JUthhLF6zVM=LNREOJ;T)0QtRmJK?^Vt^F+E7ro}C~!i8 zwR9ua(v7f*?Vh*L2tK&=xr1iJ?7nVg8(4x%#mC5W(RYh9W$lf5n1!l&EF*&Z=u)vt z{T|m-*keB%krGVBIvX=f-!<1?RcKAG<#cvpzjxtQD{-wY3wZ5O5xBm$uR+y10%oSS zJOsWlZh-KG_!?v2hr$c?L%d!6frP*N4Z@ddSmJ9DcIeHuUvTvk;q|_<^FVS&QSnlI zM`DA0$fKgD2w|EehiH4MJw?Tsy!px_4qz!Atvt+%tJ+Jk6n$SmkrYx5iD^0L3)roV zD=b#p52)tO0bs`V0iYzl%K)6|0x+f>0D1uc(U#z>g1SooEv%K$VlIN{xmgq>BXx*P zhmxeN1fvDKs}T&Y%Bv)qs0{2kKoZAu4+@LdysiDKijslkVL@wRdTcJr2u3CvMFv(< zTx^hqU<`k2=in>(qM=I;6eXg=01;B$83)sELUy|V0X@l9`?eN}I}I&2+nH^E+-gWD zI1S+BTR(`TV~YRyt#&jd>v7zoDRdpU1)54N3EH>9UJE@RmLBs{ooT<>H!C2t1m|k~ z3z~f4J@5wK^ztgcMyppYuht?L~$pGXb>Pw6~bd6bmeL&=w zY=u1Z3PR2T3~DVEhj8C-COL0UqU}Ba-DszvVQfarZSC+wuRXP2Pf*Axyl$^6tk7pf8QU2w{V9?kvZGia- z7h(IOx7nj5LH3oVXzDr(Q@`@fYR1|t;1+FUtr~pb?~DO5>rGh^0_q04l93(i zbv`ELb;MoU7nwKOS0AtQudnQnO1MS>8$fK$!J#-}Ywov-t*%~d?JG@!ie`;Hw_dTu z1&3g3Pr#grtuLztxAe=xFHSKfpJqzt?t+V~7bGu`wZ=ZplpJx8^>>Jw0e1>Q7IsBB zKEUdkz2TenfUHarzrt>Y5gj-K`Q1w>Ac+V2O7}#2WJNkbS??5w^@3U2KP*$$%T?)+ za$&u=XE;69hj?SmIbMY_z`fs`#Q%f_37bQp0@h;tqs9@K!kVFAgk*hee_82HOE0UFIpA8%0l>Ox&du=m z$_^NS;ytaLXrlWdS{H6SigB?Uyfn3Bz#6cgkRP0G~~DU*F0kwe$5kq2;#j8IK4kc z)~m96mZ^ttee=8FLZ7`#TT?@QjO&V)zJchBRQt29ly%*K4sjSv%U-w@IXymxZT}-e z^?}GqeFBlfJ{X+N9@{u*%%}LOQz4sVdTe4k+;2MvHylT&Hzv!lyY*$KHKyY3H*B*6 zEL?;fvM{WP%QZ0F2_#3cRRr-;47e=tyAs7A9SN0^{gZ;k_k)hd7 zF6Our-j|sk#NJh^T-}aI%vx927y9Pb^eF+{8U5{zm*euIy}A5?FT;TEj5iF8CcuW1 zqP6ydqZGK}lYvYD46+s!(tEU|u_hK1h@gu{r=4k?lZ8J$vV>*y|N8nXTm@5BqJl}+ ztj=Q3Zm(`=M+>c(JaZ*=~QfyZ^i9#>D;K zhud3L{SWqkk5nGg{{HW8QF-G2ZwvbRm*4+=)m=sG?EbIwMLYYyM}%~m@$Ubw;LPdS z|K&8j6Z^mQE?nE&|9!5Q75=Z=|3%||-u`bNC7EA-|MzgG;9q+G*Dd&$-v2cP@B034 zUw39S`@dw4(LpyM-tMX4Q4BXOipTdte4K%7yZ?**C+z=DZwf4Q^fEXJe_BCVTk(JZ zwl=%i(;n3suoi6D-O3sL0LAeJj|p2oVxY{M(lge`jNA`W>y=}eV13K=M<#+IM8j8z zTvFsrlcQy0xvib4#@$el>(7!jJm1-|LrDVE@E9#Hm^o*g6VVD^*&BdFTk_0b*^=T@ z-B!%GKe-h%5Cg4RVd@XQ(s}q0*gc#W9SzpOMi}FbrK{bAK@dQDccreAHNe);o@}VS zb|I&)aS+^O3KO#vv!}$}vf;9;;S2N5;6S7plRu`s^A1v0^aJbH9i^lGAwqnt8Bre8 zHvLJVC19Z@yI&kC?m9z1RB3E#5NyOITGbTbo!j5I*O5Eu*v+7`N$%$;xPt{;?2BSQ zo5m$(3%%tm!Zn0bwzXJGz^3sHC;>(})HgW>3r@2)yu@a^<>-#w4Ppm#K8#hM3B<-X z_s3~%aOTm{-m)!#8FJvZE0s9;V!tW~smy?vt=sJ|DO1~*DzSYz9%YE_OC$6&ve~|& z_)Ka>tq+Y7eslAy?_+loXneUH4OVwCfJ7j%+3s^>zqT zmnqch04dI{I}y0m7e1PE{&@U>R4D{-F7A1g{dQmYTTy$^GzfdUmjWWQylGV3AeT39 zAPXe)B#Rj%fh3I;foj1a4pes-rHT%h_!d_l#qt3DxRSqT7-Ih(-4~snR5XPD@9c}* zqEAUET6Ur!_ED`TMDu&r!2PK9An%|C0e;KD4)E{eYlu*0tPAj{!KFlB+4Zc0Y9}lz zZtXKZaZxex6=9L5A>RJ@WeFe1a8$z*zY1aZ{!!0<{g$}4#UD9@L*vnBxl&qcKfOYE zCH>txs|EY$x#Tj7neXXpF{PgYQ+nU5OB}__hxTsFvW;#?gTwyve+o7`g^;+@@Oh97GH_(xpV(;K9D6?46*myxdJci3t${2kLdhK!5%KLDiI0yo@ zb8_r#*x)L(n;Ords8#r#*cZ79?94(7#&Xb*7zOr|qQLGhOt0mz%jOhB9sM;~yXvpI zAmp+#kN!Fbt)TvTv(aDY0(eJ%y^U>ANBV2gDqMD;Lu`3myd>za`xizoPFMXkY>ZTY zO{{Yd^(_n>)$fl{Ee_b6_`!CyI8>MM?%7jaUgWMm+oycdLVWlug(n1yQ*I1+6<^+= zpoX02%9qJ3>hWins=3xwQw;roe0;G`Qnb*>uUK%V7M!%R**^S&&;3oozOwJ|X}oYH zK9}ZvW#ueBfpuS0m7{X36+AcZ>4 z*kkXa9QTXb2Og2Z4y%O>muw%%N}av@;ow%FbdJ+qw-3DJIa0R@CGFV9+0VBR?9f^k;XbDA* zfgkDwUV&laiX6}XK^8XLE*e-R6ZlPqso&#}hlm`q=W#c(Y%_*O$~x>lu-s&opGN=` zQ=BB}?>qa_p2~53Wq0#)S1>z~^YXnPv;*WmaUk!7=US}H2qawv`eyw#z6o>w#~Aa} z9{Iw9P%`ZS!Cav^n?BcUhLbzM>;aqM&yqpW%s8qZT48^?+^tK*5AI~p+VDqTnaUZfRV#Ub6qUTBgQ1*mlII-e z>UM4;_mau3&0h5cC%e$^B-eWT>^DTe)bd-~UP;+vsVG5N-A}%1 zC+7*Urn&;+#oD}*HtdhDDSnE9M0>%@+tglA<%>4#k{J0y?FAkA0?W)SG==iTT9GfB z?B=J~fKiRyA3qkWs4cFo5j3Xl9v{$^RLt(Sk3(Ij#N`V}n=~2hTNt^H@FYrXOX z`nt-#8Y9K1+1lK-licJY@lGAH=>uv4urqK|Jg+2XChExYzD5lBV z?4T_1vAvC`i~H(AZN_rh)LGVEoo73B-uiRu9AWCj@g`EYr#|k0l)jHa&(%}t*!YfV zaki{w$gckW1P6=o7%{@(uCHt865mYPR$gr%1tJ!|vX^3^_=Pw`&NgoGZ7p*={so-% zuGwGUtdm+nE?#`Ct3NBU+FQ0d`wF`Va<=gN);cy+p54asu# z*1KgwgTq#-oQuMt?-^d*{;9Ht)Z&qt7@%RAj`JgJCFnp*9h@g%N=~k-wr?AJ0; zn3HAwAJ;V;*kbjN@*eK)0$243UsZx_P_qOk^sU|5eC3#q^FW%J52oHp0m&CW2fRzx zmh0_N4Z69&x*>95$m+dAM%H~3|%k^-$ z>?AZ3T+bXXTW`4DLS%8z7j|ert~$2+M8{_ArTU2dxH(VeoBbNfQ{CBf2)PT+_6^AI z1ruws->QNE`R%)EK;F6s$(W0U?HwjN0jO=cZ(9XZ`_w1erH9;tA5*Sqh|oEM2!-k1 zKvs;$PqlJ`Uhr7=8B!xH~C!aI;xb4q3$(J7Qh%_P+;vfE6(&<6X@cL@8K zEUYJz?T_SQe0=BcTkr4x+70JnS?5oMeu;*N$wsu!fz*wvN^fsc+h~8@otWS*z$6yo z3ZSq=+F&0kb;E;MQ}H!{NWVZN&r|mWPTjxWUfqGn2=2`r!MD(QJ$@c`l3O)xsy$Wn z^m1fIW-xMEAaWtN#9MY0?gz{Ywq95gY#qIN`hVc9k!pHlReqyNpJjk7*nf3sPy7CP zoEAnwiUn3-CqAUSrwW2Mrc+J-k^Lvg+7KqSgj3b79dgJcD8ZT6e}ql?IZ}>OMlW5! zUhWE$6NA=je?)Dze+pVZ7WV(jcWZC34|rx^Kb7*F85*+fnXe@J2u6!}K8}F)$}F_d z9_vRHF25~)P=w1pQ4EZ4j&$_#*FwJB0vjCO>4prDFMA>6vJ;Un3nQlj9h5D93_W0% zKN81D%kRNWa4s(4XzDh0?2s#=XZg;4YBz^yc=k3t{oexCp9K!m$~)ORy0oIYP-<)OVb$8$&JHZBX#IIVFg8Mg{Asa zBK;RM22yd961EQ3}62 zy=4wqRR|y2>Bx-m2!(-Z7rXsmDluB2V*)7ZnLg6@+A8xJuEZ%VK^ zAsL*}m7PR;m{*lS03nI?Frn8lYSkX*A@T)}JAo}eFpqap;EMaAR|T+SdzkKLStn)vf;KQYPL0nyH5OWN8<_nt5@Q)0j?qE$ zcSl#A3s&XIC+_;eIbQ%z7Vv-Ib#%1BK5C-czmOqGtv#mlg?x{;T=NRcCyR zo)1LEal-?CIX?H5eGWz#=>Ms1oZR`4j)7#`{ua_pWFo&zM`mByIrs{ntC)HLzTy`R zT{2SqZHodHGDU9`2{!dB-2$PQint6)wcq@paXhJqIB@W9;SW&bsLDqiDC1juiHT#s ziHN(^zP^X(9>QHUiff*WUeq0x@4-Us?>QA(OA|o75TF)V*wKBf#D)0r2NmM{@{=+Q z#H#XW3c-QLr-fMNvjw`fveF(96X?ofKm!mTyA^fC=cGA>(FyK(0G7z}0EO1)&Xn|w zOi2mn0i5~hbik(bQ8q%(d=#)g#2G5mG0p=3-Nii#xSj`C_W*l{=K%_%eGW=GTh;!4 z3a~_mv45(=)%yc`q%w?2j7{o04)sUQO=qzr3A3NV?gGKtr+v@HquIVNw^-R@j6O=D zePQl~vd0*=uZg=1aYCzG?YiBy$3`+L!d+(=)t*m=2P;rDsy!HQScS&2nI+ogAW>+z z{I9(MV_Nk8k@qIxQ59MHc)}t9(HlhsaUm#ba0LYf*%C>hTRMs&h@&VjAc_b=H{c)` z=(OhAwlbqAE@;Ma$&5Op4hT5WLeQ)Ir%s(Zry#@b(a%~)b> z72IcjsE#$Q#o$X$mDVf)hHp#;=}L< zqV+L{q%2}P%VaJ3uql|?Ejs-o(>b2}Akt~?Q;M+!r9qE_hBdcyJN!28hiPwrJgr|LXLz8FmGLQ+q7msgU%T=B`M)68GP^wYRND+(S@ZnyNJH*oY zDSUFVH98PQZ4oGGNAEZPtuETf(cw<*B$APPwGFd%zO|L#p|UjS*7H8Kb1J(B--TO^ zS$oj9^Wr)LmT=9xUJx#@_5Y=qLQ}>l?s)fg0>>x@`cn;}N$W%Rx=R)CMrP%k3J#0H_`6rhjRU zMK=lnKYko4bk@85*t_5^H+;PuuEpnE>%Nm?&tlw79O(Tx1JK$G3z#o=En^@-?+ZP~ z@mCjEFmpft>ozWM>>^v{TYj-e*gE;G6#S*wxKL}Gc*Gxr*)&+sR4fBx;1cQzlYVk2 zqTxEp1)nST_?gH7g+GoYn}e;y;f``aYCVopk=qOn>3Y?}Ge#_A0}1?bdJp;+m{@?8jz@WS;qBBeFOw z9cJoNn%O|JOgYLCT!cXGd5nmaF0XuD-GRmDW}6bk{VUf$>MRjeB{r&G`4~ zq}?2oa$Ls1Rp5^~?6@ponYwrF=z;pPpg>KC$3s+4vgmsQ?*J_*28T$MwyDY{bu?7V z(7=^Y@i#xyEc`e=9xaG@$tJbyjiwndXPQMHQ%A=;nnlsx9gAR&hrKrp-1>vjSX#c# z>iCB!jKKchRr8@7ZFk5ap0uQ(Bc*b=L-c|rRMnwn6d|Es@d^fgDo8^h!Q8{bK7F=x zvvU;4Wkea2m2)R`F9Mc}qIVDy=$`0#hr9}QGn>@|bI4+*S8HfWEyEcUO+BC{aCIf5BJ#4$(0b;y}9gU%>-Ru)A;AsB>SlG7yEmOKq?X z$I=AmD%IcziNc}P@hNB|4b$Vz_Ig(~%Pqz?saDe~?#^QVl31l1BBH_M#XgdPf!{Hx zJ#n9-IXJ49%dOkoR_joz2PTtohc-Tcr}x%gA{u<*PK z_Fe=2hk1wn;C(2gI_dnInf}6)-v#;g_+O83UkJnJQ|u8(dA8@#r~fFdW3t2O!V}2U zQk~=tvv?ZCkQDjn*Zt%T{#h?GM#(E|-#OEuue=TF#8e0}_Y1-8zXgK#f3hLyoCbn2 zk-Ju43u8%GTh(`qZEqRP(VlkBm+UhG8{4$^&NZ8~%;0v+)_XR~Z-(4Cr^}!u(>`RXHn+Gg$3;nk#WZth}7(@8N+Fc&?B4Tg86~A6`YSlB9G~V%451{93 z|9q~W2E7CRgA1E|hC;VqHDDGn%S-W?XZhpM=i{^*vhI&NJ~_|`FD%i;S2Hb%wRc@^ z@N&Ai+~84*Er99mA_V#z-XsKP-yC`rQ*M>2x*vxj_oulqnD%HK0vKlVMwR%%9%7oJ zlgPk_Fi5gh)SmTlZM++K&?B%LWEasIv~nX*XuS$d*2oPV=j`~dWj(fUFCNXNaV6n! zoYcKvia;bF`Wz7dPLAx%1J4C?hF*;`UbwyY`?c96W^&uU*L@ETbt}~-azL$R0Zb=- z2Lx;4NqL22F}{|B1DzOTbhVPIv>kxIq`!n8iE1)~c7S<(xb&edtj zzXNG^NvnT9!*l+6$t%LL#ye&{tH!2dS-<`KwQReE&U)vspS&zG7tdc0;XJ{tT)F@< zM#Hzd{)_Y1#rJCF0Xja2^VhKTl`EJz=dV5H*E@gx56q&lmy@7@RNRgFm+bA5oO`A@ ze?7r&L|=}uoqML9zpi+R4gMcEf4wOBTh3pnZnas??|lB+-l_O^K7U>QoelBteEvGl zs`#MKUw`^Bg;}h=PZ-1t$X5e(x|HcXF*pBW$jU5-!tJSkN z%KR;g-k9SkQ~oS@P#FDe%xc;cie<-zaK5pyeaX7uN&eWKxc_yV-WBp#!V#8+;altk z>7zYBEzL679M-D7%ol62F21NA3%Gs5>jtciV!d-E<&YG^5XWcyi)gFefJ8wPMtoX^!zM$zq;MoYJyEkywT9yqS$Dh zqReQE-gd$n6|Q_YQTIR$qwkLUy&WE6OVI;c;M{~y5(W`S72?@>ai|5Ypyy)6bqPH)gIkgP=LoB*6>vomch(THel^P|~a>uVuE2=eEvq)?CR?S99FTF3cYPbBgK`*8qVnTA; zz&1APHqv`3Ne6n(W*gZ*CpBQ3xEUos@EBk>{yax3_m=W8un0eL+%2|Ek_+1{q$iD`GHIVr@K1iGZ&3+EWlC2okH^v}q36<^4*|M<~ zXBe-S<58{R+qU>4Z%HdoUGcY34m$MYk6%J&qA}xdST)>-j}uwyZS;hNy>+QsD9q`6 zDHb4i(Xr28hYUs_0Xj|uOul+h4#2l|j2U|R^MX<9f${{D1K&-0t(r^b2K6a~t(2GO ze+~KtZ#RT&0%|7C=A)p>Kp#Bzix>}ckFjuIx}oS`4TZs>pdw50x?)0(#g5~kIQYL6 zX!ZhEr*1*}zL`sj|73*sM@~J2_eE)qaOV@%4h0GQZpdEhLU3glxiD32qQaIM*^C{h9iRC#}D)nOmx5V1Km2TQU4dTVG^laAY7l zH9IhN<8WA2l)D2qdNwNM>048XN4OpcYu-Ek;T6M+B3~E9Zs=GZs!5Dzd@DE}skCBS zRr_KUW6)Emx+>KPP(v3_U(_hnly}?;0=uJQRp0Qec z_zAnUBSfdXRs9FI=A@zzXk{?-ZFa+>W_2Ov_#tdWj@7}g0^Ln8#lsrthQzAD{$E+~ zyBLJ427B6lu*`nquErUO)8!kO?^(gV8Y+B5iH^n6H52rJNzYg>!Y}K!PgB6EnkK*A z{zVTQMEie=G~9k?PyY`he%TYKQup5ubhe*}WgkAA+&)6lIQ_TVhYuRWPmAUqXndO& zodGxi0E*#dn*p-y0RRBAqXTn#4af;y0S0sO`2$W44Mw8l`2#wJ2FfvRuVGoCJ~GD{ z(+Sg{JLAPf`>AiiUL%zuI5-;C*4JxD+fX}1mBYcujBNFRyfPlt(V@CjBKDE6AlaWd zwO--YDpkVsZa?*)uC=>U>lse1x9eBO;#Dph%ncoZS2;ANR9DNZU<<1qw1{kAbW&#@ z7)?8dZTT9X^}uI6LZ7L#bxj{8n&M699hA*OIlzlAklJB9Sd~>po3-ZKky)}b^f!F$ z!^b|@7XAPR9jUZChxyLKZenS;)gSFo35a5U-j>p#ez3uB>+dzJZK#{Lii%FlR)5p4 zI^tC>Ugd_`;T5Lgv>bI`QX5_bdi+(1z0=GsJ26k~E18h3Cu6TvL8BY>*E_lOiiiPD z^u-)WIR*+K1Wu}|oX#qI(FM6|Av%Y4lSX!|hdfpIF*)q02)l^FlNkGJLf0N&k^PbI=&77b)4}#RNQ0Ehvo^qj$J65-nP7MoW-3!!y}m zb1gVK3BbeIi!zVu80fT04odx{=G$il0Dxqxe#MSi~60%of39{Pn;LyEK_#QMU!(IB0F_`QFzMHJJk}D#-=Fkj9mq#*Cb%ypH5L+;T{nOoCQi|7D`ng)4 zR6^;#>G-`v&>xvHXoBmzxxYJP5>zp1-OY2b_G9iI+nqz1uWykIyUR? z@Na+fWd|C}bnFew!^Nm0BYu*uH5XL?U9<7D*g(Fl_j8B@09lHkKx~1My-Ni%y&bwV zEFCg`N$pT;)RWwy({+cW+UOisiw?0(Uu;^o+b#@QG1BzmM*_&qi0>u_Vtu;SU>CGv z8l|UV)Ghb9iV?f9<(qBs^akNhw0N@((?q5^V<_-v#i+B_Kd-;|+(2wfBe>B(9Y%y# zyWD!z_REO-diTsNOWe66k`zsna~fe?f~seUTk$Ekh_uALf}dLkuK{?bBltWJNjw4V zg|@`)E@W7^h@J9Uiv%OZkNf^rv>_;UYweKKPQLJ6r><1sNqM_&N2u$gEO)qgK+ylBHkaFmO$f5>z?zV z%ZB)7Zm9$!w7|hIF<=&CTB;leq!u^z#@oKkdQUd?3=CtOB6Eb(KstaM1y%@ePxi|H zBC&9zPsFGaUaPSSm&|wkC8IYa*vm?+GBOc%3oNF z)vpxG{ah^f&=~6FpUZw3mixb8xnGOlr}4WkUJP*mmmwGd2u1*c5rAOCx*~H8_#*CN zrd#vNvA)kwS@WUq8(Nue&94?cdFq|ZccU}dN$MqpvCTRDS!im zRqC5ZXcI-|^`poWP7p4-)0uR>59ih1s2LGZ2K~rr752^vWDq=qNRFIw9!hcZy|YYv z+OY08S&=gyV;xD6Gjwf#Pp(bdWa{V{HRz=sJ)@J>PiRlSzcGFWfmY{R?WOwLpn-!N z=AVUx=P)19KiKtyil5PaHMtdTy86IXDg{?=Us+}2 zwM)JDkp;+`0*Jn&Y+W6aGxXER;m*~Zvz{gvTcPyvGlp5!9%%fGR&0fFy$;}NQi_E^ zT*W`seK1P)8$Y8j&Ji#>5j5S7pP`QZV^Z*p2{^Km;2Gz2S!p7EM^d0l&n+aOep+Ar zpw2``H?yJ8o^tx!#_M6wUg4yaw}dyiU(&`Xo>O6r?@#(^%N-{6j*0;F98G@`2+GoZG3gheRV6A^utt8g;+IZv#P_v&d(gN z)ZTSR2VxgJAUAX>D#HdITT=vc8<4I2Fz!JtQdw4(t42~qu$dj}+58OmWP#F=4_{DC);pR=P()SJgk*>W~m^SQ=q}K(>E42&WA}?s1-no=SK%L>D9l9y*uxk zDSC&L_AT7yxh+WT8j41E3p{BWi}WSee_Z+9|)GapSeSvoQ}x_qvNep&3c7 zs;gVb%0Ctez3VxQ*!f}p4PEJrO&a5m%^0JHafUP;D)h(RD93AG>{b4#4*FwgSHm3ByH3m_w-nQiYZnDnv|(78U!<*jjQ22ntBn zAQ^}v@E2qTJSzRB3`vS&6e-H_3W7&bWx$MONDqo&FBRK~*Ay(OAyBNe^a<~I^$GvW zK#TwoqE7%2``0H#bob}5>&X&EM0bCVNTKz03la7i0vEA>4-ZJg0Fv0BhT&akhAa(( z-&pcZuJJ%set7R8#)EI=yyH8WJN7)|!R2`+KNuxfVc?+;$O8<}2lxm|Oe=|E3z(_; z{E7O22q_9c3JIC9Ed3;dVaBrclNKjqZS|AThZ)P!PZRiK#&Y$O5RDn@EKfo^J#><^ zlgFfpzRdv}nzkB~R!q@&pj4J1O=||sNVa~G#-J|HPtuqf$J2{Ptu+l>8zim zNi))ePvHt80V<9WKr)mLgZYGiNRDxn#cp!0m0S^-kCaw%tYTiAM>alk`?rAorh@XE z_w!0VffsQIC>EYA<<6$#sNC_P?~wV6@OnA+^p=LTE=q`|gc#u{ z;79iVu{q4KR6m(w%p&!nN!^<{tE79VNG_5xL&hLEUnfT* zDM*6i4@r$69#Ia00H|>i)i{9|5A7h@u?1t;QfvXSXJcDcP>_x_J?C3Nb(Tgo$>3ONa*pKa zyFU+&YMK$Bfji*8k3y|0Yl`X_XGUfdWl=pFwIU5Y$rU_W^fV_&p5|y;ThLaX76{g( z71{DsF$O=_%4W!qFbFItBl%=ThD(wDJ%JXOYz%=Z(WDO010NGG2jPIOKiqd|Ak6;x zz+Q%-O%n$1}V&u*_q-$op4KjZ;#y7+N!$%w2sz)0=+N^{G z9^Xf*gfam#ezvXi)MsTzq(i4nOU>G&M{QDeVG&u1Z}m1{iNli0{S1-wO#gSlGbMl~7s zQ;Csk{8#w7LMc97s{VwVOo>6*NcB5^K)+C)$lkmv2Mxt9V+myFjN(0w01Z%upDOdM ztaplcXNJ1xR40y7CvCyk@W;YR4uJ%ID0fVjiUw%Vy?U@R@vWRNRwlm0Nxd(;A`dg$ z7hayHCVhzy|2_L}U>yhh|2>Se_x~U9oURUU8K%>fNtbsa%5qIjeRm7;c=odh|KG&_ zQTU%)hR+K;{|`f%WAUHf_ulvXpNXvc_nl{M@zE01)FJ8Z^Gz~3we&jAX2ac&408mX zO{(%5PZ3$vwWPNO)FJ1aMKJN~wA8qZp^iQKkvjPPgZ)Jpu=3?N;Jk=rA6+mUt@@%B zBjv|BwY0RImL~HZEU7tubEUs34mTq2_^ZC{9EdKMiVv_mDaN|M#STfFV_N63qh{j~ zdQLfPLb43WTojT$O8|GGk%x_nL}Ev>5=n|Wn6%TeXDP&Xp%BN9h1f0>u8uz|ME_sH zIRbFb({PReob%cW$b@qQ;G9R13`xK_F9pu&fU}~ryq*p?D?D(H1DxXk=QzMQ4#%W$ zRO&e5wxDN(Y@ey1*QA7GfhnoDsaqE=QkdBbf*HBM_AYZ+IMx zB;i3)AEXA%E5{&@Kp<}_k^~LO2?eFE7Xwkz!qsM&XQ@~OyvM1ex1`NZ6C9^jy2q)z zDW@+&U3Cmk;qR~vZYx^_C*$u4!9MtVoDum8$01fxiFMYJpf>NMxXlbmP_#1zJk@+1 zjjY1Y^8Uv+O5A`?dbpo_jb%D48TjO6p}v z*+tP`IzF`uX9&_GtN5wCW!F0_Q;uk{|6%jk|8Nrm$=k;#;%`NSvXqsa>LzDf$rX`u zr1bu$ntAa@&@zOlGA%q2m0sZ~Z?p(cIW?)m6M`#Xw7hcuF;|jp%wY}ai3jOG&tPQA zNiSMzt6L(%y)At*N?Lk&LuyOy>$UXKAEYJLkUUmssT!GyQD`O?2}pya9&a<_bu(iQ zpc$WThBcrW58Of6TOhXJ0F0Y73>cXg zo0ek(n1F1dDa;f?!qX}iiE6!(Y3(~@GpEIGtE%XQ5QMqOYT=7ss<&RU1#2At9K#LS zxPKL7<4>+iwSV;Z$E2BQ>zHp}??%SLs>R?Ju=uS;(ic0ddvg%m^-X5NvaPO0;;xL% zdXwTiZ%`f4y(vyFw)h*mota!o?wd&I{g@dcysNbry=x28;H+$XtBjy^S-O%DvD=G? z!-u9v#H+I6Y*U9v&0OE>v>=A&=6*w^9Es%Wki{R^W9psQ#c^l+}{Md-P z;yt(q0&^Is()Ys6AOuVV`=l2Z(Cw)C{?%JBY8dliD>_|xmQbExL7AAF#%F20OCXSt zuyy-h`ChZfWT8czGGD|;iiMO~BXR-QZsJkig=ZKoFk$ zhPYT`kF9`BCF?>Lc#xKbUA1)`aS$jpo{K-WKfE;f(s!GKRq5|E`_KhB20a%E`xvw# zd~Ll{!*_7_YP-<+IXKnNgq0uD0Mw32;R!yUv5KHGM6F*a$-XoVK5hE@OIrHd2@2Nq_a#!lLVr(O@>}p({ZAX8-O&V@W5f8w z0dk6~2f5T!@0eG-RE&2j{!tcNZ^hiaX}2ZsKoE$3h(FF%B!`jNbz{euyokxX$#$xr zAsm^!OhTVpjw*15?QjvJWFgk;cm@6(R2N=&)y7Td{dD1|U8wt5{5hz)2Rn6J!KyrX zchU1tqUZJfq9+Y*etN}*d#Z?eUepWEa9M>>@*z>PR-;BA;ve7$+-J3-ueTm%?q4>4= z74=(kw@1D5`d)~jYvnf4h^5~5v~Qudv8`pBt*!AI-KK9Y&I5nPc`J?d)Yb_)&tzVB zS`IcQQ6{64wC^-E?hIbBPZ7`tK{}gwMe6G8SX|&JnUdM6P8%0;={s+OJ3o31NhQm#G1 zsed8^*Leb&dnUrk){LBt;3;@%_3B}H`Iay9vx#jMVQQi8&Ly-iA0c~E9K$s8H4M#F z;5g~pxAeJ|T^r46cc`-Q8k-lQO26gn>s~95T1DjLP^miA$~%#H;TfHQ^}7KC;On7# zQ+pZ({}eT_4o)JrlqqtNgZcF8(_L!COT;|A|I^+L*thk-fT%Me+H|XioUX5ma6bSS zmW+}=YnXhlmpOHHI>6GCL#ioiicWW!P^$iV{WB)NH@uM|BsnJ@)Yqep`vwz&i1 zoaf7&aOq(|C!q%rvPBP1O9p)E?VC8+CGY!mv7*e{i6cS(oil>i2~Dy_;Wp=!Ni7oj zP>}KCo+y@=5yTy!NnXShqAV2u2;h>AqL3{VHE;nas>Q`#igNVT*8PUzqzOy^M?OX) z$F`7+)Y6M&GsraT5vZ5qo-pZtL**b(5m8-f{h#N4!>4k;;U8$kqyKa7H?05v_x*;HH!wkhgqQ~`ePH$QeOfy)7G^LMDW z@Ms{1T2x8|y3Oj#ZMW&#LOZ>j*)$k>}!6@-VfDH89qxWpt z1GO|tX}X}aBfazb%&W8I@CKFv_zmr!(e4i?o!t}bu+Rn>$U_%xJ!s$)e*zHQ3i)MN#dE5w$n5q zqEku(I1Q2pGMomwHPFB&ZbYS#tJui(_+xK69B0Dzp2LeFILWjS^!Rf&fK8HnZ`J9Sm_E^yKN)Fl zzwFAlUmn$d4V?0=B`er$zBY-ptT}D|!S6xvw(wZm zLENOc!on0}SgUypVLxJ5iB4=H;C@Vd09yj~kS1Q8B@xD87r^`0F(60Zrb%GRK;Ft_ z_CpVAd20>wXwGRwc$Q0VES%JHA#}s7=R^?($q6^-aA8j?56mTA846=xf)j^LLB0u)WtWF1qw^9RiX1iTnOJc9T#TkZ02dyZ(CKU zo$W2*4c6#)^k8T_1mZ%0K;~{MJgV#W7}!~f;`OjI%)Tr%mh(IXL8-E73W7GOhn}_( zbcSXV7J^O!mt3V5_0+&u!fJ=GaiMU4@8tphO*l5eK;9{UFF+}GZQ`(Irvu!%<@5^6 zA1vTs{8a-UoZ^nE2D-5Y^q~TDu$KeyJtw%>J{$lu0wI8IhdCX{oL)WYDA4`#=Rx_Q{Fn%#^} z%BJ5PZ>S4SllE6P$?%EcIo=ifdRB+#!81s9pjR(#opOIat^qLT!Szu@s?zGeY1#3w z_EYD(BU0)#A{1Sc>OIe@*LKFp*kc@dTFg9;a~j?Yp(rNPWuGd&(w^ic;8}HX9tNsb zupgF{Iepg(>VxqHK4a*{K(Etv_vZJ#1Zv`%mc_p4AjFSp(#ZW8Lo0bvu{cEi(6VxyE`@ z9(-69?iSdWn}y|29-o*WE9h9)8_MJ7@TFd|X^_I#v6jn_f&w{Ija54U-xoc%1&yMf zdqeX$qF?lZ!?g!4j@@x4cD{8^{KK8xxq25QkkNcBHe6O){KcM&^MG8Jtl>6?VJ`O? za+sd@i>%V(?LwWvR&qhNS3d{3-Ib50c6jQ+r|0?95>J2N(_TCohb92}QlZ@A{{wTKv>M`bKKG)8S2K@WvtaeaDMeL-nk-=y??Xy5pBg&v+8y%R}ebX%2g{*5q6&M zu=BQjnF*QdRE$x6ao>#K8Pr|GW@M>(x@>Ew?3Q*?QNY}pXpYUpctKUjx&NUw9yy`Py&h0Uu^WWt3^JlJ~G!~t1L)2WC2hyOj zh>D_RU5SAe>fa-!FZ~_v5deGuo@G8fN4VXo;C2(Q@-m1|)G1PGx!X$9#9S;1KzWV& z`x1(>J8_%DqlNJd<|Vx_VDJyoXXdkj>OD@)Sf6f$uo7wGP(5@t>N?beq1y?t_0U~g zg`s<4u^zg6Aug)V@y;E(B>!=?{vcbAU+5Uk6me3lnqwbAHcv}YXIw6m0@NoMv$P2* z92sorDA>8dDRq{vhWdpu*cs)j3SHs?r$kGX@R?PC%v}=)6!*#qcJrI>+dg_TPLk?e zV%X4@h2O%NO2X)Z8?+v!m53?6%y&f3aQ8F7&QstXDf%*X_%%{v&>6m%)VLIqQyzzK zJ%*6Oyy0- zs&_=(_?XuIZn!N^b=&JSf=p3{of-KZ?isPvYp>PS z!L8jGToECMY97kNTsX0ENQT(B(GkzFAO{$@<$|4*`C^NBzXV14p@>?tMrOrfxChML zZbtkQoOR%4RH-ipUt$Bpn1@@qo5o?Zb4YX(5do zfxLb|Ui@c)Np}?!bgpWiBfE1f-OwAR2Cjov5>e}x$Tuy!V~O?|195e1S98aK?S7-y zooV-Fnx`)T^o2+s3`!$44#zP*B$9p(HLht*YD5^VI(5}qLX9T{GQTut6~J60x!W(I zB)k1;CVVxn^Suc;GxRlHT=LA2-Un|(&*xQO*MA(5iJcBRs704@%Tv7( zCdpxi)9cVSqvW|3SVytaWpSnZv3rti;)Gki0w2-e@(bx|RFtXVnb=!vBU~wCt+1ko z?D@DEX(2+F6s`oD%W5&^?>EJFe6(CNX2yZ4~l$(Tdy$gzRaq>7{?$L19b2HX<(os}Nb(96K}_x@!t)xgs(2 z&kl4#?3b=UBxqr_cFg}L3>F4H@GlJf-LHbHR05r4qr;1NZw)f9{Q8VS7&aHqH6qlg z6fc$wXGY0I_|`8hTxe-#74MvZ9hKuAp}Gf55Y#%rVey?>fm&mCLV8-Rjz^l(t_ZbS z-~qzH)77~{>dB=O2z?AuoG-`x0=+{rFOyDVkk+dUM#$WaT!>N(q-B&mA=HCFT5dQ6 zj+zl}+>GOwUJ!l#(t7Rgl%4-1STdjMH`j-b#L56JtU7e%%DNt+9h{U7pwL~0=&-nd z>4%*`yd}m8`|G0Ec*ZjTqmXz8J$&Z7I;8eC3Xz2-LWy6FAs30V6}A`jfYGxH z5ib#M>7X)z8ntlQ6{!>lm1IT|VS6vl6Sjr!mf11mT*xf9Lo!Ez?S2OsU>irRarMkY zwvhSrZXjL!RN7v|5nvlJ8G3F*oNUybc*y@R(1PY7F@%PI(5seX6~~xQcgDQi5%9E1 z2cFB-X-L*%|N1cJejG_2H2dE@#|CvUKX*3oy?}was<%L*J-<89JeRGxpg^=n)NDd>M4J=9zT@L)6;$siQk#_uc3C`VyGtfW5w=ksn3sNB0Z-`d3MSrRuawRE+<_fuf&>5mF z{HY!st?qijCV>9C8m85ANvn@oBYyN1dc;qV57IM&S1zi@2)6A^*%+SyfVoR_Sv)qz z;85g8v;L?DUHJmmF+)5nwt&*SQeRv$@=d_7FmA}>d>)@Y~nr~#O;T6 zu?@h0mXU;AdYtBfQ)C?~VGIJ!nZ)t_SSXVPKtwQ(pOWpcKl%d|_Sa0azYZRj_ab1_ zEbk?xQdnN9hJh@de3v}oe47smxa0YKF4~W#~<(#5*S5>4pa32Ux9C& zV+lA!GC9l4aF{}|r5yiSF%cuJJu^mF0aK^6^shkj!X)KO${ zKo1_*Jp?j9%*~%v_L(GuOT8abZ0&I2Vu?Md4t%*C{p`)T*n`aLAzG zOjteabj5U0!2s1M+YM2{+_71yj-jt;G++ABPTpMF}md?%7VgcP7`K)+XE? zszlH2_R52n_0|8p0YKkb; z872KNQ=Pr%mCd;KT+VVe?X?o1J!gC755}x(kVxKto{7?)T_?oBWA*o5xJ!H%m%ezb zuJA1alB8Am<`C9{>N9Mu!fNDTuMgFdG3!(0j}E^sJD1R5zzWn-lk(zHO-!;?M?)mk zv5rjmfYb=~;?y`(YSb#NyOCe~I=4HSq3hxAS#NM~o^_~H)6uCWAk}~gJJp=e9CK;n zEYib2faXrm*5QWP4m_U6$98yR6m|16uL5gbAoItGN9Bt&ijoUha{Du&lxjS+At`-y zxxb6B@` zkm}4(4Ne*<<6Qj+qApd<&n#JKL>8mZZ~#3t{mloVGyCR)Tsla!e3SO)iKcJT9v@PW zPZ>>#swy$C8;0}3?Y>T{;LU!1=47ac-kJCZy*GFZDwVgAd9`I?mts@3ORYD__o_2P zP3C7Nj-}A)n%U*~V(iBT)$@HICQR>iVqrIW_O&3tG58O&v^v}n^&IG1`a?M{RUcj` zW8c@A3WJ--RA?9pgV@nzB($=QVg(7n1yLfnXpG9R4;I}a&8V8%XRhb`3B&!LPVhDV z24Gu_|Gdk&4FB!>lX^U_>(k(P0{-w8m?BuCsnm|+NrM>D!!B$*HwAT{UiQ2pwL_!u4#`Fw`Ybo_bcABVRAP-_#0JiJ|w)cU-MnXd$v!^ zN6rJK^GZWqLwoz5hAaQ^D6UQ{fTiGugb>485wmMRjS2d8EZ2#W`0!%ZZPxRjL!kG`GvXE?vZgf z?@r-}&>!Bncgpnvb7&#gP9nF z%#4YB5*<*gk!~z>USb%Y8l!y6g61o%BJE~w79@W_Bon4kHUdKmed*7FsN$_gzPk6( zwa^x5WsS(WK)$bb{nS=6!w_sC)~EDd%&cjr$jbdo4C(uk_I4lpVb>nxQbZDKm|xoV zSU$)-w9K#qa-TUt@4#r@zypTq!-R+2{3cfno`JW_z_d?Qj*CUBAo!>o4Kt0rJ(ur579^u0chrJX3xFY*|KSw{@mg3u@o zS_Vk=uFm&dte}q0w=PF-PjMB+(f2+jAGmtczhf#pO4;|V54`(n;Y;h)S8##K?d+8t zH*FD{(?=td;zGQb^}<->`N5(^@v2RCqKN|Y$KrR3scO&)+8d-LS1%`e#M?!Mf}`ZU zP)C%@#tDnuP0}(nHuH_h7nn)5wQCXW;S34N+~^e6Kh)Sukn9wNa3>rZF{MqS_HS(;3+O{0R9q(X(IL=1Fw zeVi|eN1WY3>UKGW_+-00(y91ayJDe1cUzkUY{d`7pN6+HDHY59tC>@AQBuY3{%Z#E z<1_Kc0ob$uqRvH*l2YmxY&<{H#>V%e_O&OD?7+ZLt_je>9qJ!RZa}}(&3NJdv-cmg z_ixDmY%a~k^xb@~|5>`8r^PMp(N2buja3BZxVfCua($eqK%z{yJkLK3(qGgRncDOG zN0#$>2rg?d+4kXuFDhOK;Gm%gYOx&9;>!DA)@ff?$4P{JSDk*~EO&DIbwI0qR}BTJ z44q9AAS_oy%iw<&?q}hB)^$GnKhrvvZJetPg-U8`<<>4v8j1~i{ z1*H#^;s^Iq!~yNSNSngzEhk~H$gV^l*9prBEw;=pkA}SNHxIX+(BAAiN(gk==@T<( ztmqjuTxtUzo>ED?a}%tn;$9wQR`kz71N`k_{SM~uivDAu2?VE~cFS_HzSe3ytlodT z3&h$79MEOIkVi9BK2cBXbZ3J$sb+b#=4_c;D9mM9?=U}6 zx790b)vsQA)Gm+WPWk)>%Qt(>E-%0kB>?7#2FpLJ4|M^LxBiW_slZ$CcwDAeu#D%c z_e@TXX?IfFz&bGj`#kdY{<%|G1Ihzm2m|KB-<& zXFqDigXyx;*DLF`AqN;;=G=~rvHdKh;p^pI&A=yW@eUVH*u^01j8r)`FMIf}N0Yu^28Z|U%*4(~n(U|5Qh*AAEQ@6LT)ipfYz z0-H2oyMK1UmkpThiWT+=VUYYg$9hTL;m_`UfE|8wulnbMtR?+@0Nw|N?j7Rak&G6U z?C18sxDSxghT@+-J36TQ04t8>hgvvGdmmsSjBP0lHh3RkD2|*c4bB@N=NlS|{oe<; zR2tRL(pulTJDqwTpqDfabQzKVPu~X!x7Nr%xcdMvPPL_<-~T?qB~IP{L-zr;PqBgj zpSurmuhYhFybrLh*pU?%iLCf-TagbRK)$+Kr^hpWq$htg((Zi#SKl&o3s-4+6f3zB ze3%nmToo4GioE^vXNrLg6ii#J$Z3(L3!;g5X<-z_qI)MbUL(zi= zcrv_8Ln48G9~QK$0=-66h8CbirFt(kI3w|QWL6?Zno;r^*FxA8#pg+aA%hB`)d)e8 zWQ7j0gf^UTnL0*LEP_2X#AT8Ape|`-gkQ$TtWpFU-q9g1iL4An$CVl-nXDP^yb)jw z6)!^kSA07XRbWFqJCWxycUg~ojpq! z_`Ol`EO6zI9*uJ`+z_etcUoi2I)bhBLhSjw85`Lj4dMR?h-*-7uJ!j^G5JZT5CWO7 zPyQ>>ZO)bpQ@nmgCKu-$_!ox;d(0JHVdH)8bxf( zhM>*bDnpHPiE02|mP& zMF>`5f6Na@r~mL`WJ95lN`}z29M*dVrUB$v$fzo-6?NAby4I7<@z;LwdN%tTlb-lv zT~EMnhe*F}Qzp!Y3XabPec}Jk?9i9-Hr$TGbB|yEr8cSFr!~ol(=3xTk3U}G*#--*B6nzr}%FdGZ|AKInt*P_?p1n?IG$f(aZCM_`kYS4MEZ6(|A z3lGS}yJ1Vw3m?Q<{)exMcjXyj+9dkTwf@zrptP{2H_l|9M@~U3Z(n}#&Su8lED4Rl zGW?+2r~cLPg3_Xma8_uP%tBV|D0vgRP&qHZ#D|%|F|iA4ig)!h?tV}{v>N!Tcaz{n zu?yGY&6F8VvtRda8tf6fa20dMIJw{SJ|uWz?80j1Uh3p->fJ2Z5?i{}iP909duN6I z2oIErRwT0l)D)Lq)tLl#C?vkv&>EH751T{Rm>07B!asr`UJEio`ow8Schl+jneW%> zzcbxO(yf^f+cWw!I`k;{>SMlr^GK#!??hS~RC8vjIKFB4{*u;``zuJ4vU$PCt~rOY zol){{WI6KPrCVfg4z2Ql2F^g91}jWa|0kV+fN%KJp{Pa}!T^+JIBE2uHUZ%+RVhf5 zsYzLkeJla6Q*Orms@3e$30y4aX9g=UMHYFKgS)$k;ObhJ-j3F3McZ)4)?u5J(y@?$ zzFxi14FZ@BgiUWqUUSUzuwpryzmHpDXi_X`F!6cFbo)12&381u$JCyokGO)}tU$xbmlg{zNm_P%B5nN+~>MStg zE5cdY+rD0t7^J#G*oWzsC_=A?K@-9vABNu9>Y`sPrQ^0k*-1y~sKZ-dOQj?DV09?S z5Z4~XV=){>>A=tM5J96&EEAWZTCH=WeMbvCIZ>XyT3d&ni((QF+if#o!g$a8g?h(A zb8GN^Q9w4w5b+`l?G0~*{nlRaob~9s)<04c=@?y@s~z=Y4|Ftm6oZ{S0cl;1LSoZadT`3p#XBt$3cCBPnivsT2^uvaNJj? zWQw(hs3AWcXIK6)mkWp5T{Yx1>hh>EJg9nSI`!UBzg|+8(7{sH{f@4?WAdq`w#-Rq z)GkQr;M9LyQvJ|!UZ3rdmQnH-w!o{W&_qt3>`0ed6M669!v6LK!T!n)lXNGPQ9tQ) zQ>M#3`M)4N3g=(9;Qu82-;MugVYWSk|4-n5H~e=+Bv*fFpLg`|o1ftJER>mk=fEBY zS5yvk*_?)p4ShxXw!4@tB!!2i4sMFNcB85r%aL6KPFw*Jm8ITNFtbIddBHtS2RnNO zds_q}#AM;!2>;A|#hCxN*gk&}+yuh@8eyxWH|l9SO(r}hthykJlXW`CHaTih7nGm^ z_JSViq882J_eoKUnya17l4{a?Lq{xH4?ygQMW^yS^}mW&r0%m?N-VN96a}%d)_lGI z-4{n)XCh%wXStJh@bQZ7x>+MW=o6$9OaEoOqE|BG0iX^Ou-+tr(`cHyOivkpnIn5| zvH*G09etS};MWqbs2iqEyeIyoo7$+kUbVt9p0%ny(0E11u$ALEOJm8GKI~J6IDCGm z??znpbQ;@lyrO(a=JOer7J+aAnUMH@fF!HN9FY{V=oUL<(YakdGO-hDC}fdHpFgM> zXj;zzge!Uy{G-oAhkxkZX`qGhjGu1>a^rnBW=@L8vPS&1NZtwsJG>( z&2VS{^YC#PBr=A!UqQf-oly~XMz-6_i=ktoW2G?-vIXviFn}pMf1^@2YK9*?lg!@P z0>SL_Ry3?H4uD`GNo-Xu&)kphi`NK(P(YHr9YFznqZ(K)H^T2@@?tj!xqcMn`mc^5E*Cn#y*+x-lEMl#ZyY)quKQ^T^i%q#t=bgs9nJc)}M>b1; zagTnJtt%jdJPmeskX__ z%&#n~(BMKQU|%lc$w?^h8in#QzBURy5h;hEVfmqV4BDOK0KLJZ2s7oAYBiw|M`Y-# z#68$yA4|&$XKT$5(#a=45VzJ3jnWill;i_(q$+_~jz~MurwOYi30U%p5Z6BSL706O zUEz~hpE*24#oBxIAVis`hsXM$uc_bMhBsQ|t1)I>3BE|p2~2ud8Ij}h1naT*MJ!@F z%y3r9bW_6W!$&vReP|`MyEB6t2?Af@m4k#0J5Dmv)eG5;E=2z5)cZPQ1AE444;iC? z7+98*%Hwz$-_8;T1N8Au>WTLa?gu;XTUN^PS0;i*p6s`+Fah zn7RbmuJyjRaG0`;eXn|6uh%f6Sww3tp&Gz2*ZmyV+Nrl{v8&2%oW8!Su*L_HsV1L(51$P8u2 zD^kDW!I|?_2kR>sYslpTeu7pPAtW0VJb%3fV-W3%NHg2iz;7E1kD}8b*py+nxk0VQ zrjdN>G2{tzg1@+}rWLAkfz5=!S;=k$oC^u_)I}7Q84l zx(M{i`xWL0SV2uM$Nse$;5yWTi!i(t7Z^%5kte;D88^_dE8L3yuZZ^Q-aT8uybb%O zpKJy-PZ*SU|707jH|3}l*Wv!lHdJf#CqU%dZ*)eNf*cR~{>xq{Lt($swIgi89Okqg zBmpV3-sXuaJGztIHPWUZo`92n1YTiIUATGTfQ!9T;t^t>_aBCS#-5|k9*?FY0Vep& zBJdelx}1oov^HZ9q_juSRHl_2Y3IDt)#rz|VE?3pT};lBoA*?q@BB2)#%UPV zM7cBF8g!N_BBg47QaZa!ExX$8=_ed@(u_6_lSb{m(>7eVx0E-Wx@0Au4b&uf^P)Gf zQ|M+(gzd*s$kLY7sz!S#Th=>Ii+7Wn@E%Slsh?#PeG$GGRX}a>Dy#79pMKHKx)$tC zs!VH6MrZTl@CGs|y2cn+o;VryR-*3^hg&%T6M&h&Xa~kn_Lt*;0j254_*4-oWc$;X zYK(lUG2SAZztCzbHQwvD+F~wq?Kw8~vS7nVz!1lz4!) zZ~GJ(t5s4SjU9LSA#vbbBD} zU<>tntxIKluu(mEl?F5TPnSYOYXXr%M(ZdDaT2E$HP_p>)py-xX?uKDwFtV79%8i9 zARymdPk~d&Y7b{yBQ%9R$4|j0m~{`1N||+k1@FYN9zecoqtm%ezx#`u-yZoX{5^HQ z;A~pS*Cs^dG_r zKLNF>tA;ZKKLNCEGG_f#6s3T5y`sM ziH%rDUQhpFpXB{V=7;Ex&)=kV$8RA^O+SSqMv~&T3qWzSYnI}+yFlP7QRSr5Roq@F zidzviaK0IW%vG!Y3Itn#_0WK6F#{y*L(BGl`PcNb@-ZBpy4S6qFhDk4TY{j81teV90!RbB3|s_`-uw3?*`o1tyMs}kp><4x&Q zqoSWV#DXUTgB1lWhgbCtW@1eQSHUaBnv20k4yu*1%XP1VkEYZ~x)%P&om9M?uD2fl z13hRn)0CMjD?ou&w^4GwjZwV-rzm%)vjrNmg6EZubam;iW z^Sym|VpT(Z=xX(0CW_mAn1Isg1J+sa%NyN;rD}L{viKzrY8&L2PoOUE5z$4Mw-h_% zaB21ToSY87)Dq71*>U0=`y=w@k#0Nm66fWY6iys|St?Z}^GmQKR&nMtjbzsa2PfQJ zQYCcSM$He4k)_7LbXWMHHFx0Hq=|HtmnyJLN`O`LSM@D_6z>- zo@T3*SgeCAXf>!+0wygskclTpWbw{stq*rwqJ9Y6mRym?SC0sLOwtb>`1w^1kk9k0 z&DQzV;O#Dd>sxGyGj^I<5#cBPyus96=NHU-s@h2VYY>34PQm%FCKRKy> zAuW4_g~eSMD4 z)#v=_jYbXXbEtZTJ|~+*nxfLTSD8?NS-Yticok9FOP{R9IhmG-fD`HI2wb&1|r5NK#Hy>tlp@ z2bOAFx~UZ@`cLQ!XReYE>gKQ$5{lkNSza z`CW2B4OsX_E?%)dJFdkr2A-)2?R41KZ1(%md?(j&tHLio~F z^=Dv*y`=5AD2Vo{J3l9@TAsK=ErWQA6gtPs_0}=@#9g%MGwkZ=Y`|6x@vwbWXo|>e z!lR&{UawA)=73q7N8zxY4BFyR(7ciupn26MvR)qLr8iri6NNT4QYq){_ckccQAE}9 z98J{g$#c+WC!e=htFnafE9kS+>^;-#v#lN2@{4Q|HH3z|`fOXCTScmAkYA-Iewp_- zIhB8C&3jipLt4a?r?=;L6a1;qRQ6MGwo@?!0+L~QE5?EYkWo2eo7crp(i|&AC`(_t zaKl%NG)fTK1g8^XSmrdKiOgnMV2WjI;;))zwYWTmWgW9k*wkCYFehSLCH(}``8qB6 zbC6E2|8e=#%<;mXuB)$azE~o{t(tgiDsQrtTn*}){~cg2aU~GWlauw#*Dq=WaSpz# z*0`66IF%D{*CcVlXdGUXa-yiU&SW?^5yQcHU9n8oajWnMt@AxH_lZ5~`)ZAnQ-ufZ z(|X&DD!tbE(bTWz3dgX%dfxiVt97#{X60r z09lN2pHY%P_1dou<7f%r7+^P|Bae|a(hl5-2_ZvXIAvq_jYW9^`B?U0azIA!TtEe- zjX8){QBwIb7zdB?g@57v3(g$Os(3%)Rh!jD@r`Jy$E~oFKcNkCsoZ4V7djF|fE~D+ z`xON*7={o|dW1W!i}(VYoDIYK;fQ!BdogH^+dHkUlLgdL9`~`>mA~iPMubOvT~@}I zpn$eVngM>LE7j`seZ4cGbO}D+J2P}7wsbHX?Bvqy>;l}a)a+^GUBH1@D{>k*0f!OYC&&bm1$tg*K_uLyKlu9(6kXPZZ8a zYewWuGOc^-^Op1%f~E3Doyr%;pgTt;fhY$aJgX&e6>p_^RzETEb65*j^K|hgWZU?? z>St9QyxKFp==cvLLLOUkJ2^@*{tzQ+pl+yk0eoYD#!9H!%b9VBlec zZx|;^icb_zzS7wPNf_LTaLA37p=TAmz*HsMQ>I^ecB!@fH6nswk+#q?o!gvpOgwcO z8pkYx;uOtO;@Oq8Ux{Z$W^fR`E%VLXQw)LtBLOoW0cnRmg7k*Ol6HD~rJWx)IH%Ok z`TAq2U-04zXN3qMRrVL2^L5T-!ua!3`U2dQ!Yf47x$Xlk>iCewemw;bN2#JtV?g9A zSh|%f?N*XSog3}&mzJngA`ObDv)SPt5OoSH-k}eT55W^fowrd$->-dFOGFciIUb z;n8@aYYP1o#w_`VZ;iWG0zp~^;z6O!Rve4u&On|H&uaNUT|e0Nf7%raodY^kmv#S{ ze4C@}PXuaDZt_t5d6}LNWl{#5in)jI(xVoV!A^L4CEi%GlLHrle$2BW9@tRDa9C0o zXL!hi5`iAID%K*9%|{v#fkc->J^~Twdw&WG$pDYXGXFQ^tKddSN0`plY019>X_o}* z>u-9b;~#g!8!_z(E&frxQh^GXTc!U){G;z@zmb28>SNEw-`Mr^U(EOtfOgcRL zqjcf#%Rh$q+8_UT6juh4_{Z&V0rmUyk4b9|mVe~iU!>t5%kHnoKfYX^%s)g{NueIcE!Il|Cr=d{5$iHc2>m) z%|C9-PvIZMp9-JognaeWT1hu$x?HCv{}-eWfPYZ^axF|xz%|n9XA$@-^S9_{&pgj! z74`J9tB1l^och_MfSy~`pkJD3J7DT(8Dh+9@a5Idj`BqGgnrg`-lorHEUVy2vSYEV zg7a7FnVD)8%)_XpufCRDi}lr^)>ldT*(fZ6r)EJ_WJL7c=dG$gF3aP1r-aY(3uGI! zS#51Zo`LHJ9*bYv`8%eUde8FQM-I<$k9F!omx;wM9Uno=w3<5{)r*!3N|#m7ut^xb z8YRq*zXuun*X(;=YS6xyx@>LVdjwL>RwP9on`Ga+?Ze+<-+N3qd&=G*ok>y0CfWCL zZ@3sis(5hr9mR011|LvG-n=6I8M16_{8@?-8xh`7)b=^p(OK6GEakPnZcrB|w{SK( z2V(hqeODXmQBu3T@%C8%{u?jis}8o}7EZ-28>+Z3E6&#yAGr1J%jar{!DwI${!%?% z?9piOfHd^`_3RG=bkg&l zxb}jj35+(N+l6u44R8)c-KG)w1=NP)mATewi#~iAHGk6i)c6OYrv?ytLQMQ|F$l_p zO`*f&C}7eDfCDA;b;jP*K?LB2KYlJsQF%J4u8ElAvJQB9fWQ2nTM^2Ub>Oxzqt<>< zT-5VttG1JqYt!Bx$BR8KTyWx(&Af_`=!o-<5cG$iYhgl zfJZsUh^n z#jzlR>Lu;@FHgOI3}bj$4u7u}bg}quKs0g0lU!)DF!8gtpO23PpMoW>937trO?*+O zpK%ueGpan$Ghy6yw%~F*W7&mQ0vhPuE<#rQdBfX)ycJjP_91ix8&$3i%$u%$Ku;S? zXR(_@7@I)r{0Kv9R zm1~WD82i*~FRre08vB_wh~}-JBfOEE(Gdo!MbR5NW*2q(26&s&m#C0ijkx~KJC2{J zKVcd6XMWBLb48tgnm7T}G@Hf?=XF^rx_$5QyEk?a`XbkoK2v{1^XwXL_9mXdEWNI$ z%u+Yj<89!^n5FHIufAC&=^Z_genh7w|2w2zalkWQ;bS@4o`)M}!`<_!m~U_I#>T>x zi~3^Jjs8`=&kCMlEUXOgJTurXyz}HxA1dU)gXTC3hg}rsDr%)IQ6g3gd%k47x6a52wqmIsKOOGn8IAp%D+lLD@BjVTL`w>f7en+#+ zP$PO-L!28Fgn9R!I2m#Z_C!I)KY_#lE*nzZFC#dP?o;4cB@n%{ZBe8ycpmNtW+hs= z@c6@TxAoV35In&jE$FzD)qm%Y_U`CZuh!+F&!379NxVEBZhjzpbj`C-W_v7*zlw79 zgU6$rz$5;>ec=^@RZ-K7j2(?LLzee#9OkgeAAC{h=yoR7XT(NOytUiO5di z@Zw)j?svdnCT=l@(Z_44e8-4O2fH)KapFh^AHUkaJ*TpNJXRtkt&{r4R@dRZFE(wY z`ZEkI{V;Kof5rHqGlCP{(S~0g3HWBWo?Yb zgZRdNz=E|r(N@T8T4zOH2cS2p?Qqr>UJ9eD4eAx-6Tl-OAgb%Y)RWE!Bwi>l;)CYb z;=D1LkPks?2-FF+c&%EJ^0wA93)Y`PUp-5`AJ-z@sCMA<2&Bf8mv!m|yo3)YsX2qt z0@4X6s4D-RygvV4PXP zGAi_i5ngkYmln?#T0GjFY~XjlN{?gF+Wz`82=9I2X*n6eE6`SF(0vb1?6ah;7Vszb zEA#nKyZ+qt^q%O5`eW0ks;AJg9sTn%gYfg;-)ED#OS-CxC1){QKu7k{Go<3(SdBj1Tneq-UlbW24C zYpF1}RGdQ!djQ6Gc!|4CZ8=Fg#S7vn?wJa-@I{Z3OTU5AdO?`E z)cQo-jDqaNA0g7Iciu_vfQH}Zha*)V6h0t+co|x<5E@5k*uXJpK=Z?4LmI%uITj{5 z5EE@E3&KT|!H@q5rYh@IqP;l56sG$o#slImmQLKa!0PJlY^{{|_lZCc7y?(iL{`e| zuT}q$*BjIfup@n5Wv@rFzBjP6pJhRL9HE5kkY0MF0_Qs1f$~@m9_hs$yv!5`>(tq3 z-i0}N{9551$4^6EZzO-}V2xzb_v#B|6B{oI_bSl->fQT=Gq+3?YKI9V{FTDxKTO#X zr*V}pRxyS`S}atpE*zWzH*$Pz6lw-1%h!?0V-;-yeIWJ>^Ao4LG>$KM;HWwxA7Y)< zkmc48d}GOcp)b7Lq+SP_0UfQ*KdwM?(HLvxrY4L+@X!~W?~BgkwKqyu1%c>`xk$re zBrB0^@jpDk;lR7WQ(=1|%l}rm=F4!_C-r#_@bZ}lKJAAZ?7%1)%!;EGtTSoZRL|j~ zIPIAT!i|CG0)jx&gL{~HQarpgD{&a@A;6j;f4mRJx6%H(eP6Vf+x!SNzs~k-jpg&0 zv<-GgF&lF{Q4=S592&Cx5!$6Ph}9YvH3c(>^t6UN=F}D5DQeTJ?SE&gSRAAbF3f{D zvJ-}5$25JJ9@g(TEU^Vs(bGU|R9PT4u3GvhHUcoqms>Ol4hjnaP)R9%%b*A<2elMi zo)<}HUudhIo8%ft|7_R%=yI{2zDpYEjbIi#5zJyI?Ku$4LM*6hapApkh`x>_EHD$x z?TBrPJY@z40+(YrGWvE5;Ne~A7{P`aFF@JgH&>~J+et>DcA!9NK<>U=cU0SZ#NlmM z$FZI2L9b^$_0A7PLZn$m3JL`r!QwrjZeTG#)Rgy@t^f`h-ySnWz>kfpc8L$`=i1+b51b-r*tIX`&8C@e6CMxLnkd+kdWC@< zK@@MT1W_EhEJdEu^e}TvxyW_edpnR+2v%kg3Xlk4ut-Joa{xhm zt8bna0%=2-;s~GS3r}B_VMI;UsHPX<=Z)4<@G}*w5}DJk|5i4QF+02(V|MjYdp*27f0#2~L}@zu zV_;yRzjg!3pZVBGli-yYxgNwfIw6$kCBY>WUNrrw-UL@u;5TqBXHnoE;Qxgbc$7tf zO9r_0BMb|PkWu%%*bvUdw$$uc^rlewT4R+)m#s>&*nPAPM<%Jv2GPsHfkFK%8 z4M>+mXMk%4p}FeQA)HYEX%uSGWnChK=s>Xr6EH3Tya#8R>m|rM>`kZ-6TXC%OZZYH zezCs+pF+GFpQ(9+DPCbY+~;fKqPD)w)f3OQ`Z(Hda(;0;4NatYUGj8>=8UK);IBwOjUZiIeAOB!gXwR%FS~f^7MD zhRYv9 zuZiC#uZh*i)YhTW#A+iulEW6GbGX0(Ua-?SJ#-RWbwQqf>C-vj_u^R<<;n}JND9$8 zSLv5P_M97ZauJfZ=wxMdP7o+JUUu&2cM^}j#k_*iB*Zdl$P51t2Q?t6zh7Y zrRb42JK}e#ya`N5&d(0(dn}h>ImdC4F=Tx^L*wc9~K4x zjQbqsq`}A^USJLyi9EnL9Yitd2ISp>XAsMzAp8lNlkO;epcqx-E=V-A+I(Op(&nor z_^bKHG?;2mY8x=G&+(auGR{vuUhM2&8406Y_$lZ>Bhj2ANQ_ks7HW`8Rk?u#p|hfq z;d~>`i6bL*vJyieVpudXLFZJ1rA^hzRlqW*9CAu^&RQgA>tqe+Y_5J;rgIctmh0s9 zXk1ZVI-qApK{WC&JQY|@l*!X04B4VF*m4CfF0QXv2bG>S#V2*Oc{XY_Dr4bpRw2NEno zr-p9FGmP?z%1|L;FEGVbHNarESS5d=y5^{^*^FuI&LMVDPciB#MIF#bBMexSbxRx7 zcwU9)GCZ@5wRonI^Uy1S?lDs=GMJQuyj;W!>C8Kf$j9gp>47qN2pxi1R|GN~ia|$w z5p&3Jvp*(Xp~4ip0i$j9zr|xl0X9EZ^nUp>QH=g7eyy{u!JGl%ct&t4xm1kXlyD*dMD|GRc%>wkTWX16%c z{*Saz*|+$MUpvYkrcb-Z;V64=u^c+#G!KHMiz^;j6`3d+|Eql18y^PwA&jnH$1qw(xSLgP`$P9U8|Bae0(?JWXzK&z z2qJ4^zG3&VLwyQW1P@z#NY*xW%-84^54F#*8~NENF#w%?oVZoP_~EM-j4Sy>KXLB=WA97gqpGg|Gk_8ld9jL8H$YKIZ7nFZq@WN<@Quz0iczda zTngd>C}eOAhGbImd`?TPQC!eim&QFVU_{YGwt!m{R4SIm1>QKwQZRr5`G3FXzGY@I zfxr*{QY@bjll$(w?=I)wbM86ko_mhRY{-6>8@bv(fBO_*Lg{uarj^hEt8)nFn&Wl{ z{ArH6CR7Hjs<+m@1ap{M0TzUKhjITl*Tt2E<$(<@m5VE!h()c#4pZw0a3hX!e{%0v zBSaZIa$&}Ww@Gb|n{s)IJ?gQEY-ej<&fA8$mD_HO zJruClDON&0E5BSSw{JYnOy|Ad>t>7X~be}jB$$uvo?J{sx2stJczBgZaBoIb|Z-v&`_Xdm?NJnxVQs>?_XmYQTp+DT) z21D$xJUSP`6fR>|bvUl4k}mFE<#!L0#(DQDf47V@F7aOF22`JP*c0c&YX2V?tM(+^g(`VG7GE9_kuUzjLqBJwMyYeFON5*pv4wkHL6${eGo> zutRfpWZbtK_bb6z3-qKR?eDj^c~S0~$FB@l@?>BqSyu{{%;*9(H#IZrPJI@7A zyEG!+xbLDA#(ff8$G)Jn;da-!kJ)0}hy7q@_I=L^!;{K?=Wf{dY3TZ{`|r#;$ido{ z+4r?8Q1*S_5EGPr--!Da%lRp?92W75aSlLAYb2X2Vzc&rQ&Gev2`#bjD{1fa`bw!i zg?%3_0irbW+og(s+j>hmBWsBTRGTcCdz-P zF-Zi33kryUZAAo(b@AlA4gfsmJyqKCUC>}BHoSVi^7 zf~Y7fFNLsoD&9H%j5k^3z#jX0SzGzYmWPLP?J6&0@M(M`p2#tNm6HESjR_(p-rLsc z(o^`!okk?wCI{|3??i`C5iP51IQ=pTqXWr~q;OTb$i! zC65SY@d#9@O`yc9-?m4I%=m(CAmWG=RqgTQh$tnZ7^zyFe3a-nf)~q$uxv-XGDUyx zMjif=dHwC|k8mADlu@BOYzj2^Z^9MC##r~l(_%9Dsnf!Ab>Zp=g#6T5=Sbr!AcL)l zqK_IUy2F)8BnSdxgLRSWQTRKOomWA2lJB8-E5fEfb&U7G>YLJ^$D5%)?Opmq!Ox{X zh8>TpE?^4zfj_@BcD#q83Id<;9#ZL>(1j-YrYekv`lcsaJFA5bBY-;45(6YgHh5>z zH?dmLIjMM5upm^^&|sYdzpu7VaHF8JO^Gh%s&%6{C`!~ArSi_@j$BDB^&%EZ)ZXpc z-xaaI;no23%ArJB*p-q}D63LeEL7;_R?d)5PpDWHHkU9qEiK%gwBon;aXXz%iIOl+ zz2Lnw<)49kZ>`au zC0V}HVYLq%W2@Ihx$-%>sdKGMgwE7!#Rp=+B^$mwQ`D^Uzw3PpjEc#u8nmw9S)yJ(C^4lZ8Iu4-ZO7B;iD^0qc7r5_1|3$(0GE2%)83Ae3A3-#Klyae`}s;HOkCD0MaBrXJc!baYm z<2JHH>T>S);EoKPHMj!jhKFpiF8(&D(l4b~tIMQRP}u@a`CUq&nS?BBF<4?zpu2Tb z=+(lVEa#;XSZFmG!%wp^ zTvEmG(zo6^$gOx(Ld8m@pvV+fUO!eoP*tuNrk3=&YMTR+{z^EE^Dh{3IVOayxSQ3N z;|Cnmfo)wnr8uS|9uaypYk$zDzdS7IN0>fSrAtV&4pZq@nSUqJ-l9mRSKVo(W%hfk z6V}3;8h)&AZc4!%oe!sl5)Fdxf|HpeckDL#uSwLiudrU-%7NGT3T^?h0#5Kd(ZoagRT+?dSj7p@f73qC z#W0iIs7ORoRyKgE|Pbcr0!!~M6K_But)H!Hv;S~?BZ%Id>K}7^a}i7 zzAo8M=Brwd=j8SF3wV*&)2u)T>rAOw253bAqieVjhJ5F03*ne9R> z7UUk3H;*J35tLbh=PQjzrJjl(9PcLUz{F~(=BM8<-svCXsQKZFELcsQdY2dO8&c-=! zXbyXuf3F&J>{a`GG~VA(oi>S=1C+m^3y^Y&GJTk_rqJ{hz7?CeDFat2PK5?^YiTYu~6n+&Mv@Lo$eq4&{Fddt1S7KFIgNchpSi|+3o$6`+;;k3Y*;hV%P~$k0 zR_f7?_(2Q(lKhn+9<@%xyyO;S0DpB`7?IEdctqTXGM2haK?|=ZiQJ4IfIr$BrGa|O zeJ-g~EZtgCjL7LzkZ)b3(gjQ(9+!U|(%y`F_o?!fg`tj~`i(}9u?j?9s0MVY#d=i zoQW~{xrfN?COhd0j%U1qE^}qHG`$AAY%aWbV@>0 zV+JdHjzBSmo2TGn2LSs{IiJ7q??eOF`Mj%3nZ$S@Is>r;>rue%=eOZ#S>-#8K#pQB|eGe=%+*yyaVOb`xPVTmd; zRvRa;DqvJv6A*sGo{4pY-QTUaZ$ibgyt$A?SUr|B$PNP5L~Vu@VWx78F9Pe68yt9k zjygPy-I2iBYTIQX4bXf>@+J#oad5d%w_6)8OS6u@N7B!4Mfw(%zLV+S#N|&!x(R)Q zz1DYe&JvX+!&$ir{)!fl0!d2|KXrHgC0722qlc5|9vC@HR(Kfe`Ab}oljN^x{;M`+ zNNvfmoBqyb{lz^7bS)Tm>@V?e&KL0#rtL5Bc(^$rnY@HdpgJ==A>?AT>=XMj4jfmSMm8ewXV zax1P-nCPxYs4cMl?6$weS!^ zh&^Wzwqx)uiu1YjPQa31CLd%huaPTXxS&pL$ z3yz;xhMoiY|V&be6f<+AwNp*&#tb*mFrU@jOeiZZoS)WlIEPO zLtnwQC`|P*GA|5jjC22HnXXjb{^lD8CX6|q1QWOk_tp^tda)5&R8dO10e>N-{b8d^ zhLl3ff0vM(1q~oQ`KF{-Zb14)m42J);c@w|A?@1ZCF`@|?9Xq!mUN-Ovp>%mPCjN& z+Mh3tDp;hjKi?n(D8c?b?FC>sLn=4xN^Q68&%Y}rH?te|=WjS4I(7*`!?QnMd$lN0 z=)x<`{`}$)NsDKHe*ZKwHaoXJKhJH-QJyz%e;)E${x7mW9~0h9`}2EOIXJba?a%wV zHU9|q=gU?)-QM%|=OuRC>Y!_v?9Ugkbt#NubXH9gsxle*)+H)^J=0oT{#8h)u&1JY zWZQRl9U=5&jLT!xT)rc@XxHt#Cx2~IlP31vPm*#;@ErRx%NpzDr-5}pihcJ}6P08H zrAI=v_8r@IkF&q>=!k3IU3nGBNP>NL#~YP!l#OkZJX+q1q#=pIQ40I+4o)M9!cnq) z_wS`aKqo0~&R%EVeMZsl*msZo(m}gDY~QW974KpD?&)7RJ>J9i-T8LKN*LM&`|ej_ zNi@U8tQkQ0j5&ILdMFsEmN>LKg-Zjhv2Fdj!nO z({afkOlmN56I87X8uw>jZo|+6zV%wkqo^88RrF-!i9NRR2MODs?zTTjs!)0N>^ae; zc2K(16W#L|N1y6P1xlYvEpVbf)%F?*+n?`3Q?0Vw2?btOEv%3IrA2-qAti}o@wsKr zWQkgclSSds^989CskT4J*gdH@bGTpRCD6ho#ihs;LAU;6l)z$}?mN%#`6a^<=nT z=%Ox?kL!UYF$MV*x-kyq_%H2R-- ztv`!o!j@})UBmJ4a($siQCy!#y>FVjx4s;ycz+;6zQ(e-7ZgVMm!W)1Cnpi{HyzqP zKl-bau|T2))hd2gqWn8?HP6nl1!0NxtkL_lz40XRl4%ag!1UAs&UD3f11EwGo5ma{ zu7+BNj-jg|Sbr~t7Yf$knMp+7IUHk%Oyd#>s88WErOuVVUqclF24lPDf2eI(luuAc zIc|scb6Wa9d3;H1B-uYE{MFFAOD8pul77C>VT3XJ2X}sOyp}yIKl+bM?sjkiss^_h zgIgYmgciqd(EZsps~T!HY#?xVQlN=?Y`gWuDB8FdtiW7p<**WQY8C&Y`O&$Xw%hTA z2;cnZX$jAczs-rOsnQ}Qnj_N1hYE+qORE4Bh?RB6twc(3wgJ~HHY26Lq#5#j8kDGq>6y5y+JU!K8C0$KQuYHY0{>7Z z&~>x^nyXsOf~|wj_jaegzjrGgU$BGlvou!Ti2nd_mw{Z4*{02kNa-Qyc;5 z=Cm?YqGd!T;}6IPY~(>kB9;7OL}-A8rz-Wdj>;c1Qmu;ANG81LC|4Sox|$8z1aY8& zti@8O+>%1nv56N8o=(HvLHRmlo8{~AYve69%V`8_+xrV_KA4n zz_cu9E-9TH;Fc;NM+nrMvhvONW0Sm6x|ua1Tk#tk3?qu$mVqvvaWl5IdD2}BhDmnP zPO^t~l09K^p0o&;C~S$IG$$Q{!WIpoX;;rc}U3rh$(=@FxKuB_H@`jdP1(?Rmwz zCgCGJg5olI3Vi(CPVlj-!bj=UoreoPG7Wq@Q{f|@W>nc=`3l@}5C;%zKtN$deG@;E&rGc&e!gsLm)SHeP3P%>1Vm>g7M%BD~|= zVr5E)jhX#9K4Ti82fQ0B?}UrNno-azC)j{m3W()|9`NpFerF0Zh4n(nVY3Ag^U8pC zWKDu#M{Fi5B0w~90ncD%PFY@+jc&Ow8o^g$X93ZE@i`Ff;{ri6_75;6qOn(Yk`rnt z*))^$awjV+E4*iJZWZy1p8~(wZx_EFybZNRPVccv@M}IA0)BmuKQ4ZqK5mEjH8=^s z=rc_1cN~`WSA{rC1HZbn2eRLZ>M>$_W@@m?ZV>zuNSNhbvGz&$HKAGjI$|gI#W;c3 z@1|hz)(qS~Dv>01-ku7*D)2%)CxYsLZGn@v0mHKuKgJ=(W0t_toW>;r%<3;gQ~a*& zvJCTxJ?nA~7EYglQ?fX0)Bk4h?_bG2O_A&0Nd2lY3|EP^SkGBYS2wdO}L5V$!#2>iB4GFkYE$`G0ByxOS z6|jao5opI^dFgCKHVbZVM6$bcx7sXaBWVPyw_BwPl!Z89x9Wr^XSbpexe+-Ezp`7s zw-`t?`9?t^c9b{*Bx3jMWSy5>ZYSqStM+cijc=|XEmqQ0S*ww0tjfivAUDIv>0fLR zY`X1Vf=$ojkBd!f$0TA?PMp77*{^njPyIYZ*%3bVhJ6kQjP&ux$EWY_*qR!jC<%D@ zl-K%y__XifQ{l(Jr~adVRD9aTJuh+AT|Qpd$yPIT;ihwZ zD}^LU;xIOm!P2J9!YSv#aNa0=7PiCPRfHH~PXWIno)80OzT(*o#cG&fK8#3re3=8r z$;^KoW#Q8=_iN zBozD-%2PE#V}*!PYF?@95S9t-nSj!;6;le7h61HwgHm~tG-X4_zA&?A|_g+_3;kz0#(J>y$h*FzS{x(?%y z9w}#UWqDh(u94M$=tn@bPp{=!WDy3KB;V8{2cb)_v>Rbufd|o>+HM1vS{f`KurSox znKqRDf%8|bl+G)$teHKtuN?Y%}o@;%RvFU&lHij5ngujZzh8IOlM+RO2X#jYehlcezy@eb0%s}m^+1=>}GD;BW8zJ_{iaPe6kkq%%J4qQ zd&OocXA_J26|*#el#%-e@_I1Obk;t`np@Mq3{X~j)8HZ__d~4xH@}g!e^I@x{WAQ) zptu~>+MhQ<)_$iCu=bZ+9Z%yud*zn!OPVZfSr$9um(u?vWW9@Y{YRHSe)V-T@<$TC zwBP^urG1BA3cib_oH6`I<(J;OPO#?6Rf1bTphZaYzkV-{Um9~&JT4`kC)xaxsNT%8 zGQ=17)gbGLcajcf$QL>a_t(G#fmX8&X|)O*5zWN04G#3ma9NYw738Yi3XpaFC9lB0 zHTK`SboESXk02V0hvL{R_B&5QPyga`hms=-8ejWszixA`fiQkB{XEyWy?eUY$_}qb zNQ}yY0eYlx3VE_;5F-x<3rFLlN>CfHF~jQveTLVBrlCZQ^?B`}wAjvLb9EB#(MTJiFtG^a(efTWKXPq83)kj-n`b7o4M% z&JUQQ%CxYLO(1Ao?eaFLxLR(?+thdXQSaqnz|VfUDbqtmTN1u{_}hH~UYgeDQbvz$OqNG%WA|lsG5Alds?cka|ML zxn>P$Kr1MG*bh>JNt@Tf!$Ku1Gk2J}9sNdy4U?Zst{4orZyZIuJwcIPMhx zrhmVlfky4KD}SWdF=7z$y)_mV<^D*{(HU4@_`f+L^hNY=$oKZnB&Akbciq@JEt-bx zSgRNsK+rjupyMFv1lSgHVa0GMbyn&@yf`D}=pSGN@P7`CZi_x@gY{tfUvu+9kH12=arjbV_`=cmt89Yqa$qr%Gsm?UQ8uYV@@4nl zIvb3_yh|m$nCaV8TJk?YI%)q%KJOd`?UBT!9mpA zk=zz{ynj#e_V3tbJKVpIn(<$_e-F5FZ`{ALU;DrA-)mn^xq~f6_Kx@O>8U?_1li5( z-*>(3?cYN$YRUfn(yv;we;vgyJRMm1xXV?OA13n?rCld>uL?A` z>s<9S__$fF`Uei8S+4pIuKiI;e)?rh&ECgPzc}sxijTvpQm#lH**nI^6H_(!eoAWx9|~i&Tfgf z*DThB$xFsZ=I$IHs{xZZe1yxblv1w3$A*{wtMKtSOwHbhk6i)8|C@aK!Lun>WHqvP zjF0!G{_qZDH-nGYzwY5<@4+p>$GeYf2|m7i&2Ho4htH%O{S0OUAMeC2z7u?$Oc4n# zC#Y`f0(FyIju?{OROQq#U^j6RN*Ud^7{^4^@Wg&I0!j<=s@s&VsaN-NjXzP(1Q$}U z!iOF}Ie~|Vs9C^8Ue!Qvpm?%E=m7BXm)Nhc(cyYTpTe5Z%d$6K`vP#W5^4_U1sb$4 z&jMv{94d)~y^&g-9ci3~;yuG(qLnhOSXb2Lu;Rtvw2Z8vD1Y-^lgUau9?U_uv-6Wy<>`?L7W zQ#n1PR8C{_c_pJ6Rg;eUE6u2x9(dkELpX3#N;ulch&R-(e&gNf@6k5^crpMi%AyW> z?MkI-vI0+~T!g76fFfpu8wuNo_fxJ{NH^-HT?g?g0^7olIO4k-L< z+@XHy7hRg--*41@$axn1(st{OD}jH!*^s1PIuX|&xQt=|G?Y#$$37U{#j9lXS{Ac` zfbA}5;_oGCKdj`1A^MvWkx?uC2PT*X)2rr+GlyH_9Ta?GeRv{|O_HuJxn7fpv99K> zFWGoh6u$(hVtn{n%za@I?k;uV=W^aB&H>R2WsRPw>5CTjBnHWG7Szmi#3kxxAOru_ z+0PaB-^z5APmVY(aLsa>K_dp}86LYl8T_&sM}vV48f#&--v<2bl(UWYz0Wo-?G4fZ zr|+Yx{1azaLyp(Nn^>Wd4^8wYt9Fh+sW1^r&zwLgF}fWcWjVoTha&i_R(uD)28>b% zpv_BgJP6u?18CfTc}9V#AXkAWw+6JT+U0)%CjwE|I5pQG>fpw{?6 z2w6{;cJWFN&LZSG&Zp<|O3%umag$Qq_L-_E*FQPMCayb-gRXpIFmtt5yn zWrsFRv5wLeZQ9mxTo3=IW!Y~~`K?Ftix3R;1i`A$tefE-8qS+f1nHmcXui)+qD*V7 z;>$sq`Xo>$tehI?i%FT}@TES6`xKx~&N!2Y^TJ~(hckuQAW$O*#l`d8{qv}&a4x-D z414YJ)_UY9*yA_GdO8|e=(BXL@*V55sy$BqB($EAQ&;Cvfq(uN>a)gSV)j0M{l+If zMq&5PqdGq->oIx5Oh@*P`Sq0*DL?!G+0F3lZ@l2~>t#7D;n%-7yeYrX^gQa^&k#lHn8!tbDHw&xX(=g2RM)FbxdR9TgQ-=;4Erh=hSCWDvsx_J3hGYaZ=M% zXHhec=9weBs4SAkc@{MTMtM8-qSAcKD!Moiny#B~EqpvU0$y#Fv#6^6J35Ps`|4h7 zZSGgM+FzwOi|ThIX+whJgQKud(|L+=e6Y&86ehmnJS8q@RTR}bw`lF4RUMs1%8qip zq%(5ol_IZrf$iQuf(-&XNsbSc86pm@Ic!2__8~TU!|h8q>5ifSEcH{^ead? zj+n5ASGn;ydjLoUaEi4NJSv1HYfwKNKSkiuwwu3XyBnNy9q29Cf+oQdV4W!bjBfdd zS{=%45 zQK!d$Y_8(F@FMzG{Gj5NhnN~|SFD_(Y-@7-ln`QSHk+7-9~?i;c^c#>5~|Q0-*1b~ zlq07?@)OUSgdQ~bjcrypuy@$|ftViq8!+I#873N?;3!2LdehI* zI$W-dzhm7n%U5tdY&hcr%2nbKk(k6vQ5-;@p_`Xw__LO2VP47)Wc{E#NN1dmzR{yG zOmB0_x^>bUXX(ae8POL>mT-m|Ftc>?V)fw*Sd;dLA6TFE<%jB!b#9wZY4YL4u*O{r zUQLH%gq64tO+*cfU7hCjt>7dCAL-8b1)vZ{Z#AbF#&Tz1{%S_L^pE{c;$b; z2;Ek_y;2%gy&YKAE8bD{hyX6|ga3w6hjpDa4RC3tA7GvNX^WG&SSvmcRf@zfD0>JS z=-Ci`7DYVi1^y2FkzwMWnk^6*eq$MrjB}0E1ykkhxP$Va*4_1YaD6uf*xlAyoAjk1 z@K$(IdoK=wX&UTb2=@!eU}Ob{a5xXrll9;GDB#B;=R}Uef$0wle|7E5#dI4TFWEuj z0Pb$rjel7)A9gUok2Z*6GJ&|asv816&T=W```81JjESUBEmE@6jVoWa=s@X_yD+64TwAHqy})gUK&Vq8~9x_4XlKw1`Y+# z$fa!LD*QOd$*+s-sSOb5G#$iuHh>Hz4&IBbR`5ca7;3}KD8thDeGY~)$|V7Wve zMR{O$?8zj|{{9TX;Kz_}jaKP9m_9Zxe>~C;3(IQ%!K$-w>bwpe^MTELG7K(kX3Wg(1I>E_H%6tb>c zH&jfItUmWOAZ{1GSwGJErfb|c9h-d97T+j74x{%h-DW9^A2oKX7+1#0C%r^!38}}< zK54Ydeh}GK3=}GUz{&ApCazxG9DK>sfkM|X-#KFmD^{-HYavBpkMLc`vwH7_CVulz zd?WDX=u^O#qp^+^v%+Q8`P_j7zLLEJo}vi$KFGFA(9~w&EB3(^7^t&)#r$6_V0B+F zqHO;oa>3JD2xhiKauk?X5JuP`v4*MIz#7)^C&l^|FqV5?7rYJ9Llp=xokr^9WoWm~ zE7nwrkmT7{3TQcKTNjE!wdhcsE4jEvDAz)<_8Y8RSXg7ns=)kYHq`nGpkjc;U0S1s zZ{uo*g`_tl{(Bl4qklp+3m$0~6a`OQp>8N7Q$P^8hW852?1t6aUdIc;qj@0q?5}P5 zPzlTaIO3p}+>xF}3IS&?YGng(J$_J&6I9`55G$`X>{sX>OeZmpfh^uwM|jyZ!3RX< zwQPJ%CAbz|iLTD*&wVg5vj`RGk!ij0(pm&&7^dy4n|Pk}lIY<=9wR~-<+wvcTd5)k zIBK}_poSYews{p?q9ai0*A{EbeIU`&EnfjbT$Hj8%A;nV5tGpY>=xG7M+q(+&i+KX zkP%iqO)KpH$U?I0fB~?#*86xRvp_J$Ap&j~^1XAl&>3h9a{=r5qSwX3_m_`~h40lXUC zan*Ga&_149AfJ$RFXxZ_f}Xiv*00#-`VE^~XgVHm$;OWg_e%hzW=8cToZVvFb=vg& zYHv*3(%N03EE0ogI=n;+GX!$Lhy~5Q-Gb)z-5|cK1qTWJcQ9)k1<_U3iKkEyMeiU} zc8AlRIY9&EpmzrSU>`tInoNPs-`VSN&ijpxMKh1bnD^7dWoXd$(}J05z=da7+1sr# z$8psbyb}cm+57-V3vhBKX`db90dqPSPveHG4#Q_BqMK;p*MXO`$866IkMD`4hc8v9 z%layh>L?n$9TV$8llUTGy*hSf%UYN|{-V9mx}$%y&bfjd_M9LVLD2jY8-o}&T^ieH zM=(uCYj7jez6hr=Ahu`24OyG6Vk~|o;=th2A7d}zU0v)1*jE;Gi#M?Bq6{oIf&~VX zyiE%)L0LY8IznvjIX`x?*IUMC$c+?&U2X)s{4x4~f?${FvkCI+&9iN?x5EKdVJjufi%N_!j*=ZsF4B8HkVCG9b#x=~&Nzc|``B5D}P6 zQLGdy0dEMC@d;-SYsOtW;921XC=P|6BMQ6gXD#Vj>AUXwDfqRwcGh@n=Tw=&f)AqO z6K0qz071?WZAXlR4CO2eVIHsv$tta~edKon!G z?bucmXOoi0Z7C29>K~wJAncB=t{O_*h<|~)U{@)|TPvv2moe>&%g;kP#ePAbOwMHy z^8IpncvE`dn$0{!^UvgA14+5J0J$MfK{#eOVlLqMDRyS#KznDt3M36X^9ntyZu~_M zQ~kc#V?%0lo_$km7})c+!npmjMVFHdGaa`*c!YS#WK0ZWi}e9*1nH9FL$4<`Jvy^kmWfr;B}gi^Bo?vJ67#;J|4N1k^VDagSgQ zfRQ_yzOe!kDCD3DiFKrWUNWZ>&f?^S7Cr;tFxa90x?sjoY-n?FWQor}(u0tghl8va zR&k&Fo+CTB2lq*`5sXsk?J0y|?g4}$H5xs2(+@cQN6%cKXVs4%=IoS9KvbLCCgq?l zX$`VzF7yNcN_f(pBs}_~4bTmNX&(*?_jOv@`ysz=1zzD3Y=?DmU5EC@+A>7#ho_`i>E+6*iu*;&Z;A9WIGC{ZTS>pd^f;Pwkf{+Xp8&dFu}w9*wMlPW;=i=qtG z!nc6BMdu@*^c*^>I{(D&MSv&{c5#jysu+irLx-3B0_N4guvJ?4Yb;?n6ojM7slSqq z4b7hg7x=xD`~IslVndz%O4j!uxn=RV9<`i^`?;uPEAUimS%q3IvTK1hjGNXVZdh4j zb#ezbtcK9|pt04azv8`U)Rg$)U2~W-JW2#w>2}oXy4XKW#tYdXt5yqBpBUYkfPcZr z)!6>%sq?7b0R!VRR%I7$$JV!|0P)MV`$D#U=tNgPG}=}V)uSGiz<$TG;5hwmg#!wTvrP$x#T)$t!9V0q-j3;$!nZcHRh4tuN&Pw~WjEFlFtZ>8^rVYha zT4^6{YEzq#>lEYw%U4LX->r8M@g{Bsn~bRd>iiht^fZ1@EmYBQI}Ptsr|dDP^A>BZ zsd`*6A)!{%F*=}x`3x(rmx`0&&|Jj=ihG@kkM}Bu%g)#H>0!z9?@m3}Cx(Y|;92oZHEt=~!qXM8ZD)p^HEs|NIk0urG}h z`oP-hFE@a|e761=M?YI#`jA3@yae^22nfU+q#ObPyBFw>*8+}!VFAG(deFM?c$+|= zyS5Ev8muj{R%GNM~G*3r>u0GLtZ5eS(j&TZ)*gh05uUH29b@z`%{1;I&B z@7i^DbL;lv{)jk8*;ACqt5|!OdgJJR_;C(^;`F*H>jx2{kUM*l)A#yU4qrqX9I{mqG9{u#*kXho{{r8-zbo)0}TQ*$}XNO^_ zbIl#Z7uM2aJ#3G|pXfaK^2qo$ms(eNO)h6UrUbSWVVANDS(0?JB!*O)$c~6?Zj*uN z_lgWW$VL<^a>6f224+VoiDOQz5$6;CG3-P##hpFZ*qUARE{>6w+G98(ZVUs!$bZ9Exbd^@x3LwHf_nNem6d`SeFF6MDdw zbOVIYSPJnM{KDFTaweMc3r>9L572pa9!xjN9y!1wU$~mYIBP?}p&ZsjGBpFb+9ZMJ zNr;}8aGunZB-m&*D(s+DFEkQQ5_ChzJrPQsC*AL0tm|odvu%c$Ko4xD;ZV2YuY_`f z*4S*X!!!sbXv3E&v9uW!eWS$b@Lf*5oOI>zn>&qAnL$L%i}2(0If2R~S8c=M3b$%H z^G*Q^Zz*Zv7uf>22&@b_3#Vv-b=U%ZaG#c+Fcdk6Aa?3fA`(QQp3)^i?vYXrs_+B+=&3f+#bVK^sS_@B* zH`CbT8Ou2c(19ShdU4AMIR+VvVK>b2d&>35>F=9>UOPh1oGHg6<}{v+z>(l)j@|JY zshqLEgA0dliW?_bSPqpUwmX(ccXV333z-qo&Dt(=do$YPpP=i}5Qib1#*I>oWI8?-*R>vSYT(T&fmruY=Mt_{n9@l<$wJ>>EAg?9^p0=O2dv z(s@IjHyP6iRk$BalO}A(L8S_+5!IkaL_6UV*eB&dtRMp{^vBjt~B;%fWoG~pV_C{M==C{@dlKU#RfwxRNSR=E{~H!b9KXP!sb@w&Qy z8CHw!K<-^5cRogN%Ois0zbF+PH}MBrU3OVH(JDR?c%HN$C;Jx_57u$}@kt2?-bKdN zVAUNdm@AKFoEu+}<~=vQwVm8z*l%PELI*Cl5nQ+3)_)|=srKX1NeG_2AOBGy_!JO4 z>*X17ZbwV`LU9aW(|RLWFVuZN46d!PtM{k9%;x=x`pe#MuW4|9k`SvBmsznvJiW z6e7x_DHd1>{IgT+;EsZ?d<4Fx^N-+bk0gAhId5vW_7cyv8Xq>pKZ`OtB0*@ZaWloO zJzE3+oG+Lx@oL1{i~RFJU`&#*jpL8Uw!d($<^xo~whYvSt0tZB2mEsv{J|csP|$Wi z7`Yj<1#IrmlFH#d9G8+pB6F~0iaYM1Dk&i+E>~|y%AfL^<&E&qH>jjI$1XDSCW>qB zFkN%2AizIuiQ#7S8e;kDd-hKf|bEAA2*MnBF6>A?On%pk=vhJg2r;|8z_+=EwNyN zv~=b=&?`~~%m9fcl^^&D`q7%~63eF*zt*1DYI1R1eZ5{Ag?+*M{@RuM`+eI3*F|se z`?i5|uRvq{wG!OK!VcJ`TL4yZbce|kdfZQ;wL|7Ct@u4uq-TAiO`45F&^&>+<&`Ca zR$Sw}dzA?hw9@=O$XB`5FmHf$zCRN;4zR-*2&-Z&fcgBw00O5447eazX>F9P4sWNF z)&#WN%{)wlzPkt~-H?~R^Ji{DoJgmIKOsTGJIJTix^FwgB;0!SYXklbfvysRfqeIw z^$*slYFi%cx%KAD&?huJE07t({Z4;TWQ0O;4#!Mkyrkhy-Gdmqg%*J^*;;8j!ZqbU5fgfFeR=qZYbtiwpkX8SZo7+2g5-w^0YC#NR|Njr13No`a+HBdi5&jIJ)W=@9Nn+Du_2xLL8 z^DPp3ZLD9whuZ|XcBhDRnV(3f(!EY$sjow)mIvYAft`YUuR3*s+l9DZbz!f%JH5I| z+C#5KvpqQ@Owp^$onBppguix8KfiCO*Q+>Cjl~w12r8H>CxPmMZcZ2Cdewuy>h1Ju zMO#7vy;_V!v%Oj%r2wm1mf8WVK0m};rUI;zdGK!wOx&CdFQ*%aVnWb6d#JeR-5*YJ zE4AW>a0Gz<6p6c99}%&h5#&l{b2kt?!H0}!Gc;ZBwaI!siCx7Z%cNt~$eOOlPEukq za8H$}RO``iyywsSSf>7<#Nk-}l6mW(fOLlAul=@P(DxmvGuCB$tji0!rNbjbkF$*n zdZhEtI>N(ZH1%5XWu)^a$aYq!D0FbFFZ^jTT(`<7_)P$79!Tp};x{g6yV-99+OA`Z zc1>^y5FLo4Q<&uHwO_UgFuW!_(a=TkXVx{?FG(M8A0?2vCXTFW;hBJ#Khow1eyNLXe|K;5T?NYI<{W^)4=+Xet5`l!~3wHd2V{Z z7_?b8E&^5zZWZjg*pE@1Yqn22*UU-7J1v0oBSb{(g4^oL{YE{)s)pwFZQIbWgPmC1A7uQzCj29Z%ZJ|N@~{ioDV{ft=*4(!cV&SJpnA0 zPe8-BlLC?yN_Twdjt@KbdfB01?1AopU!Vmzm<5p4fuO3YKf1icPSp>IoU&TK?*r8< z*{Bv`qx#VLx7J**mN(NYwlM*1?5JCB;oM5PH600b3q);Tcc)t~%1d;MK4O~b*1%@F zg%}1YfyFi^pp6}MtGm;!&Z=9WXahl46||0Ux^-~#-Fl&eM=WJe=dn#mZ4FesrAs(} zjDo89gWepDM;jB+Mz4d>wS&`fNd$-mf*AtAd{7b0$sWPPK0a3~c|Cz(7I9TlpObPu z9*NZ}>yZLk(t7M5@30>CQ%k(4$?m=EpyctW1&K3!1?1U+MO>9Z-&VS?@tYm|xRa^8 z*jxZFHgGBq!#_2kKLQtHtzmJ9BMK1C{K*BU=q0)J>jJO`5Mn9cDgt=H{#e!R_lIr0 zT?J@jGyr0W+Sm|?B?|%>fX`N6bkuMBJDB;k7G4MzItZpTk^}SmtXVLJ^3QN6U#NZ0 z`8bDoh@om?@ET?5CCfoAF9P;RgbKa2+!^WF;1tr$0|T)C3>a|8Vw}BBkDS{o(DM^| zuL+uMP6e)=igyrP$AT!n-35NUmg7<{tcpW(vm564U`VYTN$Q(~HiFkV&~F9~#Lxn5 z@pCAc{Je@l))!jwh3Iv)aBiSYq-${$pVTndsMAXRxdD{!di=ok%J9(;ag4XECt88c zjvRC$9_h!7p{w7vCacVB$^6Wks2)#o%W#9aUS%FF^?YOHtH%y*88YTNGC_xx871P} zSgX$SrA0UYM|$w(DE8nZ>p1o0B0M@h_{i#jOzl8)Y^Ic&Yi;vMKc9C?SuvIKkQA6_ zeXbrO^0>-+Pd!e+qg9JEHZsz3m`o=@1``||Dm^-V<)112bvy#!yb1e$_V;=;+T){=3|k|27U1`45kd^ac4( zWoAnzF+#+Ls!OQT&?og)9C zs@<0V-rI-ezaIdpJuCmQ#umzdcF~r~e~0c1^56GKv~}N<|F#TD5^DAa`OoXr-X#Bl zR_%rI-zIOF?hEo?;&Aq6`L96%{(th{&qV$M!<1Um`bp3Kz%Hfk)lVz`HQTM9R{r~s zM=bXV`EPylc=lHL4;}rv$$#hD^504kaW2H8BYi>sQ<>S43HeVwp5m4f`A=mYE%iYD zQ;!|oG9v#WGeQ14{PZ~a?>t-nQ(rE^qtgS(f5=qwpOk|9_qFu%dAF1mQ#lVw0my&q zF(QwU|J36IJX*C#w@CiGR>^<(#+LuSkw&|!Iz|3NRl60EtNe$K{@moh99#Zd zEF#W@cyy#M$bTv`TQVX4smD{?G9v$}%%i0q$bagwgIh-AKV&Aze`lQ*C;ttwDMvPQas8i*$?Rze|<;hi`28 z?{jIitEyAvKUB5b@*l$e?6dZt%K)i8EB~>^7RrBi(U!`8@NfIyZ~wV8iMH;W^54Ic zg_^xV{_{GuH_3mXRePcQx5Qhf`-1$JIGnv%{`*V;{(th{&qV$M!<1Um`bp(KuuG|X z_0!6K&35ajmH$5Rh~+*Z|9zZ1p1oE6Lq~sZ^51E;{I@_voD1>jNMDfuRA#nhLjF^a zr?_QA{!^JpOFfYP)ME#?jL3h;OpyO>`fZ&2_d8quQ(rE^qtgS(f5=qwpOk|9H(&bs zyj#kOsho$T0OUXQ7?DTFf9i1p9<5rWTO|LTtK>g?W6OWU%ZU7k%mn%GRVz;ZJJ6Q@)R&9!==1>cA2OBvC#4|&JtF;l-YsRtRL(%D zjL0M8KlL~Pk5(D#k!DekhvIuU%-o z-}r=)m?FP>7!}Uwhw=fV(fY7*P+Dn?7LMQ<@7|7oH_d(*Q}0&Bzq{Xlw*nzP@ZAB& z$JJSAzk35gW%POY;hzDW?7uzizdHZU8*n)y%B9UMDdN-Il4}Kr!ZU3<^4GjqkJ(!zF=6odSWnTgb$TCe`fhmm1(IWm#e3Bcrqnc zR*qTD*sciR%K(I^L}Ex8<(s9v#Jx|$iyUowZkd^P7XtH|c?N>?Mn@$Mv(NFZFb^u+ zu~|w0BWy7Hte1S>N-OmPelHF{c%gt%6V1cJ&W2Q}`fCqKLW!FybfG(>>VzTHa7Z&p zvaihyiSec(^%ntP^+Q(2GP*6FnlD2SN40b@YMi#fV+2;$VIM|+`@ z%`GrzBGm$OCNg1x%~TUPvs!>L^Kt>k%;pxDH<4Um_C&f1%$~@F_C(h2bRt#1%B4f@ zM2_P`s_vAtAMQln*4#w0F90+9(PSd)&Af$%IT4UE{vO6}z_=})z-wJ*lFsS~J2!DQ z_XsyeID%>Ek@kn_ndpB9zX7U+V1~sxm?ga$(DCAwcyGt!-Z3@7+_5A{?eMIyabk^U;POg-u9 zX)^w7&?b})R=GpvPx(lBSze)@E>}-e@CRg}{096r%WuRlg4>$q1(J9t`WtjIH6;Fk zpmIBc#Jh2j$UbFTN=UTF%6{=o1ZRwnMSBQ)O8gw5t*vRN{~xFj9i5;G z7y>Fh5mb1J2UU(am9PSxszZ{{Lh>D~blp%J^B#(bUaBUxoHL556_%!si(bn90cT`> z4HccyaH6BvnZb9ATt-I^M5YN9R8h?(oH-(FS)YM#a$=j4$yk8rD$qeUdJu~(B>sEPgtZ<`}Mdtkc;N^`r$7RG*KY2v{sC;i47*-yNU1cf$pE}CrJHCq}R zQ?KK(T&Fw0==O2zc>d?xS$E;g?4rhOE&L*yN&+XrMR1xAgE2L8-_(tg>B!Pv&7C{K zD0vgf8H(O4BanxqR8HCJ0^?hL*f|s{WriK5r%Ik$$RV^8iuJ72D6hjG4~h=AFyMQ< zoF@w$BVmm1E|?5E+1pE!4`c4UQZgr8Ex>I~;@sS_wCJszy2$AdHRh*TXWa`iqH_@o zyZpMu>n>TX`;Bed^hpFxM1QMqwl=-?HPDMRL_Q9fr{M{~=PESx;;J?i5dpMuxgYKu z6)6sy!_nd@>z5a&rB(X0@SVul-^$=?&L+ad4I9%MB{0&t)&)pP*#MRjX@f)ncP>mpv1)e$xWl0E@v8^+;j0ilCSM8mdS6 zsMUGnxoIVZ)o9zqc8!%#!!0CeoD3REs8CkZ{9Ga5VtqG%f+IStl{81hTL zaE(^_37XW6{3-gxABxZjl2rjCRF4?mm0HORRD*EgL32VzFl(z8J`w@EgITLW2wu3! zI(0IHXRzI8mL1jG-#9O5Ovs3Sf)D&9g@9)GHdO3^j`6?+zpcLLhz+8iNHzgco(-bY z*|8+}ykWy3!I`BQ2nW17vviBw zi?3Bo^|)CQAg~j?*s?L(o{)QAbtWVijq0y+!tt*N;nFMo6So#2t(CMVND+;72H(n> zQ0s%U(eXJ*4Oxq|(y=PYI%aWHCD_Z1V4oAze3kq~%@@OwpIO$v3u0t)rh~?ajObAb zlO>-OopuV(Dm&8937F{EdxywA1L7leBWrrI)|OG{05@9 zJ?nk=C1a?^BZf2UXCa<%@~rO^E84AhW<8{Wr#tXw?~jt+BXnq`7Jd(ab4T#qP^ z-1#MOrwOeYb!Kz4X2Z2ENG&9rfYe#V8$l>{XBEG^)`4ng#*%k&$)Pn1vsKT24WK2$ z>SA=qgVpP=IIy}FJxPKUmzsiCIaXFYt!axT>B4KC*%V$+;R73chPq9(MHBJ0T!HoE z)-utlWp10^X*S8i^phY?Z`j@#u6YS-;1w+5XbpA*yY8(oJKcWql`&`P{!XN@T^RXhBE932GBY?w| z{rn6rlJ(h$?`mcR%qu|0S83tapfNedhN5?hK-NR;fW-CIpU@CUL%nWhlcX#1a79LL zxFHlo@LVD~kO+%=srA%$r{O7RCORHJUQqC0w8!9L-6qDActDUtyfaDfy zTY79{V`sC$v{ftZ3DzQZKf!o4_RDNzPS89ZP0_)U+4UkLEqZo{tz{X!AI?`fm} zzwdSkzfono1Hb!X4*Xi9k)6Zu#OfyS`#Z>868u(7N(sM_N$@*hgMwe^Xx$u;5y;%E z6@MvII2X~ObE~w{`|;HCBSe`mnXOas&dnrp0Zyd-zMQXXjmC5bxJ;XxKHs&?Q7HogqW(zKnU0_sY4wThEdvi1xgOe3waP6O| ztsh=xFWv6`#yN^H7>(uI7`h>7tX7!64570ttxN87u>S#(6gUOT!O{wG&#jgz2p8g2 zAac;*-{oUF4^`-qylU!ytqvfQ!N~A<0?|ESfGinbL-@f0-&F8-CXyETO|rnXNne7{ z;Wa20x7hi3YBCL7f?2CcAifUWCj{cIQcS~LgCc+W4LH-SE`?a$JcU>jK*Z{4mNO4s z(MsYxAjtMLY{8}wQ_hLB=_maAPWaR9toTy5;yTi3cU!f&Y*3c-AXG*#z|St#+s3W; zhGy!`W4%Lnwcck}Ie_T2N9(=7t+$2@L<%_E$FSuO;AfZMuyv)=-;vGK`^+ZP`#gS7 zZ#S8@x74;V0NVz3ICDq}*-N&K3b$?%--(=1k_L=E0rRR1cSF^}&um5uFW{$X3#la+ zsr^j1c5>PtL}br#Nu?J48|U$!U7g3TzE*H4xWKE~TXR=`hdQst&o1?NvR!AW?MuGs zU6kV8X-w|)QFt5ej2}=1-+G}6Q$Q6egeq(X1%l}Q+B%5t*Q<0n(_K{BkMh<=;4#WP z$NZ7Vzh+%yz11=4^ch12V|ancO&OH_&bmd7V9*mBZNU}p2;RSpBb~=GLvE50 zg0A9n``# z^Hg8|uomfDq_xgD-h80H=CBMsbAwiVDG{^ehdZ=CpM;d(*bWv82d9>=ip=U3y(H?> ziU;9U&>WZ%$g0&!{)h)!G#Q(SKiNi2c2QkXPFb4+^m)0<0l_q=GQzMiPKyj~Ec(8) zHmMIjh_wHhuZp(x*Gk9)`HjW?g;q{k?()9i^PfRZPNe_#?4r$WwMi_Atz-`VpxnRw z3!^z@!4*Z{qhK+zB8SSG$k~?r@(XtcuK zr40oGb@QzBvP*k3_N<8=2o^e$x7@NYMnjJK+ z&Ip<}bpl}-?~k;ZJvX;rxDDL^uMmN}VFYWynO6xhXt2Khvo8&5)_UruHlVRsKR?Fn zRKkz(A(R`#!ODm5p;S;8SHZJ?^D1}=6(owLZ(brx3@Cwir|9O5-9;Z@J;{6@ILUId zF)n&jk!RwSZl0=}=VZ8wyntCaW&A}@<&8^+AQR2u&X}aDirZ6UKdFirMJR&|Sx$mn zn6W+Oj52vq)W7%l>Bzj+GJ-QIwMAanR30CW@YgEY492<|bou zik_BU2rY_%9JxmN$g?L{g%dECkI zBVEJ6Q+LUc-gKK9>AbX`V)-x_r5 zASl)`KdA(4^r(q|4a^i?X8ga^;?}~S%OM*UxCu}t3D{jIVBd>np2R-eELalC2>X1r zTk!`XeK?q7FKMvPI23G*{tiF8RPUV6oetmBOue&N?>tp+6SgrGiVGk{x%GBVs5hBq ze2TR{had1qD^>}ARPXXfiwlL2KWc#_uO^a4PLH6B)nDab!}P|ud>#4C(dXWNW24aL z@s2{g!K%ElDTy0@A=Z-|R&?Z2-3fI|I;q%Vg_bCGQwx8B#YVo+rf{MF2UdwD=@D4| z*u?1t6r&UhB!=mtZ zfAApJiS|pI^bC4d^aB((_afn-r&~ejtrR#2UPu@+bwU)U;A;4n1O7}@Cg3Nea99*D zY*;|S)dTn!y#_xZRu~~rzDhSXSX-`aZPP1H!*T?x!ItgMnyZ!m8)J0IRqr?zODdF8 zCt0XBzN^B_t*{2!-7I*;TOoqUAe%BuoqB z&`P6(MkFM!e=|nqeJuDPjL`v*M#&hxjV$Xok0mh_TDT{=lE_TdTPw$MFsZcfu(PWR zT_W5BX(l=aGQ*Ay@j7OGC7lSb#L&5fb+qiz|K_!xN*`Y-%tJe&RinY4PWv#}@ROC(pYX#G(1?&RI)9=f)LC`cRay=Bf0$rKEpx`5z#?6Z!{( z$_+5VAk~`)ss?Sv823oF%ef#QW(fa-8Lq4~eo*!+WJJbZlT5%w8il#UI=`8hLS?t! zTK5rQQ0*%?nHzxL$c3py2=rx{wZ9P5xv;E~#skJ0>ktq$v=pu>z??4!A0EH4WjDI5y?|SlI%F(gL!vV~ znk`w4*0hI7cV?qQYyzFyu7x+C`W)lSA|Cr~Qe7MEG~yU>6hi0!Rp?rXiCBZ+@D-nS z-(cYgUh!$A%Y}`l(tn*++zZ1LL0-;X8U)q8iq1q4S3eMp+!U|v?;S911k1E3yJ#!4 z{i_S^XCicfB0t@<&S|-k>$}+u(E`+m*Wid=LCPgS(EYmebgk8GnphG5LFM5jraclX5VC6(yUqOBEmHRy?@5ii?TZrTB44(oXP2Kr!nqGXNA~y`EXCXDzTrm3poCO-^5=J&daAU{qD7muzX5?I>cl zq*m;2u@=1V%>EtD?Aw$QZEpLkVsm_W<+5Wp`^o0a3r0o^CMz`mDy4n>&@M}5qFXi~ zWx=|wvOc_mERhzThWEn0tp!Wuf5X$nLfi0(b)@dK9flkMN0>%Es?VV^FrqA@4cuM33U*fw%uA3 z6|Sl2cH6VY8Dq&&+{q%RPy82_(O1B9>jN;$UfWk|g1=hcUB#Jm-J6*)R~ZS$$N!bU3<8&NrC#u?{1irkU2sMkt;cmih; z^`lqbA`V8b2E9{_1dOXd>sIxJbZD{qf=BxLLTweTJ0>SG(x!8tqsM(gn)S zMA`8;Fg*poBs`x4pg54%N7@6)tB>7{xvv})=>}?-aI`rjg# zot72MwMxb?+>dn+#19mOyVUIk3mll-kx;#KJ7BEy7Lyi!fsIt-hio=UFDTzBpSYAy zaZQ=m3$^>^V=U9D*GYOV)90!510NxMyh<-+{{2Y1`(>iMIB~TFyaNdY%ha<*@3a4n z=gCzk7|+ekt-;<~dO2~zz*-_|K$UK&>qilF*&-r_%RL*c<6)2ty?TxREzElwFBX8& z$&0?n+Ie^Cx^pvzg2~#oO8bv)T4|`z7D$KWq+;fV+2)-Am{271bM6{bJF1KzQE9Nk zI(j}POWuHx(#8%~Avku$+zkgg#fbP1JkANBzPksk%{TbcVrT3=T)N{*7lhtwZF+tU zph50(TEsCUJ0CK8cnNt&Ei3}A@g)t56_?^TV&%UgJ*%x&dY@3ev%rcE0{_qyY#qEo7M$aPO~6X9 zfj{-&wLK1AbH^xnjYD7U8J`7{LVE^63&==Ed!TXX54k_Ml0NuhTEDEK6b|z^Eu4cX z6OnwU`ux#oOUdU$k#aVUc=@~wH;==)m<&#=Rdglco>v{c35}%KHc~Okf@`+Au3}Cc z@|6iF1^GN~8KyC}WUvX@LwI>HRw|2Yjdg0PMl30qSpGluz5_n0D*HbHlqlr|Ma713 zMT8XvEJ&m!lE4hiAQljnrU;@eA}~XdVqhkcaU6|n1Irq9Roq=QHUt$7QWCKRP(V?d z0(Tsw2ojKz|Mz?Ddv9t$_v8Ne$L{j^ka=_GzFW^d=iE~Zd*e;Hwj5GxH^A%S!*FM5 zOW!r>+4WjTscBzyAHSIBE;}FloR5OG%fq$tk&NzZ#2`YbRxgT~M;U-40g33d2&kP1 z{x>`sf6zk$y{fSXxqXj|_TafWu645hL$O3tutYfRKeC72x`zZUNR2(n92!S^@Sgm7 zI;`EMEh4Rmk;caLt1*myj$r7@p5MkFkg!polZ0uXkC6BQ$@PEmP$6Dt<5%?sFcEmK zgP-BKNIy&YH+YU>lVP@ff+g>ax$nQ`H}CtF9Y&kZsYt{>f8S4As402!eZL*L24BGY zK07BqJEsV!=3jE(KXuSQbKn1NppEJi@B1^SC*Aj-UmJhlUwl6i=MnGwQ>{)8f8Re( zI>hSyU%&6aGT@)N@2@V?aPqs~_wTkF{+;jp&FzMN=llMrALym{&G-F|AKP57HtoFl zCP5IpmjXe&I9Q%5`Fx{(mhxBe97Pt1_CZm5rt#P68};1m|FSE|)gYf03YsT>8C@scb3r?Cxz$sXe1{(_?lzB{NrF|@t2!Kl~2&E%=)Hv*!fV;T7{^68OWt0k)m=u1;IF%J@O;q~L1 zpo|h!mm-F_?XeufgS2%7onVA4|Fqjg;rl9>K8QMDo)hPu_AZTo97fmGWd1a9no=Cg zpF09ysVVabPsL!)Z(}RL{F&s;odEz#aKK!rJtDSWFr^~R)9TkP%g?uhB|ql~6EDMk z#2NTPv)$XN`Bj}v)VT&M5=JxE6&jx5U*qX(s)ZfFf#9dt8UAS?3$E<_S{dB$dVsH~ zSzc17Nt&a2p(8LbljAk~4`55Mjx<=yN+(OBi^3Cy^&44)O(`>7wzLA<5p3#$y|pVl z0w(!&zGF zF{UNcACIbO@Wh6{v9va{G}2Pw*&P}M{*&tKX5c+x1|HZ>b`$DQS8yoAC*&c7|7`vS zJPe#GwxVlv>&bCvZ`b~C2^YlzPIekP%DTj z4%$Ll<)A5Fy!yIW7|pP{>|G0rToF!9|dgVGh>|ifSy!u zFRb;Y4E^B3QsF(18b7wO=@fPbFzizy4H33)x|?i)=Ohd*4@k+ks9y~8=bVpy=f8qI z3!!5{kJPc2nL1X(cPf6?=FVf2917XtB2O(G2<3eiSTxho;bM50dQTAiu}ih@3lS8M z0AyvRUZVnP4M#QjE2uSS)Cp-9P(*51#oKkuMj@{{a4vB240dRWYl8PU^=%)X39b$- z%B-UYyHPIioPv|kbfVWTW>u`+c4sXnmbqksngBy)V$JXLZMYZ>ma1I~H7HDh=x!;0 zfS_;Cmn_5j5jh!!b5I=Ki8WK>3TZn6Ge68?eA4;=xYS>9)x-K2g;Vj8X-vSn&JLFW zvSg`|QTQ4>kuiVYq&A2xL;bpMlA~4> zh>b#6Kf<fte5kM&03Xm(BNffu%)M>;N0%L7TE{l{d@%XUXK zK&IiRJOm2>=**w(=v07V8NMk%afbuW^Q_L&DS``*$aHl$-}Ga9@)|BUp|2Zm`R)oR z+=y7+Ky~5!iG87u;!Y6%5nRP~XP4pkVkv32Qx~hz_M^yId7-hqhXb*_0J z*KA7S(Z$dTAh#q}T-oaF>YmXFC)p_Mi>sDgEIUj|GYY*LZK)rx*6xV$fV9&tT+e_=FAz#$8gs?4UI&s4{ zvHVqb>zA9YYa6liX`YJXX%jiae+v6(ia(A}*ES-!2~8gurPvjcMTn&xwf)qEpsKDAQLr@CCGls{2VX+73VrUd>e>6l$FM-O6` zU}_pr1`(4?>2b6Yf6OlJUGp)cpYP#T>Ncy{u4vZ8{uB&WsdZOITQ#x26O0$Pk5b8! zRhq!p<8ZX9=Bdx)F!*kI-ed!s4%dHpq&cmHs2$h;pc?vzw1)i`{6QQ01o58P|Cv_* zM&ShZeZvu;WTe%1_n5w6B~Ycl>!qP2#k^;l^FA@!@AIF<&HDg-n)(njKH;TEYuK?GMjK^|xAVhZa*V;nJQpE#b&ma2)$ZA~=2zF3DcZ zOyWO#F@FFFH^DK=?1UQwersIX#}2c!J~Sswdk-E!hyR(Sz2-J^X)nOAla_XIkC>%} z#CHBX5xP`(qQ!>IAB^{@CZ0VQ*kC%sy9&4l@6``4njr{vHyJgYIz&wx2<-jmm9vn zVkg72>O^CE7NmQ+V1Vr%xAn|%uu*DC4?E6BpyYrI1{3sj3~Snp*MmKCj_}?=xAh*( zvpFz3A_&J^-P{y^t>+l0x08{Bfk2c%Z$^IG@53`NYH$#jV6eT>TR+Ew4Rww@*d_xY zTshx*=LjRb@yh53?GalT1S(!Cr}7M8CCZBvgtqQ2N>8BrEy z(c%arY6-6-bFB>#=4IL5lqOJ=pBpRx+cE{Z4BO8PwXK37DR!m>6%X+fRzK-K)w}Fqkw~I40 zrvl5vnyZ%SnrF+~bGY#=&JiMS6dsRaclI3)@E8ETwrj%sK>D1aZsdfEoS}TcbAAQH z5Z;d9JKF>00m|rQ$Ji=7g88MUqZ~wfFzO5SnTaEK;?=Th@U-)E4bQ_stas&|5oP^g zb`#S~swQ%JSxtB+#ee}|pl>q(YVb0rs97!PA|2+8>77Wn<0XspaIvCfvBDX=E`vji z6AM8;s+zyViwKYKAs#mX98%O)jt+#P@%D9SX^_oWC!{`F-nb6^Rc(oG%R(q zNorn0BfQGlY~Mh0FmX5MQJLWhsOa=9amXO{sO!Fk+IC@>LGDyf52cigYwByV)fe@( z;KFhXJ}t23k1HfV*ITT%bR~)R7IPiC6}8d^0k>x6P=5IfVFT9Rkt~xmvq~NCj2L!c zYYt?W0hm#)LM=Xf>*l=8`+HMh`J94kuszMtFMff2RYN?5>K{Z+AoWW40=t8)5yrvO zipTL;O2;rBXW(ZS{PNVb7!pE|mVgsPF??hCRD>r9pMx?A(lBm_G!b?tMx;sjje}jl zvRJr>)h#b*2=?Sy(CZGg=0dP#&Rse}hZu}e*a$s|XcK`kEMWK$QY#$RMhGgJAnFTt zC(8{j2vrIY@_3CXx(PqR+fb;%eXj|_03wXjPlmzQU6_PCl&h+4@|?xzzw2iyuf}sM zdd!RZb6fh57MepKa#W>2vpl0gfUC_R^vtq3gj^5-%(rI~*l0TOzhX)LDx5K(r+^!% z$-N4nWtc8-O`nxOQR{mMep$t{M)p^83D!$SW>>`Rg{Odiu_ETh7yCqCJcN-Yxx3Ff zOSlAFd`$=7=TRWszmgOud=mvYQs=HU3#V28mj*C66`&z z)rQNoz2{`U%eZL8R@*DprB;8}pv)nc7Jy{|7N?CPdl`v&b@)C3)J2Za71f9m=)C}| zXR;87UA4ororn%SvJORTgZKB9>H?`kWfh&8{8&P?6Y6x_-|_q~p6QQA{#RlvsMpJW!PI!zGHx8OFqS{&?>hkZ#+(Oe z%Nx4tgMxhsB)Rk*kTwL8Tn5~*17G1ee=NFzNO~!kXyaNS%>||D{*R!v33<`LIyLZR z+%>HZ3h=hge_YcWTt^LoDnXL=IYP(0gbDTtcHFD_4bhAL3EsCCf5jQ(c^0DHG8Fe1 zQhzSUZ}kReu(Rq1Iq2+k?~w2l_{Hh#46W8*_!KmKLL+^hq4#MxrPd<)4fx4%_GzAi zR!s%$pWhR6>>Hqf9g7p)>DiaDjP5H)%{r^M-~@#iJH;zzyKqcVelf5_T_B^>VI>^t zUyEiomkrfHL$YyJl!>;>Wp`OA9QmraJuu`G_)qKGf%qT0Ke^ZC_OS$4m8iL>GIUZi7nST83Cvom);~=e z#PFfh_&OLRh7Z;B=vW-4nFUjd(>$%6zk2?-3Q#F4yk<=^907Esm9mh-Ky0>0y#!oA zLI%-JJR!qKW||7xp0Sbkt|8AvlX7m~yB)Ng%!*RLz@r>DjB~M}(2lT+ledsodY=lv zB4tAn7vMkv<_w+~jMdPRu@}X*-!r!T8_o8?0+m2{V8u3#^ri{_z!8*ZMB~6|lXHf< zw?r4Pairv@RGo-+&_*fa13>bl4e4*9<`FOC*1tCExfuT8J zAU3!j{rO5&@5^CbbAKvdKJ=c-n?`Kk?t03CGCJ-O%48X$zI-%%)Ar@F%h*v!fTt?n-5x&^er1i<9CQB$i>IjA<0|J6f zqFxaYY~f~B0C9n5b;C8ry&AM0Twb5eU=1(rDLl&-9CB|2!CCOG2#*f?()#Z9OF0hP z9)N7f3ny_PO##gK7WHS76WZ|rI}O)uUMsCY9+kl z72p-e++cQijQlK2AcCm8QG#AHcewRLuoPxoDvR@TJdaIUm>u0DI|d}!lpFcu3-}Sw z#xr<+9M91WwBXm`ALxJP>9pan?Wn%{nIEkoVBchSssGC64lVXA=C{n|!-b@~JT3j{a>!JjfnBZc!zejZ# zpoJCm{)`F-fJ`fKjV(2$24j2GWUcYu)uyaK0%yd=jlAd*O^AVsD`U0nH=`qUDQLV% z1yb9946|B=P##tIOqzs>|#<-FQh_L6PZ$hVR2G{N?R(xDwGP)qUl#i z1x`c1S}ITnPYF^17(B&D1;E%q0!XPqnd*!oK`H>cM2#S&0+p6jpbX0iM$uc5LMo8T z&Z0agj}EDu|}!@U2uI7(f;PS4S|x@bPvqaz#`K zQ9{YS6ON%Rp~N=f?cS79mc&VVAh}Ql4|6w5a1xfJ6avr(uRWO09;GAjQaQXGZZl^XAgDvC@ZW@^&<_29t$HK-C z{_B4giSr>^7p_yzHav$k6A(vEu}*gdU=1Ev~~f*SrOcyI5hCH;eQ1Um~m~hx9MgcjcEo3k#xCt1;$A{+a8GiV~xCEN)d2%21ZH)zy;!Y zf-M95F}jrambgQAKrt<84nV+&U4X0@sdkHJo+HPyT}Adbh8aeiPZ$pzYm^g*~EM;=$N{i3<-U10XGue@;#d<9BZZMVE0rICxc z4gsmB*P)zs#s3u+k6%%AFEYjjM&XnEB2bZE>L6y4z$t#pU%%!EJdFfc;H03ELhl8f>z?pgk+oV(t$6NTY7Lo}RAroh@W1xTk2 z!EVTe-65|9*e!TA7!*r_G92){AVC@G=87c!?0iIY2S`(vUWWH|Lnh2Oikgc8S@&~Mq?tx*-M%yrLVvV1T!cK(g z6ww$=|KtSlk!TDX?zbA=DV8!81es_LT7-t^FnkjJ^bDDXa=CWU1k;c$u3@aaIp{*W z?MLF;zL?|-P$Y=zbTj)?q0JG)zl5iRw*kdI%N5 z$Dj|;`I)nX&hyTsW&RHkErvR^N4Z)^gcItN$LA{j+?&t!P$$X`C;4+VfoHm?N`jqX zJP*QlHS7Vua<|-POeas}$X;R0XoLrbnG25F;ST0C+v^IHIT$Xa9?P>UjT!Vmb_N^v z2zAVMq(c_+sk7x`r*XvsF!C-qvZ|*p#n@&Rmbr|4GUny0Ww_~9USGg zP>?u-bztx4YKDQhnqho-uzc(=w9Ip}1Y6EtG5$_xaLNt@mf1_OZOgr5hB>lVj=u?U z$Whp?N2q>hNBSW|JaHn-6O}Q66^@n*9mW-i*7iBgvJG=IlAE^>uDkmYz=Q{V!gP0F z3T8SW1A?q3F#=|}w5&xYq2^rC?DN4n)x)H zjTwGCxYDa!>A2cp?Z3oim#G%u=dDF|1}8Ub!^YcNjbC9kp3TPbOBS2PXmryTSxvXZ z1Gj8eekFSVKP|GtHm8(9U`^S#)$?^$&rojzU6z5RtjsMc<1pRn>zzR?OpZMO zFlShF3_z?k5W38rz6qU{xD+G#kxarmZ`rQzXQ zx8YciGJI@y25HXg;Wp}(Swl9WgBRzBl6@Tw#U9UR@*`}(XDq^#ZUVjmXcldSQw>P9 z#%N;30i6d%u*hXNzC$1;>@|Wb1-)|}0mzyH4IM#z3|>14~^YPu(53ugrBW*ir{btP=N=E-1i_ z!B@T`zwH{_Zydo6kZNF#R{@>;epm8(V!65X2cV_Tj>qXB%vYA_$X@8Z3h)?v83q9Q9s-Jf^jv|n z@pv}Tv0s-Am68vYSAXqmS0G^+j6&4`f1)HQiCzwO_zu-FrZ<*&7u_%jTrmHHFOn=8 zL63JimPJs-ps5K!ayFK|42x83-19xoFEKq~6O=gbxfcP)3f>n!18e9EeB)g3J=>fO0-VJcA-Mw>;L^oz-fUmM zp6!12s0nCESD&1f1J8%qtk?q;%TQ4VShA`sSA4Iy>45@BptP{+O~x8mcY54Se+uu0 zX~Kuu*Bu9a4-A)1fx(b9v)a-r7h|mhxZD})cnK*<@D#KFz`Qa;ZGbs+u1EpRM#s3q z3~yrNBxj%(AOb+dR#rOz6V70L{J*viimyEuf9eBSrE%)H5*Ni9oR9V{I5MTqPzLr!l>) zQ~`d6<)w*@(y)*1LE@O^tL4Wyq@OwhOI1Iz-@qy++hPQ+1j~#;&x}GV@ExdW^Bp~d zuI77t23*ZEdIst=M=&Aa9PeDi-vDn|qm*Iw$9{oIH($@!lrIpQRDd zP`t9k5zNc5cXNnT!P4Ep2YcyYCJBaRt+VB4KyX0COVz!9)Jq4Jc!#@ij}hp=-Go>T z!z{oIi%j_gHl`!@vm^JjBloi-BszLKkvJ)KJK>jBV$9$<#FlpCmUgta^hJ~+W2G^J zh5?D=`qtU4V{p26eR;fTm|N8v>4g9Wo z1+2_m^&aX7^ZkTfu4bbQouKkPx-s=AN`OwGi*hXZu8v3xzgA~rY8bT|O(uj+=Lmc| zHbdQvuhD-Z5AAym#h;<~GqH(kX|AX?ZnRY!&ixQEF!yGa`pb1#%kq2@%guZnldySs>puS4 zTK`&#=a_sO*P})a@xh>DC9fOU{{g&=)80qk+BEg`UO-Pm!isTMTk^LzQROi5w`(Zb zE{m0HQ}*`a6iQCY(mfM#7%MEf8@t4DR$pBK(HDh?-W!mQWiAKd3PLo2;CIlY^rLkp zP~tk3ei~*P6d7`sA?ZhlK-U9NhuHJ_}=xp&Gsvw@1#J8<5(}1*3h;RFh zh*DF>x21Q9mZp;Vv@CM$0A3ZYU>k2CfVxhq%QUl8ka7 z4>?4k>ZXZ=|5B)?4D>}X0ola78DLvN+_G5-b9+8kJMth7SL!gg3BV_U)grrbGwh8G zgE}DcuL^UUs^Qjl!)Dl`8-q&7G&n0ueu zpnSmZ*W|bYaJm9pin6&V>y5I0!;F<(2Ri~ihvSDbeYm>biSHBgih>209eDeodqp7V z$8*3pjq}BwblM^UKnw@$PH)`I)v{8{ds;3rrU$ThE+ht8pt79CJDXY<4=u zSxb#Mq>r_7jE9%x_gW$uw;uHRs$PHTQ)|rI2MsCB@ zq$Mze`_$uOH7kYC9emwp2s;ROvsNudbg9?HKkgFz9&1(b5k@71pS!cmAT5ixC_p^N zG`!=q=KyETT9`!L!%gBdY}9X_#Ft~NNrd=%bP~9~)-orOZck(c>cmW>@G^i=GKEaN zU_v2>+1)jb?@n7>fIx-;UE!_x!vv6fjOne|CAgRRKOScPR!{_#piGZZSf=8JcdD;P zTT@2>@0h7y90Q1tZnXi?donT&c8vM$F8!O6pgDDq2F*h3tPPsivw{hlZa$|2jrB)g zCSUgwve9S&fhimcVS#LAZKJysf_VEVb#MitJmno?v*D*JygPfhzDLY!pdp7Be;A%= z%W8xuC)Ai-bhEoC#hVf$oR%%S5r`Hi4o&KoMwu;H%qOi{%o~XZ*BBkH^bWKDfTgtc z=^YZTlu|Iji0a*m3}|_@d9cZln$^M2mPU57ScA`1$4F1GR?^wxwC%uX8l*tvjd4rH zILN>#0A8!AfHQUHJ270%hT>AxQAQ#@UWnB7Ii;zg2H#Dwxe=}8{ad5hI|_o-L(L!U zSklKaOVYBe3 zbJbb(A&?0nvMdZ(;sTPB-Av+5%dn)pT{=fu0Ldu(auzvY;Y|@x7WpCo0)-dj%*81D zV{ArJfw?ri;|{A~n%71TIU;)#8UR;SWb1yxANw+SgyVzD)B?1-KOTDf6Z9)%r?CzN-)<1HHD3zWau_<8UCl)*>m^<{&VLfP^M2B3jg^OpRlATu{OFK|G0bLaesplXm@5C{N5L`wMyB}x0zay7R1U|F zK8Q1F@}tlwITnOl1eW?XTFm2;C{GGLvMR^FO8b_@b8_W52aO=>X@(f3R~Q!|)g-GiFt48Y?w7}D)OA`QoIpU2{T&3*bda26&5 zx-!TAnWsbiuq*4t3|rtEw;&lW8u0eRtpL_1mG1ycr$q+*K1}CuVLFqU>A*F(xOW8$ zT|1nw`O+2RaLRkti^cuP_f6kc2U4v@lK{Aatzl}2`vHBUp$(^z0n~x?IYay~Qy{%o z&G;TvoOx1(-JHm832tdL%o%sR8QlMPhHpz?OKcnnsXRnP;E!6h713^E z?5|vyj0X0k{4e1(?k0AD99F26wWEu{8^X~};&VY?>|a7&kr7(SdCjR!JA57GFD_t~ z7qW&bbzN)9@fd6VZs9N?AxFNN&BDAPb_1Xnkp3%Hf6yuRKnt%Uo{33-vr>)TV8J3` zNG(6#8v60lDFOs)r$fW{tnf9kTnKidRz@PuHX?(M`5dRhwFrgq$AGm)UJ>lM7;bh@ zX7~|-!YwL%k;pmO3CxCd$XdkR8-ZT($;N$FfY`FyYV{TUO`^3Qd6vaCt5turO{&4oCoo)bB>Cn!T- zn6A%iB;*RUIvrT+u#seOrl4mGs~>N%fcH}Lp@A36qYb3Flnl!&_qoX9Q2VJVP_IkO zU2ex&E`~W|+}`)G7WvFt_IUx3$8qXX8I9gE*aB?$-j+Lub+^97uHl)`u}G zXe@`l4}8n;y7|n*4IJgCyPL$@&60IOOiA{e9r1KvM+?*^X&N{pbMg_=LYv{fhtc32 zSeCzlCu`yCSG|j&JY}56{d$R@s$K0!8JR+YJT4t#Ezt>RO)n89#`r1$Spf`0`)h{p zz!{*C0YZ+#J6-KKUxShN47#33tkDbD1S}p9jm9Y40kChooT~K%qno5KmnrChY~ViC z${w9Z4iO{2(7j0zgG9I73Y|cB7yj5ryLNO-(`Gjgr$KQ{kr$#{F1y*9xDJM^n|218 zGI}Gm!HjPCCCpI5-_RDt3eFj$Zc3(N;%zRFH`Z?bU2HLzRS*0^Vl=cKJ-UWJ7gxEk zgA!<~lc>&znfOvg#X%?gR70~9&kfNI^vXcn!_c2kb8((axi}C)rE1w+oHuXMi{q{P zdU`mUEQZV=Ci-V}^gtN?2xmYUIxxmnqXc7A2pMFkktV>_xQ85va&;duRH)OYJMf&N zpQZd^Jg4MWM4yKEOXC5K>(s%GPyjJ&gHgDar@+@4NPZcfoOW0NNN}LR*Xdc;Zqo9J z0&IaTpP0ACrkbzdF-bbs7afQr&}0I0Jjsmu?MT(~k=zOzPZ78pi1?U z@py*XW4QnWfW%LT_*(S<0;q6mjL?TESaK1=SAy}!rfg#nGN#j!HF@bkFZ9zDD8}?M zhb-g)X+deHew|qR5g-t&g;ozZWO}h))Is~y3XDPTFZtJ z2mk}FQk_A*MI15$_iHFt_p%S*O)DSUCOaS7?)|;+#(H?|a@;Kuq8GB(OmyR?1uOJ& zu*I4kIS2Z+p}?QIl1uWbZDKyPy&x0FwoRr(a;oW|KY5`ECW>r`1!7J$>I0()6845j zsJ7K}5){+k=K)V(CDrYEB#}pex8`0Mx`mz!al(tFY-(jVBV<>L2kNb6yfs@bE(ZV5 zub~S>dji6YJO+}A(2KpXX=EX8 z2U`eb|0w&6J6G|(l&tO-cf;hgw)Qrd>i#(D#XUH+zedfH<_1(ntNYpY_Vt2InC6Ch z0)VONhzKr#wy5`CEI2W(EsZlh*Wk33nO=Ihjev{^;u0We zgVN~>_x2L)J#GYyv~BDBpG|!0kKn%SxAs=)w=87CY`7Rchx;Ss#l$sk;WR|&|Hn1J zHQGn*a+HP(WMMTzE?;S6y|0y$daQ1D=BOSw3w3u@- z3K4k?ktOmoCC_awUVLcB3G3a$#puJ=0e9vN7zn+o{)(!$eU51l0PZmtxy{ZpSMea*w41fV730xsu2U^{!R$s3H$nbCGIgPo| znZ^KO2%z)bM(HZxq6|2!Oda=?1V+Hra6VS5+i_b4c*iC)5GnkJs-Q8b>pUC_{wqK} z1H?UNhiqigYFZ*A<$a$DUjMN5e@2`qZawn4R8s>+VA^O(8u3TOqx^)`5shTNbk>HJ#K~Q_~S-_q1BUfwkbw`;m$I8wQ+==2PPW(JdX{&)UrKVr&%Lz|IOYtzV2E_y8rD?^(R6He| zgLeo{0#n)wid;t%j5Pty8er6R5M5drvtGfjUTNWxq+5Yq1VWCFLI-uN-jdbuowIK; zl!)QXBbp4-$om^(@jzw9-C|Q2eHrcq1o)eFtAAf>w{AyoDR=8R{1AQtf6#Cj=+lpj zIw7V813A>S?S>^nybT6PrYu|7{15np`MfYh=7Vz$i4|G(k-(Oqn%z*Yo&j>f^VNL* zQa=yma~RJyz7zYmzKr&gi7O#u1(OV_VP6Xk9Bk9T{7P(5U?KSRTHb~+p}cY;ZNTU% z?1oaWeIa<|{MZO#D^)#tGd@DtSscbj95RW*k}1ZprhGxh6BGYyxOsmFymcowzHM2- z-NP}dyNAOn9%ga*1-QC^RWw6&aLYsa1*UPiS`W+yNIzKCbcE(l zkaM?I?T1JkrlL~?_Z?EM6%sFCRQMK*T^&Lw3vhU1KFYR{?&v|ZZD)cIZEA&jdpm~; zVW~-EMK(Q=(id3dlzDrKakuUo6e*Tf&>bli+^Ad`Quz7@ghB ziG&-vXRgR*jt8#}AOCY8&&dxB!xe-6{Zlb8Erl75C!ncKXcs`fLQ`u<(OWQa63q9u zdl^rwLZ!*D`;G3@fp-|BHl9r|0XlubBJX@BsPa6pMeFt3Ly&K(ZqS%;`NvrysdQ1 zyrEb{do7?rumhRg8ncRXxr!aIiWycj)@p)D2S+!Ost0aE>|$=NYb_=tGiRcSG)@QH z+Ive=teK7}_$6v3ELe<&K(y>}>xDjx)O}Z43-%~qH}MueiyVR4#5@IXJtg*GT)|&C z{o#8slLgekKl@f$(1eaE50L@B*R? zr4Ci}E`l$^!Pona$xi4fgqKEmg+W*lJ8Cmy_DsRWX^#rOcYqi!0G5MRnzu_7Z>&hM zPBsx{#3AgR9g`59kL_7g_Z@ZjT1Fk0R_65|^bpWgnW?;D_@l@jya~RAP-2IPzqA>a zfb?1}+-j~XSUhrM!O8$)js)uFzmm_%dFg>&L-sZq6f8ccFo2cl4}9to)WCV)wwA_~U} zn-f(BZ6@ysxCu<&2G!JVyaPqjHkV+MVx%m-YcIIFDfkl=y&Qq}faqnPTHMnb^+voK zZ5VQ$5d>@y7trD_tI+s2_+t+`Mi>r48%#zLCIK62w?93uefVHZ%CyP5;XjkZKO29* zoE~?*FsGGZPPIsbV;9aRk1#fqXKC zK1yB)m@iR}D~T^42uEZvo%o``4xx|hNIS?UMs9)x!D`X_3S7@klH5391mzL44 z#4W~jvZV~vn1f+tB2Z(K^;|(a5k^fDelljlui_0ItTAR9jNzSX8s}(!0Mqc^mEw5*q5$u{HOid&EZn1Q1e)whlgt!mbr*5dx8_7xf^*i#A_x)ropyvv? zV6>q`7bcF#Ckg5d z+uSX+Z_!TmkM2Ya@GU}qkf?VA``wr!!8>DfYJZNnn)PY(e7#=3AB=hJr@9cWhI6b@f%|Dj;Eqt4O^TEYXyw zGm64~G>rR``V(wa6QzvjVPpwX#&fNn;-rkouZT_3l130orh(k1mLAKVq5TyeUWXd9 zC5^>s+9s6O;0uZQ@H5Ga8~%GRrufsmtt`fEbOXL5%bBkgW*7>8Di`CzZXI#&OY`;K z8-6HyNfb=?8?TIN`5AgtWOw67)sF)SERnkfXFL}M5kz>KNDyt#D@MVEM?e7mp(v86 zi4|&_h9g9#7?ut*c|azZPuTF;kJzo~$D% zw~4+h=P@6tw@`rwvY()3EwB9yPYH4=tQM>_+5i+85v$5O14I<@Ox8mJH4*UjYelxD zrpWf(JZmc`Y~)s8p5Xdz|1A;Oo`sepkJ{^=1I)m6A4$m{B(%x0v+e2|WtruRgBFZcNHm|&&a;?Uhk&=yDsv=u1Oo3;3 z4gS<9!c1_S6M^$AyWz$)HSA==F5Pfy5oSWeBErnE8-7=Fw>G|E;#3>s8vc9Pd~;%&0c-h6FI$eQSxfImVIg~=T)hNL z0z!NPpTE`5!}z=t&oS|xufFfs#CPte^@C9k2C*rMT%lXr5V3zgUxX}onLI+)yQvU( zf5eK{771g#pq`MO#G!H9*d-MOr8noL%P_;tuEy-^3MbJ+9BO$)$7mlxw|Vcf1cj;r#_T9yqbExlGa*PK_nVht`;g zM91VLJq|yGBNj*acLAH)B>WTWjX3{cK|N<9`386UdSE>h^&EO1*qi1d2+A_sD7*r{ zgvX+N@+;56Iz66}WAG5|x5EH!*wXm!I;+!oYVHSH$Azniw6*2mhu8P9GJH<(n$VOJ zG)-w0r76WR^kh27y{0FAJlXVQMTDrxq$QAvR(XShc3%G)y1#V%63l1)D*TMzP zdt=NEzE;snwAz^A{{~ zq+#@#Qp~n{B293;qW{rN9Ai|(SzWGPM-$2H(slZ%8Pks?vl4&QlJqbMNNlH?+R<9w za+6GJoD1cD=_Ue`gMt4l)dTHF(||r)yrp;F!cW5gis_ z>mg;HQf#MZts)*Sb#sjsp0o7w;HZhQ^Oat;dZ*=Ur*eI*bTn~!WA8Hl74Oyo1cn5Y6or# zq7A8;XFBs|bG@%aqnckLdu3*!hqfDma;nsfl@w?lA`54!X}y|n(vEf`MNO*{qtj@C ziP6a-VW($$rV6uUMuUZam}P~!0sulr35+|QY$k~cmlcsztmbGiQwgl*GbG21m^ zZuk-(jK!i?6N_FSbELPt&gzTAPhki&70uKp*a)-r^U%7jge^n0=&7ej>lKy+mPFb_ z@n$j(RYlVLVt4w%u@{EBqec3tZZ@Vf)?iF~z^Mc6n#S~|?3&KiIxJ0B`3YjCt;Y1) z_$jyGePXyYPxF{cO*tMLFL8wR<+buiZODQ}4pokK5M(k=+QSr7SBSI+q8RW)=lXb#vIjBpODi9#=(7(- zGjgcYBBC}QZ<^z*fyZl-Vj3~t4^XT57FAVlFz#zh!3>e>$siLqe;Jkv3Th}kn3;*XB>94ju3xa6NIUE+2Q?KH+|`TF|T7=8udh2*Cq(%SOBbcd!=|7=&* zxttE^Tu!WN_~+my=5%VD#63bE9nJ65pdPCM9cSXf;vU5*fZStyjF+yuhrA&fq^A$KYX2o190N3pm2LN19_?D|tyERs$ zT-O$N{_rx9A55sXt5Hi1AkLEE5AoG>L_9u|jmOKsQ9J2)3}#e+IUB}wS2EvsBrRx# zy5}NmT^jK9s1_95Q*A_6rzG+9U3%~fV+Vghbnve))`Nde4_*R-+Cw*{Uws_cX{{Pj zr7a|%0izZbrkRY|T$@q5N)AQM!nE(Vn!=Xr(T|c(4}EJ3Rht zUf5v7T-Y?cV6Cd@u^pQ}XV)iMUI~7S-a}N~G8%yYacrDOlbY!W{WfZ7p+%L5(qD~W zm+*+=#a2w{j(tN?-sXk|RTu1sV6wJYrZDrwF?b5q{}vF1Bl3lf4B9YIKO|T`!?lVS z>sE|K`h+QIa-{y6Fai{ZJJo%yt<}raY;6oiKwzocGTAPp-xpp0Y#J%HHHWtJIrY|v zK&Z9d_#5EZqFV!JdlCmAV1@E<1b>p5d>~JV8n1;*YeKFT6PGQ&&>DGPvvCQ!;|_Fe zMla9IC|)=G%`mrc3;eOtE|?hY{pU4IHkKBM(GV@{Nf3o7M%xc+gprrILM3~7vO!8_ zpF>Q*Xl-L-t!8;f+~M>zVxstCGM5Tbyf~;@P#saj2WVFC!HqyGBvuciPBe!qExW0l zl>RB(_NBsqqhFjwRsE>h+4rA$XV2e4M(Rd@y z%0U}){0SpSFmA~A|7iG2xV+fq2#(>cpwQx81C!?=xELM8#b{)4bg@0-Smr$*2`wQ7 zfuY#hxk$?15hrmXb_u`XBu*k2;MY+7#b}v#=n8l_ra+T48R>2f`n^3|ut~tk9gIRo zR3(hetH9N07{4GRqD5Q3*squCUc7=#6Z9xo06 zC?SY^rvgmg@EyWm8F>v5(+!;^oPpQS7@bU99nLZNtk=p3JQ_a|%Un^^SjU37DKpIT zbGQyRZA$8(w{)PbxHTi!TRI?ICz*0X-Mv;-o~G}jC*w^MM5p{svpBU;6rKeM8?KGH z?d6(D696r2&Jc79gFpkc{0QWvWAZ>>+)YT9j33%w$6SwRmPFUX)Q`9VH)*OuH){ds zraB-D!MPP=&;;jdfb$eMUKOH_&=U>Fh_)VSo*TLnQ*)OU>;p9aT~`1!lK~@Av!Qt; zp!vrdpn2l=No)Q6E*lXTg}0kzpK@#}cQgzGV#0ZJOC{mcb~ zC0^T3mUt$XSlcl_4^)Ng)l`(LuZUzqo$lpx16}?opU>9M$G64vBdC*7-_HBGdiz^m zu?+tOgsQ~5`t8rjUELjeL36BI)ZF=q69IO$EUY;`n6pLM)ecf!l46&^T#C)E#P5X7tRay3ywf9>VsrNL9ELjG)EduQ@f`av-rjrKRv0CK z#=4<9%=d#%mWcFHLhwI9<5y&Kp+P18<+NSysM_Ozi=e}|8v7+_vK-S6r9&1&CC%8= znJ#9TlC&EOV9A*?HwUl5n|eV6chM?!(@qyE0;x$JG)D_Z0Pcr?QeW8)wC2F0*n2S8 zB9g{HT)+s3Ef*k5N!hq_Bi*!p2c7-Ff;nKKxJ)_I%VH{xKgTj=K@19bbJrr>H+=U) zk{!MaJchul8`o}x$LAP&g&MbUbZ{di1F62da_lt)Q~YV30m7~N4rR^F!th;2*Bz)l z+ks%{uD~krLO`7*xZ7cvhzzODSa^tZ1){Wk7zOSKKZ*5>l}BJ5YK{G)BTx~Z&R>er z78U?V7)f`HuE@3WQTPu2VBK%omn#Sodsn7A*rSO%I2@vbk0irOH_XAE9X4ik!hY?|>4+lAk!M`YhrlC)v6|Rc#KXsu&lkBMvbqEcdvn1VEBzB^%P+7s%hXN0 zK_JGw%gA5v3Ovv7Fz&+dU4fVT;mIia9BTk=0`}22rLvZp%Mr76BXAcaC%|etu)Ovc zKA(PxYcPsB$3#7GHseOXL`pVA&!TV~r;Sw)6SbH# zLG7TdleeWzP_Qx3kONWiouT@d6Vi>s`se_GF5$N3C$c&0Z0V1kFyG_-2=Y83DX_V=>`@=>e;^_Y&jqubgR^yv@0mK*~at? zUci0xx$kL4fQgN@c@^N+m`>kfMALUH`+*S57{3VE&iKQBT|M zaWcLy{~59H?+#vtq*m8sjF-8P;KUu6xYr#Ry~7na#T6Kofs`@swi}%bHr4@>Oz#yu zqfxJ*rx9w6#{W~VFdEfqgoMr}DN$VBD`3t$yz;+UQ@XR}wg?ok?r#V`F*dtUY7jV}e6L1)> zF2nx?j<%KW+|3m*=2!ZDg6cw}l(AjH=K~frK7ype!U|C0TO4c?+|{bXJ~Re zFbnJ(JfClWx^d4|wAcROGk?Zf8PmUKDwJ-FpRtP5CM)F$B}K-(}1% z%k}N(lAq3xsZmshVQ(WU!?7qOBD>~&ATq{v9xyitJg8Cl2do5yL_7|zbUdwRt2H*a zIkv63Xe+!CQyf+-=1Y#idosbIhtJ%DQdf3UTo2ik_fkY^DI)EtxqTdFU``Y7 zexzQUkFic$MA{V-dJFjpUb&FT4j^NNcOfQ$M`46O*_ray%sJ>q=BX@PQ+%KC&2m4Locs^ zB==~dmkS^N{qC3J(bm6`UY^3SrlOZkPmQIQgI^MQc^nF(^s=We+}(sVgxb>ipyKYDre(93fs99{JC zp;v!Ddf6Rq{VVC^mRD+^m)jb}(#tl_3cdUag;9EWx-MKKHHBUtr%PVf)l7Q1`gkCyP7^Rm%U3iJq6nZ&Pm;6CjGwJ0mDCEC*|4ZZ-m-s~BEWB{W zeS1A>fXPt9{s`A%ox{yZCp(7PIi$)?*TDqap$J~~@UGvY4vY{F^zrdgTaF!`B5I4y zwzH3JYzgsy7Cb(S;Zcc@Wuvkjq3f%ernjRzcxwxH@a{HdUJv+9!Gl?+x)Bk<5wygZ0|$KDRT#c$>NfakN^q$;2rdOLtGMLC{xzOS@cF8! zDHg@n=M$XKy_iQ#>bCwfa3+%d{fp`EpJUJ$9ig0cq^O-I*g)-pZ&}K`9(`(xvT;k| zICScsxRBPB_vqLZh}khaHp9oC2%#$w#u2dtYHGhua{Eka$fn|B2LS4;)G)IrJFN0B zh7IuE#Q3@)oz(k0DdX3?iAL}P;tVi6p&7ph&^8+pGXQMx))%!S&L&!2?1sTY>m-w?& zOO&fO1M++fpNH#bDSr>ovHqhrzO?gEAZOZoOjC^kj$<@{5m-+<5k-R`67hwJ7vRm= zH4~{OnnY7E9X8d(vv5GM@<1@KKm_rByCS2Goj{_d%nP^8jJ~)QBa6nGGegWxxS4}u z#)vUfkwc@s>OPD}8xGW{ZPvL~>MU`mZys|4q5yR0nl*YL`fq^=081Wr;1hB1^}xM1 zM^8S3B2?eRI0rfx9O8S8&By9L_cK;}r9QPSkl~?CKZ$8@*dAsCtsXpokq`yZ3=iBN zo&U8~)vwI|TE&o#c2o%Ub$1EsJerqljJYSq>^ifb6_x@DE1FB6^8dsR8KROsi=U*$#gfY}p9GY2q;@b8Lc6 zReE~y2q9}iPMy%F7V@aJRa28(Z3=GP|$jJ}v z$kF_O&dC5CVyy}_&_$hzU;}7ftw9t;tb>G2Y3T@Fk6w_boe72z-95M9vjU9P42V*U zo+LH_@K0XRB~2J>A#go08~vA!Li!v#1K$#}a0D13M{&D3ijM`!b=OGlL9`DfXGW>J zhHDX;vmWnrMn%Ykz)(eu_u`zkgkdpJOj6akiT>qo{DSD?ci|(73?zPoD>TB6|Hm;B zLAnAF;>G*`^7#zH#05#7jKIW*$kICD{ru3a_?`LaHlkaNH9x@<0swBp@G!rX8fzkm zKnpCD=M=6_0Gn5-?kwQ?^r;BbzupyUb-L4c&<+KtfDbEEAx~_JD-c!>ePs4?jgtQ!G?Bcuzxdvr9hS8 ze*r&-U&0?d=TS^h^y?V^E3SDuiX$%i@{QI6Hb~Gq#>cnQ+Y4|Luo|-Mli0sCew(=j z+#tYM-=y}<1sY?wKh16*N!$V#I)eiCEZzw$ z*IPe7!{<6N<^Aw%#oMsy3*&|MhQqw-(NzbUEg>|#pGlw)0F|^fFZU-ZFL#BWTaR+` z75m5O;5D@ofCfRzM%r-}r%P1{TvOM}z%`z$5VU5@0303Sxgqj15dNVt7dWOZl-RJ~ z{QrUYt*F}Ej#bkE^OCz$t=^Gva*UJKY|}k3Zum$H(Up`k8|X;;I3# z>$4i$Je%ZM&1!t8x?swuwLBN)zK5A2axczzXiBBLkKFFHJU5yMXB28Wt3P37?`A{^ z@pN#Mcg2y#SugL}#{6{fv%KqIek}17@B_mPAh{iLgXh?}fh6cgWHY8Scn3z@RYsg} zKbp360!Bo7*e%PLHd&Agg1;a|q9fR=jc`$tS8+blRRZF?C2DdeCNm$h+UnYd|55bq z3cXc^Z?2HkafQxpbIesJ90`y)b0{7o7sO(Sw0FAj9pcx`s#{U7w8AoPm&mwim3j57 z-w*9_Ja5b?tVZKFrk*9fy~leSTdxxr*Ok{j*@D})sg2-<&5?QM39=~9$-s=Tc1YBM zk7nfpvjd#fw!F1pPDav*TJma(@qZ$gW~9N%pJ}#cQ{Ay zaL!=% z4m*S_JV)1GN~XZm&smO$RKUsQ-2@=$A=5*_ldwI7mMqw#_6|95RLhcmSx*xSbv*C|K0 z>p6pMc5w&Wxd9!Q0Yj?=XPRwBPUqJXz*RO?^17P5a2M#DY71w5mA za}p2(s&fI7UaV5X@gnQCM_ubYfE%%aVc1ZCgwq|NNg4Bq8L-JjTjjM0z~L;ks!t0y z|NM*OwA}Wawm0>@db*iwe+k$AI&(j-H$_I-3k=^4_=2kzrbqrcH&B*aP*IRqROfg{ zdH#BU0B=+N?f694w1Qu7x9NZvLiH(JN-NlxWB7i?gEO$&xkBX?<*)Au(Zky#Xm=4gYi$g&NB*p&rWqaU)(#_Y4p9SYNQOi!lR& z+Gq#gb*$s*73#4Xzl@)1cl&+EV?6CcJt|o`+%DbJ@mS9vLOm*2dbM4;xno^V{lGFL z#wZ%FrDKNoF5sKUiKGiiOxZo7sDB$=48{^ff-yXE;LmOBEUBW{#BeS*Bzj5R+W$LEtAcoso}#9&tY@Qxj?&)VNy zGv7daGvC1bTuLosu2SVQg#RCj4J1h%-kTy0~D#g^YDa?nxq4Uxs;tbz;txN~4e(6lO(%kwvwY z9})a#E|cs*CxcW6fhr(u$RoCTp5cS{c%6x$8Sp_&{wn5g#Lp1hGVZ07fk0=?!$v}E z+Xi!D-0>qmBtEVNF}idK5qCT_R7@OE3~kPn$dQj(!J*u@n#p zd@k0{QvN-jlkH`ETl+Z?QIr8lgAKuu7lXx5_qs%@5ggV8^SQ+t%3GYqP_l@PKU;uM zXH>z}kN0IHyK>x(kk5|I0F;Nz(P;t#i_w=+&m!>Vq1cY?ShPlfuSX1FXxC{!RBB~f!)y8nbE$g)W#9)%Zt9KQgoLf z;e<}{GBq>eretcv6U2|mzs*KEyBPaA8xm4#kF5;i2RQ61^;k?(b|h@7wDtfN16y#= ziV%L&oWb!#AjnSkVP_5>Yh@HJ=jlEM<%sthn%oQm+HORKS*`#E4k^8)65Zx`TQXxc z(8#d4j-Qzyx&!i9riX2gaq0Y6nRv3%VGs!unMJfS2G7*62fR;m$lu?tXCJvAIa!(| z?&+qKGOniGAF; z5SDL)y8csZ(6>wL`gFJg(IocMP#!L-poH}`=Jb%jPHu_o0{di7=Urm0DAam7IB3d0~i&ocnI~*T&TLK!3W_>b= z%G_8WV{VVqkGYz2(?!)(W@R!YURe30NPC$3o0o1fVk?SqI%{UckdERSa$OMgMRR{M zA@-Eg!!Tk1x zF2c)Oj2N$W-p7b*;(0OV7*62DF0?v{y+QKfjTQG@wrSo6h3S{P>aonT>``a z5;zwJsucN>%5W^>{fEcdR&$IblFQ$ADo?~z4c`59% zgdf`<<)nx?P8q;!)FS36I3u8~4rbyo*{Yt$uHf;8s;5ewaid)ICQE*T!F71ng>~|v zN>U!JzMvUmWz-H>Aralo&mg8Sx+;@pO3=xLRc<*qr4)Dc7d03`U@b;jB>tWvJsr=K9n7(CALJc3 zmKAy$l|eByE7Wxe2{aj7utG&0?d)@3@FlJZ@__{HelEqUu}y8mjM!8LvFF~K*;G77 zg;9Wotx}V*-lzi!vugC^0io1L353ODCd(={f1oboT}!YT^wrxm_5Kh=YW|;zx0Xmc zydj!DB130WCQ~y$PDX$;s&9E#+7vKIxHnaJZxkkpxC?{Q+Hv(A7T6rvgfC_*= z)-_CBpC$h_`K4&nI-#A-GtCyB={URwW%eJ2A^)+(FP)BYYJTY$JlW_fz@+OMTOo(t z7G56@cxMT=D!qy8h@|iLrr?=UVl1qoQ1X?FEKutRtc2EieKau^^4M94*TFlrlIx?j z{GD-d{Nxe6;G21w23Isnw!$(EI2Yf*6-6$y?{0}KQ3BipZER58%<*_lCfyMu#E{X+ zL5MO)yt#$v;m>dCW&J`uYY&X3Fym;Ogll1qPGq~M>2{M?Bfx{c>?F)UR@85{ZTK&@ zR#e(Y7PTS3dAkZeE)bTVJW-hZ9T=mm6*kV(iE*~yA~c50v znl8XuX67XEOFxI>`KA2(iFc03FC7|?N_LgRFP$eH9tHf;g_zH8=a>4G zX*l`a`K9U)tcHJQe(43f;oq5Ga+?kRW`61W&urYG`K31o3+{LlIqlT3_HLJR6imD|0+lc7m>|d_w z4MmG9*oBuB#cpEMH`QwM+}%jsHxAdQDz!A>S7h9<^uFQuQID#in3t>6OH#N_O(dp` z|FK%#haV~ZVavtj@-XGzsHjS?&X#_N>p3WkKe^*Nw^pD#8;Mmpv+6}CWUIB}khsNKy;#_qM}4a1+NlCC1N0f1ZHJdsTf6(N>vbxph6ZNRWUpic=0d^po0CSc!C$f5 zanqL;e|kZ!OBx5~z4G`2>ng~Eso?3V!Yd{AN}Dq<6*Qe>LzBkgp3Aw@T+rB!SDi7o z#uIVoUk-Qnu!PYySsnQ4X-f!RXztm{{xwj2~KprzKrO4mJd;xIJXC*na$zGLH%>Hi87M}uz%w`+y6^Q@1eXXxcMj5sz;^efO^|9lGcdk!}_$?`ZF zS!E8)L9ANvYOMCD7Y#TyI2adQFB;G_I8ZkcTG{)`tYE&4qcFqi$U8yIi`mzD8#{(r zv#xOPcG7zf=@dMU85urUeyv6FNP8e67?~SclB=$SzPY_#9qU!PL=0D7t3vg9f!pg@ zZm&11N5|t)H+-;L@NhiJ!3T4!OXX2%d;2^1B5wD<;~qNVIgXp3ay%c+ zUZtV-e3U+ph2ngkm)60)5Ue}-dSBTocs}zvbaP6!^^khh6_2{%QMcf6c$9-jIo4fq z-|#MAfrG!|wdF?OLza~-AryyWCa|neV9?L-=xW@w7bHdi)OqtNZuE%L4lMrtxYv1D zVyPSdelCUV?=b%T1zU+Zhf0ha5p2i5Kl&Pvoq}bfq#n>t<92UES;G7A9ml^90d_)Z zI-vOX%P9k=ihrL~uMQ9O#=pO>ZuJ30vg6;Uw>^NO>hRWT zKx=aR``NT0GX7lwGveO|+VStDVlD8*ze`gU|2`l^{JT7MnbUCa+~G@RWe#8Ba9ML8xaNRv!PC(h z7&chZ3GjM?6)|lIG4`(u->S1(Nf)JUZPuY1Z^KiBkheBWQOgFQ#ld+v#e(yKWkFK5^098_4|Co^~?h7v6_2ej_pzqP}SduEEnk??(c?FwRFklxio zT1Utif)pz-x*<6tR&)Xa_sa;F@{kWK#`IHhe|RJ>7lXbrHDYJJ!QMSnE2k?YfKdm`Te`x8{y7{q2h)1L zjd5WctcwOYyuYYxEcp#hqfg6=$i*{D`Qi?(;#7H2Lc=y#nRwA>@+CJm4DEb0_Cr!x zZ~c9oGPChaTYN|&pVuhUCJ#dNh zvC7UWbPeBfGvC@nEe{~L+MGI*`h@MK>|qb!b!ZLBylrXI*Q0OvDD5-kYw)XBn{#VP zZe%`&10dVeDtI2mnF1s@>UG5twyis`#NtHs@-3OZ7Z2zA zfJN-(WQ>>w*)H8A9;ZP!6XJ2M60g#Q99MkqdJJl063RZE1T-7|s(?nT_zD^r0Y@3X z&&z#h|7X!&W-%PI_!5VbBFBvZB}hA3b-UWWU*Z!!*d(?ufhTJeCI}z*OkK_m#e~Ze zKu#;C--fw|K66sGoY^Zm_sSPf9sZ)5kg=Y(7GWId7#eDJp!bC;lX8}>BuU74^{!)l zQg(DD>@p6%2Eyaq{6d7V^iT=dpS$^myU=ON@(Y)tSCwDLKzsOSKII0w;eE_61dfy* z1B|ir3$rmkSH41W_604;FRTIFGr#b>zc_nV-~?N^E}HIs^LDVN5;!eBck>Gg#85F4 zmyncU$H;`Fe=XFwo2Cg*;{Oc;IaqPZ^+1>t5p#RdYZ-b71@2xwdQ0v&886(f9!`-^xadeu}oKwDg4 z|Mn#AUk@xN{cGFoXn?^Ok9@Zhr}v(n(UOn=?B3@j)4?a5-J6bMaRuYt-OKfxH`}|n zO$&7gX=|)X6&7$s*DMl`_^1?d-yh@l-qr3srUxq8i_lpEkD~YEA2%yBMl77{>V(c^ z=<{owp)cR1hVF71;RwoE2CBOmkE7f1k30B0b**f6gf8ScNQYF|~vusx%oH&n5r0pP1UJ@H_=y0E&xw7d)2;Jwl>6sbrh{s=Qx3}Zv`x|~ysP2ns#7A%qCAxxgi8-)!?*Xl~(EYfMG8xKx7|M6!oyyWfGgXCw zyEJLtVpVO!qwB1PzQUiO)*m+F&yTG`c=HnLc?3K)_J@|x7g<-q0ud~EQa8v@7a3vj ztg_v$Fchp4{?rGBml;hnZA=Zf$vtbmy)FWi8>PW`|S`$SkHy{Bz4JmAbJO4v# z?&G9@48(bxuq0+SX0D$GCPkCl%yo+Sy~wBG2_wk6D&A4|sEOb=+2)5U)vX!0RkolW z|E5n3JvG%722oGACUN+l5*ew6zsuV72Q~cCF0rBafwzq#Kp;nhHM5@NGlf#1y->ai zjYd(c9_J6k2Lr*5OTMOErev|xIvXdR?XVsmo*-KUYYNNzBFP!AWRy=SXjOWGUcRJ& zp)?@jAbZGc{>?ws$`E)#tS90RXkWUt*>(t%Rsv#z6;*BV1$aAgjU=%LjA)CG=I5j> z-fI2xF=vZ+P^gwI9*8Zz&>wz|OTaBHTrO6QGiBJ2J3SM(o&ar()y2~DP)!48KwunP zuN~F}c$IcPoTJnfeGdO{5pzqVzcW%S;+4tWU1z^_=HYg%8Z5eQdN6gP>qjYh8^Ov= ztYuO&DV9;p zuI$hQ1{I$%F+0lWr*xg)liWF@jsuKY?|qt*_P)5-miFpe=Rn|G8Zbst;N;X!KTIv( zFua3tP&uryt+G09NyxSDMZg#TE3@ivq3F3R-C%ZIlZgr}>$Fe@yo)5B!m@vqIn%@! zfvZRrx)Gy+8dJlG7FBk2W?5XZDR?8+!5-Kz4pjqN43Qiy5dgJLn@)Iv@WE`Ndaa@z z#~ePi=oyhb81$@?N{%eVbi<`xGx>!9m1jYmn3!D#P2O*gtuB28iX^NDV{3x#QK$y$ zCWO~x3&X`t7k8O79M9TKxPf==ls>#t?_0eo)wXuPWD@`r!jiM{TIdd73%9?tH!_cJ z5!A^a{5MDx&-E2)=vrQHP}ie*y&Kmt@j~n)g|vTMF$C6+9w5~=nGT)?5qt%&PO0sd46Y>V=VffjQw6eU6kDkZrNUnwd+)(JG4Z z+@JZiHhmf{l1!N&b>bJ62QoKk)2~2-1F0D`uD?iQ9}st`OSHIV)cL3e=oFj!9bOc$ zT4P-*V?w2V-02lPPofCz+ISa1+M z7-r4ClJ_Cho<2CX8ddnFy&45FK(#~9a+}Tm1v0?4xvQeT!3_)xhL8S(QO0WM(0z|- z@Bn*E5VGB>UW3z&>Ek}mm`XK~oMSbw?BP9jG{pEt7)FN5^Q^P}AMd#Jw!WSKp*a7Q zzW^ylky?cFUw<6e*WfyaAe3j6{qWg$T4Fy``C^oJs{JUUXottGw>sj}0R#LiL9B5L z88%@XX*-Lz2YCwr3>L;0FqU~0NEZHi>$eW?qftijzG9e^SxS0$z_9EwAltLf+5^-i zGW-H95hM&P2H8@^$Vxl4X##B3xM?CxV4NzGH3+s5DU-!GYwbcIs%Sux*Of}W-x!x2 zJxhAqU}-mrF^_%tP53i^qKa9KL?5vNK`Nzb=>@T_+*($sBUAy2pHdnIRnvIds47)Y zN@#c|e#@;Th5A+_YqW~LqpjF`PD4e=+!emn8}Vh=X6}be!wK`47Y>eq7)URk`k9@K`^9sr{p19MuYQ$!M9vlCN0S#NY$wG zK%1kKx>2DEdT+fBaSXDtH4G{tgtwzGd{zB%s3%rd@g!I+s}QLUhB4EZw^R!a!H;GO zll=Kek+7A@^nz9NjFKBz51Uqv2c%U3=FBB@NJ2PCCxOMB^?CVYVa z#$qrK@~UaB>ISnYNC5<;IH8L&)Y%|x3G8h<g+6VBV4Z!G7on zbx$D-ovuuopPr{onIafa7P=`rdJUMEYrAm~+fLDf>3_Qyv0-=Oy6<_=S@(A#hp2TQ z0Nh3$4dTLfDHiur2n5m5v??am^h(pa4Yj{_duNKS)4N^L3%$pXR;z#;u_<~f{zjd)3^6`%0alHccA zota1V*!865#c2)AE8(*g^W-1#KH~x1#|iHdvZ%)9|^RmBRe;;(=M z2yj)6rv<_zA>^?zVCQapS~j(TM#~x*xjD8%I*Emw2(TG%lWT6k!2fyIpMML4+qL91?D=W(v273QU3*AKg0s{R!7joY< zf|F_;7aXM4@fozns43Ep2NQ#DDQ}rpQNz^@A3E`m3DRsaXe93cMBT3h-&gMHvq?L{ z`FqJ2e+r=p*X_~9nxU?b=Jk`fPGMi8EE%h()KQ}_Q`aon+Hx4k7V9Z3=0e%^l#a?> zCCi{^F4oE)#e?V{@ejIU0j1uMF0vtAw4{L27x^MEuz=Eq*qsu*n$?2JNmDLxUJI^> zQ4vbCg%~cR3BR$$8Q^$C#?`~Y2vLM_wBh`FxNhxws?yRJb}XNX(snmGX3Ll7SieE+ z5(wm-v8tP(Ui`%Shho)`dCtO8C)kChnAJn#wiwSGVTKi@mUBUh$T56lF0~hA1K}+K zxCFZiz$GP89VEPx^^od5yjW(o0Si(n5>z(~yYRZaYAAMKO`K z`a}Jd%HsX2zcP0?HpLB+CS10849mY2qyyLEdA&?spUCUC)b-cZxPDcxkK%p1{>sB7 znc@7dYZg&53?84YqXuQwb zuFUWh7NEBC_se!ebVLe1a{ek^Ap842C;W2i8|6ee&vfW@)58}c}S93cEE=rM;mLv|( z1?ysF`G8+I%ikTH$@04*vAq_^MWc)uy&3-?*im_eAWna2`Jh%-NKzU?cI>3ITOTJ?_L$gIksS7AymTdLYQGPwVU|80gAhqd18_+G7%QSgkH{;|QyaG;q#qWeeSA*25e2~Y_ z5xnbw`_?h)+Ike%ubdsb-v#$$s;e7cCH5WL9^Z{F{(v}auqOWQOSA_UXDtqD{=6m7 z5B*xdFa3F2CukrS;0D(g4p$r@fWqvx8(RA^oAlcCt)bjTe0ghiW3NvexWk7#(8Xw} z1oj}z;|o88vVifb^;a-H6wF5XAjo0E8?<}A0&wbP7Wt6hEPw%0GOK6#!?$E@p(247 z=O&CFkx5XRC+^gZt$O!e+H~eO_yGj>K8_2>H+VP+4-ty9Set&o^H2(MLi{LSvL#@A zs^W)Y{<7c;^Vsp+o7+y1=Qw0p(aZyv;OXJ@uFxyZ98;ArI6JNxGO!OJ@31hh)K6K^7Jfvf> zmDwE`0!OHO3+3L+)~0TV13UzVLqAm^%j@9VEHAqfxE#@^gZF_<;NS5I_60WuBufl3+ zTakvbSz^5RHOS?Y5T1*{!xEU2TTUmHuY#a&bpt#pf7BjWMt}tf`-YDZMG1TcmUXjr z)g@}YEa>Hqchy1ec(3X#+VD7)9NwT!KS7O`derfkD&6+?(ls13#?&ge5c<@5t(+Br z0w$_IBJw8hE2so$7|2_%3Zb8UDt1kRccc)yinKxq&PJ|`@|MjHs1Nkvd!BxFfKRg@ zaM>p7)2>RL$KO6W3>r9z`nf?DrMyh;qgIv{8Wy*_df2S83lwl;p3Iu zQUF}FRxulci7w_VD8OO;7EBxvEd|sOiosJ3)@v1KV02F8!B>(cUT+P?pn!@%K&b_$ znCwsOC^8fdy94ASU?AWVWj#bIRpXt9)waibsXg9)p7DMSIHNJ)9Nbe17c`hzgbP() zy+H;Yx&(Kmm-j7;^=X(YtA)P7C*g9$+B8`!ahvxn-1EJJfB0XS-yGvu5kI$H%Oo%+ znn0ihSf3QqDY8WiJ%tx-i{D=BFu&TX8Mp}nB4*zhD}zlPp!E>CN>DvZI3#@6hfpne zlCXDQTCGkYg1?U`!@+WvaD-#LMMP4HvY;DnDMxxlkI4LWah@7 zVRsxn3NTP)tOMQDJ*?It2LZ!IQ2_H(G=MyffA;G`wH5XZPzyzo7`sm*xFAV;_6vVx zOuTU&t=Jf>&XBBRXREBvNV{*X;zF!|tdPjp=c)Ag-I5*;;!?pcRN^0!wJn2b9ITp@7)Sm3@fFjFd4FjZN zy46&(NgX$JPzX_hj)|;#_qE#eg8+G?hOyy5VC{qc{9mgIRA_LAT3TM(uVW@_G?`KQeDsI^)hu`$LqIn zout2s55ymy)B{|=`tvc$(f5p0AW$JXE}uGMPbTCEar8X{S0(HkW8vf*AB;Diw3b#V zel|hrf!3EGh2rkpF&;jn37teyv)+@tl7({wv0Djfj`YRYy6`942 z1WySLkH`q#w@ya2thA1V!tHf1Pg2;NS|tahL?9Pbx^ltTGOhfVn4jMS0#5-4MZDps zU|6iA1pV{_>!=e*N@4j)s20O;eksl}0WTpye5kyH0CB#wt}|bX4?#sIRaCuu+RW}! zk`Glpd+R1}0p&gDjl0q5=-YY`91O7l-U2W+_y+V{Re{51?Lqle3f8^}3?LG`Q&q{U z5~_x;&w)Tu5dj*PX(1jXE`B)mVO*iY ztq-#Y{B2vQ!9ajuJIo6tLh8c=ZU55?;(yu$GBMBNfAaFP`1&yQR@L!b&yq;$`Y@@O zS+%W?&$&y1l2-9P$clgyi?4C*PQ5>OeQv zx*S=JWvYRu`zA!%S>O`YLWj0nW;ZbkzNs(3a%Ir-N|}Z+Q;j+c$$C1pD?nn9BWv(Q z^dh~%>+JTnCnveL;GlR?GH)lT!3UHl|Hey3&BV({6p)s{Po5yvtO8%+EVYW)Fuayc z@2{t;0TFseB0S`EyeaUz-g*pDA?G>;-TD}|o6O`kSQjS`V-VV_6pP+HyHb4KVEyS> ziqDCu74WfD@@f5fs_^a+!dIbjZ?|TDrewz^SpB0{VUNkSTCl#4c8Qx#D3|Eyh9!}( z4ckGwj4YH7=$2TB3RRrrZ}1(M${hKCHPL58aXF;lTg&#L!&K6J-D5r!}FP-8*{6@qZ#}QDHD$uuUxKzXO z5BlvZ6xk#Eq@u`D5bYMX-v{FQ6}m|ZDP(X3o<$q*5Bg5B8@Ym2!nnnD)WPk)XI%ew z-65OmX%%fa`u6xImWe^m93Dt=iBt5_?8HJ?C&eeW1_9MdKZ@#%GAqYG16!_#loTnwQ)K$KN~X_=N%9NvzLMnW zDR3ltKP0tO?ywD376%>g3p)nGcX37wF_M*-G45!{M|6!*?6a}uw>=cLe6o`eSA@i^ z?rX&(R!w7K#Ti&;NKKzWI>H;2np9-@c_6m9{||M)(v`A~ClLGOx?k zbp@|~gX=W*iqVi-;TX$}lr5^pJ!0wXFQNVshw7}SaG7MVP@$FAwB-lm#SjiXF+4^PS3YHtrWut4`}n7wHMx{r?}vxdV>85?Lxq3SCL^bux`4@4TfLqBdVpNWl-u7~D=N=HCr zgcxyVOg%=uIp@5zNjP~zVbvYD0#<#B*D~B}c$tDKU?EGEfdIvrrq_z>J29KS3zzR2Z%%`O?g5+WScFMoH$wyf!Z zp2SuHZwXdCv=d#IEeK)s?Sq&2&BrToMayNy1R#Xp{ELL3na?qdyso$&ATbid8w(Kv z2Ba{>8p+bDwgr-FPQo4{ZPJ5E2w2QP>oQWzGxG&{C;Ox@GEnJfTTX|)^|b6H62bJc&~zXz-ANpgonUmDj0)%oI#j}uiC+nJx@&;B3ifKXP?>Db@G1|; zg+Lz=$K(Y$-_3P%xk#Co0zRBnrX*nko>vmiJYHn0`dF<}2#rRtQVZQHiwq{U#`jwP^^L{N{u9y&NV z42jy47Z6iD5qzWL&3RS&!K7d)PJbo1qHw&sF*}H$Yeie$VRMYX9}0I_cv37OvaU4> z)brF6kX4euH@J1w*U7O1Au?aZUE)I!*4JL+f3KEM( z-ydI-my|}Y_|t^!#zB@3yj5x+f;HO%orkyGLcjKKTS*5lgH!(RJHX&R5tVzQsu^AB ztkML8FHsCwL&JrTexTnw!dj))DEJ(xAVsdLr->+rh!Z;qsRs1M$uEjqpycyB!Zz4R zIaXwg-ok8AR1x|B=>h8O!#o}qs5`j>7YN#Ri|a=N@I*(@Z*>qa z8q>CICJErXBb(h)PY9hu0Q{w1KD9Cfse(5TuN2Bcr^n~k$tNgE%6jy^Y0LP8=TPE} z;CqBVh$@TTbuA_=?+h@nD(_`SPTtNN2IF>cFv<3G9MMux>r^TsLOYb*I*uZW{Ibh>daScG3}qC$;FNV0wUE%NRn);e6kUOT zgnyW+ld#7lXf$ErzJ@*)mxTR(yHuPq2u=b2WLLGn%c#UD3)tqjl@|Xjl{;1kaKlBt zslMV_NSGYLL$+ECw>Xo#oqfh6btPg$Q2hf^C!Wn;||?iZeOG+&!t3CX?#BohY4Rd^O%gMZu^c&q`< zZvC@koYfiP^dGnNTmY@2^A7ai1^;-Ztqs=sy+p5u#SqXOOkvsCY+ZkvEo*({QLTe; znFTX~9U=0-vqGb{ntFh{ixD#f50NDdT&1QKj$Jkd=rf_9z5^dc$&aGF6e zuPU7^8bPvheH)0VQUk{0${}=qK?wF*`T09l_tB|*bpdB~;vkH8ymc6Kq04<;Zm z`I*h+vv}C)fid{!_B8xaS$AKSQ<^udLot>LXgk80?;_QLp(Jn?z$thLg&&6n8+E zZ8fR%LZ%Z~*Y!~ELU{HzZ-QxIjrA*eqpndyn2V!bt$;lnCmd_j$MFrboN|he0z|!> z@J}tfoZ42J0MI5BZA6w7B1p9m&Ap8U=!5O`n@wtG!n2r))NCB;Tbk2L@Q#?Q3>L>x zzxxqpZq)iSw`$W@uxIlil>?Q#YA(i{p=Z84p*Z>st`OG)D?|}R`&dM9vmaiE)Of-V*;5;$OBQ&pj47Z2cAtnNBzG6fWSyA5xu7KFn?o16ao2l%QF} zblKF$SnRUKj3NT!5EYcFL^u<|q5{TL5UmXs2mxJEC<-p@>~pK?%ml&M>*uCU3+1z+ z^fLIQYJ5s;rTD-w5hP$>N8=7d`9x%8`&7DnT2b{Yh9VPxgvy^1-^!rg>zrjb*nTS( zloHGqZToYp1jPgh#i~@{W(rr=uXcs2J|KJ1F#5(WTW6pEWMXOXY7EXL4Af3HTOVht zA%b>OG{z!PG}b~4G=*pk8jhJFw2EiOd~W>{1q5JpTHtsYIWe3NCbDud%p{PNKc?{k zIiv6)B7X}%eC028t-+u&vB=ey2A8(YE%e?U7SK()@Aj>}}g zxIzpam*B&Rkl~4KD9M6&m=JUOq4nb%6=Y}?hwyb5Iz~Dl&*m2y>Lv2+`0h%8q(_P- z96JR~D}Mqj)STG3>%=6EMVNO|fZ}=1SeMh(IB?2vPXjb5TAL7Vx4ubw2qbGIim4+ z99P@H6)D~xkF(sJqVmj_=)(~ef}kYDpLT+&4XQn2M7}}wdZ`ryr8`C>5FrdNaV>@t z2;Vw1V4T&JLzsy&TZ2Pj3@Q?SF?P{gXd3iqQNQTz$WpGt(PAx)d ze~aJx4Xvl?ne|QU7Int2##3V7Vm$vM*3oW6C7&)8xIpi)+0i_#Tfaj0$gUdi_xgA1 ztSPt+2R}l8werhAFDSp>#`Onj0u67d%g7X=rLh%6B;#$YODC^+E1W-l6k4B()>XIS z^#|~O1^!2^6x4(%NLa6F8)pg^`%*8zI}3b^hEPP;a1H(8CwM|$ES6WrL+jy%1%xi} z$e+FkYlJC3ah_nS(!1uvh734bScUiW@N6CJtX^%XUM*x-lt~_)B-Z`YgeR=Aez8`h zWxk@HYT}PUwp-T36wjckZ0`w51$++|(aspGjUrD;Dv() zw*AuvV`ztdipBAV4?g;)YcpOt3X?@o*43aBSmjo?V%;|J+5m{D55IpLo1o75K`4TL zBG=T(k5ci@(>7A1hNLSHhe?YEjt0S{)}E%asr9W&uZD@4ip63t0paXOQM$fL+6htmy`ln#J6qj$ox49Dd z{2TcEaDHBw&nHh_NQ9dsq56;Cukwu^`k>EshJqseC`1ci3Q9^gVO}5@4!-((2Vn`l z4~rTI-vxScG3dn(Yd~kxi_+09tyuO?0`f8`P{tj|U{+v8P{UCc1$?38A}pz~2JfIQ z1T1+o&>kL(@p?S+--X+>(_*&wV79m3g4tfPyM>5<$IsCEEVPbMAXRTYA>V`^Inqbn z)Np)3mOni9&Da~rHYxpyKYT|gPL;k=eT*-AD1=Zucx4tA30XyBBak>}<%%il4sfKh zsc&YWJaAlbwZFqY&eR4>=1ENE4`VRA@YjSK*}8g%k|{Xq<^kH+a1!uM&i{3hjrlEm zt@dyUl}-I;D-L^PC1x`#_B!k1!^lN{kO|W(rFC(&z{1TUok*a-bgFP);&{r|3FsZC zXRaRK!$!Bi-miKO&cU$T71p&;)K`t!TN(f}jBo?~vdg;x@#6>1wGjtAlJ z;KQ}6#lkNP zfLtD=RosPEpriF3lvPdr;n}393Tq=6uh3IH9IBRnpyqu87y)Hv+DR3vztEJ^6TP{Z zd&nwbL1hcK;f+>;yM+vh$5{Wxb_abUWJRe^%S@>Lbq|y5=9ystuCt(ZZbk$0%!v>bt62KKaCLU^G(o9x;i%R~TtAHK*b2n&eDCQa4_)@~xrnFx-KC;4kE6RniIH{o&2;pddzZrbMJ5+)4! zF`caUw`b(e}`SWvRAu+EUIc9`1?=Yd`u5>t-x* zzK_~3?)PCGOZfiD_&#O3FF-w&$j7-`yAiCz+wb7EbtaeAQ%*ive&$F()yYy70n6qj z5sYVz|2e0@pRKeC9<<~S%dhzU=8IMomUV}qz^yqLESxe!F3ypHc}8l_9py#YHP)4{ z3TWwSnIO2|MN(jfZo>>fkl;OCI2o4#96!?sWCrr*=&Z&=DgPm#u#>Op_0rQ}uG`6t z`P^qt&4}$vhX77=dOJ2obUK=yh9dUxOOMuT*BzvXdlslu#2CBurXNcQxu5Gd<_Ku> zESGn(Kl97+eaI#dduZJ_CAJ!&wpf(Z1SNT6$J~I8z48lZkGP)J3x}yax)40ay7x=( z9>u|bB7I52-_G@i?=BGLb{7&mJk0GQAY|k9`2L!$Ea~H ziMzZ6XL6OxuU4hE0Ks?$2lN9zj;%iMPbcJveqe3HbcuCqpW4e&UK9@#{a&%j&1UP* zP%60k#WqG=75i53Z&-LythiZsp&{YJD~ds}!kFW+YyD5L2rIWZo4`R@{rD~rq`IW8V{A^)P2z{t$wV-}Da)gpxg@B{pZ8(u>HhG|NCH4DtJ`7PZnAWI97V6VM(gnX zJbu5cd_P$Li^C7dUj#1~KEDBcQUGIQ`H?`_vW3HeZiQNfB2rJwGll1lel!o{5<-X& zf2G6f#-o&Djk9};v^y-P0ET)r$5-p+6k zA4qSY{5#%AFi@WC-O<$cN!^?+puTx2fDb0hE4-LkXRXC;Dh$4u%r>&zo?fVT+QsM6 z#4rAvKgQzU`56{JoL@c+*W++Ks*3yfbNtWpsXSOQHsC~iMxy=l&-g_1_DhI8*?=sq z;xn#HQ#~A}2tIdhn&J95o2FKA51OU2YmUJ7d+eIat{27R9Ge}?Swf12oXZW?!w7GK zT~nLR_-V0iDi4KCp2WU632lt`zO#j0?6q1i6ZsCmKtGJ>KW`s=^12Aq!`pQG5|9% zqH$3_5)BBXT}d<`=Q(=DkC(=V9J&$jq^231aXi?r9g5XkvO!kQ83T0R$j zP!WxLK)KbDb6u?0x$ju=TXEZ3gl&q!H|uY8Y3|72v+Q$7kK-Y)`Rt_@Q)oQT>nOp^ zjgaMH=e@p$556=SJ0P+V@Bs)p%qK zf>1j~^p_KvIwT6rCZ7pQrOP7*aZGQ~Q%P_*AzoSG0j25~f#@k{=ln=K-vQ^F8Yot? ze6aN>kYf8mnZbiq1v$i_u-7kia|(i5Y)zJrqHpw-^AoO#VZ?XMPiF@KXs{G^fY{To4G4%4$5q)$jK`fArq?mhkqAQQH{ z3}H$mthtb8@j?%O-p-#N!})>jPU+>&&)V5XV5FWfa=&V;vn}8=g5yoiDJUrHu7$n4 zOYx4oynuzqAK{4AYb`w?9ZqLApXQRA7mJPY`5{fSy@dGCzUkzQE5NMP~k7&1cs*(W?M zxVZW8J&fmi`IMXtc*<~MF4En55%JHFZ?&)5XaB>T{<{$xli|HL`wvfm%r*JI%AIdE4yb>v}(evYt)qj8Jq=L7f>KJU`cYtg$y z#1iP|&1lL2OB_@grdGDr_>9!EJR!1?#a30CI~Qri7~Cb@qEfPeLs_?ug@a`EjDaBScZ-<3>OP z_&=zR=M$@wKGBDtc+tA?J@Vc%bfMy3cz*qLPy^qAYZDMde%+`ke8qJqz3COy+cO6^ z_VGTkF>g8_9lj$J!-L=GuY4nnonP|cu2I@;^+h(G-Py9`9&?m#u~e9k*v>^rk? zyEuY7`2TMBrWjaA)NV)ayJZXMJFL?|ZR7+kOqxlZ$KW?;N#Dw1OWNV5 zkmM$I0>IL1H}ujEnYtEvP0Gogy9;nqt!FmC7GI;+E3N>$zL?+DML` zxduT@cyzd)`vvZUk=EttxwU%kPJP;T=@@V0Exv5O$=C2U-sEd|+kO*o@#SybKGrwK z19!4~utCqom$m@j2djPXupb4#NUpyMg2ZJ7fzXQ59~I8c!mW_Wx z5PDVL%AdCu={DM&&TZfnF=~CQKMu5e8zGFZq6eH^@R9$Jt9tnj{GYdYLVI84O22Vg z0ZzL`Tv{i8F5EPLLPTL?zJ<|d`7&#LwM!25<-UT6W@8U>{JEfjZ{a3Zw>BX6kMbLM zC%4{*$GU-DjLWk8xhS2f`MWPJG*%Xtf7n(p|7a&BJ7FZxdqcs~ zU+z2p%myEJ5?}V^F2)D4)mL-;7-HsHJUZN$`!enW3~F-BbD=v+CqVvc>x)fc6H>a>k(xy}ZUG>eslVpZLx z44azAUC03N>L=Ce^W_Hx+q{+94EzQ$!hd|Y*q`?ij-somEe)cMKZ2*{hQ>Q37*v z|6cfApc_*V^iYgdD5=3cQ05^+jX@)DD}tXlf@K>0Z^182o)JL(Z_|xIlM5=JE5mf* zB`^c44YLB*M)@@S%R{QCEhV6lSJ@SKeI_KEj>rU9=`)V@8J7YzULBvO&%+vn^MM?n zv}KaXU`g@7~g1}u2b4gf>m^v`&PoD{D~^~`~HbYkZp z?Xcb;6n=Ynf6oidF?j!}2j1UixQK%i9(Z4Z(RkqQ*b*0+-Km{{z2L7 z{RMZ4%Y=Z39cNvHsQ~w>-vzjTR|824?g3+`uhz;bGWvH&0Qr(C)By&_4*`kn50IY# zkS_tqgTWir9w#V}M@XYF=thXX#vp(^3L=;#0Qo@x`5^%L1!dSZq;;AltBqd^$eYt} z2S`=~BvX)2klP33YtzS~Q4;iDi|D1b0{1i4;g1bOdU!T(S}UVFL9&Fl7MUT3a0Uwz z)xg$>YT%bCCCzJ#F@atR1R-56%IL~?WOBfZ)#JWnSORsGgWQaT7AIjYEG5Dk3u%1D zFM2BQi^gAbYK0+|-y(BiN8DCG762&=fRqJ5%5bzv?S`B{I}~pYu{Th(2qw?2ir`hl z-LKT$S-AX0UCxc}fEoy#!D=9@segy)63Ez~7-juHF&3=!QjC~A(dLg9UUKM#6Yfg> z_(z0J9RR)fxy>ItVRqz?PqQ0S7!_hpDD?|}B)xE&JcU>lyNPbjaGIzDMKRMFD|P5% z_hf_h%_VCbrH!NPRh)}#$OsPEFx~{4%*H(G%ENeE7zF`Bk1CwUoZW*9ogF53#F`09 zG{Zt46d$x%BGNw;OH}-jnjM(rZ5%NoTEEopQhrPmQGI4f6|1u2Zzao1K)frNX_h<$ zhG>>N0`?d!$1uLf0r)WhKL&ummH4X$09N=ASt0&DLe?m1X^4>+a6?t$4`6Vn{Fz;i zKic8p8hI9)%bPAU3`L~PjCy$(ZcqPG2wMoRpix2xnmF ziYjMh;g8KTL+x;FggfA0#AWUT&;r#tLW#+z!gj`*K!y{bPw+VoztyhxQ?!QQ8b@m` z(8C>$*1JP;Kg@>{ym)BN^az)KF1})O+MPIkGB^?-$8T9r&HcIwTek2hJVsg(q8FG4 zkuV?v5(o4U_$_48Cyqvw`Me1olLMQ^`;`lLXH=2#_%HBRo$9k(mK;AJtVximeaTg} zFS(|?TrTTJR*xOph?{jn>oTGr;2P*#+Xv|T&8uGYjro6^_#v-+%T8Mn_A&5J{?RP{ zK9DTm&WL2y2PY-Sx0~3F!^~s+{zjWrb16P!Xp3qB{B_7Qk|8k~;;+wG=_CFkjxl4D z4*6EQYQ;;$V`49SYSEMNfTbstTWPLHxcA_mL#Ba--LU+?VWKj=QNTY2kkFhV=xji; zb0pju3Z2R5W{gnnYLvIS$ef`hT!qx;jLGUTVY>|7%>_^tS3<%C21CB3cw31<@Q`rxKxeozzpD?+ovb+rQ zL%nS?2X@vithKL@{bqr;J4_i2ROROt5!-F&ZSUfz=#U=ZUjPluy$4M3OLGvycgj<(xqj) zq|6lxeMcY1O}{z26BZQ6n}a`Ec8EBP_3kBqz9Z~WDC5B*!Qn*gf#i{auSQ9w|AU5w zsO}h2_s;=d_V|7gn@5^JYWEuxvgdW;S{P>?;-WSIHIB1(=&Bnp`!l1c`R6k_boCiU z0JS{f?%MP{XdT0GY%&*EKdBx^8U)X>;S14P2z~S$pIOWAMrj0_Mesn}QxtZS??SkW zcrY7q1)$ml?82rI9KVB6>P{K9w-WINf7(>M4`7R{NHaNvg=+R3R@}G1ekpJ4c zmh)$FHV5mA5S_I@SpSh=eG-2Tu$wq)Dwyu&&zCHAn*jY{DEMf~}$^MIoB7B|D6b@DIUK8(u@;;87qwawyZI{R>v{>yHX_1~L8BFP;oKR<k$;ex%ADh{G?!B=plFLVbFvHywUWwDnV&8;~cUkSB4f!|bIXeqDm9C-!Op zzns<3Ld!5euYOAW68%*9Uz)_Ygo*aR{krle(7G@>57$&zxP#C=X5kMw2p0|_P(A+` zfl6F9s7okm%4A}O*Qq;D5hYO+?W#>NoIouVlb&e<(+mYfa7>s2NYG4Y!CE1}BmhM9 zbcVnaG}K>XSl{!2RH!OyK7o{Eano7vNe!sTe3T%qJTZ@QOte6GlvQe;P_9J}wY925 z@5}@Uy)1`Ho0{^@z+A249+nCkt=BtaXA;msQ>Gj=7!%BNu7hSl8I~j2L8Erhwji|# zzh;9C#Kc?0BDGKaQiE`UHa3ZEk1uED8 zf(pplXnfXONc*p`@HQEO>=I0v+#yh}5xi+E9Ev~gUI`I`iFq!3eQMhR3(CGO)IwDH z0d2kbs^dSTWsyEav9RFoVCk@AChk__E(ZX}gx1W@E3KIybBw4)Nex=gf-eDf?FF=N z)1I;kG$+99!t}A~{ss#I^`6v91b{2zb{(WbF zA}^blCO+RQ@8Bg@-g$oR0ny_`d1oQJXetP0fy#DuVo)!FJ6W~|2 zi(e6p#w+hE$M8hn@tE~!e90k~vpw+2P7}f%$4CpQrV;!MvpGv|8 zG)fd=g3u;JinGd5XB3p$14+&ni?Yz&{it}C9j@&$)e%-Gfh6w50YU^|HH9f&d1mlz zGJy`FaI%wTGDV_r{;y8~V!rmQ*BX~9-`VV)LUt3ks~WuW0g`rqrWt!&YJZs*Q`-}N(sR-zOl{6z zc9<6zTjDR<^OTFcKlsaF`kqWm}I2@}Kn=FNaPS z&m#VEDUs;-%Q_PA_8aSicPDztJI4?hRv3|vJsxrf35i660w+iO*@NnC=!+KexW;#- zb&cBxJ|9P(Q-T!LWIMTL;d0pcd$6Vt{(zfjy-{tSV z({+tYW-FkNwBdj`63 zg<$qS4;{k$AwSJWd*CjM5C>5XX!u<0gwyOSAf(+4(zw%13z7IRT3t69bY^Fu0=3eX z3&lNvGMG4Y9>z;X8=s74RGxa_BhZF)j=&5J#UH2wBlw3kAnihFtY~9CahrN5x(km| zG(%;oT{VoemAEv+_p2sV@<;hCV2i{ctEHu=LgLUeXZ#g+#4YfoTr@;!9Q~e0G<&8D z1JUHBa%dq}1j?Bj(QFw}aJ4yGMuZCU#%dPNMSe!%!h>R>VtH@al>Hc2!JMS^dAaMdPI>iXf*DjtNyo0o<=EtVGQC1n5-LS8G0|Oe2#Wu z#}jZru8nd7|N4zHm6wfRn5aOvMjR=!HQLzO8rt+*6R;V%AdGNXr-kSfvVq7tuG?;G z_tOf{77~JhpacbOKmq;&BnHb}1q&`5RASc!4ircTEVyt$kRTjj$p{h(3PKO4I}tPV z2(F~elB#5CN;EG>2D~A~HQa|;Xkdo^F3lRu(DQP!+E=~@)duBL;n{O>53^upx%m-U zo#Atla2U$KeYi)da>H_8p>+>uF*c~{fS>a)-3(l zmp@T4{q5Esc9X2Xd+lpq|ITd^r@wOrQ`*-SIl->mCAf+9wNYYUbJDpgZTis(%hob$ zik()HGT2p|L*FvkHE|TF<$QY-;$?zY5Z11RV#tQC&`dE32Qc;{*wvHLlFG=&l$Hb| z+msQw1?rG4r6sMA4YoBBrTvI=rK%cZ_O{;caCz(T-?(66hq4KeKZ9EjmSaq5AN>XZ z?-2%}8xv+b2i>SW_6-#IWYX9;Y_2O%gJZe{MGLa_sND z;=5DNf&PBf2bs39fjA)1G{ngf#FX?hdjd}CJB(kXtcVVrBW(E#7l9*Mgkay%dpyW@wbwG zRHTqp!L9fJq~3S%_m}v)HcG!Nf#6>}is2Z=aExL&MlpP?O0BF%G~_>Y;}F*>tWqoK zyhj+iNrxsa-xCUK%Qxna)KRf~!^znnNXhc*^xQWn&pl>NG*zjUmA@{-RL$bGX5gLV z%t`_kdG${UuN%H3ka@J9*&a;wSUSEq4*!5)2M4u4XjN%fG8(26HflgHRO{ayk>q1{ z!*j6}*zn9~dj;GjhXS~(9tkAnQ+oLg1s6vjtsuaqhwUUQR2qA6Sm4%cg-@~<-#61G zBys%a2Yc}k_F|B!M0@e>Q(dLf<~t4_0e$R7lEhfB|0DSoFSP?&?wZ+*z1WMN)CL{= z{DkZ`J$@$e9yh<=i7#{H!A+^TxK|$h?19wy8Nq10^5FYqJqQv7B6Gs_?+DAY2h=~dQS7r@rFRVZS)Iw$` znlp}I2elt%Ba66)uicxzcCS0w-!dt3pMbP~QY5qJR7PF2P%+w#2Lq!|pOH3x0NM4$LGX)9Vf())hm@#lyp%3xL>;XjBqe#N3@W_=UBZCi})O?*Wo0XQ@!(w zl7GeTq&;Z1R>yZ$GvHg->iDh(5}(WHsnwy17oY+P(YaSq;_Vm6=?VR{?4aTBYh8RAqv;yi(=WP?PM>UU>m4?Z#(4|Njn%z9h;E z3)xNc_M`dtyG`Qcc|~7h`O_7icj88rR-2jd#S%d%6u;QaSM8B`xgSF{6kafEW@Y89c zg_yqW^$48-bwhkXs7F$(>XE>jv;rxwFlk3SVjgw<#}+ykr49HE6Ot%krW7)OK-LT2 z2PM_zk2?E6j7f4r0S)<1IDO2R1dzCm%~2^JR+FT-40a^AP4-=rS87( zLBn<$iQmFb$wI9c=tSqSNV4InV?z zg7Bvp1N<=;eGR+~8qNA+P<1k)zTS%9f;|GRM~4;*)e)99r-P3DEsZ2`8GpAF<*EDBQORpg=7w|Eeh+g z5DC4veuITb=#mLm<9-dU2jl+GB4gMHU@VNi=_-*pWyVreBKZt83-F>U=Ql403lUee zfYMwXl3nPQ1JZm3_CBvpn;svO;Xlcu0$yN45UcUxe5QjNUAf#7*B88y3f^n{XZa}Y zmRbqn$z3IfhVzV5%ISp*#B)PgoWEB@KL*;Q-L3uh-PpV3%G*;Ts=gSk+PF6vFcov& zFfWf)>xv;;7o(t9F=XxHhUn!AkH>EZ9zPx02mjRp_D+08Hda>_55AlSaQ6Clz<(cQ zH*x$|%pKl*=-*Cro7nu9O@7FS2IiB5h>t&YVX~I;VDMQLL-Jpe4?TWL5)bX}@X(8Y zN4YC07uujBEBf)bVUggF1;UT>JADbv8Zw<6GL8R;{E;5fO9|U8mSW)%ZRL7IZ}PIm zD;17p3Hry_Vyx`!UTer*f<~&zY=?6?WoHM%=(0uF;>%={xlkap}dQ9U##5@0MQXBpk;+=Eeb6wLyT>fj~osVe*dS8AgMC&Aba~6== zk*9&)E`Ar?(JX$a^G_$%=M1nLM?ZFx6oTG-!%HT5nz$|pr~V23S@lwXeg#IVT@{({ zD8_yR8J;Y($na(-A=sgD_wt?@rp*kc{b(cumG6N+5ZOg4N-WRWjBczdF}NOTW#3Y| zO>#xrQg7|M4N1{*bb(ODBjQX5*KywRJV`IpO1JsP&XvIO;%EbEyXRc zQ-iy7TJcFtPbO5of!@C(&~YV${dGpgE6Omn(Uu6~Mhi-AA0;j6E*z8{U9bF4*&9Fx z22J#8*fDw_@sWeE0kQbVg5dtpfS5KgC16T?B+-tk4m$f$N7;jOcOw?ks684wkkh1i zyxRmA>NIhT+Bgf*E;6d3I7_O{lE)Am zX_ovEk&@9eg4g%-b!gMDYn3!OTD5!~QIU@^DiVMH$S6svvMsUpuwhF)y|J(!pdli@ zgg}b%8s=_d6KvS))I)?n24N8s<24>`!Cl(0ck-z%pV5Ae;=K4t*%WOlyupS|nrjBI z0`C~%V{vWF=*;I~83nA-o#x@>Yfo7**x+m$LFglmkU&bGnN(N|nu3W}y_&*Kfuvr5 zq?s6+^^0o-jCc)5qY(kCU&BF*iDnW8LdBY&jJ~au>sfe;P60R}E{uK2W#HvK@xMUOEOz1+{rU$UD-|L6~L_-C1ipy|GA^{@ojtC}D8qI-juxUQZLE+M_ zGFF8uQx5=9B{NE>L^Y5Gy#y*@kA{P0$Zbx45Xw70}zm?RX*DL)FPtUF$ikT8KS z1#|mYeB~yyqdN_|W`8_T*yRlE!-0ef*~bGZ&;WV44GU||xB~y$C9MRdSy>9uP1FUj zH1H4dHvl_;JG-`>T^o@(S#&^({H6+aa97~aOtH*7T8B=&xbt|h%;+G_FoI=f(0C1k z#-s0m%R-i@5;dMABZfm?lh!!3yIcSwgvY?zhGrMO(VnvcQm9##%mOT7Rx{SByF#fE znvc8n&U9wtG1mz_S4BhoXgL444?v(w#x?67Q|C`fd@9!ymcSw$i1IDy6R84Oe}LU2 z%m3c^)JuNmHo@r0L==6BU?kr7R5#uvMSQBm^;Hh@5A}eWDbAk*!oaMEDgZO2m;W>M zfF?ZTf{AVZaqM>@0{ow=2UPwJ(DJ39d4=(P)dK=$cIAgZ-rOvHCfVQ8zL0lXo)O=)a{8Z zDXE4e4w=%H#F^~dTwqB|^iMeACdqu36iAXvbpMpgH5WVPt-9S4svtqd8sE#!l3kZE}jExv2b~{!R)&JXSZ@N;5}eKz&y=HNFo9S+MlzB zJBs|*`yAwW!rv9 zDH9BI7>t|Hu>oox)0H~LDP0JLvR%p9a8oN`w2tWJ)GGX~M?lU@sGT^Ot(fX3PG&1! z-T3o=;im)mbO4_Y;M0NC0b{uh`gUT)5QwWxtSH88#VHN7cSwN><8pO0sJ%mm!aOx- z1ORw68e@7q=}jf?I?-Dytg?I>mR9BPD#J7ZBu*(l42J1UfA@$OrePlGzHI!l=oj18 zKN}T4I{A$;IY5?f(bY=7n!gf|xNStDew8BMdxY zQ98z(Z@x_oVRjQc-@FMyN-EzxmL&8pV343^AL@(a3YmiJB4)qq5Xkg$5D`;W9xpL=xpQA{dZ*Hdt=|=A&B<8>~uh(ww zRZuxa^VM!38e#;vK*cRi4YY$D#pLcBkv}=S=wmk4ioDHDS;%rDf?|Oz1ahHITmfOCE z8b!koEE1OjlOt{ePsu(I9?(nve7^%p^f$WaUB?PB1R*dnIc@?3rv8BZAv%B>GxrEg zpy16`M{#I*QVC)&*GLn1l$;^ApXXh3|9KvyZTMgO3V?mjHC|v(5nq?izy1lK@Y}=t zCND6@{OjI)(a&NbQ$OU35+59?>41?gEv*0V<%^#1OIO?fAz!p)^>>>uI$}8}%)?iD zDNM{?Z|9?>qc0UD-wAyQvzui5;0Rl(q(*e#<(?)Ue!4h;pVI!|5jCCU;FEbfuH4vt zwy;Tk%4K4<4wRaS{nv%@rlm07cfPqf4ZEhQ`nxuWwfeNB1hY6TDVdvU(}$r^oM`FK z`!IO58@{9baPi?gCyaIJhhvnW|JoC`LseKjYHr{T735jCn>yM2ZHS^tBG9*ko_|OD z&XJggrxe>d6~S}q5>N!=a!`bH=lS-+9ysv^-u#%-A0H4sNX#Ff%5IYB!3`dIaOb6N zlQ@5Yq6e{f1Cg&;Z>CVyI-_vKGaE<{60MO2?j>!iot~OHp0AlgAw?=%)eY!Nciy%( zCs>*GxNVm(*`r8pk8GymOqx;5o=jmKwMroum*MYRjsnp<={$NKg3vOz9;#OCQ^Xk<`Pp#q%4MpdHCqWqvDZ!4PZmlV3J1 z8jT^nl!bq+WARfDMYM_)_=Oi4=HpF@HK4FAv5lCd9EGa18lj5{+{@He?PxBi${j+! zWVZtbj8SIbewd;_j@U7wt_FXx-*eTAaiInX=}-=Nc-*1bFBGS|DPdEH6k)IpB1LNO z5JgfYV#b`&8XGKu2s0Q@gh!F+g}7M6xxK_$TEF+fm~;q?oYyS^y8rf4gy-(_CmAie)EMgD7`S$dGpf0&g2%5EHb5KHul%YVJZZ4yThe#n0X zybKj=hdn4(n)HYK*A)4$CAu4$|6iN`x&X-j^d<2K9n04fdvX=%Y0R5Z?Q0f?6JqpX zPi~{^$tXG@_T-^Lp0-;x>_-&@2h|%vszk!eq7zP&CkD7pfW%G{E%Y|%6@3~`eC}bW ziIotaOYafli{1q31to~9J@qR6E^y58i{|Xx@CRgeGDl?>m$nN_8%{LtOtv(HVIwYz z^bnMsJxKSgNXdGgTsVk3k^3)7{VvvROXDg(1vllGv1YpccRG4 z{8x<)W*LTfA($5yG8OdY85`&U2dAQXALa1uz+Ob8TKJ_KD(=&my%WC>=9>YUg7VnH zPwkU1vA9BLlqbNLO*=kaU(l1!~6*RR1LVKDu+u%-`Oc%5(G*UEbhX#ZJ$ic(i!TQSt9_GxH^f} zj#&i@MO*M#+feG1yigPrp_Gne3^sB*bWof@w#G=yq8)%bXech#L~-(&6P7p#)<}$% zMFPZmgup0eitK^Eb8){L{?5YR9Q*}GAJhqdXNm>W7?O?OzyZ6o2Clzq3sUe#7VHy9_u%T9F9QMc2bMB zm`aF>h{o_4F-;h=F9}P$TrNPv@JGOB5pLE=ydxu~?E>n?91yyt#dMez#ORxC&rtCc zPCoKWMf*wN(&Qu8u^;>JS(W_hR%qsG`Hj8Sl0r`tC5)novr|?tmXG`iHdpeIV_M59 zRA^2tt5<_&Ng9i-hT3RVT!r1#@p(AB07$m3;MCTs#zUeO9@aPtOMG#TG^#>;3UD-~ zOW@xy5Kk_0z_5I^7VzbeqRKJwn?-e0*F$kVU+pHk&Bmm1o3$WbvHu8h{YpS?y{h6o zOX05L2v&NHas-=<=P|?`oW^00DpUCiY^xVo0jP@B_M%Hs8J z=LA|z#mi83#y?B>r%>{d@8b1Oah+uEjHeI3EBJ2c!=KnsvKkW$Q{HPmp6_X5(}!5u zj~IPe?a&96sJOz;qBsS&6H=4B6?|NCg0NnYsscfMLcQX?!uo6ykm| zEUFCv zIf(*9x_^ggy>0*e8|Z?OFEnC2uk&#|>Kw-y>h-^-$Y;Fm;{Bu+M=O0PF`scV`)NL( zF_`Bzfxbl9NXc-EFjcRpJIpf8bN{E*Lx6YQBy`M;RYcy!RsXYA8mz=&$EZI6T` zFZ!-%1m8zKW8+gmtJ5wL7ef)Ko2ktOjAn=ob5QQ8B@F1%%QyDeUYl9kPd5i<>*i&h z^x6;G=$W;3#Z4KISJ#5mtkc5*DtDG1p1M{Km+Z~mZsiPwembYPsUlL^J2#@2FYPgW z33|wKUemG%W^0ERJFjl>yt-|W^J;LJz9{C{SYsV>B$minY!8xM#?gaj$KO}RKjyMd zL-#%SgZeom*zdttUgW%*IQUDEvK&8nE-%8s%)Sd`)k96C$6NI$WMpz&hr^>`B99@oRZ@=&(lqwdH9<3AY6<1C`KD%0>9rNn;%}S zPupEa*fie8uX?TgGO;I3ZSb2H`puiN19|JUir3ISkoQ&aQ0uXC!8e$}XHIP(*!8RI zm;;XEH*U&~-h?-OFFA1KH&5{!8?1tJGPv$j{08*VHP&O(a&^;(_4q>X{<5Ce zF!35$k6LZ|iJVHfH5Q{5i%|=b->y*X`dEyex;Y%L4)H9Avl_dsQ8S#?cn7>cwi>-T zjCp5sl@S=bngcO|4c5KaxXbaE|Igl=Ku1|Ded7shSf3y+s3@q2a6u%lL_i26Fat9J zDu`F3cooDA6lUNmMgo~g#<`<$2k%vJN3Tm1K|qnPh2R2FuA-s@P@u;_5K#iM#&WuD6XG2~7pkQDUAOh^&U7@}) zWH8DigL44Gk;tI#k?&S_JZ_DAGdgreegTO9#~gQ*uM zD}aO9m_{56&vs9%)r66c@gJ7)`!W8Gp3o$W|2HF0PsYE^-<)?HOS%&UevEKH#(RwBfSVwaJ?!Sg|09Gg2Qt(4$;OJ_&GOtpzxDI5E?LKAVQGlmM_*16V2J)v_jO}^ua*k_dL<}BRk zLqozHE_N3kY_dS3rr#!_MspaA6XFPtDW2eF)$&mbHQj{>=wOTqLgYEGc@W50exRo$HWdKf9YrSasE|;2yPRn(kp98C|fN?l(P80vdxW zBQNMGwIQFxxDq+q@LQt+(0fUwWby>N}B5JsWpdPV-)x1 zv_1ot0A5(DmcTn0C#f<47kffu004G~tALuEV0BL6S}f$>G)wSzb>;yqLGKe|G6Nfo zKs$8j2^CaEJJEjW4f{F(LBcrNdxBsu!QToGq~``PNL;T7>;p~XyM>;1x#8O_`bW2g z2Y{S>6fESp*X{CzE(Tb>)`aDGvZqKF4U6EXLjrzAq#*rm#82yoHGX{A!V$>ckd(|5 zG{^m$QJh2EJnIb}=1iJ&T=X93xbj3&nXe&cGkh5X*e2rAwW-8mmo4(_6gRq#b=n>;M;0obd1=|^Cw&TuT zWdt5WJDzZhx1PV2D`_?a$TGTzsGraCrVS1^=pb9GC1(hkq-2hQi6#%3n3(SH#tS^5 zn`BYR`Uf-LSc5Fn+wg(bFP7FnG+D3kmz1pwi}`ohqC+vv+uZjoa$l@bdxtOr-|j~r z8}VWH5hEPb!QRowel^hU<3rlY>^^#$eaH&G1}KZ<;{#i<-9gMCM#M-Sm=$aPkU?zw zhc$?6<2o=0u@RfGEEVZv6#B3`ILZ+e+a2go2$r~KjesO5qqu|faF?EkK1Vsr!Vk`} zdzi_4IW~?k(^K?3n9R=z)c%1!>c@`aDABYeWTEN8xIQd2365Up2;R{nNTSo&NkC|4 zYZ8P`Z?s$giq;N{fFYv2!Arc5WpPB|@F*iNl9PP{K186lo3iXd1JN{$Q4i_lj6Y8d3dWn*t5n!zE7)cCb z@q-Q1)8wL{D_Efl@WmbS;7S;nM zr*{YQfR_SpfvTAaSWyySyP?=XZWh=)!JTT@5bTWeMTzK19`4AAu(WZ1Kur}SXo!r@ zp)qf0H2xQ0k2r`u0=ug>d%M56C%8+E>_~=OP~{HgL5b+ay%W%6ic_N9+YfMqGkg0i zv9&kRJzE1i-ldwNHEF4$K@Uh3(v4~p=>1kreu$5bAJn^i^hKJ_d1J(K_< zK?RuGjX+a?nH$_AyZk}j{J+mOn=fh0UCbLCjZL0}QswvI=s|e2@c)hKmlo^}K>JVE zTzQ`{eXxiXIG@VSt1^mP;2TmQ=hDEx!WF~CZGS{>_&)B3JnGE>a@t}~ya#*Y!JNXw z5E^#+9%jMcL<8W<#z>j)pnn#?u2fYW zI1j_Cq7M!U_rk_lYYPq#aFNe5G&J?*xL@s^VUd)9zJyuGp>GamB-<0ZF_X=5;)}a- zlY9j1PBSB$QKTkTaH7p>mfbjG$mw-VdbP+2^V9%8L>lAcm>TYDH!PQ6g+VwClOlx( zt^sd~jKT*R*9^#J(y5^a_t~$0ctE4Xp8*1hoDv7QrZAhZjKGWR;uU;gk8b+3y+_ZK zJ=)z#Sj)0mU^9!)k@B-F->u71zY^sX@v^{g+`+>*A~MYr?j@~2`e~RW`unxOUolaf z%GC(*&0K8TRHJmJEQYVZDz%0lQ7eiq zirLb{q!_VRbg^Mz9DjEZ<^+JTQT+&C7j#I`--Z65i9;zpSSSm5Grob}_`ztlaCu?k zpzvr>9lYims6*rqE!3_vNZ?#cmZ09;64WDm@us_|0t8#5ZaI9QcFE~zn`VkXYT2FO zVi$@>#>E>{aT6G_P2;I?u~{t$Sh%>8uiINKj3zZ|!=V^h#sL5aCspt>GI4StUW~)Z zb_XZth^k~NN%w31+swoX=Cek9-JWQne5rMIlLvc(_h&|W;AK(GYSfK+v|$;65+G&? z=0LFX-C-L$pQCtWd(K0U%#VN_5?LyH&Sv#wk%ggnm0U2iI#4KdJ|(L-H1)&y>`Trg`c*XY=EB!@uGAD;6bLnoxYyu zFED(Crf8Jki@wd~s?}&|jsxzW0licHSs^d*Gi4ipzHC{rT7dE) znW&%7lr3u>?3SBlDN&igw)Ic0aZyV0poA^QPm!VE9@J-Lf6|Rp=nXRoct6N(-!BCRnxP03nDM zPm3c6OQY4YK&2xKKwqmwBs0<1jAEpt0vVY|9YC0Dq%vqb*nhLfZT7EKv_WUa9?6;b z9$?A>Sk8&EKnpDk*!Z^Oflo08Ef35`DPA7%gf1h#PogaF3|Yd;wj3Q%?yri5QlPvJ zJ$b*1PPI_p1l?#+z|xfkp*G5ylRNq-WzNYSla|S(9IQVCQg>)suzs$p%M^ zSkf0TUa`c)c#P!rwJe;x*^sV|??1m)F3=5(M^`$;qa?s%)1MYtFi%Tv8nnRe zSs2+6C|Z%L@sTWb)!Bor`P=LsN@TIcsK#QVuqg^g3M#H!@R15TTD7ERFQ+Y*{v@Ml zWcTp_gti0(fq`>3l~FvyQOv1h6m|32)3r`e3ogSdza}*n6gvW853x6GRQAZy# zioSLqzncoOJ~NU%OGZH>0%rRFM^R53S`s8+SE!C2WE2~x=utojo|hhZIIb6GB<5~q z1Wv&Nku&fCK3M-@;e#__s+uiga6dBKaPJQug6KP+Y#`kGDVA^3WvTxNWyh9o`$LYn zlJ=&eRc+L{PaUeo5!7VlfO3T(M)m0_u^4yGOL^vcL#C_q9%DL;#5nFgFx7aV3rZL!um)R=ng$($uT93i>aMN9Ix_sa0!Ys{~Vwss*C$p8v& zCD(OFpoC~MWSa~R-=s<)h{sRGwg)j4OHYtEC5Z&`ju$|tbi6}+ZE7w56-Y`lUJc24 zk9y+-`ys8$s{s4MbRQ#z-0YA&3L z&=c(LFp_UdFp~3h(+8%IKPTR5RfVr*MiEYFX{y41Kcs3L@1BSK73NfJ0eY>qwg6$P zD(hF$oX4Bqpg%M6bmCjHNz>L_6V11*Qz*Uy&i?MjcEVWn70~5rlQ-o&< zP%qT*{*;hb03ZSepl}4W2hBT2P*7ZVsg_nJC8D9wiiQ&?|7~(8fx`pp@lY?`M+|BR zr0+q>7k7B;$lyYX5sVs?omXZQ??wB0SwBV=W23g`U!Py`&|b_@IK#RdBB*tS<(nmE zSLXR-2RWa#kFP#Pd;0k5J(O$#G?ZTky2p${_Un#;>0_*?sMx5>j`OBP|B>PtD-Qr9 zS)&#R&)BWT`Zb*xfyU^Fv?6M0kk+UyPYCui%xUrYl#6Cz=hw#*i8h@C>XUN=!*2LB zy(ybSXi*9#r4^7BIUXO!)bM}Ye6wL}!0)9;_UH}R zUOFTtn}UqMB6hJDAJ~2aGi)_vfo#9aPY^!Q3-#&}U2em2^mwPf59*!0ErmU5+79{~ zSLCh7tiaO=fvH?bt`r&q-II4haOf4zTaUk$E?kwu{P3_$1#1u178cB@=Wmd;Av!8+ zgC{&Mjmttm;{MR~G6~;VR=ThmI>5#OQjqMdHR|K9#OHz@C^YAE*$I+JUq0bNEGsU) zE>`O+qYVI9IvlFji??;~TinwpxG`o~Fv@5EgZ>KZOzX3>?_;ln>U_nSxP5DT4%Njk zN5WTuM*!hhsXy~X`zLTou+2Mc`5}md`((E1A;x(TE#wBH5mpv>Z# z>~{jWv*wvt_5fw4nktOQ*QzWX{BmT>xXCYJ)Ccp(uk;N8lPonoLSSW@iLd2G(PL;M zj%OYR?bhag{+2e+ERW@xuO_}#1f|h_tB?6sEYAe!1l9Kor2x^hinVhr%=vp&0nUkN zBc#$33COT&Rh!F_ndfKd$0mKv*FSGzTlTFZ2p-=T7hs|^1D)v!-H9z?r`ikQL-!8O zg6=-Sg2$PIK6s_21~d#sbE#2024CEcrw#V12iJ%QI)PRr(BnU&sb>2sv8?*g>@m;y zZFlJzHv$*&^_W@bPT3s2Q+TEGlhA+YBE9)!a0nk_sQg!`-GBO#eFpPOO>>!1#9KHZ z&CEr7F7Bvom#WtVM3lV=S2DmsWRvPykft#^xp@+1Bkw{b#{O{R{lo}70I+0FIZ>N6 zx+n0L825lXW5N^Ufy1!e~N7jh=oJVFLh{d4?sPF(NELrzGwD^ojO>xf*Yo(!z}2 zNcDO#^hI^#IoZgo)#(t7Va}=xf*}?J%{Yi)ez~bt26uTwcV>Efp2z8{RSTLD8Zq&8 za@Vf(2FLTr%LpivM<~BM+Q}O(;31VI6?D>vREKyrm4|eDc*Y1U#nY^S>&AOD2)54) zkKxope7^>)LYts+T$A>q#i_=KMhQ$PL zTunlBcm{Hf!bG6iAWX*p!UET95FSD>hZSFo3WpUIegIQzT8_Uni8G#+WPPFLbu`z; z-Dnb59q+&&Pk3%Q$O4iA17)%f& z=R+o#3x#JHB2!dO><9_s?)xD@JdPD^a^NQ2H3xoxRu=AA5OKhp&8;SSp8j<#ehqB! z-NG4wa}j)X#U;}yTFKt!fNo+EUna-D?Q9d39nk_$BRoBO`XO*tt4)m{y5Rr<%b*gQ zvOd$8k{MZp7VBaeZLQY6#!eg0v>rioDVSC{nbwzJNZglSz*{EM`U3O9s)tb(IT>tT z-37G-$2PEG(x{QV$JD52JD6knD_(L3zvnSW2sZGZmyuJ|sFnhP7;E(wem_q-{I>#W zAYHBe3^GAE2~F6hcp4KxtaHRT90+L{xbQw(2A(4_@DeZ{FYF{T%96I-sb3Wq%!FU} zoh9tT_fJ}cAt=rCw}cFZoHo$dX&62&C!AN?tKH;@GzYV0qMyH-76>r9q`}JUi-*GN zXPILjv)946QS8IsLY42-hSKYa-<-EKkzq87x1D zva_jDp3TwrvT3U*qN+hkYvT@}LM&tv*^Q>*OZKR7R1e5)Zh7OFikkC-k@d9RKJFxDhZ}6OgIl`C@n4O)Y?{E{KOVkLctF-O?Omtx=_P<7tsX|pnkMqTc>^N- z+X>ADT+?)iUT574kp9y+)qQI@Z~xsLJm?DF(1r+F47CkR;BQz?TpLh%ET{h=I5vQr z@`Q1TF3Of7x<9pZ!G0AS!|kRl-G>8t`ZPJdJMCT-;V#a(o2&0t7~WtAIRRZJyP81@iK^V0vxfFas?a3Z-HkK*d``q&r*W6lz{gjf?|oo&u6(& zJQ-iSq5C>$dox5x^>VeaSkOeQUst}+1pK;2NYg(g%Ko+|L2A<2tj67}Ny7-x1mTd! zXe`+8IF~~9B#Fmy6N=n70#@fV zW0U{OEcyQ?3(<2ZI@4u?;%|b9sU4^?`edE5q1<^-kT1x}DD;?rNC=Q&!w|N5{8glPK*c*Q?p zuTi{=^Ap_4g+SwpwSPikCFQ&=LNt%El`(xKmX{`X9$v6`8!5b|Bqt zZ3#UtOY~!BXvQdh0x!U2E^+~Cyzq^W z)jQgIf{@~aJG9;bRMC7YI!Cjd_n~uOo~n3Adp{~`p?B0kBBkEJdK?oi2hDr0J z8c(Q`H+w5}j~)I;u{f&K8;3k;(HTR+UEv>h$o7v@Y$1h366At&u!#C>@+e)tn`Ix$_W5zV|Mo8s zK8^VghcW)}uqB22aSin2MG$S$jQ*b^!X$DneC!IJu#UZkE`(CJO0B{K&lTUrHQ+Hg zX>9|;cDXA1Tzh#fL}d&`Nsxs+aP&s5@HLgh=4FBPeI*r1hvtc@tC2 zkox{ryy4lBQukqZ0H{}WpsRU;sbRm`crE!J!B__bfs4Qbo!bGvyS+NNvhyqbjk7jH zKEN+b3S*5+1{`jSvBBuD!&SV2|aP#K>@DL6{TggYYAl-Y(VJg#RUhf29dO z<^z=Y)E%I>>Es#qw9u1B?ZVwC(*2W|FQ?C$ zZKn2pZ2FE~70+{w+V}C*YBI>VAfr#g9V5ImL6Yd(QQHgd1OcYDNsmhe$A394H;dH( zhp4bmLlpKOhr?@k@Jsdi?_d|fpDcvHThj9K41D45?+qS;M#<|}x0VTj0h~aj%}tjR zpI8SnZ+N_1VB`Cq;5f)5yWm(5{KHp{KmNvjDTqW*3*TGYS7eYM(MsVT;HPU*Fr^Pq z@COk-y1^ppI|J5F|LaUHWWw1QaB^2PVU0ede;Ym*j$?1#Wt?*$a9%ByW<~$+f{mP3TR|@6KLf1TLjq8E$da?Kbl*6mm9b4!f2P%S(HZSfWO>I5o4Y`lE!mXlS^ zhsBw7Q%r-rjJi#A*KK})^$RQJ9}~*~%E4PXKLEwl$1MEE`XjZ+yoo>34JRe|BW;A~ z6ZXy{`y+MMZ^if{^|1Vr4zG#vM|y;fISde%n5ojdV~J@N@AWd0unz_|iTOwP5$!=; zRVjjK+ZZIkGSw}n!TjY}<@pkRgZ8daJJ^2lYnu8ioP%Jp8EMAz06jK<-jhj-M&X@8DtT+9qx{w=(d;f#KR_|f? zgff&xp3weNO*q4e{s8okYe(VWJY#h= z!N(*97=v zFC3VPRL(F-#UQERys26}2{9?!iKVtA8k;`GVNkKa)vB%pZrXCvM?69FM@hM@?#%Sm&wo7swH4`{C9XiSJq=4OR<{?Wm`ho z#}n%5MHrz=NGaC?Al=ugME2W6yN&Gh1PBo?!M!I2=6HO+h~KO=70pP(d;mYoQgp`5 z9`8govC$hmCZ)esS|%oTRf7(gq_m;jv2XzKdBg?ZX1vDK>8UueKspA|EIBE(Ia~5Zyf9Aobtw3OFSJB~| z9OKb)Pw)>fyw}?GIt=3E4aBrb$GevP(7yXyn-NwJA?8#AYkU8rqpw{E<5?$ty^BVUjlK${ z+Zr`=*Z($rUHzkjuTubJ0>0kwcXarAuKf}4H64u{8@`50w>7H$&i`%rI_C!mUq9s} z;cEt}j)s4occlIC3N&(T_-ZfR)~H{0{BOfo&1MH*i~1(v>uOXT4Zg;oeFXYC6O9}j zzJBS$ZfjI|)WMfGxYQklrEWLE(&c4+;V#;r?mhVncavY;h;6t4f(-u^da}Qm)Yx0R z+Fw7be7OrQG5c)03u1w`p%5eX>17CexGZb6d)of=22hwDUCQ=cVUIig0}50wBkvoW z4d9`#A!*6A$Z!Epp}$e1b7|hILZ~>HroVEt*MrXC3NK#3BdHg0Z08BhW7!p+S1x}RmqPwsR02rUD9{W-Y1Q+eh+pk$ zil_tdOY~0Ey6`X$2^J#YLz+0}&uaq#5*@UcKhA6FIJ~1izYJ-rsOxDpdIG*uPRtVQ z$g7L^D-T$z2mqu|-LMDU1H@X0Uup<= ze$4$fV8F$58NmS4iKtdr?XSfRy@D;cfG`_YPYj9mI7+VPZzotFF?+;od-e zk4{>I2&1AU^}yFq-VZ@>8OL3N?Ip!)1uueS^Rd0E6&}kiSAel<{er>!NbfA8PoBz}BbUilcY$PVdM6UBIaed_OLPL>nWNt!jVzi;czWR% zPjFseJ>Pmc%(LHBr;!T3>j`wx=AqG5fUhw`&sP`mS5EfN7)8=#a}+Un;Irzv?;JeL zCPm${Q%`kch|%imEwL)Q#fL0?hz+=dzhN23&HPE2fWf|JAv{;Z^wiDgLgD6anP_|AEK{5cvQiA3)@<^9H|k z1?$6s3U-Z&@Fcvljm`x=r90+9IBDpK_8hAO@xQXKC)nSGU-aw-y%JxCHU8n-w7_zs@VP~m)^s#Ub z^dK(bQq`VER7-#A6#Tqsb9!F!&wY)@D_~0@p`f^`Z~L0QfwjKdZIZ#s)UWEnrjnYB zM21BqgcV*~2C}sn3t#u0iW$TBvB(wh`$y5cBkkBupg$o@D89$DtR?+{?dJ#rnFdIgL=Fn0# zc;1iB&{8zmUpH7k;&mDft}oi2j#lgEAa;IE`(JVb`x3#tCvZeCf5vnH%m$Gf6ihI! zRvS32B1R->T(539B>Yv~@N!JcW|}IU5X?&YZ6$H!vc&o-$21}B!C3vRlHUYXrLug& zQXv_i^pleG$!zcmNiJrlegeD=LF*AZVw)frZ6O*O+H|vC`>DhOyyk-#fRkrz3&23r zjUqc_sOGLUrPIRZ_|6?Dbo3w+yd97NIKIc10klS>?!N8U^bLFk&)hgXuK)E2^X?x4 zkQzs?vm0t0)6j_ch8}7s89q}}q`wgw%D}bp@I09goPjQEX$~xSC73PFD*^N+u|Q`y zeHnq>f)!!!CIRg17SrElO)MhFZG&klyamT$tkH|Zi-x3Wn_&SOKmLXwDu z<*^|1i0PMuOwg)Z4Kkb9(a#<5)P$($O0UADo7(Fn%W0rm_ZgqLo2-Nw2~;p^ZX5G& zck{1{e^>P%1!){S?)IB2L{LeSAR_S`3ET)$i%xZR7yg!Mek-ZYM&UcQBPLF>@-XoZ zDO08${eUBvi+s`hX%9}GR(_KpuNCdcq|M!hY&X2CvagM%bbuB;#NLyNF*wSXS!Ma{b_M7`po-e2Bw5L|(f5fB7z6NdMZH z{w?aIt|Gz%AGjvyx8K|KhqxonXQktAU$nMCgtzTop~)F8ap?o=OLNt(ir%ZM@J;%0 z6|Jow9h2}_(b`7QE8^>-$f3ZdV%}>=p)#)dqE!u}r>IBv$wBWqG5r>;YRu6z=4hN8 z2$>>KAppZ39P|w)y1!aa*>Nd|^#KqKz0|MA|FiJ_N&J5u|0m%8NBAEvPg(K!QcTQa zr=d@KV(4U`@r!s!&?>gpXym_vYTL14)H?)oxjQ_dFWfN}V3roB9he!qGf-fGF`lEz z=3|_jv(SaqRj9L3=f*KxXb5ZICqk!S9ldkSAMjMvQ30QVs}Ei=0;i)3mqbb~u$)HW`40cyZ;#`c+j-$;?8)9^ z1kOJd-?QNg1=E50&*!i(;4SSlDKYE44BNj8FS+PpW>UK!cYu+ZxnQQ+vV#=u^Fi8Z zKs0~xHk-fL9lAUQrFM|SeXY?>JXW1l28?o&h*sWMeC|REtqb|OpmhMe=PnZfZUg`b z2FTkUMauyK)J?`n->Vj2Nt;-ihWB#zt^iuDXiBWvq5L&Ut}p~w5QWd7yMa6VJ0tKk zc%CQw2Y(BoqfC8RC3q=g7?RwQUTs{p%U!`6kl=xDiYEydECX6G2P%IA7~9lJuIu}LpW#C!SXJRNmbQvz=fjXxk87Ev4cYp(VgZq-^_GW8tjaGc1 z<_J?eRA}8BToKDf2w_>41>wgw7ZGpK3p?OGj+aqfmIDe97}9RSJ*WzCo6K3Bg%^aP z5NFmk?T&-UB(qoZJubu;y*f5-wtr6c-MV$&N$UgLPruMnQYTp@a&o_bF!+K8;8w zz_lpM>H5q_KX#qOxis5q`TCK@eW3}*5okMkdn946?`DmAx4HDpNaP7@t9Fk)=1M%6 zIOgfq;I(910}tT2WVZFTEWLQPb@1c5+1Ae)$H2BK@NgY$>s7Ez&9+`c$tLYYwsp4& z%CWJnf1YdMZZse`cD4mQ5^U?DIe)^oMnVPrFWJ`qt`>x?(TJw%M79MeY_@gsul6i& z!7@!`TSeo^wkW`a+A%i{*J~gPse0y%KC5%@`(J75Zr zQ_&t-95Xc9ZC;;=%P%uIN$r0K|p z`$3OML)+;c^xl7PGJ|l*g}O=|Pg#L1lN$nDv?l3wb&@Q5i)E6~Wbde0>FgagtxZBK z0SJ2sAv@Z_o;!TKIQ#Pe60!1 za}2E4!-R%$^V=eN$N??y!DZ`fhTn`8qo_qd1)xs$w@wyic7-)VGfoU1No!m|K>+8! zxF-dHrzs`<$_+PJN-D?uwoFr_4;_;rv4(0~rhTp{#(2@XR&op&SA zo$Ffw47;oc5paBOB!=tK!XjvBWya24znO>AA0qO9DcPgXZ)oTG;Zf;0lpiXc!> z?hfLDwL93hgYJ2FRb)L0)RxAR#kFfN_PWHibzrz!T>BCwdv;QYYfmqC81k`+YvmoS z84{mWEs-BVTq8D+Xv`b#bt03EK?441jR*L=uLJIn))+;PfPY5L7r|k>I*YPIvWzeS ziz-pI`FfedS#3$_22Jg&fkT_x9b~3fZC=2`bx?Z|7MiB^Vw7xrCdvq26O?0<5hkCl z5$Vg*WS*?nAlYPX^m&jauaqTFCL9|jhg$(UB3Ws&`3Frb+; zRz@ww1?%h(bDHD7@SFS2+o5SdEXz& z#Xd#Tpg9Ip2cqaufIDDqF0t=`>5$D2gEg87-JA|}#85M-oA1%o$=t3&`;yG{-t}Ytw&f07> zgxid`;megh#%^ep?|mTn{fh*_vvHGI2j%Prc4>u|NZ2@WcpATPnqtA=_SSGmgC}yh zrcaRAMT4~@sldYsC>MDQAG~UxVw29XBat|<*b_wK&1!Qy-IMIn`(&vXlq0h|WY)9L zFGfCkPUJ<29MIrYZvA$m+m!Y{(~Jc!WSW|X^Hmdmm;fo#V%5Q}`#XTY2p`9YnJl~I z!6sjd#|*VD!Oq`*MF)lWfFVEwZr>hGWyux5_p2{Xw*cQ^E@n4mF&J|xJbSVa7=cP+ zy$T<8yD_R)3jM>x$USz$kJ$~I`lkfp5Tq<%+aIKC+w>cYn?JMZ)9t2vplQerdU?d{ zua1?}2z>PudifR~$s^F>ToP599nCwEiSp014 z;81=!)}gFC)k0V`R`H(?WhB@1b@;G{632lc9;F=0W_6w2(IlH)aMg8`Rfjmi**`#X z+m6;x!N=fmF6EdcEhMRRQuj6f@dZ;PCa4|@pq zoLlh|QZ2!M+Fi^;1QXpw((2xeYdVqr_(&pJY%|zTQkf-%aC_UWUv0N82Y1{J%ta>@ z`#hn486QbK9HI5=opazKG1YRg2%d{m#urM-TthY_OTaG z1ac%Fq^CyUkVqp&4+;1FOE(OEu*RGVZ`z*__mA@<6F0$8t)1MLk?(sDkHfkT zXWegyukT3hT&Eh~;2fuk6YRrX22@UAu^OgBgiV0cR2>01QWBHIKW(FD!*^Z`6(JA@ z9AF>#hB|vp{QPZd;`fwCVq(T6$AcbS<+~gLI>J)a7J}EB;q(zd|8abyEyo+WgR1FH zBhY~stnA;ly=v@xro9T{xeh3c$0BdYOTF-tPwTUR$DoUuv7ooB3#^x{m^$7do-<8p z+o0+*P{t65G_Z(Ko|?N1%DoN_*9*0g8EBrGM6(|$6tD7zx>`N`ZUnZVCo8e+P7UPp zxh9Z^nwDc}D{N+K8`r>K9Ul#)ONM`kG$cL$$nt;sWO zDaYg|V4<_szn>LSumVJHQ@3rFJ3&itu@{ujfL! z4qM9X9CWXh+1F9Blv&K0lWqXPy?$q6=$-x&Q6kp9gWyB=f?5zs13A&-B5Bm6Lm+Bf zMD0D^Lh5IxWFcdaaBzt4g%k-`1jX&qa`ee~Bz+7`o$;u}kUIqZiy;>@ZsslpmSkFv ze?|ynG+6>}Zz3t1D|^|b5eVa8OuvSG3Lz}xeSt(#I)&s&Lg;71e6k6%8JhV3n%cr0um42nDjr4lC~x9lGi(R7L6wT~w<%o1lpPx==JPn{I2t;}~Lb5YtjxKeO1 zoPtVSI51OP#ci)dL7&#vw4G?mIXa#X18c@10PCCxSX-?TfSi!niKz|<=~7{>r>Cyf(}#aN8k*t^w5$61(YZi`7~uH^BV zP<%?zmr?u|67WNo1Q6@Ll9I+Gpy7sAR?F|&5{B>_o700;oQh5(r{lvGz+!d5l#L76 z_uGvRk8j-Gd%)a-_$l%aeAs}?ZDjbFs5H^22#)b$d$DnAAtTC+P>LtyJy{P-$b;J;e-d*9V6x& z*zIqSplmcF*sxj_898bvtS4)KgaSH zy8LgJx1sFZ*Qc-K0X3oX(d66cA^C|Ak9RU<1$791BBoR@8r+HkiWQV~r^)&} zEmAa18Y$Z?@+1JZIHAinxww&xh6;!`xGHXe!P>c@r8UVoUqSPZy(PHMjK&Ik7Hs+T z{$qpoF`k4o5&V@773yLc4KWkp>0lmT-LEYMLBND_H+^W;>ff~N@qqy_BX_leS4APC z?NY~M7Z>X(Jti*G9uqjPn}Y@rp`Z3>m>_gJt6z88$t}6ia-4tx)qf{~4N`7r7_5Fz ziNPu^yER?RY5CF#gm|sP&Tic!=E{JxXT!Z^3K%;*G%jr8LBd&2@BmG&dBGjNC&l*K z66PZW%<5#uCyL4Ua6g*YCfKnkSw=!RZ(O$%g9KuHtvRZH@(^v$YkE}CuqWILPE&Dt z1CkHXL=)bxPHSP!9>hkOJ;5*xHy(K5nTDI48E+n z)%1o~L5wF@vic!Z%8}|B_%+f=%X$gcCZ~hnV>>WmztQgCUb_PwE7~2(2cma66K@3S zvzMm$!0Lz$!e1=a!ZQ=hjZ5B?<=F%E>H=Lpp5^UtIQ2bIA2Yv}|EsK74^|-$ej7i} zrMpTQpNUYDZ!0|yJwV|T!K!LhYh*TnLX?BueS$kaq|#V4NX`)DAZQLEl!>-zbr?ez8@K7VXgc?;-a`5M|T&pS-v+%nhLL zJ56GnIUQ6f0rF#mp<8(Zk7Vf>F1v0l@1vn(Y-7z?ecknTYX!&`eO*2HwX6YAaFHf# zrwV?GeWdP8fveJegQ4Og;f83tW*RJLytF99#kcQ;@!7enie98Hm&ZKKc0~MtCcg0w zHZJ>(Vb&WJ4Pul2%pr`Uu@-3HxE4E&IQ8sR??Rr!jvkTAKoD)tUne_!T#7&{<#sj~ z>X^G!^aUF(t%vIrfw$-kSI~O$tFV8l-#|lVioor%dr;fK!Cx*~bawbg_{J20EAWWs zU*7QKSpB_6LVm!1$)0|S?CDg+qZc}Rh42S^f9J2pjMerYKR0HNuQQ%|OAPLq@;Tw8 zRYdWN8d{t2kx~Y><33+^Jog0sQq-UC8dwd_whw1CJ=*cy(}27P_g`B-i8)S6Md8wL zk=^jXx*GQ5hsfXYkxF$))v%!AFJ{9!W#CV?ZGccGMgM-CUA&18hzr9`Ne~xGUlxYb z1of(cE^j><|^u7mW!k@^yUeXDMA*V9r^Ip~XwZpZ{>*r)2;#yjc)fmmAZ<^JfBqkK+@;fPT z<3^1%RSwbKYU;ze$xZq1GtG5t3$QqNFEy0q3b~XDGZH5Y=ZmC;Utzq4_Rt+1dp&DZT{QE~9q!?n>a9Q08P zcI~@|al_<4#{B&C9AU^`sjkBSuzGb`RfSz9)+~(tL|1bVo{*%F7O$8rVT#+ST2!lX z&tm3fl>IX-8yB5v7y*ytFaob&naj4YQ9XY*UkmGS7)<}7_OR)=fe2_`^uI2@JQ;FyTM zmm8#NkD4Qo2qr37Wm(Qf38r9a%g&o^6rYK2aF&R?j7MyS6?4j$ye@=yZ&vrz4wjW+ z1a6bo_3D6=0i#aKluko^q@<2^+)Hi0&Z2EM&X(PF5Y?IRZ!)%=q7XfwZ?C8m@ z3%1J-TYw|vHPB)K?qo*aBL-9WmQ7+G1^57;jT~=VP;^?VPP2udK973!ujiy(!17RC zmim`aP8rW$`0D|OGm?02c}#AWQH8hzXBE6pI1@a|RwK6mogx%+xzwmT9uYO-K2Q2j z#&lkbHCf>bJd$WjnPlIFyO=i9crK_zM$sr|vcQC_6cP2vA)>1cz`RPrVa^qBK~Jy? z7xM~S8YG-JFmd4QBXF)DoGVHNPQNF83lp&!)87LK0_#RqvdrXZM)5OPT3F5?c{{@z zWWOq~oH<4jx`6kX!`hz1!=M1o+8&!l9>I+YtgWP%w!R>l8mu~2Kkc1p z*i;6&q)VEL=a4*P;W$18zVQt8(;J(a=6GTQiE{aKizogNm+CKBr&r^Ha8%)HT!t#u zVzux*#IR&83?W}KXoufvAG(T}9E^PmV>yW->mzKzmHumm=}}MwP$56KM~%9`0j#pA z02bJWp<~rYc<0#CS55xsG_6xb;-a1AfpdfhHqkur%rT`7|2q|MYW~*{C7b^R*V)n_ z@g5lCFhTTC?3#bh}Bc4)mafmxQ(j zqyO1&Vf0c9qq2B~4sG(o?MU`Oeho&K2KxvwJKIj&(dVDS+$z(-+^&3D%5NAbzpBe6 zEMFT_|2E2wa2aQRu;fcyKgGP*`spn&z{cpO`zHR+>Zg_ahzsPgPpO~&ge59bQIVln z^wY><5dQzTe)_}XwjOwt`sq8?8!7bDl@JRP^wZ& z6ZO-pq(h*^DE_}lKOOhjf2p57u~(DKkyF~YBQrWS{j`_e@c*!W`or%Q#Q($k>4Rp& z$E=^e)68Zk+I#kwCxwOFih6akF6Xh_CZ_%llpPk5te@KagQi-YL9#}j^r{FOmVIl% z_#^R;v5A6EqV}J_PWP*l-!w1vol8D#CH$h~@a!uT+*U!tfyg4vv zr&#_us-5&GOr#nrn%=Tu< zwfNEj{$92{%a}o#OrKXV&`FX210}RO&_n^I#y^u=uIlqJQ9QgV8cda+954(`y!-_L zMvOS4f7K*n1Pt_L3NRRV4&>!5Pw1XZHp}zn;x6PFxLAgRO}b$J3Gs>PDZ_63HEh(e zG-%tjT2bR=4$5O{`0d>m)Ta7r6E_nCw;C{*o#rUvgs2H~=v1=tP89~VvX5*S~ z?9v*S*+G(BYc9K>6a_Klp2jxc(0RocJSu!63-zk2F1KKL(<4s(g{ZgmEuPK5gS7X8 zS!2>_Pb&O-W}2_D*yr;RE(42oxq1Z>fpgSUC%+krJ2<=~1lp`(RKS~{;b!0{v(|Tw zhnGHrTirF^yKAc5t15oMwBp#bmACU&oa|qc?yjxC{O+d6QNQ1%p6;1x@cQ zI^e5l1cK$^Z~k&i|Fq7dE&1Oi{vox_0jT<;wFv*? zuz~U<^uR6TpYR9+kq0e%?l25(!fjsM$4nTRjrUY`Tw2&Z-NBJTx#)_Km1zS;PpH!{ zMW{mbjDSAo?#(T6=Q|XueXTIl@k$?K`e2i;^j&W5-Z7z$$_@GsV@@t$zBh5d-2=l6 zy~V@`8!6Enw`r-+*A0=Cw+t^~NMak9i1*-pbTy5!rvlAHN@qN$-DxMt4jnIpVfQzRXql-iukYh8C-uA@+Z7*o z_q@b^oFHY7I`jbM8u5S79xwLOrc=_qyQ>zi-Ux2>6sFf!7sokaKBpolv|2`nZ! zG8qJu$^{otB}qImK8d^D#E4#4M!>v5R3;}ejtj1qc;JS6GFnH{JUNC)onQ5mmy(cs zFXRQ%texWZ#bN>*zZx)#axUBVLFSy}JPH|lEi|asw01tKA|6a^vS5^&Wr)P}q_PHw zkO^1>Hs{dG2r|*NZ1;M6xb2L}sy!m`L3*x>goYu7jwDxp7Hw)F+9IEpARpdt{3t-D z(!C@d9AlegBR6TU1JRPIqG!0nlaNPNvPX9(RZ#-YlUvs1Mj#uHiAbCxB2t0=4F?)i zQL^P>9zd^)Cg+i@RkL46nwB5nyvVC6-kz5j#f-VfWtRb{BfQ<1!lyAcl6TS_Gi$qr z7)NKoOe!0zRJ1eej;e$5&GXjU$db*xtkkTH= zhdfakGhY+bZ}2e%u6a9j!ZqM)JUXfJw?mZV@9+y`)z1$8l_s;9Fq!EqxXr;zQ9n=D z)0C#q41Svd@(uSMj(XKemv3bGI$ge#<-1Uh+b@UG@A6yR->0R0HdeEWxx$-%c*40z zP(|jSue7{a2^yh<{Sbj;iV2U9>_%nVy0Y9d+2aXka01kTo znOWt9OIBbMz?1xiUl@e-;=hBi7*ogyoCv<=28%Zp|FHQ}@m+XAwZ^7FGzIXpol5Yn z8w4q|-oJ>VHnAt173<3#EwEK32p6_rA=aIBrz=j;p;zG@Ka$XRNb(7w0}(^RF(Wbh z=eTslY&H32LE;1(t`h+aHY#rAa3EEaU(@7Pf+l#{>YjGE5W_$byV6{g_>_cE!7Vq2 zHMp-a-bY*jIV}wqk~3OV9oC_)d0jh-@3x%x}nRc`#uF#-Y5naL0utr^Db`_l~_5y4F?AS!!1bgg+lC^)@4IrXGxGVfv<1VQr z`LRO6+{gU z3(o~gSMKZz!FKUqSpf#_4ZZbuJSg-<_oeyQu|8gib_c(il%MmyjtGfVmUWW5J2VW+ zVu4BO-r%R!rQUDU{hO^}Z4#;^wZjWtd}xE4&FxpwGK>-UfkgB^u8r)28Zb82k-Ahz`Jlu1h0tdifCy1OxB(yZ zy(JrOOS~B8KYd>ZN^fu|Sc!#(M?he!Py&G+LN`L#672&)h@uQa^u6|o)IByYvOxejp5afKI9 z$WR~a>VB^DZ;k0cLthYciv1@&jb7u${!!?aTiJcmnh|&p z-6wQ(qxsV;{*?Z$K8C)}>=5*$(q7VJO1qhRF<|4rLcmZNW1cmNzT#F$DJhg%dc9{B zK*?4{F_UGRDZjDUXtiCdcHB#b>IFm1p*BznuNZyp>ekH2c43ok7NAVVj{A5_UjvyZ!2x?=7OMpad?PV0@^B*$|f^ui_)QUDK)FY?r?KGSk9H z_p9c1)3@7A%e|Lgh%I*=ZhYbZnXw#}Lxzidj1OA|wYTrY4)*E}%mwrB?=0Ax+8xAP zDc|dG6*x<=lQ;j1P6pVWyo|Rk1ljl2_mcU`*4P!7hawm729bsT7-?55OE#X&VVE1v zj~lFE^pEMm8|D;2-SdF?^_Ta~Q*h1Xvfr{p(4SxDihrD?h(flDWej zuxB@9jMOxq@pp&DVWYR`8*8RCumPI4<_DhO8c*;Ob-QTQGJR&x zEfd)3PCmx};zlYU>kdJ)UDAv_7y3Q5~<&$E#cc zr?9!Aj|#c=eQm(jvrhlQI_zF+t@E(KjG&6oXG+~6o zhKGo{47b?X3a{ejWz|Mr$6rb?_Y)j$ZVbrTpU^FPtV)=10op6iA`uW*-Ufb>u z>SyHnQeFO>&o@BXvhVVKLe5pR&~}HyV=4i@9!P>rbwFibqb2+L5E5(&`af3!5%86= z4go9FGSon(j@HK&C|78%Ef1;JbIEeUbM?+vqjuh@m8HGdBSgo-&$hyJ zx4Z{^utx2@oeGl?DCFzB0{j39Ny=DX{Q~2fO&^2@ih8E|b4cSbX0~yKo4fJ9vLdgV zGq?awrseQ=t;S!-eFY1Ev5jz@{j@;*U8_ko$DxfV;wSfq@2Gys$n2kKv_hC+{bE(j zi;uxf1fN@Z@f)DcRO{Zjf>^=e4;s_wqq^_|ZqModa~$KhDv@Va6@EZEO81@P*utY{ zJ7sla+++T4VpuzKQ7o{*6gAw?KL{O109&$qe92x`Hz!+LgK;B)D}8q;N!6@8%D!dcAX z8!i&gz+vDLDDG2}CCg=WmepMf3#N+WTTr>ek2V)=yl30TUp(U-iijteQ1go}y!Sr%)=Ucr3t98}ZXz z{DiWPkG+brc^@jyp1}AQTHp4Br-HB6s>M&kv(Rm>gr= zr(=v=j@k3P?b~8LS=rb zf2KIF`&y4N)_+pG+IRY%T;s!tJAI}5j4uK8x4PPYl57;XRka$A-4g!8HWs?j=1H<_uFOQ#8=n)i%p@|Et?1PQdZXh)XLs;3dg2nQ27roe zA@~(wqKRQS4k~d}mH{9lxp(!lTCx5n4^e{%^4UML63(lb6UCpk< z`<8w!AK$4xRG?8?7o;LjVYSD-@f$1Xugf=Pnr~P)8oa@ROo&{7bEj%PLMu@;M~hR- zVHIfs=;+U91ZYi(Jc$nu>28GhU;xJgb_Kwo9x-J~PY#A*h1V3)wN-lT=)g$dTyJnR z0yr9h2&V{KD4J#8$BXl~#gM>d@4>0vLCAHvVsk(b3-KD|yw=)nrHiv7$CT!VZ#VBB z&?!b_zB5s&e_)XII;a{-Jv>eQf*e7)>xyt1;B7L+E>e> zJX|(eO#PP0RFA3Q8Fs@h>uUIXHhht8IKfjlHN=AdZg#`-wDM^}tVz!5PR{y57$Ynx6MAXJxPd?Tx1)_V>PN`FXro(98?~_Bf2F!e zGs~=ZC$0b^J?}>VR}a8tl}k&`0*K+K(|gtFPe6XYM`Fej&lfF{9MjH@H2rT7yr4h4(jwlpBu& z@Nyds)ARU#yv^J}!wR;3tY{eWv4w_W0WJ{@Q?WCGZe6KR04H=r6sl-$qu_-xsZbzd z*!!c|j;|r+EPA?)gI(;?#=&ZQgPNjk+VJDCkLZ#)p?R*FFspFt+pG#!>k;`LcP3R| zgV3{O1TM!$5}{MZF|~WP*{%`jfz2kNZ4(Vf;CHso$hKgDS8f(22o-pEC6d>!R*&8$ z%DW7ylmk z@!5}!lE;>j17>P|7Pnl3)#$nFt+C71@juh+aoP@2wky;KbXgDfL_h+wLh(jaQp=Qk zxA3uBB`2Gxt3Dh3X%hkzQ$^34In zP>(14CZq4U!p}&wHE1o>>^m=}kw77)bYU~Jq*p8wf9Cdh`6N{OKi9fmcrmk6(gt3H zU8=a;ztEU38FqWs^Su=vm(WKChaHZ=;HAGWudv68KzK*rA9uxs{(y?V%ZTQ2L<^e& zZa^Fg-;HmfCw%xsf?`V4;dy*c9)KEJiJT5hX&PK#(r+kS{FutO->~4ItK_miHoeu` zF9!!XVZ$eXHKUfa0+GsoC-$%5w17?9LCX{a#TM^{wMoi*vuahxFM;A>2(Y{|V`L&( zNE#>t8gRq=zQZyg0fZXfs*9kDh9h*b6vh6!Sdvq88Q8JD?#ttB*tp@w355$&M!qDc z=wg%#nkhp$q~V2_S;ff-&yzVa4}!y^L5^>B2Qr+=kn??r3o`%1I3E-oLFN@gME!f9 zld-4)gX)grC|$$`rE~m-`nN}MsICQ2lIohw48^`uTOaCh29lNviwG98cRAG9sZK;F zRxrTnc)W+4)&~b>vm2bn*z z9OJU8+AjGOgW$sA%*QM&P|QVez|x9Sk3b%LFC8eFNaC0M6LS| zFpHh?MY6tbmir|rKzI$TOb|8Zr2AnlACN(g;#$SX3wV8ChS3ThE~^H%mr<=6*hBt0 z;dU}L7-!mGj3gNC0(?yTRm2-SKQirsG)>PRHO3G5k-P2h4dnZc_V z*xzC3#rG`hd)D6kNC$ke^m#FS;FA7#9oyRrM?^vYEfNjIhs0W!RZ z1MkURY83qyUqHp6Wf~-Mg5^1dm4&$_4Vr>+ZbDz!Y>fc7SET4I`~&v+o_HbL93ecg zv+VC{6#b3@BAK}*n9QbLSa|Vd^4q^5+#?=ITgG#p&fAHKl?sbve67Ob2Co}@n zQ58O3ehCj!_K#ceV!Cf^c+jT8{e6rXFl9I${Lrg`@AB}Vukp*|`|WOj?A6fMBRr^z zwPWqtt-Tug&I}K#WbGAp?XktX`TIklo4Bp-tFJ+i@BB?R;C|nrT&&AGSwBmcKV~^B z?`$_7E1X>9B5A2cE&B(}6}ky0dIH0= zz%SQP6?J3&_{OXV3N%_&154f@Jn)b_^K2(Rg0@v4utSWk0{%Sj<7wI|&JkOMc*98K zgB+S3meHN2so7QZJ+4p3e(`TWCiV;3TVm`N@cZDHm!z;&BzZMhc8W$zEcEj*QP59J zCB#YKh9K@VFjZiLkXy>2{ir6;K=mcz)5!D1KyeD2!M-O3itjN-J8eX4+`LpGtd2>K zcH=$#MLNFWBMqkSJ%>W{gOr{V)GCs+xr*mCjBij^S4Y}N=|gAro3Qy{=0 z03&dKwupM@1#=eZ$XznrqQh4rF3*OztS{r;bc3wB@4m#kTYtTj7qA@CWvQ=5+1X1{ z`tNlTN#$BW=K;8|N=|8E&?*ZXNs47?>XlviN`gXV8+puSSRRjz&Fb)nL~uFS2}d2DZ0JFQfJ@ed&k=C46|F`J&9d%)i0ceRZsUA|6j2`XzMW@?s?yT zt8b(?dxs7)uz4gGxOgzP$NeCLNw^6*tSE5X`iUZVil)y^#`F-uX}%E0C#Y9zu-0P< zqHnyvD$bXBP|Pg86g#*W9uC0emn;=x~R^8|8 zd4kp4=2d>-Rb$X~Tz-h1>dGltT6IUIs7Uw0D4vfqu$Ww?Jf$f>OMH4$-!K0d?P-5rI;>gj1`FLuc+i~}%)t?A{7(ViDz$Ma zSk6CET`sSiGzh1m@*d9xk)_bOou z-+c@QvHnUaFJL*O%TiyBvcoJ=%D*sb;d}-0RzU(Z&Vk-))Otw15H+lL6rIjJ65lxX zc&q!~G5JP!hi_2E$)7_x=db7-Qic<6^<*%UBXExYGTv(I%k8CUbBv@=6mjuZH+#)D zVmXF+Y(E^*AX&z>6hbL+>{aI{#Ispekjyet#9N(W^%BoA664wY2;uMlzIdz8dj89J zHY?w@R{D`xNISBSV~b~Vhu!f1a6Fs;kGeO3kE%Kw{}V_c5yFiMiYq}ui7Tim2uMaU za0g}(#kf>aEJ{^W5M}_2$lxTB`%b6Dg^F8CtqZo*QY{Fs6P6^PVps$em7rGcI4FzC zs^s^5&bhN?L4Du%|Ns1ce8}AGtj{^;InREMP8R&X9M9&pm(o$lFNn9gwYm`sDFT~A zZ#>3(`;p7keL(I_eXrg>$$biiG^RI@_ah5Uh_I0AOvdx(&CU#iy>7UWZb}Q{4Zm2# zE72JR%AD^QaM*Rj(vr+cBrz&p0S&1$UcA;CY_E(5o(DNCrXs{>cSYU3R${;hYq!>G zZNQUJEI9)8nQFOhQcji9JzIC71?#RS9=;7625-||7_MkeTw zi@!DQ)4q9OUl8Yq*N%ADC8auQd)G!=ysf8rj)6Qq1wD37VzvWuRA4VvH>DT7yj9(dDwmyc@y0YsMNI z28|{($E|{sA*DnzF@fi)rIq0zy@RU|l~7p3=2mE?^cQ0>#Quy+n%Li$-LaduxK6uO z6;~Vgi_f^1AaqrBktv2l%FD*vHRcNac#QGLQj8MK{HhY;k?NB2-TsT29kU^C6tA+| zzU84eR`x>{rZ%*e00*SXn-@lv3O4!Zv7`H3jCS3j9-_ zeH17!S{W6+)WoSM)P;6VFI3BIVxqu8aYSHNwqVtc*D9&f(GfkRcG}!sYteF8YNDg~ zlvyltTr)C9mVq)h+hb1_Ba-kO)wM)7DpWTj3+GdDOa+0J9#qkTA8+dZoXIpf)49@2qJIj$@lt`Wsd095pauX8P=ASwE91Fja%Jx5dSq;fl5lypi)Ava7C5|Rh|PX<~#F28jKBW zjqLDQu{DyXs-6{~8qbfX>wBL36@2G2`s_iSooi3$%7n?vsu?s|R8K7Fo2x@Xc@vu@ zC57k6@PNY9@I)5Q0dp68~FQ>zn1q8;a9_Ly^-;GX80KDJ)><}y{MuQ=VS^JVsCJ!;@fH(i@m`*`-eLm z;?Su0Q810DO(x+axW}k?2DO^vX)}%rc0{v{j6-(WW1g37RZM;sQVvK^Fe9)!Umam{ zU13Z)8FFUu+X4jSrV^#YE;vQ%Bp^<>rzdOz3@73X#BA;4(NL|*z;%q2*hpymRvyI= zzILZ`77&`2WtrmQUH1FWCEC=raho>5r`4*a$XP&p#wDS!mkCGh^HRqTAbmSWEoxET zT&ROz69M8AiWJUHDQ|KIu?!sLjl-;ZIbA1qsme&FWylkq?%eg~bowr7$bX~LA3dAs z^jT6u`atMTOH-uN*{M#qYOd3A*ilm5G+DSb+X(G}In^SmcMyGYyn8}5)rz9hs zNZ~|9u{SQG4P_+we5a&pSF8uru_d!1-aQ#SP9BX}vh`{PeF+K%1MTYI1U|1v~k)WpN&?FlMD}k*b!4zvEMzPNsQFDiIGazY6-{>Axj4X#2*)U zMkl1fGc^(KC36Cv&UBnyk^#?zE>Yk)G$A`dGq&Tb1U$<>W>RSL+jOy`#801+fFH70 zn#4)Z4*Zt<6#TBHVH$oe?lRzap$JBR-(C&B>Vdkw0>29o$EF>mCwj5;b&atD@KeHo zolhs=Ct6T7)06OXz(c@22Yz9hE69Wns>$ihmGbq1@FN9nUQd$t+HK8Ust$S|$VQcR zOnSnTv^nkHF8iibb7T)rEj)>fE^D7jr54dU5CE~Y{4^ETv{-|hFb#i6ba<(tlVlA9 z^%a8k)5I(QJ3Yt#6nl}MUs}f#$vVE4?XO84x);=NKzfm_YxqTQ>g&{?WjM1kY9aQE zf>oj?pq#Tv5IbK|MFyO+gzdIi&`xB)5pw?t3r{u}BFOjsR&4bf?B5O$F~g9&>O}Yo zj;Yr=jGps|`WG3HEg5qtWXryWhTlNe?BhCdzZ@5=^;u$vC3Gr&8jz2|)YuEhW5e#) z(#dh1m27TU{3N*?h!q9^N=p+g@s1{BFBui7Bx`qpNuw3PFD0u0X+drj8KC`duBhG% zRsK`{BiK9aLEdCKCwmQ$fSuYk{|+X$C*mH_YmX~9eFO(wxOYNm+ryloV4|%+Uz0d} z?@Rk3r~u`oGd#8JPQF6zw}+1op*7$cYm&eNWBx32QyfV?r(1vsk)QITb`IU!V?TH^ z=s>qMN)kCz!ZY)SpuVjWdxS~ndBPm!Jr*k*P6?kX9qRkBjOt$dnSL^=5`WNFhmcxp zxyBa8O|f8po}J7WR!5AJ!6=_YPMpMC!S{odB*&lb#dpOXO&MOR9=kW3Z~Gr-HZ1cH z!2!MP&3GHj9wTC>&8I7z_-c0GWaV&tW_?#g6n=$?mOQSyRpDsO0;-?W{Ci~K5E&4}fo_Efy`4Ml-d1izI;6O#5G0H*j zRuw=J%fF<9-c{|xwrz^2L_1<(d zBco3U&mn~;G<_-t`I{jPe34tGny)h{l?0uYFi%$XgIyJ%r_yF|B>AipdBPWY!k4At zD>>-LxPKvKfKFs;;a6CNUtyKnxD#z=$*Z`Rjb`sw`=!SdZJtOGX>FEskHJWDrBrE4 zE^X27Z?p#T!(M))pb6aHIKEL%uu<-BgVBP|PP)IzddAOzMtAXr$LqjN0g_6H7qwH> zU8r{|^xQgT!uZ12!yo`(_;e49l3F_3d6w0$GW^-ekhZmfwrJoXyJHt=k5O?4%a>h{ zwXJxoBr8DHfLE9GAYk$IAVFR**N0b?miNNN}bzX<;f@gbEN@XP-vJ zO3jT{J{g_qT6H{o`A2jSE%*HRSsMS1OX~0S8Kbv>1JhzOVN>=`a;O+hZDH_;a!`~C zVkjCrJ`p2Fjw%Ne{)e<#Nw2paG|?}Rbo6Pz?=AYYW&$%cufkVIC1x+4n;3P4leE09 z&hdE^KuDB~3awAmk(uTTn4x?~^r`*ANgCAI3L^_RcSU$X2f z5urG{g%hYGHSvt{kW?YmAy|CuKNS|AZAQu}l~K~OeH7+CnfLZ_`u@O6+`o5G>U~$< zC++J~_HMRZ3mRsz9)Ob#G%1{ zod1Pg6JoV3_I5lM$##5NHtqLzJ~@AekJlU0>b)$lwEafYgQtx9IrzN?^q|nGR$y^( zMh_I=qJx77DHg2Nh4ytrqd1GyqfiYGozQm8qSAT+HrSRWrd(oQN;=CgL&!!}F2w;DGq4YRA6 z)~H!q?e&i&n)Q3ho@~}>W@J)lAt+xV;!zsqOo&`!yX6?=5@-{Frcl#E$F!f%{?f2j zwKCqh*UCLr*@14cSu|dWj^ep*E4dEbmp#bH%2IClr17)2wglt`>3PfhRP()Qlk81Y z0Zu#(1jzIzcP(!kwX~CNY1jCSCe3^jv2e1Pqnk8yI3S_R6R-cpO&s&E2Dra#2CxHA zpIhv~aR=Cf^_uZP8$0_ckm;-ZJ;UDu{v=YtaQ-ggZwP$jT)+IP)!FfNSF?P_=sW?@CR*->GCO?Bxw+xE(i*cXm4lQ?P6QB;EkOV0QGT5x>?`CMaZGU62A8|f3-Ru|W(=z`4&EFgRE#NPc zzH2q~=d6EI*&h(?en?@jJ;51;itiJUkHjAY0tJuPn2>YI{iotuMR!$0OzgGKLu5{4 zZ%s7+y<)`$?^DK=o2prlu6KInB?x8?)C1#vWM z6lCi6lp-PwZ@+%p=y&^BLOBh>ma&_b!f`~|-@q;D-mdF;R)(1}Zm&BT5{8-D(^Xjs z_k;o#8c#x5lT^sQg7ZWGP7xvYJzVEqh5)V0^HqtAfa%; zeZH^nmjdn;3f%uO?iYVD4ek|ydqrc7feMh&h&%<{yX=V%X@bcpUjyPwcCyRe?wi07X)R|+~q%~xnRy+_A<4j3!Q&TyBrqntVlMppd{1HKJp#$0e zQ_PCB{&S5*$ILt+T!O!S#o9oJ;C>K}fo`{_#?G+hm%n)6%rn zY4ZHTBu!p2&G~6*1elbQ??0V1L-Sq1Dqyoee~O{gtQ5H9lg8{@XUtkAH^oam*->Xq zZd>!-yYIfcX4T9Ck3aULgDq~MA_L8^#7@&?=J z#=<9FA#dzc1z|-7JR9oe;hYDYrXi zP9yXKg_sRdb0*{--Lf`L`5L1gGkfR6Y)ueE2E6bTO}r8Wq3D&+3_|-Hfz^$%C@X5W zbrN-Yl0*<-<<_QQpk`YKeEKSQ*F*PGxDg5;8*W?%5ar zF4aU$l&Jh?I{5>+fihB>jYA$UfpD7D5Vjb{P*XW!ClQ zy3Ad)4zS7XQg`_}|GDL$gy4bpQ%=K1^CQ>GU0(ki3`eQ)*Ub|R*J~q~S8n64A5H4x zdimtiK5HgV`$d=s+Rqg_*ebA!`PbTofnMotpBBTXlv2}> zi`I>GRlSqrHeOxlnt9+ECX#A(-bb$BsuQVtO2t@fLSE&FBPz{yrIjV^ODoNSlFF$a z9Gpm1nebEc0`X0RSKhNMJ1|0pj>_pmycMJqqoPpowRmpU$&}@~NoM+3<>^mol*OsC zlzbZvbLXr0&T(+x8m~rWO^GDeizL_jNE=(JxSVP7JQaUXqA=NF`qXP>dDLULSDO|a z{zr}DUztn9@{4~nWY%j4 z(Pab>?z`J450Y0e{w@o$J)wO$lX6XKP5e4VG+Db`p{*yHp{f(juDi_a0}{*fz88i= zs}n~P+Ps|1%3`=$a)I) zH?oY!mKN11!hCgLN7`5<B0g+6L4Na39@?_Me`n_A zxmfqO%fEIT9_aONF~-4e8ftH^|7tPF$rBzoaFQ3Tl9>J|p0ua%q-43L8+^C80Zva6 z)x$`sQ=OGy&=vLCIg^oVK)>QW9ZY(@SO*ITk6I5|+p&nJOtlwoa^oJjaqtsHd7Y}n=s z9fIm>! zFHwC$DK0Vo*B!*jH*Ya-vy4HTQUMkG$H}NZ1(wI6-kx}Z3~X5)LTEY9vx%2yQ?nu@ z3blwAgd6|h0fF=ap~=JoM$YC?!3I?91}RlIEp>iJd^TgzmWHyKH9X2raYh%lv3)D| zmvEn2ylVfzJ`||w-Mepalw4W*!Ivpou5zC#z2Lv#y3}MTd{KLPUF?39Byfqt&g9g=1U9XqXR)? zjL{hxWAq|*CB_In*}6DG)T)^w>MTQqHJciu_mA^th0E5<2+jJXBXoX+GeYMzGeQ)q z2Iw5dCH_#8NeNH+HN$o59|7bOtpC&)sQub_wXGVT0SbU8rM@b8!_o}+sgY5_3XLzD zj7K*ptGu`?39t{k*bmNMw(qOM)@KDo-rQ98RH>x%fxtC z>(p@Mv@{$~IKxrWIXN7azjQdB3H^-Wkn?U@9*$j)FdXeqOdk&IFB8rf4y!5!9^!vB zEUk*=4N%~#ow6%29LWu{$#|HF0WqBgQlv+OjS&<#oAEFi5L1r`$ACf)3jX43VVMnB zShX-7ukkTsJTh_E0zN0kL*X!4AT8ps$D9#)>6jD_tN5iua^(HakYLi?G7eMc5zlUE zi3A>IOr{<$xF$8fA$~Rf(hCH-wko-wD9jbhGu4Pd;!OF*8Ip8*C>ig+i2a)l9r0Ll z4?oAX=i}ry{!*vJ=G;wN7f;fnr6Sp!6`930+WgksD2BAQpA5>@T$|+=sS;QnD*xDTkqiDMtjITc zB|Uc4#Y(bvHDyLLn0hF88*_kSMNUv0Q8n|IoC321|FKv2k5y*&(ur*{kbbuZ8Ho2; zpsC59+~0-13~fhXztclFtH@nc0zw4oB`sYKDJ&iI*OLqao{;k*Ao08#IB5cP0C zlw8WHzdsjV-~9o2{h0`9&A}_pKB|Z6(2aDcjTdt@w0Pd)&&`zbk5?_b25!FP&q=^YcU zib(Usf^%d`Y4R!RE0X$z`Rov9%_b^6f=YX<{OA9|O5s%BYf`1|n^FEe3_G+) zEX2@(wj8ahKi-fKI#IJoMJ486=s=!-BpL5R*i=KthWsg|yv+AsLg({EGB@c0o{#XK zL!z-qxPr?`^h5rXF1&2#KaQ7owQ~hm@bbqaCLO`c_Kp`ACdfbORYe=J9FMB_b-!rX zf0?`z|44yq8Y@Oa3yg}ZAtZwLwf~h-;o}aWVqNxHK%TXR+coO8Bx@u08`QlkYaRC+ zb&@)6*E_F2;Qj-vV>dE^&EIFZmH`)zV|jA~#g-zmdJ`vf9Kz%g_b_3(V53_FE{xoN zXfKXgp?yzG@gBzeEDcWRJqKVEK3Ylw#F1%*ORyNx9(u~HEM}-rb&wy0V{tP>GS!o7 z2W!v~OEd$v$+X(V#Kty-(=zOv5HU0uuU-^+;MW+m)3);_<;|>qg!_2m%<7)%-J$c0 z(0f!XJo4q(p@HE`Bl`8u(CumRpTLnw7ci;71;eraKl>N0AZ_%Y zI?*LHx(@zL$gi;V+CZbxC_)~JJoWvrm5s+a_{6~G!np3X-|an={iZJ4e_HmR$uh;i8F)noT=%G=Bfh8z!0 zKx99x=Ip>IMQfqeFe>NpPN7vz(bTvFJ5u2E?Pl>tQNKbuV~%J4nvETaTexhyv8w9x z)_XQvAFlgs9co{67d36vY6&eb)O5?DOQ5YN#ow=@A#jZBRQL3v-rPVD=PSRK!$q6DF5cpSad@xv|~y+_Kf}lf%3S{b{E<(y)_g0O@D+&nXW%hhDJ${ z3b*Tz&?uw1gS5#_kTxUq7buLuI@@3QLM7v*H)1>mDAtXG;L zaw%UuXb>=f{?txBeIU8!>Rj!OaxvP3j%hESHb}1N`cr{XK1qKnFhfgsb6ivh@b^4e z^!bu>qm*)mB-K$g#Pz_=|6Fa}oms}=3W+aZx!(v^bdyyr?kF-M6)Fas98xMlwv~7j zotRP4R*DL{=LP#fY8+tb+1P4s+i9bc=e9Az7`2=cJh%1NVAqEIR;oi5tP zTk^TvZVpO~;GZn9%+^h?4Sw0|}ALR7q?l(9DMSo$pYaW|r>Wq7>j6Ijk zzzwDTtbEXJvRKk-w}=yEL^h78N&3gM3d6oPEE68gx4<&n$5%in>2M^O3B49eZ$w`F zS-KU?$Rb>eCX$rZN?!c_^z|$F0&eo4FijJYbS#lhC<~%|DNoqSMy$S5KM_WVI@vNL9?O|~wm zHrYD8$sV7Vjv)nKfuFEx3S2}##gb{G$3jcw$ZyQhj+}{JcR0_*X=iA1T*gY*%qnfq zv_C6vN5iB~eqyi7oEA8$z54zT!z!)uJQg@qsk7*v)yRi$Il;kq<1XeoE; z81w@D1q^zI&UPOdRI^&fEHPW4OfYDH{x}>SO>vGiLNJBHqiIuj>KqH7=CEM*kul#t zHOZ&l#q$yVTS;^meADYQe}%*2$QI4vb#OSm64RxkvS#`#uGJT6a`~!GIo^=i&=HBSa67H~0bA;Tjp9*(CKckmAjLtzV>gv&;317J0L-$1;l#!d9Xd}p>!M`ua?HWBZ=vofY6-brM7 z)NW`y6ous1{tG#1F$W3fKS7M%NFa*Z9_>mHaKI(pQiu6lAy&L%IgE_$_BKN?!&$L2 z@P#U48f7S=&y_q8CxyTqdUFJuhq34ZDG-aBoJl>gN-r^Ma;jPS^oX8Z0gH8IHR3~W zb)J*5e}livp=hPbm2?At0g_r{da;HDvzOmXpZB&BW>tz;_)?^aY*l9|u!K8!Bd%;S z@>>kFVW|-q8gFI$Dxy<~6Ab(kqPi5)E>w+bd5adaCwA~#C0T-Lfu4wB);fb(iIq@m zV^)Z-_+5R)lpTa)&0 zX5^k6n*Kww>6d3KZuB9_srszYSaf%*sxPHStk21wv(+` z`k(4tGWmaF5{z0Vp`#w6vy@2C-xTSXz48?H;T|fyTu8lX1zkIVFHXFL z0OzzEBmPhE&d~QkGcv7cNdfh#(|1O)1_u$iP4RNNL5}*OTs2DSZ^r)QgYP_8p6u8s zzsDU^$m+1^zgOwc-7o2{ZJb`@H40yWH$)}lja;3JS_ZTXJEhbzC;extkZ_~w(8v7a z0a42gc!f9KNcV@;)7cg3d++Hyp`^Ko%WE?CT`G#7C}~EHygip%u6A8ry@mRfY(zer z4IT)iSAtT2n15UeRv=WH3>L5CRz^qPx`WPDrUIYb^PHRqm2QE&zqkG0Zkl&&)qBOWI#ZNPnEFqRHp(P@B$G_| z(4p4;Q$thdWe5D!GM@~vkyGd6dzEP0^dN&>X-2fOhB|#*uOIe#`G}+z)fFBxnu_EQoMhNCGWV9uvb17F zYHWIMmKQk6X2lF%5M||N7!>-&pB(ud$^B7$S5%OPPD?yjWW_|VOhE%AUpL9OQNQ>$ z#0!Z~7pvxnf^H?(JgyVC&gD9ls}wwss}x+m3$UnyeRBcrV(z0rk9w6P5+c~L@MD3j>soHa2)Rp{`i|UqSaxGSpTwT!>wgth*sL*^72`7(D&z&iihz>>u zHTUoGq$Ul6nmb*dj^dk=v{$ERjaeOrX3f5bvAT^h+st)4e^2l?k>@CX*YWo;f2(-6 zn(KdYr6~1J(R5gL3K=|w{?v?$t^Bajej{~8dVeNOknMd`Y{(Hq6ZE0VA0F7u7WQ;p zHlrtZ$ZwmS33|Kb^yhseDeu@Vzkg&qbLeyISi?rJZ+74Ul~wEtu&1_s`)JaR?LMHK z8=NEq@7t$v5?!!|w9*h3injLy8+;mD@g+8jT`5IQXXulS@)Mx%;I81R_XPuILB$Cs zWREB*a;|-x>j=3*vdSgakz7I!yR9l$aO(_V)7<6JsV5=LmxJjo6I#E7c{-uUw5Ikz z*K`R_s}@tY zj{lcReVI=EgQRZVZ0dZ<&WT;id{7xq))@{;hMcqvW~w!kBR8g)Nomk_CIihsAUSed z&e0|&$7HHHWcrX}zvO7sa*npKWr-Y>I>$cA(YECrd9eo*Ij+(<_DYVtmUHCCZcOCp zrgQ8e$5r`m3k`I=48tamRqLs;`)UAu=q_K2mrJPnh?sJB6#&E)a{BG}lJN*PrlP^m zXLyWfYTJ@~bE9nSV!N>(RZx)V{6OJ5$=2>CvbB%Bp2(&o&XM1WebQC!e@+$B3of>i|oz<$-n4q zJ0x4-Ph>kXHeYA+-$hN|NR}giBFj;+fRm*kz6P+9MLc4va1?qrqw;9^7OFlPKIrR` z;5I#kNO*|wy0xvDzaNQZthc23X@ubLvJ(IvTu>#y+SysH`3(6=;`~)%O+3~+9t#ez z&J5LxS=UO;y0}C`I|sHe@l|Yw88+Ni{|fe~G8R=u+D9YpE3q*gx9`;+wRLt@ZPacB z5TdWw8rgAm!R)+~PC z6Upfh6;x*y!-tFd8d``THO2dQSu1W0V@>0(Ww-`Rs4eAp{Mp&}4$m6vHrB`FsdsDV zX_q_=$aS9f;{{NVCl4-T{YoA>wR0ZUNV?ntCta01bvK-+tvszSSo5q8=K%yR^QmRW zX1$+`HD=5aa@*7gjPj_WiIZW*nX=>e5YwG6k=U+uO4gM$0k-MsVHcdDrhy? z$UFqVv zf0inAE@|Fv(p2N%yBS3$TRM;AFKXb{`K(RSIZm7$3&bcAJ}Js~pw*~}K+tD>%)MSz;t1Rq?8&Ov=Y zP=&ai07e;G<6sSy?bB^?pz2eHW9nwqra{JMeN3DH{k~q>js@!arIbY?8D8U{q)v>D z*V=5Zi|f`f{%WxGsQIioxA$AnONDB%@F9GWC0KtTC=e z-F>Tm<2--QU$uJroJrrO_#pS=wk2nfdiSmRjq^+L=558FF)ez zrzB%e8>6>L`btSwO0pl0kYt~4;pM2=e3cs|%;A3TSmP%AeI~qAx0Sv3Ce)A?x?6jjf97*B`R&h&`A3q!G>AhVvcaF z+VAeQR^%Ptz8n0*e0?{R7;^~ovBqb-_#sP!Wx*Kxj8aI(`WYqBZEZ{QY6eyI@94qw zmdw7s8v`rEe{1G)*&xznDDagx-RijZE%-)w?@qTRp6BuGv#Ow5B!*u2BAS4IXSVOS zwVwRlp5j%eYA@vly?xhCZi~xpK;jHw-#c-i5Z4L29*!ffHdRQVrI?p4MKL#Xe>POE z@lchNXGXl9Y$p(-`$MzuCK5p`!RV{NV099MvHO)`Zc&#VKo$+(94@PmcaS>{B+esl zmw2a%VS~2fNfG2)zMYg;Ath1-1**~-rQ{I!nwC;@fK9Ja*h{1HnhKGgINwDyVlF<1 zC;0=_3*N1E2ea{_tIP&wT6wQmljpxV>Y`IA9%5B{S0nYkh{b)0-XjUpv@X)RACs=qSY?V%8n1+?}4iTSZuB%wDD{*(wHH z*@y7AEY17KjbfIXLL0>o_gCI%>jb%RfS0T88v$=8 z^tA%sHg0|rcvmXmMbm+&*kFB3$ZX(sBJjeEJ0x!0k5Hr+I(_eFzU=5_ksQKQeCWxp z@*G*$EWFmbUe^P$64<5SRj1(9?MPP$jVRGejamIwxlzyF&o#UVF+(Mvd#pN7_C5u# zuiVyFsVP*KfS0(Xvwju4et>dv4mOD@LjZ5z{odmU_xw2@BOK>@(Tm|E`Hh3d%X35%!EEJXD5)n=ioDo5_>kWa6ge!iBHmGqG z%{88Y9PX^-Jr?xJ2Bvqmzk?zYwGDE1yi;P0+G(63atFilObu z&?cs=SVbtPe~}#8HBE>1mc&w6s|#U`c(d#L!{AomIAO0HSQW@*l^nmZR2mVJ1V`uZhKA%>k*=r{Bl|6zpTv>i$4L*>8 z2D64Gpe{)BPlv3og{^KiN0c!L1yJfNQsOr;=vKH{V85-%|gFStLmy#d+dYCGieW7BY z`rg`8yh7Sd3@}di#fK>NICa3|6N;%(pNuId>OP&O`q3?;AMxW$tsT<%T0=KJo=^0) zT&Ly!uBoQ>71O9>JN+d9ani%_987wPst2Kb4Y%`#$DykxJXH3oUQti+d+=aOgVRcc z7hCGJzG8Dtchg|9cyCI|?B%S5PM^!{C~az+at&}6Em-&>_-dj>9pLo%{k#M17Xl6Y z-R-Cw)Ge@<6AaOe74gC75fQG*DE2Az1ymORv&FsEzIB<*kG|FBajSGFAYPrGdi4;- zWNR^(W41&2e8u#GBmI~5y<^vx7@hgQb+TW?f;;-MJY`L~`QFdHnnsC`?lA@rJcOZX-W>EQjSTApzE%H~o$R&5E zB5&12&P*@zhpofXmZwASDeLMYtqh#DN@Ti$O-i&N+P;go$vB9|SnuCaF7n>d(w>OV zRw_tIa?$6Kq{e>x3$CH%MM_bn`TeBO*qV;Sc=|rOortQCygTtIgluE9#5HB$uzx~TxN0hg;qHNKO&D>r`IUXV%bE=O_QENS(hl*dIJGT-4oRW(lf(vsuo8UmhdF)(BWDrS~bU0qr{q2#vaC^8$nYCK~qnYTq0?R=iFWFX;t3hnA!KkN!JtRSA`M% zaN-0r(h+2|299M7Bkn{w;MAVa5VX{_=r*_2E*s*w&8eetS;TdY|GgO&m$@CdL7=0P zHFGuN;K}~PXN|`(q?yp7tfxNLfs19&CjKY!o2^e+5(#@q%%$kgp^{1YYF~i8aNO(* zTBUN?SCK{kllhIlWJN+>qUJk%Lf9}C<%9BaZf7ZmJFbE_IZkfJT<`}o8vz}9p370P zWZE;05b7yx_#&6*dLr11r0fH3xnAkk#6IB8+hh?AIG;BlwJX)r*}3X_?@M^1gBNr8 zDf@udU#qp+tbKs8KLey{G;hcY9%ws-c&smHQUKS$hy3OWO@I&XgAY)uf33cHAQ_Wd()jb zP_;Ju4#}H*yc(RaA&m@vNdSzTY-`tAdsMe<;^Xim>p!@^?Ud7mK%NsVUrAh=s4Fk( z??fb=69r9mU(m3&eotL_=`judc8SnO);?@rFEXvG^C~42{k}w82J2dy{12I2Ntadp zdlkMj%7v+r=4e}t**qDGPBt4>p|!F;3~lWa+TX>fIEQ^i$pW+?OdZZsL3N9Dg!ujS zTG=ZanqHerGs9)J;a(HTsUQmz?oHvwAx8GIROWKs1+likixiu6Mi6`V0!YWoGK5Xa zkOmV*;n0!Isq+~tF{6RX-s!O}@nFv7lM%9pclKGsK@xk@kwok@sZB9RqNi&KX(P0j z&lx6WAgT#cC&Cgr%CMbk0hI=F>H4H|f4WfVsIwEqFQl76P;I5PrD{i;s(5bb^K7%~ z^B!i^wjwisi?vdz5wP5{CNM%HI7d!-w1VRV@{U1JklU2~gu-vyzeA8qm?|c#bI{5c zp-q-ytg?^q7L`r2Dt>D4^P;?Ep@x%<2RhTP;5%KsefJRMU3{?ET)wlv-vCw1Zo!(u zp`5d)7-x?)rI2EkSxIvsM?Vqegm#V;Ig`&i*T;c&5_Yj7z);5@E6F=3 zaOt3cvd6CfK!CC*6C$xesuUuxaOT{s=hefgI#2N)Pv1|C`%mN9(|SrCM;Oe*($gr< zmjtM2%G;}y?gc|5r9}+{((xFVR*Nw|jE?cZ?-3h8;AUz}z{xqs0RH)&;tgySN<9K4 zJl8BX!nX z{%%aG7g_y_bSwdiBn-ac{UP#-YKVdnoolU7qU!<*r>Uag5EX{ciqX*hx{>eemiVkV z?+)@#+8~nglrn>^&|a<3@L4wL_UXKoraS%>@1y}D^Is=FD`j$jN>P1^m#SaXEROC% zI@zZf2&d^TK2sVBfrF#FP%}<66zaon_4^gST7kjDC=Z{Z zN%#(}!Y#8w)@Wl!uaaC4ea-|Qy-suwjP2+hk{q~CSUUoUYX!zvdnNTczHSuFgr0Vz zKj;1_J;f%hO{pcDOM87J-aKINjY@s7?^|O=|28Dcb;}E-v*1UqVWr1FnbeZ{f+IkBiV~ZX zQPja9k&*Du?LPs_V!`~Oqp{$8y}lf@D>iVb2t;SmE6Naij2EK}C;N9aOej;fl>F5g#S(yi8FWC>)-S=h?L+%L@9H z%Rul@J=n&58T)!4J&P3lbA&LeLWzs(aj&()5p_E6GDlr96Lin>#fj&;c~@RK~(};s;JJhJvm&%I5(QU-*u0 zP%*3H83DFRFf}agCL3fAM91hsB~im_|72gde>Vv^&i43YV6!-RpZ`AF<0VRk6?Oe2n5Q;DI-0tujdoGSlA>P zh*G{X9WrH7I_6cu^^ArZ#INj`oF5LG^4j&nLv$L%2PKHG?@{AcFf@_!kbSjIxpO!K z?mKFf2mB!S1G!HhK1aUQjB#3^M$F9q@Q(a0c~3D<<#brnUuO6cIigd1K@d6|PkWTD z<*0^wJ>D2HLdEUGyg`i6e#du&5@V!!VuZ#yEA*(wR`MeyXh<~)`Wq_#LZX!joqrBW zWwW7HsC=RI=Ty1NYXiqY>kk&5=2xx-4X(BIu03_7ir(*)p!Xe~nUJSFrNvxLxz-FB zEf*)$sqg{Nc%~&reM1T>Vfi&1pT;2E>H}usHR&+Rik?ebnLef8W_m7=j5r? z#C#SLlvG6USaT7)22U!a0-0=7V$2HCGBZp7glrJO0lQ`+ zO3`fSUr(kS1FcrEs= zl2c;b4E`e10sBKT3GGcgV`F4zO0r|ZABxhnVW~eey3&O*GIz7$n~sN!L}y&++8VR| z0I842zEIHaBT>RhGKI=(jfyF}2L(ydyyVydG3pU7#RbSCV!}XPT3&iygHa(4GMsH7 z0lpSdK%zodNBa0;O(F@iy2g2K10IE1VqAZAc*np?nKQpi*g!yVuv8X4q&< zr7aQyUBVH&execZMEmW@PCFRah1v0!(i)>%L7;qza}wLF$Cl9qJkpXM$q0l5f;s?Z zWWWIrWB0wRh{%98L%A2#!{3y5|rLF~$EjY1!8oPqkVd#mN%8FqhR zxmkK{JMOcM({?w!T}XaK?AQys??!kV^&^EWct%=j;fPg|cQy%xxQs#;?#uhuC@dH< z!{^uyMmk+bKYHyE=4=?>W(;EI8Chf;Ijl!X<)l8uj0l%~YYppbjqI;HBVQ|#)>=7u zfVR_qeb?aErU4Ck_p|i=pCVf;Z6x=gJf_5pQl9kw^WLf6yA!>Kx=HlD zY^zm9W4^G;=zW>={z$r;*87*c>E4f{_s^9bruUxvd|I7H!ch!gueH69tPV=_epssa zfZO-2HK?yO49mljC62_jb+a9Re1)tCC0|MJ?@ktH3*)`(f>e)x-gtMRi)lTMo|+o( ze_wf+9$!5@HQwWf{I8DpUzZ<#ygNw$n;Y+M&rkLK=Z$w)x|`PfrKhCEd(p_l^#0m= zQ{#Q-;Qy`h{@b$Dc#lx-4c91IWust8RP!R;9kopDuljtump_%2llYL1uhZwtS`e=a|UIzLS9I$kgD?z1F^FDaA2zy*clFdVFg$r0a+nCx@JIZHjgqEW10BnR~!an zr%y{kte?9Dh*gg46V6y5lS&q3S2n*mrY}`nltVA8_~4upbD>DIpQpoeJrmUFwTP)F z2kQu=1QTu2nzkfCldjJjp)o33w*3iogmesP7e;W^_DEIcq%{08&kpqx=*?5u)jeOZ z>jKbh6#P;PcHI;%`_L-0!(|^^WpVIJJ<$7CQ3mv`;87~M6X*@T{4mgq-IIdekAqr( zp2DtfJM4?MgkSJhyCDO$_NhwHYf7IvLC5w&gI%uxMj&_RTBois8IeFed($S^hC2H_ zV1yTSe>x2vr9TMV|0%GOuvuXeLgUIl0I~!4lR7g9MNaUK*gq*0L|tiL3|A1EUa0{& zTL3wi{PO|i0sx7izDfadxdvn{fV{O!1|ai!6hPvvR`BCxhXLfgsVPAI`_f+kNZPD+ zY_-}ZG=}5Ow;Rz*`mD_Gh4#58WG+!>zMA2IqhfzwnOyG)Eo*4|1Qnl4>ydI@BW?kb z1((Vtq8)gxve^h=v99sWGsC$(<%=SCBm{^V$vs`==qW7Df?73&_1PRaE}G$~dG;Xc zl;vM&RJ<(UuW<*J*xI_KGNpbpwWT@5%^xnn)T$2bv`l>@yM5eHvSQ1ECaOdzPp*Bq z!mAJN$#ntO9$e>hE#f+lYiF*r8P&PyMG9l@>7k!(55(LtG<|kzzBM(ka&5v$gJwL<%SE+M~T*i^Zd$=kmL&R(f2R6H`;eB1!Jxg=?>)>yJT{O5^qB(>yAU^peVbDlEn^{q&>Y~V z!EwwR^x48(bg%uWbRQ6|5fUa1j?wucbu$W@H+YD`mi9KRMX39gAO$5K>xb?>~caQ@7cHp@q-e9W=&sWa@aHc0cZhaW*q68Us5SfIAu{_ z{Pz9Vz~>jq9Nq*y$aGYJ#VW>7vuqVux^ah2Yqrv9ohJ|0!anrHYwfU~B@0)WUV9>R zf=gsEJ8Vn6-Dc0^>PEMIJC;EQ`OHWe<^3oDxsL>@1b|YI8Scq&Vwz^phcJVJGRg(N za4Hx)5Cbo_+w9e~Cd~*e0Fy3|cS>?0L6T(tbzN;{#V+N6_5;;HC0yyDGNxR>RgmR; zu7WJ*aV_EsY9A!XvJyN9WQG;;EENiBiK)11&YW{DhCI5tQH7$~#S200g@HTM(K^9gBDuG@rMoQU8ux5XW?@>QPQg1*SsqA^)hhk33(kx7eGRlup&Z8J8pnrfhl= z@m{bqoDWDm*7tg>-Yym37eu*WVu=7Vz_zS*jJb@}zvQdhiHEXT0`U1Nc^~_L&;Wwg zNAez{MbggECH+xK$}AzBzeEZKdk%w=CfuG{A00~^en5*f)7FO~ zu)+(a&6%qtxyd!eMkT=D>#D(EREUE>GyN!wh67dF@irV-ZY`XqKoO{ob(P-SMf1}{ zRz{*Xb8}R08cGh+o2PF}^=8reEg)DeMhJ#|p~PlAGPPN6vrAuBvpg1I9;#uTUXAzON^B1`I%0Td|H;Vc&p;m4dV5vDtKi(j^=Iv^ss4O&SE-L5Va72Ke7`(I@*U| z7O47F?gsk~t^k{EWySx+PIlELf};bKw(l%Hg!|afLrh5TDqh?#lp{rlPI3_1+0D#) zXB7+2rB<;DfzAYg-2Qv}46u25RABo9b%T)V6?$$#&$8u~)bRcNqGpCqrn}YRAlShWv|67LkrhbQ65ji)fhPLxLi4`HV;0y%ImM;p6Tnmf52~C{{ zdEFmczKK$6lJ&*Z15AH~8`cH4iTvBngG9|u)|DFksba`ZJ0~M#%H;H^?%=Z6 zvHdhjq$d-hXZapKS|w7g8YrzgC9PF(h`rB{mj%)mG7TV;9r^5BF~#cN%~L~o6aM+=B3yBUz5LBguDHQIN}6nKNeIPaFN^L!+%NfD`HE_1 zI&0csf6`W1Q(7*S?VQWBVUVYiQyMv!9Jc)uKcDl12+f%@(GFJ;mA zO`KFEl4BX#*uAp5|E^62{y3XQRa?2LqTr8*+f}1Crf|s3y%RV@k@}#Kgd9^gcjHJ! zwU$&aROF0XNoOh~o}Lx)^Na9vs$6Om*Fe=-o*I3axzku=k9|mB4-oG(V)48~61K&l zeaA5l1Vo737y@OB!+|B(QiTI=SOJ8NfhZf|!EurW70%we-*mLy0CAZ%NmT-emGM5$y)u6|BOuFabO~u4r92=6u3@ZcOqG8v{9yQ zUi+SHw3}_?g_7Y*iN`r59;r$qHL+@|*0W60;RPEL*=&MA0}I4&Hi{V?1`nj_o1)3O3? z!R)ED<%~yGa{sgr+FRJXoy7IrrX^0T$)x-x*`8Nevp>xoy$U>zV z39ZF^`yeD6t~WpaI0FW3Fp6^E&8qV4>Q?rx;{180;eUG*Uzx?aL9PQ zNj9=?dF8L^D9n*pCFLQZ?WPi@$Wbk`?FB4EQI{DND**vPy5}OWj>=>k{IUp7Z;2vm ziVApq6<^3UvCV!8#GH;=x7qP**|r+&havEw=&Ze$XT2r($6gCZDzb&hfNAm$MkdRC zi+4;3^aY- z-FLEu-E(Fy+HlCOds-F@iQtgXXo{#?IG;4BMeFzoe^+}7ZGKCzkTm>w9^RG*nG-mL zu86nM=Y~S~!GeheV~81p^Clh*C^JN>A;(us6U$|uhL)R|ly7Y}cIGh#pE4!4+vtCq zi^Ole}A69B85K$9;N_;5gGe}20($sehCcX*E5Y4*j+IIQzr`rr!UCz zyO}0HP-#&FQZUf&daf|g1njYt7Nw4B5zn<;fvDKK`JxFeN~X}##F!>AK8oHHnYdU$ zL-fIK{!zNl^%V^Q&SjK|A@a?L$T(RPk=#2)5JFjSDIS6n zqpY~>yUUq9zPa|x^E{&4GQ(hoe^5kBMIVMtr%G|tefc2d5-W}wF<-A?+gRdc5kYiL zKutth&z)FK%92s0_o^RvHN-^jpxXWLC)iU;B z-{+QlrR94UE~pOr`dkWrts|AlLhrs<^%NW#l|G&JqTt8rY5370qo;#7)A1wmWPYH% zGHMgQ)ysSYLsqKXYw`V6r?{oj0N*_&7z|vPS;zwv;*ix1_G1wTmPM2pA8-E=ly5)C zkDySgX+Duz;#b@EIj>|uH!F;?#a_o%`cpt7B)NE}rbf5YRKvtbmEQnK*F zm!EZ*neg3}shN=1B{>uRd;IXRqV8*kAHML(p9haOA?%uk$9?U7DLnphAOjvg9ux3z zop~5|d@(Wwk9{Zo58=@k)X*F}PJ5zxcqn;*GEF)pmfojePH%s{f0y2qW!62wgLLCe z_B1y3c&^%@h0No?4UtIfVn%ta8w%5SYQ2Yps8&5rt?B!NI14YCd|a#Tqc#kxR94+f zCQhtwxaiPXZ+Qg>gzMAPOV>|7q1*CE?nW7vj=`cas`A?U{K_x1`J*+jgSgxo+5Svg%=cd665rkUnS zrbzFtC+H>@t0r%=ucadUg+HZ3D_tM!jMt!4d$&Ul{+#i;_4F3T>qe&q&lBTGfVPnW z?b9<_kQ%RM8%kxm>X zP|1`pO`!qy(%q_+s#PLi`n9}#k(ZL`lfTgOv)P;y{gvn=&B&Juo@+sHbMxODZ;UU0 zFH@ss`BD$6q@9@?;dC-3DI#Bzp-_)$&HQL)~X zBLrKrKg!0^^R|#M{0ov4!l(BQ#{q*Eb_rn4_x3&HKS|1g5}c;XNkKgJ#dl2yKxH{v zvJm^x$zs1wLV;*l5wXeo1)gd0uV-2S<4J#O490O%aT*xMAwg*Zw!tJyg6-N04K`Oo z{zXgd%R$w)w|RWs4E(%LgU8F4t$u(AT{VOe( zEQrhH<&(UW>fZ$m*eA+P(}KM4%8?>_9WF?eb&`<3e*JU{16w-3@xVT`J9A(kVv|iG z(Iz8&GpUm!JSC(@_(mbwX>1p1?D)s{xt*W%7OVLu;|oE$chiI;C#5fvLds0v9TWVG zvNyJbQcbNNJ%5!)m8i8|ViASUBG2Ghg=&&vzkj57a@O2gO;RrX|Z`Mn~D1YwQ_j!gx(` z+ZR2k>5Uo*vL0~A0DKldwX1i?qHVDM$fyEf57Ar%D|!eXrIOjtlE7X5g@0gTte5{; z#`=OZMa3R%zIVd2nPa`zzKy&B^t+KjNhQ6gBz@Q5JS9@Z3+y}pD06C?eN9jgUI`iO zYj|mol%L`JB<-IiM%gAhC1M2u+xq`-539mF-XgD6yh@QXx#z*Z0%0+)bXR)AcOx9y zYv0YBGQ+tqy^ao4nG{7OQzZ9UUU;YAT`ujsrm8g*7>2)`x2ySEL!p7%XHAN^*gW0cM-$&RnSg z8G{JQ;OONbR|Z!JHB=NmOL@v90(d&-x&w%V?GX+16=6QSaCOBs+%b98)wG--gawmN zR?dgV!f2V1Ih{$h>P{fUSyK*S@CZL~;8B4T}P zhDY>3g&?+ey~>Ir@}{)f-YPPTaD^!0>1hwSgwAiLl zXeACKw9E{vcRU0ze#4K0rf2NYXu3g`|7E<-;3pjU zMP&LWdyx$^3Cbwras1uLp$YEb#9535$?TLD;8v3SlWQ8hllljQZeyaTAYcydQIBXV z+4hd0GA3IlQ((S*57VJV4Mejxvd@2&Ap|ga6a;=7LXqhw9!3bTWl%~8@J@$>5TKC; zq8S_6!zm!n3#U^UY4|kZV~i7zPzb+bH7UWU*g~42`-DP}cx#+Q0us9~&%RQYfJ{Um zZw0_&AG-#qi9upX;6`tFz@sCv>j&evo+EGNqT1jR{g7jT3={z=o9lJT=OgzQgqRIoMd*KwAX82sRhYtjQt4w2r*9 zY_Y`d<;Yt!muoDPN`duO0C{Hs)Sc$#EK+DM66uo4X{Z~OfYR~xourkG|A)JG0k5jK z{{9n4AS!s`1x*z-R;*BMC03La(F77b2hKrMqIkhOcvplR!3!EqqB%Y8mbRj?6-&KT zw6(>yU~I)-0!V__C>8Kh0WYwR2Nh8PZ{+{^&g^|INubj9{r{f#&GY2!y=Tv!S+i!% znl)?IT9Z5$DdCy#7cmCWGM9ryh$!aN@3BUlq*Z`ue)|JiYrN*fc!h9_DMb~%UrCHHW1ex}-O z(n?~ZX&Bx^m%8hJnn@t3^`sZi5}o-=gpSZ!C_V$pa9Q>6NPLha!~lZFOS=IAowCn+ z>Pz;|2{7@20vN2GY1&u4A2^eL10<4@c#0q5Bk*x_aZ;+82KNBi;=ghZLjPOP!qp+hY=|& z()*{#lD@u`paw_-HX? zXhR8M=Ags4sG@dBnZM`~RV>?Nx$yPSt-B1ao?f72>|ZipnKo+6t6AO4wT&UIYrFT{ zRGgD@J`~#wq;rwB&e%nAs(>C|c!0pHn){5AR8NG5*D)HjI>Fzj8Cq-8!4~d>_vvkA zv7+#{_iS%ttYH{OICg%a&-^kSft~#KOjY2lb!4#>*hUT%R7*z=2Evg;b#J?rwr9DS z8Gyd7XOcezIE(fXoPED3Fk@{g7ocAK%&~m#HrtUYNdPehG2jq3YubzqU|cr3Xx~m2 z_+a=TMn}ecl(GJhc>C?~*<0XPe6HHx!zY_+EOD;c4nF$=K?Xkm`0lsG=Ut|%e;c2F zsPpjIwzt9OApQaJKnMQd|4!ZPz^1&>u2l=ICrui`$brR6H#f) zYz}Bmzc={Kj%O*stK_YmoY-Q*#WVjD@G;V-1V?l3vX;Q*PDtuYjpji8myo(fbfA6( zcbc4FYk|6DW>V{LbAgDNrwuqB+snjbnrfPAN@RPl&72MB?jEB^t-ridbrhQ|brN@m zR|M+L)~$n1yS7D(y(wT2wm*{cO!LHlmo{XVBU2+=&VlK2_A<9i3qlKpDE?|9@ky}s z_iQj8t;9w-0(&C7d7gVXY3#nRo-(Co)MF}V!Qqq zCdcDu#o`Qkgv#m9Us6TTag=CI_Efiie7i*3R(BfRYqo;tn_emX2$M$G%^tzHS#8-> z$EMW`2KbMA3ld-LS3RnGiK5*aPOac}wFIt4 zuSk4M9%)xQe&vjS&DHy7RUW1CWC7W5mNQ?rxm)Q^`fQ2&)IY^)SG$8K%DtYlyPZ$G z@z@Aig)s6}XfNic*{jT$td~n;C|+sDUKEC2UOOWPDjdsgsCI^g)k<^wEb6RE!l6z^ zSlr^?U}$QKdyHT~0v`dlgrc{&XB*&{UeOUSF|B)7)TW*Jek0n<{(FNFXSTUV+$v65 zeIm0`d*TsB5KU@uCw*+imOwp0Iz(i?GeK24u0f;)5|2lg#3Hp&U|RyqP}s+e0{3L~ zi3I8Ulp+Nc6>|^}B|!-0z%oo-z0e>4WnHn$OoguP4sjKg?DXFX9!MR9X%M?2&9eRkkja# zzwJkrP(^vi8AXO7=;yN$SZzPQ4Kp%W`!iTew40~lU-mIEDvhMs_!9CpJD9cGQNU~@u=Ghq}dH9=f66+xrg6oip|zjB;Jt5fr>;wUtb|S(2wsj#FP8DUjT^v znT1AUI#pGO8q7n`StxGf_V5--Q+VMn;)~S&l`pTw&nql9N}5}@)qvtD2bMpBZ%htR z#0q#Sg>;5UJfO&?oVHf_(zJdGcxJzwI;^bW=-k8uWHZZO8+DW*hviy# zy{)irn-7(Z3bt=BLBh_bKArMxY*WoUC)7MwQy$w`-s1MMbx+;Byr!+Wq9HH0VO(x* zax_6wPauU%pOm*G`dGlG?p0p1Y)wT&9}e-U$W_iB$%8pDn4HUMT0YvdtmdVS0<5AT zoNKc5AWP3sE&xp{ENM-e3T8N$N8}6qABp$3o(ke{;EnO#!jU$YQ1+Lv2YCn8J#?i_>?h09H z&_u^Hp)pS;Y5`MiaNC*CM8^5dk1)To3L>UkNZmH*3c zXp~tX=FhaZtQqqid&@Zq6VZaKcfYyA7?MhlJy(#X3`xhqXETS z1G#C3dzmXSP)*8>PDTMMF$zVBbvcb2T`}<}G+PmmLUT=gmQDh4= z`^lTULQvn9ksOX)RYOZ8BF^N#nfo^G+Y`+I?2ZPk48FQyg~wO#Fc9{AtM?B0>MeuQ zeD#-K`h3;&o($;Ms25|7qGn=1zm*FH^aVhavzU;~}P?F3ynOzo04ITQJNLy4^pGlh|v* zlQXXmBuOl8nz)&WaTfS7iaC204nmqe5JH*$@fvv2${OL(-@^6Qs&13sISWO-?jKfD zdHhCgwtw=)nfTYfD(YhAJpGx!bABtIv6siZsX>x4Z)Qvjf4vT_%4Y5GB}`-P>UT#m zCjeqLr46N^l!|!tBu!Qw?vLJvUr%vEOe1auKYW$E$h6J?bFF01E7RNfpZ&v1GD~Vq zR?t%QEF~EHmu&Zg10Kdxo2LjtPU80bGeZH*u94U!K+CBY0Gcr+6(@i)p24 zakEr@UW>i(OPOvCjGqNt&x9~eEF#%xdAJUwF`O2C;$XS74Aq0$amCG=JruI3I5lxu zGA$;D+qYVc7iFMkb*KN+HvSm%5qdMOZu9k{Rhaan3Oya~E&VsUUxgDA1J9Itp$mRe z4tCQD4fV}1!?b!Nl1UfM(2!TbiWrD{iI?sBEc_%Zzd?3)yb|RJlHN9-3U6_Lx@MFe zUJi(GYj{#C5CT`b*Yk<`<1bvhvjkiGiU!Pj_m{j+Pp4-73&vhi6P+Q`ww#IfWKeaN zc+_3&ccPS*WxwN}?-w+h<714n@gat>HVX=)$7lKgXxWuNAWwW7>6T4Y4Fy#8XbfdC zLO`v1kTpFupC40$nPIbgOFNV6jF~yr!w}^ftueH*UxtE4mzgmW8$Fb3GtYy$HgO%u zbspDZBWWbZ^XVM=^L3+CS;A?gvKF6BD?eB$4c^Xm0RL zFx^H68{dRY?t1W9!pROB6~aS)31&q4(N8ly6SCyV)5aQE={!h^LrLhr-@;{7%lEv^ z`MnGq|c&a+0ULcy*vBafuxFFyS1NnUN8f%ll|=a&CpzrH$Cp#g}IN{N6wI+Z_;R4?IzmH za@_q66}gv9%^Z#C{gq66<26H4AU`@ytuz){HQWl$Ztab$1kvO-yiq{qdwZ2%X)531 z-pAMO2KZc>6?Ec9-P+H-_zC3>qzojlLW*6e=OX)@vY(wxB4gJ(tt|0HEA3VGo$${- z^m$O0Dq^u2w4MC3dyqwg^HoGl-e>w}A10`7qgo@$!UAM2xTg}Y5-fZ)n~&TNueJ8G z-Plt;{9NbxjPabd2VHQ(cC04))?_cE@HC|)dfn$^iC-gS18$}S+~FQWrj!I6I@`)D z*OF7Peu8A?mIJGM96#IZFZnmI3hT{*E^VCr@^Rl0D3LfODZ=qTliNO0N|~23hvZ5Q zNBX!~H_c4BcEc`yAjc^%XGPbrI%QIhuJJ;$b+{8zY%s@p>WDLV3d-H4W&P0LZtQZH z_$OFhm2kcq(|In79~@a)7WED0z7#B36l`fJ43>NnY-uhI=B^0la>Uu9J%S~hNbeVH zSy~({X$h8~fZMFqv%cmlee8Xy&-j`z^%-A#U-Fec{*Uvg%N9IHiKfE#U?$JinAy0nGciKo`Bx9W{;S?k&UJgU^2ndl0?h`=zmv!DH! zgVSr-)}+6d?KYrNTEr(FMyY#hD z8TR3)1#{0B9FCt{CUb)$%gxbikwI;t()Lhnc_c7mRjBr>yeS7(#P?~EZcWaowaaqD zrLRxfKlww9MG{YtTEfY29OUc2n%Xb$WdB}HpJ#cM6I}joXqPuQWv)lKbk)>CjmoA#RYbf`XaO~tVJPXa?)Ftg~+Nbc(-LbWXslin{J3ZhIaIQU3JPtl z#bH3qUB#|9ycvuvAc6n7;tSD`px>qQ-c|>5r(H4=x zZ z7)Wy``io3P&>OrHbKiTiSyqbN%wNzs@f$2uw@uwMupq!`mMx2GzvwxQ<1c$uo8vm& zUz3dtxf3|*ruIt$IyQ4y=i)5?D#c4TYjc*5IJmNn_I+xzE3aW$E3bA|UXN`SPAXS1 z4Xi1kaQMILt-RXZ1K8;DR$fx6uhyz-m&IZN3QW&hngBGJGm?>y?WnBX)}#7Bj*jga zy^y9jr!1-cvgec|YriXVey2;_IQlu35!jN*H+!Q~$dppGZ` zS6TE=#~;0WJ!jtgb=^yP4*%ct{{IJI!@tkG_U8SHjCc2W_x@FRGw(CM-I@EnC`T~# z=PJc!(yM0+*LS>omG`1|?_d42EdJuhH)5)*zS`{eX-`@+(#^v-12a(bQ~EWCMRh#? z>rEFcJ(}-+_wQCTTyYtkDBhEUuqL0YJZUMEVTak9yB9MgUmP5)9oC_^_`~Oa8p(O) z_bM`#H&OS@i8=0(0fi^VV{(gIL#Y+$ActP=mwxR7d>Z+b*{^XDY0mI7b>D~k%)gBF zi_b5&xRn%!@MP&X|DzRhv#ENj)h@P^+E2u|3O#sw6s{BuB5|_kR zPQGl$r348fgyZ18be{&1p7vy$TYG{`SeArhui=6UKWeMq%RP^;ZPW)hk6WY0dJjbc z!ID%B4>ftWxaV>8*836{hWg3sd=3Qtc?ApW3LW*`%PrJZbZhWRpfefZ7JnUwm*+uzb-y3wHUmQzVF8WlT=XN z{rdIAh4e>P|4$dn8}Y*S)~}8F$Qknbdv^Ug=x-V*_1)OOo!_uf=JQ6A%%@ zL6p-hxe_?LUBAv+4@C2xPp@Ck@hblVMx+`~Z}GKzL{{ag^=milx!0cVW<6)lV_-)P%`(umD_&y(IT#x=)|kLR{dqI=a`#W=ZklJ7!67HmlI0hi+FDbh5cJh^`=|}@v32xQ=I|&p@F%TYW6aG>seWz4i^?Y3`zX{y?B-z2Npy)uOH>~m>iJ&85>e?+WS7TdK6(kDn~ zUP&{vqLKfyC?M}cLjljPF%)nYmox?3eQqZTxbLi;q=3DjvJ~)M){xKi4`DrF#&Xd` z-dN5nS(ZFYnj@`T|GLaun2!V-^UPL2yvk)rYUr-vs-e4ztA=hnR}I}Zt{S?{T+Pt6 zTL$??zpr7OI@N5fk%Y7PHFLpa52m^cJ(%`_zrbLoPMj1Q*@Knp{vtWA&-MVs{~m*p zk>}14^Am4(CFURe+!8aM-Py#vF1;+n;OS>e`i(H{aGG?WsVs{T@KZAqK zJc*BBiQ57rljNEtq%oFH*p%+U+DJl(zLFA$dm4eP}*lt&P2PDaaL zPv37($N6%fv_|IaH+>yvcm8nM&R8A>?Ih)EZ!NGp%}^HPOiRwH+WHp z`!;+;Fj{e9%o~Uk2e*u}{>W}i*2|Dy=JC@1KJa9R5pmMrAFnKHo4xN@2HuiY!m)b2 zh}V`r-Kkk`OZ4_3-umVHv>S}~LLl6z`3+_LMz>hOIw2~ffIb0|av>?mP^Khi8=U#g zY=c9VW*Z!`91R)D0O|I7QQcYi(V|2_N42@~K|-`c+NmtT!y?02!RG>h68_AV!} zT$W`*>x4w(ux{;LkaxyraMT5GZn4wCXtvG~*TwwucQxuO=OCcW^>mK&g4Wuj(S7ud zw9fGct@Zv&N#aCOKHiBkONJg;7(nzRiwtAps9$3yh0JD*heXrRwlSY-_Kb;;`Lt9s zUiB*UObRtqQY5x55?h}nWOQ*!bJ}Rb6LAsj{6&ss7zYa&7{=LLyU2URne9K*w!a|y zBh4_uVZ)pE9iKzIllYJ)xpDu6O2%HNDbC zue1~9mr|mu+&3SGcNg0GI$;IEo%=nwc{lp+LhmT@>JkW-4G&axXtqPn&4uo6$PjA8 zfQ_M!-J|^|l6Q;UnaJiKESab69dvnxMyN+K*LyYW>$`uKHiCTSqh0iod#?FnwL3;| z+<#ieewc6nG(8wUy;x^z*L?yGIr%2=q^tvvpH$x*j4eE$Mn(sR;*kPhe>o{|P41+? z%I46mtvO=nwJn9iWmH_fZVS6#k%CBUMotBh3_cA!-By0^(n*!EXc3`TgHHcYu;tx6 z%>UWA9RYGG8$z+lVw_}*U6thO&?aanGwm&oO!wOYxEQ(;nO%vG*Exhw%kuAzXr;rPSSv4`U43@8i@>pvh0+{DZMY!vpGs0}$_GT5?~p4RbD zd&Aqb=o?pngA~RFd_r4i25Y~_FMnEF2;soUwWFLot<-_Ge@(FINA|BLii7KREdk$e zyYGw^RlP|(+eaQFcAjZ3G&+h0L&(B5dtHl?1!k{80bsfq`rIzaFs79Xg)z2}EqadLAxndB2#urxsc5Sa}Fz4^xt3^$0 z0*I=bIf=9NqDQ24Fq6sy*W?YDR1sLY(IZ(xD;1XCikcpxU0c3o1>0v&FC~}}cqe5K2ujZa4}1$&_SHRKb+q z(2CvSRlvpCCDSwX+Zn>}9wAm(*n1B@UhLoLw`t{>InTUCh3?F;;<*`F*9D<)XLvuG zaak(kC1hlQq&U9O@y3k6P&oR#_T)(O;^~~|e%UYF5szT=lAkmyD-UP}$aiRqft>yL zpmTJMDahT2yqfdYoeHbZP>);vU)rCSxWi$5TEhs&@zbGl+-k)};^!7sDvZR3lV*l$ zH{=FxE7PEfwTyQ1*q@$M7%XiM)agJt#`xi*op5PkFt&SeSmnGxolZ#{sNr%sg(G?A$t|d~q%>3_54BIb6zUcs=@3IF8fR>(aC?W}>m`c)LADjGF7jHW^!-4sPV!|$GWded*rJ;019OA1_UL<|+T&gZg7zpj z*V3gQ6^z4>)rBh_%Id;tJen?)y;63^&9fFMYBlP^+C{GQ5CfU;*{U|gkY)%>@br03 z>nQ`z&rC5N7INO;cI42v1@cmYi7Rk_5NL?mmP&V@S%f!Z#|+ zQ)#J3=4=d}iJwj8K3-;b?E_*O9qto|jw$}{*XPS;<0VhP93-O6YN?(<6kI#fX4DvY z$~g^lun!mkmEf~ExaFP6gQW@re_`i{{mL6&E^k?%H^v$8V@cYvS7r+M?*(g{H->v& ziYlx98*7;^mgTxvk+ByCl23Khd#@S`#IKucT1>w?7Om;H^cRWU+ zutc&pjdG3~hyc()+VHR$u+Y9F^W2s(K1avL4KD}|S{}Hqn3tpD)x**84cOOhrc=Z=wT)alqdmGZ z(XK&hido8?FAoPX^$Ohf9w{M3pNo$}bgNxVAl%C4cuuUhDOvf$&Q1H~1#4UL+)1Y7 zC6wF|Dcul#CNV8luq;f{u$lcr%I^`lO{cG9mcLEq2cAU#Y-_mKtDy%q^lJfM{*RSRq@c|lw(LrlZcXmW5N;PD@ ziAZIud5DaVbOpUo|7M`>Ssv5HcX0L$&@aeou)sg!m70sijT_7^v^jZ>N~}ITh3`Sj zr(7S3=M8`^+H7Fq7|=$W-QD?8+#o#Yt0`w_vpu(UjB^BPrYKzPOZVfjURTYt5PuvV zHgRV3&!IsGE6AMj88z}6v$FyEx%9TXGrVHC87gnJGF0{ga(7pR4io>V zF~c=fo-tKT?%N+2c850LDk`aJO8ii3CNqaL`WF6k44-tD-*4H^gQF zG1pVL-p$q5Z>8jkvGQD%CBZ4-_$7)NT9hp6L_cb7sN?18BO}CLc9CdVQ^qUJ>Jp8@ z7V$77LDu>wTwi2|InKfqXQIUzaykLAcg0Y26TmH;f&E@!Vi5=^{SX(7{&S z<}58MfMJ!H)m1ll{5Sf)p$8IrvFm>*pF}hRj={TQIVSVG(F$dzM(-v zC>3{Wpa0=~>g83P?DJ2eJ?@3Sx7Gw*<6AfBBWFkm=u~Y8=}K$G>#4|H23t;dxz*1a zBadwScEHa&*FKK{y#s3l1HfrB9i?? z4Y$HWxAqfN!t~_FY>U|e9daeWsBu>|s&Ux=^R>Hyu1Gh|@{|9he;-*wtv@NtEHvGo zZv6>f(-*7mft2JR;0$?I&u#WOre37ujt}Tae*m(su`E5^WOeU z7GdT##89UAOn-tS1=Ud*P|2TQKP4U@SokQyNA7I;+HbG+3%iNOJ!8~%90&e!a%abZ z?+WA$$AQl0y)`oCfiv5Y;KO?}90_s`2e0(`boiTqoXZ#PR=UUiRDHA~dzptRC)=Md z+y5c7oo4jy(u}hyDYF?#7;P7@kI4i(^nD9<3poY$Cy149xxhXyi?mYkd-fgJM=8W} zDCC?&IDGGby*}H6^rA7H5&lG@fz%CAZ)M5mH6mK zz+H^0ya{4t8ie0X7V=4Eitpw|FKg0OR9I&0&zqfAK3P7RQKddD_lG<-xgz>~o>{Z;2bB>| z6pkfz=qGDI-y7SOcbP4(`tVTfZO!;>&faOh+~VG>S3XqbJg67|letl#j?-FT9}}Bk z@#P&W6jlicMw1K8R`o4Gt7UQP9%0kdM4!zK)YYf~uil-dk($b*Y0rMNhpBVz^FlOh z_p*W?kUbsJ^3yG#H8&o8)SS5Y2Ycckt4tGIK=BNQYL#vy_7cxvEKd#g3~qB& zUabBCQew`i%`9Bs&|w z*y^u&Dm0+hOKZ+kfqfcppJdET+to_mDR=`(Y%f^Oq??Vg|pB=;g~0P@GY>$g%qH_ni}&i2La3Ga(_!~^TgTc%frKl58rl1 zPT;PQxl4QIByLnv{9)5bXGR0G<4*b|4R#_k72+p)b}(K(6mcH1DIW|PL`K{Ww~aZ4ycZ8K-fb9Yi&eAKOb$Y#p9wWK2C)e>e>G^S4c5J`h?zhj z+KaO2cZQTMlPI)Monf|r-BQHa@)&y1_3o168HRNqrjZb+yBwY)v|Yt3Gu|Le1~eAW z^`^zG^+KWQrqfu#E_E;a1&DU8GK~+^Yi9!*H3;D9BY;~U0o?is;MPX~w>|>6rHDwk z7`Rfkx~D%V6Nv^aM+(Ia((%9u)l`UPZh;plN{u#wqDC5Qql78(^6w-PKW^=W#Lu>N zbP%WPAYt)lC|D@Fj%yl~2?Z(?v?7qopZfrxN-7QfKZGA+5ar(U^DNdmlt-6ue+>!a0QAxcCEHM?Lxw*G}W(R5d1^KdyzTI^MTR7pIDCCL5jIV}X7I z_x#~{Zvx;ysTtqtceMG=FegLF_cbthIAYy!4rF8PMvW}v$_O^5Oif$|^E{6$N+a!3 z8B->2VLzJjGm>@g)PjUKoSAX&H<;VvzE|oEVH0#Mj-q>5--ous$m(tvX|@{XEi`+K zhtPK#F!aNh!i^sphf(g#*9-R=CM*v$fhf=rTMTFdQJ@LLIVljWwN-=WPfTAJ-&kVb zPu+%BgWpjkmWH&=Mg9d(eB=TG3k$6LfS?(gWS zM^E}=xRV`MS;N$!Hkef05j^P#%nULS|06>Y7k(-aRA+ef8PU0=g4iDr6=I7LLuh)2 zxKa8;;Py_Z7yjLWO2`aRw=W51N8jtXOK> znvTqNCV5PDPVX|ec;j$QO9#F_$$jluL-^I!nCz(q$Ugu072*W?f2|j#PjH`5o>=8p zkjjZh&Wx?@!%B(UlwK*V%`f%!-F%&~elzw|>snIwRJ~97U$&<@apnJm_Edf8+;4AB zHFCwbwx{Go*!Fs`jaRO}y*f1QofZgEL21TK<+z zBtT;Rk-w~JqM75OBbhmt@L&#j>2R+Sp!P7HH9;Kw;-d@L`~h<^8Nj=%e1TBGiP+jK zFY+Q}nK$=5LYO6vB1UOsLe+p_KM2}Q4OVLurf_9&hU^O1QWW$sU~h4c64b3ZS)h*xCsu#_GcV=G#&MC* zR*Gv`qePL%ml?`AP`=(B@Hl&nZHh0S>kv z@-yvyQ%TQOui`n?|v>#Q}qk&?iw7Y$Dj=y+zB0_<03O^Lic@>c9~75;mrejl{1h zP{^}EYeJ>Z2JX0>OzbHiB15H>U^kMxfws1XV;6d55v!6csWL7s#F(uuHyU6_49w6j z*@+AX8%$7gzYxB)WgK+IZ%g%;KI}P#)9TiQOTQban`or!QGl0wgaJ=QClMcK%$s_2 zFx~?QS^ne&Znqgn6pUC}QJhyiqBXC$_=2l1Mr)j(JS0tmlV*lvYfZuDnu14Aa6vHz zO9^V5qu13}k!;a%VPPbGYzPE}+KiA;(@(XHpquz1rwjp6sX?=p*Zmdiz;jQp=sQP3Z`$t?K-#pMd{2i z(~;Rqd{kj#5?^F&ntJ&Jz{6fvK^ecWFmVn!yD#=5_xe=c8z^=}VWMignb*1DGz^7_ zDFQYhIJ*Mj9+E1R>P<#9sGE#m;+Je&MT@TALGxcR89@c?jws2AD%JxTlC$k+tCLUylef;!3o#Z*4-b}oaNy6H#Vnw|BnfGoPSNA*L z%bY@N|4c~y4kApim)tEJb3QLOwZAnXvCl4c}?CS%ulDYoO& zi@hy(0xi9GwTc_4X>9Ic;wkxu&tqk50$Q9h-QY({)^US)Cpi~*M;MVdsFe5wQr@f{ zZ0tSEPLMf{b*q3M382;vq-b8Q6;;yK3eNC8$`hc0p?Du`MZP0Vfy(?B^3`m8=3WnA zcE8ur^D6tClCP$dm==x_Pw{$Z<*WB^>NNd#m9G|&MWWI#26mCJwmbq|8=$tatA|VmtEFhb5imr(uFLLw@=@91aT4-qziROey(k zP+v>;KPRVPd4-O54+a*uKR?@}r|q17d-!$$t>^;iFK)~RbWf`Hr9KI;*$`h$?i9q+ z7;hS>t6`af_#i=i&3E~^oS#gHE&cfGUl=w4#a6hp7}St%pl&0K!Q1Tn9QGh`?h-KS zIYQ!WH(*rNs(AEu+(6>dw_;K3+M;Wc5qIkiS*opjc~r>?7*+Cw6p!24)f@bev|8)y zhpk!*M%*=E)ahLUMqSr!z^G^82N@cyY5N-~4!fC$AiW0~7;Kgs&L*Gmxbk1}4=spc zA)JO1pYE}b^E24TPcQe_$9nfNXb1MO;rBlK*t6P@x>#L5>hak}g<&7N2m)LNq#VOc zmfc`2sE4wbY|e#SAb@kP(=hLeeQb9OgcB)y0daB)p zX2Z&A6U#gH9#Cr%*vxs4jLcnQk#}hRy!4F5p(P6Iu15Syvyx>e1}N%!xQ0t>s)j z82bSCgu}$GCKC9kQW@nzBQ04&2w}sdM@u!1fwH^KW`H~-12r2IQ zTT6;($&*E(#+2)IGNc)D=k=jIgV{u?PK`$iC5*`ot}=9z;VK%FdmTi5@%+0V@wv*= zxZ|WvRh@+zTW)W5fEiKaxvw=TxzRIdC;K5l>JJ|IxmaOyI{CQOc=SZjx!h_z;`XBP z$Vzbz85(^`3e=yY5%w#Mu-I&kuu%Mj5c~7)uwvj7Pw0U#X_QC{b5wvcU%Ai*x`!h* zt6K((f;D77PWIm5=s5GUJ>qAG>mWRMuAs+2@V(|D?^PmY1l`J@7mHe1{(cH_g7z z2jWlMbQ7N(e{Fv#>nMZqh3RQEdZBF zdgQNHrTdAsL55qlmVzs8mCVQD`7lVKQ8rR@pr3izUNm8Q(H5^-7DMu@dLdTzrc?>Y ze0kSq&14Txwlbf>?!NKB4rIRLo=eMo184bLncW@DRk$Ev}!yf+fR}Gx?DNfNrC zg7-kR@xlS!q2mvfVcfpE;N%y)5l$|IXw!9M%d6}`nGtnRFg{Fnm32``P19$bh*kXo z*B^)Ef|&fu8qGNMm-DIwH;vH+b;|mHD}n_Vd=I%m*FG{jL3G$5Lq_Pj)IwwsB}N z|3t|V*wt7YKK;b*=Og7q!YD}-vZU+1eQ5(95K5gxeOo&1oLe65KaS*b>NUV}|xB=*(OxgOH%;=Djn z*4CgMz~O&?&6f#lw3P>qx{5GQ;zZmrs^r?C7s1s1?wP;Fh;1_=WF3bwGJ7?oBo1&Hz4gP?)C?kZ)ldBLB z+^rXjog4p_NF$Ok#$<6Qlc`)^~n>30=11{p454qWS9q7!;FR=6>>@3_WB( zC4J|wlsH_l@X=L##flUu#F z;n9nW2uGoj<6guL#kvqq`jG8_p!M`GGhHib*0v+X&G$<+%}+wx*cx^YjZp{waW66g zH3cj#(jM5ID*FSk?0veF?Y=O{t~l=7lLl?*n@t@Rp8s6e{qk9SmfA0XKH>+}+)|KZ z2Oa6fGNe0}{y6 zC-}sT=v1?06=hmCF+=6PLM2NjM6pb$5}dR(LbCl?oS*^ z3!eHQ2pt=Xb!5zfD8s-6)^OKNIf)T0wMnoHhfUe zaqN1ZS`hsNb-;L9pxl*p??pK}w`cGvBM%`F1?y?{9n=A+fH>4W2*45%q?7QltH(z7 z3OYBl;M?pL{88IB)Xipe+_ZL7tdDC#kz9TLc8cA{6w7{5e3;udMHrhs)S%Komby$& zUf2|_^Q`};)$E0xhtCJdQe}kXX)Oo~GI6E90fEMkhHW>LVqyLDFYaSGr3)3ZyUH>Wp8V^Z8x`` zhNQmDK3UaCeY1U1dsEsdr%8#BsV>fJbE)0hGf;mSxv0D2w4z!=Xt`3Rd-@oob~dLf zYU;oOAUJHo+(7+qD%im$a1-90iEo4q$11(zh+0!g+H29ij>ix^= zpptAE^P5ajvy{Po9aAv?FmK|HfrH^}s&p>ZCFLqK**=*{@Pn~WMXEAZUt^z&?Nft& z8fc$p+NZ(xsgWmHXUJbmYa`j2I77Z_(2R#X^ELCG)Qh#P%y%zn_jT(zn(v^fxtj18 zv%~_)ob=pd&zHcpa3}@41l$tDssyL2GHz8nw?nxVSlkZgR`7Dm_%IFOwwPPBkXsfE z76a%*O-ckkS|!#2l>{GVt>-}NmbIZL6k~Ni(^?7gCmVHE&g4pkCWsidRo3uqssaVv znyT!rsY-~ks#ju^WmT1UpZdaakLS%V0vd{&EA5PEK#wt}z@|2lQfP16xh*!gK7Sc# zo}z6*JgLmB<>B>D(4eq0Uzw$zHJ8U#O2|3S3L}S}e}}rJPE3>j=`4?|bH{Vwmiotn zLl<#sj)^{GWfD!Ov(B}`Q{RoM=Bj3|MUhz4AXOz}?Zf7P<||ER{y74%=OZX*ylLdf z-wMgIq;K`cd!X(G;EyO^>g%%iC742DG}{%>NV_`^J4dZwe@%jWNYg0Jl2}q+^BIFQ zHKo)&ZZgB}?F?4Y@UYS5B7xmyRdcIn_00nQQ?xQE;~3hR{fDLhvQ4%E*f6;hc4I2-M);m!7TCaG)et>Mk~wuaPp zbDQGL_Q~KRPS`w(j5*Cp^thYTi8*7kr_<>2x8bw2P%dQnxjgFPE|poO2ue5ZDErt zUWRf!aU^6yT6ti>XNES8Mj@EkkHo}!Xb*_TQVK$Gb={d6A|3IrI?2aZj+cDALt20I zY)k70f2h{XR>6sRRN^kAzuhK&3~)oPhvOlz=)K!d#a`t8+P;JxZm89mV|~~0LiHXV zI}|V6aE7hl^1>g}mQK9zaB5F}*FD9r#^T^vl;ugH4}lb>zG*Zb> zvyM{nreu%Gd1q9z#clFRVM@h$ge1;6<=kl*IG;gj$-d>!08>Y@&~?e_c^tpa8(hLO z7H!$`w|5@P^ib?GnWAEmd3rehWAUO(C_^*^Nkfwk@% zjEyW{8#UHbu3`1DP-T8HPRgDksh`X2?`sU4qCvMN07L6f*p2qX#ye z=Ispo-bqufA&1wVI&-j)Gvr(f(Xx5lIH-Mwdk=7A#=rK#x=kSC{}|f=SkFI^-f&ob zqup@uKpJg8GJaE$ws`dU*yz&O)Z_5-C=-&if?!Y2n3K$gHFHR_yU!O=P-Sdj=aT>t zi+ls90PcaAs2Ru742`Bsm^9ocx8Zw~(g0~ZVTbmF*S*%m>ExSH9c-HD$FuhQ9WayJ zyeK!iHwE8u#wli&R4|0Z>#qf&XNJx4;48@EU-p=~n+=-A>M41Ed)65Q)1?0l1mB!) zdbIiotp{RnQPgo11&lIky^?_ui5(V+O=HDyUSVoYX&ev~hM{b0Cg|z$X6%jVagyv-B1vA`n@F-I1^mfcfEhA;4MQQBZYe3cg*~{p3C2M0lM<0-3*Ma<)@aP zcKI%+m7nge*#%>9bA~aTBV+#!W0sV@)SOU=N`3dBa|(;vwvEBS6Z=LJgdXkSXtxPA za!zZD_(w^zUIvIg$Ra|eXn<4I zdGs6KV@Hk8|6{uGYj6ASG=BW&UOe?q?fr`O(jkG`tqitF1o+D}rw!>YC-Hm3a+pIO zB<{m@+urR-rLUZp)%Gbos_m2L_+IfHbo?%lr`!Jit=nn4;bN7UJ%3u6=UlA=ShITl zJc9UU(tl@r-FZ)^ROZ)%3%G-{j$^qMyxr>S51j$WD!U-9ug?QevAp9>mSn%hy^^op zr(ut2)|ciV#$LEv{qMpW%H28!=4JK2kL%gB&nf+HBZ+A_AhC?sJ8SRy`6+b9ztI1Z zMJ;*Y8)HY9ssG(qP@S3qmGr+olsH_l@X=L#*@3i2p8)PICbfzI@vsVpA=lImH zwxVN|bKvfC@p73-OvgsE9UUVEvJ+tni8S%w%)RoU?30%`%0B$%+3Bop9jJhHw=Pl9 z5TqEa!?6jT$=-vLwbn6WxM#T+#qck}>V&xjIfm;RPuS;n6}NUZB4wg)wA9A!csM<4 zL`ks#*-T!5l8#G(nz6iT%p^gpPj(}kwjpiLzgV+x^|=}&-u`*~gb9gZn(GhB>c3kz z%%myS%`_bUUNHV+_cd}6DkmHmu_hcJ7Aajn_4_nXFd@7v%-FD%tcd;B_!?iZHh9?jC^CRd0w$;ywF{An=|}{+s&L? z!(ip0m;@JkV9qlEs&s!Orl9cbOlxyo`F;pp^S^{l@|h(v`33UIS|}%tu_rb9M@#^- zM!vVcq)xwLQ{4piyr@8>o$v)ZD6Z=_bJd=+ouB>u7yJ3GB(T~Ic=@M&)+PUVJ3j{& zv@k_sX4c>9LRujCIPtiu)LQ4Ob9a_c4;qujr=N>hK79pz`dC4@JpuTFN78&cAB=Q6 zL3hWeJxflOXYwQN#H|1PQ6|Br@awf-^Yfp!*uLn}^qie;`VVPqhM@g&INkK)>UYre zNxw@seb<}*TTOrRL(4C-=V!@di=ar6UzaBLov^dLJ&ZPHH2JO3=_ZHjcF^Rh52u^F zueYuc?R8ySbeffS*xO4sWcIelZ?fC(K91bdZQ~2^Lfbi!Hjm&8CS3%omtv4>cbq8(!#RKU!A2WSBZQjZC#`}qE z^6qxMaU-Gm8QcFt{yyZ)9U!7x`TG=Fo`Hx>Cs{;D{ywi}2Z)IMHjRiMOxq43y5sBH zlfOCBB5OYFG`_`?^oWkgC^fSC*9;9U$+xY-XU{a zzrH(qci-K(o%WWUv9s;Hng(XHH;~cZn{M7gdw=(vbbCid|6A?dvd*^Go+m#xIBdvA zeo5e) znXv=>+2`fue>D>7oKq#@O7-gu2~)R3(fi8m z0__F9cKb5{ZFhaTbMf^b8VPzc7nEJ&C)`RF>7!4f>MVU!20w83L;UNO85}ZhX9veA z)R!?hHjPL#gY$0OLFdQrOLzVcrtGluv-J-DsV@w6<(z?fo{FhHEQY3^Hw`XYK?;o>&;lQ6< zYyF48*pQnhd;3M&pY10jK;Bt{vCZz2!%?FH4|;e8$RP#`85^{nFp((hf(gb9MrlRV zq5ZHu{o*z3&Q{q8zig~z!Ei>|?yo6L8jvfHY~8;z17!b6-+)bEHzu-2y&l9k_K1J# z_ila}BEEeY>S|}ms_AHsWez+camSWmCciN81mL9X9ZoKokQnrW`PlAXoBCp#j9Oz_ z0Xr-c61!~gy_`BG7fwjH&#U)lOu%eL0Bz8Q$g*WE%s6rI-+uW2h0oadL1F=kd0-|4mvNcf)Z2>D-8ITZcRNesoh7 zSN+L&ehQ*=LlaMvKm8~_cJB)Tn*PGQOXb1_F3w_jY5GJTYK&q3Q+vrHsOMkUOYTCJ zl!nddW6k~*8`A7oe&xCl5q!a2r>hoWr)rO>wHZZS$Hq|Li7}G{cP$E*wz0ib(0*KQ zbTX!Z)1~7K)Su2aTd4M<8lBmJclX>-{CM|RSf1u6qn2WuGjXWdOGU?aLD-6LfqFSq zqtfdv#&vbJPb^d)H4Mv|$OrLA{|D+u*j?IVt5cIXhEsSzc6*ZKo0n?bmo6=bH+*lEYg3XLJ>y6KX8(N}V& z&L{4}XOGIMnK36PPNyakd&|}`*K0iZ8UZn1hZPwnalmFlpVZ!KhF*23G%z*|)!;e~j zaYmr{9_k|nikCmQw5>59&0lcE#o~R@eD^Iv!M9evr+E#<@hTd}BwOCW*mm@QYS)_W z%yP}sd}G=Zn{RaCabsu`jLn};?ZLQlV8xcVhFfc%#0f?5`GtBJi_YY>$lf-xTiPQ~ zH-|bmx8zobjJ7yd1xl?-**^=9C5E)=Dcy5Q7d=yw66uXxSDEEW{SW1w6~x7;W7*^* zg0bDuYzti&fv{!0*qu+{g2a;+LBG8M-ahVa5`JeBrYm8w5@wO$Ze3#sWbH4w+Gyem zQ~l~?Jf>W7S8*##8ViXHmlKosv+rRHF!e)i2AW{vm6LZKx5Y}0I|I#2ZEaM}NgT_A zdy6V|X1wPfdkiv;>Xx?NEv?fuzV?XX zfcGqL77_3B&YddB^F<%JZ$s)_hAJvn+l1!FR3Y zmbC!$A7X|&9*a{yJv&=}ABGXA zLq&Js_w4OqSYsaW+UTBl1bEF0wR}_@#15M{`8aX)lu^&EON7Z3lXh>fPm{|Oi6V!- zl_r;v67EuhA(v(Ji}?4rnYtpY7_V>l!AlIe{F^jli9=k*hSZNchH5-N`Gj7(V^y&; z<1M$~Xpdaf@9wU*8FFa`zzq3bdu&NUnNE5_RCDbax5JVH07eS2tsrtv9Mj-z2i;0FH%-A$r zZ2xusae^uq|JcI#P4ka0ZZQP$Cjk6c{A0|O+uV6KN&iHjvFYSLw#Rce)|XncRfSX@f_Hf$ zON_~RkAewVy}rQS7AAN1^urQ3K&JJFiaELmF!KdV;saQhLE#gjiY6mH`CcoIDG1|~ zaQxaLS<=>>CLW64S2#Ys5KpPRNba`e;7KznKWNO!&2i@yu_Fq?v5O0I%sC!hV|gPF zmPqNAK;51cP#NbO!%GUvoyr$$x9&adC{{?d8eJFV-5Sho>sYh2ek-5gfM7o5#Og90 z19iU!?a5h2Us7KCO;4M^U4C@(()!Q4`Jx`fyN=`~OY67jr9~DUl2vMbx$=x$TK`#h z1?VV`qal||`5R$X*o z8~TS{;at}f(oJX8FN>a-7|xegzX!h0r)=Cgh+3PES#)KyY@+iDDq__IsB~{CD6+V} zlw9&i;|yoQ>V6Jg$RjNh+d!B14%FWUN`YGg&3dNUbrXI{hJvgY7t~;%j0BB%Y@gcr z2wJ<;K8gMDbiRGkpyz44eNyp|+dPx#X!P<<o%xGe>8vp>7G1IhjVIvos;1rtn8izt2XBFG#*YNh!z|+m)+>OD5 zw`Lq%&puRhuyovktD*-6bFqfKv0bOE#iLE`hfK#Tb5-F#8Kz)Vg*fFMlMZeJIi~iw ztsNd{YQM(T9`|a$#?&6InK>zN9qp=arvZy7ul^-QCC7j6P8j2s!o=QCJq6YX7aSMQ z#jsJ`xTj7VOO{D zvv-@NOqHIv0A%cBmtA|_f2GU*Cd&U0yDaP+R~F)6W_8)9(s9SrWue?H1lMXO1hDC{ zAFp82iM_2ZEBw#8ESq0+?!V7yO}hVjtN&^j&I7}!e)3eYQ(vIo;@CKHGRNsRCvTw*aIbc4wCZLRGit9js!vmn$uY|S!#jA~xLzAcFH|}STZ0|-O}ekWaSe{| zq7A4j%;=AeT!RM6RSG0Fa%)qfioFgEdSI~~f?pVy}gK+7ma#lC4cJA}nz+1ia_`|l?RnT{SsI?-m zNT2IQx_@(HMp39WFHZ@Up9!!~>D$*$LM+NBh=|>KV8==R@3Gh2WdjretJSEWC+)7m zFuP4)51XyYvU)@^Odptr)Nc+M+*5Q-^~KCa2AtGp#$*agMk2BG*(Dejt)kq6t~Qcx zvr0DtLSAcLK^dh z>wBf*W*?|C8cIY$(n6)J2Ftp4`(0%q(>=heSR;zJRy<#&ue+2U>KS&9u7L~pJlPrWKQ_9DIqIH}`fk-BX`JWw?Sk{;k|#=V6*Ne} zmx5{2QoAwh?G5#yh-4&$<6c&OrLq0QmEB-F2&g;4w$^AwHdL$`9R$b-E7V<$-dL>m_)+?=c6#>A)jo;&ZmpLCQP&olF*z0C+oYQjr!QWc%t ztw~rT*m`A&dUddx$iUL2wZ4pta7o*>s>BT3Xz84Bg}Dq@Hr-Zk+=4%kk0Ria(22(r_n?A{ppGB!*tjW&I>aCil@| zdXo+FI7bBzGd_g|r~2Og@N&ZpYD693*wIKg{ceb}8;d-F;L-0o?;aC}Rw$&+ry09$ z;}nJlQ)+C+TuCXWiN-R14l-e*A<%nF^YKH6I{TtdXmoF|RW`B;oug_Q?k@qM8SXFn z4B#c70lZ|05(e;+$)c6wjJcx7$(AAqcocbrrAV`P%!vRAcX4r=B5&T+@S--lgXLor zm+Fe-7&u>}`jWj2Hgd9P@j5;ZEHJBb4q-ek@i3J~bbiMCj55-cxvy!GQB1HIq~k5% z10lXKlo{&KT2mjUij1C7v+yd=l~X-tdu1-R+X><==`ztzGj;as{j8{LTmkXox)yzE z&BCiq(IJ?P1=pws(%@d2S@ahkxQE%IH!MjNtwp)MPZAo|+|b9OXsC3cE^Jzui({xg z<`mm^MO-+(bUZMGtzR`%C!9xFs%~+Um!?KBqsFUzu)!7USj%-(Yt2HV>4>uQmhz(p zo}nV$BcGGIOKbV9>vPI-a=@sxAnYMOJBKnV>pPyB%QYCNXbZ<5>N}T$meyZM4xG>* zSFzz?kEdZdFB6u82Mfw_`VCkj&P0??59_PI0!P(Q+hi`WMVntOcn;skK;0-Lwu*YQ z4^w?An^lC*AnY#zf-0AqthwP~52x$<*y{Y%r=gbj@^nfG+iUb_-}!hwkBWthiEi_3 zk8sR@%G$AJp)^7{)gy?E9H@KPMCO?9e?H2|`(Dr)L(J(V8!KY(Y4q?YrvtT1!J=eQ_!9tae9r2k-zId4G9@W=Qx(9IcELpEoz-1 zb$grwQf4$FJn19%j$bQA$;3vApTiPhE>5Mys*EE1S2YLj_(<|({i}hxU(p#Q%`jpF z;&x9TGot3WQbhB|ksm}`r8AnN8{k>Zb5X;z@?l~MAEib9nPm+tP_|(69L&YdIasBG4FFjEcF9=l1N+CcN0E zb(MZ-e{W-a11)E=vIu6YIqsN#AgYeKL$L|*AJO@lt>p#a0}3d&0zs_22p}#Vt!?@8 zVv+~S>|MJ>f z2oJZBPy!jz;kNCE4DgnAf<--2gH5J;(smxP)rqsz$sO){AIQmgCEZvzParf20{&{) zwhNUm3DmvJgZmNXWw^Nij7K9D{s5$eW5uEq!Y``*&0JCEOh<7lFEP{hp(lKswr8U) z@iCC&=SC=S#gYWRT-f1zW7VpSAWHJ#1S*2;&348?%fCa9*}PnN)UwLC5ZQ#xaz&VRG8c&FcD-MU2E7TW&x!@zjG^TR!M^3#7JTi&Fnae2Z}eYS9EoatKfhV2E`<} z>PE#Sp2S^*9>*hiKs@t)KGpp_W)jrj{@*+g%(t)V>gww1>Z(3Cpde0YH3e0PA@)C; zz7^dK!SF&vd)KZh#ZPEu8UEL@F|@KmzL!ZStgJ#H_6Pt8KT}8@!I(Gk-=yHKO<#9u zt1sWx*}r#tJX6~zlVlW*hr{ny@hk6S3BF!_T9?2l^<62I;{R5k9-OdE=LQ6YA>_&G za8F+WeS7c|BtLi$^IXr2tDLPfy{4G0Gk6ZyADqGyMpHoF>6!SLJ~+GT8a(?-u^$Sv zQNbx=gVS;Fdsa5~ylFAvrn|S|HCPuk?LELKwiZEO@J$~$RE|oLuW_|O?_+UC8M_Kb z4_~m^7mWFX+raHeg-L!{THVC-l-Qe}Sue&?5UTwmQ0H%DuY|KsosQOpdybqeM-A)n zVIh0owVDw_B!Y{G zzcF~Y1bKns{S5Xr!LL*pLGJmkkIe=#Vi(9@te4f4)?L+)8KA;T0L(S4R#Ckbe?ypR zYAmP|tmRkyB*|qht-KXM0EDVkK(;q3ZG05+m>Rf7R;yUUJYBQ16!uo+>#`S1S!+k% zWz0O>%B+=qjMIL=rqrrIfU6wjjHkv0Z}?IGCHB5)h8a)~ZA09*h*J|@7A?+_9%i_o zY7O^2y#eY(Hq8vQ1uVIaCDRg0Qi_1)|Ar*6vYzq|zef(AL~q_MHLVwzzdt}hg(~(5 zqXG3sbWQwZ#L9n+aEXEel8XnbVMO?_I9-Bfi8vRSp(aWf)d-~GhuIB=j8_|g2yU;L z4|dYniy(OdvE0D87rdmVAnn2xH|}g}`vLz3@A|*}>$8vi?*Z1y%K2A@e3_rOwOxU@ zwK0eu*M4Eyk30pl-ZdDu*l@h+p~U^fxNZUoEpXGef{^Fs^O}s*|4!tP$!}dx7a$$d z6JEv4RK7XgeM7gie}HEO{FtDzgVDS8#wwQKIo^IC85VxkM6zeR9|!$LGk+Nsjmt*xb09$A+;8=Kk;d_Wa83A2EU5 zzgOh}U47caZ}xi81rZ+E+oT^a>D$%ZT6E3R>!t$Hgg;`g1RR7E=^iSg6$OuF&|CZ;5 zytqc&TPc_Dphoq1=48(vJZrB{?072%3p&f-yP?#^0}P@4a(SX&PSN{Ts~@pg4*Iro zc@CW$`$n&*p)OY#D%o1z)~PsE`M|)Cl%M0t?lxS64LjEsZ|Mj?kEzfY=6EmlmW~m|`HW0}URnUy zY7G)B`2hAU9peGN7u(E!RyOdfAhz(I%6SFK2kKOk4{hNrN_+jHC1-J7Slp8i3Mv!grq;QK%9~>sk(0D~d7Wc*Q?y}fb2%v=ws|EOG z6IVilsn4XZDnJ!|UM=x{<5xa(H`H~%@utIZzwynm4E+B6#y4)5f|DgU(^KDN5NqL; zuXwbnO?~`|yXP1)q$m3eQlU4lbcU31ZaU@|x3^R#^drlC+XE^9566+qyFN$`1CSmD zh$=>5HuzEKctoJyxytPBp1|ptx2(fo!>z+#Z!rr7%!8PUkd7y{ znF)9ly6{L0a@IbKa!Pe^;;$zMm;*gB55%Lal(bt3@Po1xs--_S(tzj*ExFj@_vlp}j`19qd zlKci}3ypYsBLKGpu4@TmD}E@y8NX01@}X+@F&WF!KNG(V2=~P=P@;VV>t$S}XIVz{ z{THG$Ku7fLP4S0)@D*TT9q!q3icB20jgyI^de|QI2_1I9rg%^ns8Jgz8bSGAIBDcR z=RSX%3Ds!NeksM5asbQOJiHJBzQIE%;gTlxDq07jg=Y7%fIQ_TMBR zP9cLz%I+22_NE#gV^A6LqZY1*v4xi*&EYL;zA)$0z+r5&)tmTjG(FiMzi2f$s1b8; zgPIQ}#Z%Btp5k$&h8134RTE2B%j#Bv0_IVQ6MVBgfgUWH@Xp-lAY^F83|ISvV`79tA8xt(|xm@ST% z809STBm^i_PXo$?Gz!1%=x?6u%R?XJg-aUp!V99hI3F8+2R-YA{*90*>l{7YM#I58 z4Wn=d3_Z9<$7Lzew0ezt3-aJTP28`^KwlA6NzMMXtCnYPp_^5IaHhyxHH6h^F^uNs zj-|eo;nGLKSw$~sDL)3CyW|+yKo%aOPqKV5MoaMhWWOD@rFO@-vc5MK0&X~~h5+Y3 zO@NkuL$Y==Fwrwxt{?7i+vF`>10svPH1$pcx4YiQhv5d;&m!3s=B0nd1Jv^%KF-qg zK%XrhE!YG`b9@%Xw*QIsr>+g^cpGUJ>bDHx zywJ$&2)#b_68!KFpBLg2^AkVkn^-6yJ*75YfWL!jp{yZDQ~iMrJijVQn=qL@D+t(F8sZnjmd+aT@b>)J~DPsm)&g%HE6?K)|OE~&7HC4AS}FG5tN^g zB9q!R4z$HO;}a9zn`F^E8T*p1zUNRiBKK zu4>e44gZsrDykO%aZSNZBz371P#mvx;#;-iCMzb;|5cZItR p5El}Ve#Ok#$tR? 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 ID)MFx)t9 zp!zdEY!3vR2Q%Lweh8ccTp-Mh@SGZC7|$O$!?W*TxDqAMsm1>43W>AW+QpN*?OAS{ zQ)6kJ6ayVpAOGOtin|Nf;~Ghd$~){M2L zMwlK7Zcz&0u2gXU#Iw1~0~fGnb|$!MnJdBg=A23Kqzjxiv-o7e@GOG7MnT>}kOMrB zfjL9tsQ|ejbGhacbg~i(bTW*OvgV1&(k8RrFAk7SJsQj{V{^II@t>zqM_lVTkaeWc z92NO_=qIZvr?HMkDA~-zRQ?R(ErcjxT`W<$82nr?bA;JQ&v9O=0Xo3 zL;5Vh?Fn#}g#}Ij8ggP256HZ{SPzYa^xQ>8$t=MCw3h8q%bi-w(X3^G)^a6l$?L3^ z$3U-)9cVy~;a9Pi?O4kct)*gw2`j)ao&>1$c%}FVl@@bd4~7JxQn(Wpxj0bx+~h zjPaiC$f(B(Nt|xppF>p;5Jii zjDew6}qeyQud6w-2e|p(a8LMJfa=ST3MNC=|*= z3JomUNL302QL2>+B3ftyMH@)m2C^)x6{!>jZa}~yh>=SnR9aG~O~9%FE5>V;MG98v7wP}~IWynyem6-)|37$b^PQ(NXU?2CbLPyMnX3S}_AvomD1gym#wVP_PbyKb zlDSiTVmCO7^$?EJXDjguB_84vqm9$f=p;e$HEk!FEfMk0bm-4%t$j`UMOQ%JpAQ1& z#{%=ay+OcN>=e0Kkw5W~s_^HEG%?WaBOQ_J75P);{I-u=?f&smseP;x<-G3aGx>uH z_g2IIKffP;foM7~4 z1z&KjkV$j#-r8bfN;Efy0r#t+HNW48B^h9}>-XC*rkmc3D=Tb(vFbLnnVbNm)2jOq^f5hHsS8 z_~E=-a@MBGW8oq%CYo9L;IZ=E8$B0jV;Xta+{3*u8X-D=?k<7fyz9sgEJj0XD(x>% ziZaXB1}3-1Hb5e%NXU^&|Dd;~r51iop+cPp0GaMq831TzW{-n85iKJ$#5KYxjl!+h*#_NT`)@^oYo@3?N&WxzZ{_x>!)?Gd#2 z_ejC?)vf{lxC3HD7zvH^48LrLQ;y(rTZT6+>W^r*E=*HMkgYB~RV~6Jvt=s}Jh`k7 zZZD~)3nci;ZOt05j}2ZzLjDK$GiF~g3Hfi|&p7-(EFDLy#H&(1Me@Y>b?H>syQbaaHZI>s{}_Q~2)9cwotp_&#XPzL%CGz)CN;i+>1hZ39;_4yP1YO$mGF1R?e-1E;M6slbr*UQmo5Z`e7U4VL=Vn$5Mr# z^`0s~MMX#4EhUT}*XJ82QWj0XJ^RhNkcBZJ<&0mp!!s-L?>)N5qD%~b(B}cbiqQL8 zN`Cs?-v#rfs&HU;Q^l=udf(H;fNlY(rHzkKZ_3^E!hTlxeF?Cxm6QPN909vZIde&1 z;%H%<;OLS1Px@#gW3rP?UV2?fmo+gmuN@V9>C62^I%Ue?z>nx0Q8ztu5BOa#{64me zbyLAFWXj#tqMMj(+q!vhZHGEH7?2LGk#UWI+1si;3H=v>t1E*XCrGAp3Naa!?N9%O zvI{DMeU+ekDud?!S}uEGT-F|zP%rT`eXTMCoUeL&jI)}e|3bYhDub;jJa?yhBSDV~PD4#N~Q6;?1z)9*aP9OM2Mt2su3V*s#zjS$IC z{1V^p`sj!?^cHVbwR#1f}HCRWTQzo`c!?^4^0<@`V?{>ctDPlQrI=d6lI?wFIygepKT31 zOK5ELXnd1z_sNma*j;F(K*RJ@RcW2uG%ZxAkUQoh-tDWZ$gPr|6uAzi1SG?HN{ggFoghim4M+6lX3+t z@?~I_?15Q1fK8=@+66zfZ4z6;7L{@&Ux?V^iBpVfbwFQ_W31TX(|o%_=~QpANU+7T zkh1tx5TsylLoG&BArSq=T_E~yZa^7D+%n7!^EjrwiM>0TRsp-+ zD^letqC)@n?+M%b*G-hRoJBVSaMXvS4tX3y1a_RrN}(dO#I!}VNU^Pbik_8D5|Qg0pgmQHpr z)f-oT;M;KZ=f$u2iH&@_c_$Okj2vBMW>!&M)^Pm%_-dTuat%0;$#gH!p_wMR(nRnH zM<$Wtc_AO$OH{g+$^~Sa*fjeYvH@(xZsZMg2 z_)4GZq|)Gw^Ao<^FVx7mG4iJil|DKzZcNfx!0^Es6`fxk;x8SqY1E7L=y)@Xv`CO# zic43YbT_rUS3Fr(yyt4Hc*7r^S;*D87xuv_%Zu@uzw==HubX(Xeybf}*_zqDYt0Qk z#9i0$>(!&0zsVwLS6jz}v$tpPHyBE$#r85=Z)tx#I7zyrUNr%M_(6#|+08q_I^%)= zhAz5ahR*m2-)^1g71L#cR~N+Qcb*y3rMSE2wKB^to$tmH2k0h$D%h{KMU6>2R>&}2 z*53!<3Y2uy-+63QVpa>sT()C3_3G*KW8EHk`1!v`akm*rYcBU&p{j7N-DRSd+oXll zs?mNDJTM?~#5YPD5v7D1B@QTuwcxN3s%c3)rT=EG)}y$Q2$X~gGOC)qmSzH zFZY@@+G=!XHPW`JP#p-7vvg8o)-hZY{yb77ul>kZ1oDga_O`hfDOSn zqd$b#Sy2~3lGs~c2cg}S7O6FvSE#cCa$vD=w+bDypB-9JdY{7C zdpU^e)9a`UMdIRHP$bUh+ui!6sRJ+YWMCKb6;$ZQBaUma95z{h9nxA7dz5mzLQyyQbd$tel}gz3tQZ z1C`0vZs~qHV}Kr{^*)>xJ+N)b(mUGct7K-K0KCORezjCEH&jquMCYXQ>#TG%A$nwT zhRh>e!NFc^N<*aGu*8NF=!!JgOFnI2J5g*mHLGz86IS~|Z*mAX11khKf@b7Z$kXj5Xb5##D6?rP z&wfpEYdpA6sHXie!g0Z%jVxV^Plk?=^|l{IbNCpVC0D;Voy+@fys|!>3)IbvnAxY& z`Mk<;a=wxVHOn9MphS^OcNbJjH64^$r_8w2MFbj6FiC-%lJ)PrZByN^$QYnCvC8n| zes!BCHwKNELrQ4vNqQO+f{nU`nW&PCYlN-)39!9qoA1`F0VA)tj&|1RPp;}iKlI}u zaZ`zZn?4{636<{m=-GjEsTK zy|XA_><`tne;v9(0MF?xMznV!Jx~|G@7d_$5& zjtI-pKGa$@WpVn5XWV}H8L1tkOB}d2I%TtqDvP-xki!YB=>xkf*)&T7eU z;1SmDtG`aWZ&t@-5${Yn9n*yjinvuPP2AA zd;{&c*SF(EzTM+$pW4Cp6B-o%geBoUrEbT=TV9V z(z4oe*lxEALeCGNSF~V@9Zh1T9eu$!ekhfuxTm!XX!P+spX-oDZ!y^pU3MST^~Q#$uz(6kMkBvTi=fK&*g$xjv^>^jT4ZZa`%W62L$>!N zuHsFsupgY5A62{N$Sy}~+%3Bs%hde$$Sa7*zLhBN=U0D;>TTkbpv*3Z3c>#;y3fh> z*u#AM#6>%wkK?%*+<18crb{)+=B7}GLM&Rmh9%@%m4U8g9kL;4n~P4*1)dW zVQAwxO4BZc2i)!~yfo27$0Tf*yF45sey%I)f5v4Zxi^T$Jg0kV1Mi;gk%Zxv)~A|J zp?|5^xTZew9dQtGz>In{!Bl~p&NuODdJMyGalMl)L2NH;G@v;#kOA;~V0BTSXZs4U zQO3ZOF;c~U7~SJ4(r&u1q9v*VT$4Deq^d};Tg7njm?zs>T_2 zpNs$CKEsL6jJByic%}8(Ktw&4>7Ad(pjHTIJvK3wo%!!kx7nr!(vd~S?qvRmLb+DWLSAEOhAr_`_~A@{tt?KHgvOuX zL-MSqd~)tLT*fo!hsuY{su^3*6hsYKdVK@%^} zMMzc}plAw>LY2+@Z%p+!<;MO)N(2d)>Mx`^4*fi78@Y)rUvrQ)o2-#6`?>(9r$)H=?;# zlME60%gS<|o=+IYi@O5DYk9;*{vkq@_-Ov9wfS@iF5zf8xNM?xD{x74a~XC_Pv5>E zQ{d9qHQ)HLOhG^YzPqW;=HIH~SmqBmL6b;ULrZuso#yPWB0uge0%d!X+s~#N5qT-k zA1=Sy4{6ft(-f9$;Ak=3VC#o|_p`s*cy78Rf~pj^i=VG3MPQDmcffo4tC1$REC16E~K#rYZxp(Ru^;4X*&ht@YQsiPu* za3d&%oGw;i)Kqj;%yz+5`pC}n4X{OmO8w`7I)!NRe=97HzXBbzEol1K5_R{A&+njk++I9h z%8=&4s-xZ}$7@a@WZd+cYxl8uED8DX@7CwSv27fo+)<$HoTzL{3Hho|MBza-KVNlG z6xOUpcu5qt89!fjO%(3&=_{hJW(M-#9fdo6_wF~X z_eS9!A6^%QyL|XZQMl8GpN_&SeE7L2-0H*IqVQrL-X4V)`0#}G(B8Q|d_WYg_u=VL zc$yE-j>2_5JU0s0`tYZsaLR{UqVOPWPWx6w;erp}5rrjUNPi#-_xSJ=QMk*8pN+zu zKJ23K3LoAPg+8dj*(#DUS40g`eQ@yPRK!-wJ-W^7}5ohxu*f_cXuX@{_!pb@r^YX3d** z=10?Q+or15vn_pDPU`kHs86)5R!>g*)SdvZeM>ZOMh5aID61jC4h6ZloKUu5c}Tm^ zr*(&*UvP$NMcOX}EaGXE8~4V(DULa^J7h8bPquwQlzwm(Fx%N1;Eq!Ln`)Wqp4r#z zkiURm*57EnGEuzcj(eBcA^RfND7&6kE*J+Ki5+>(Sa4lvpr}rI2v45v(KL>K4`^Nr zmff_Ziw!EnZH)ipZ%VPmG2wy~9Ru?Cjfwu~3Kd}5AHj*Uc9PXJo-xs%MAo8TfbG1Z z1TsdC2$4o&dG64@39@`tI_X?xJ@Zp+ASPou4(syw-GoguvaaROBV(<(cF`(pK_4i ztdN0QyO82RObRJ(+wcJ^akT0{OMI1Sz(zX8gCRLe}~D}wkJ&tW-X+vh6E}kJ+HScSUXupUx&xL9=t~xB06%@htmh_>zzLM zDCt;L6#4v{c!Ch=0k@XRj~-rrtj}6m{{MVrZ~O7I3-nXPu;aAT_Gkd?q&+(3^zXN4 z^ho&p^WSez^+@GkPqqhH6ev?ai5{%*Olo4|yQPl{1>BQwjuofTF_3j}I=51!Ah4Rf z_PP4Z=4&mcv6Ih9e9p;zPvc`w?t-p4{%MUlxn`u3 z>*KRNG3$I(*Vz1Dxn7m#ck%NY6XWbO6kVSxVdW+IOpAV7Ia=f#bl>|6gEczD!dk_{ zYunaJNvX8qeQ>6RZeqahLH&W)GR!Ps)TZoK3w2!a6-_0kI`guF{q2ffr&=}Ew28>= z0t4JGuz60tv3pK_UjLlzgefAb%kW~12qLqU-y3s-hn0Qk>}oXw+O65hP5G$$JoeGD z8OkSXc5*-Zh$Rmg9lf-G&!)S@;(|3qZ8#)P#4X6|={DXma+BUWl zj@Dzd&f+DwZHwU_mWP-gvbw}a1_G*U+hF1|vw{0Z8{O$XczR~TR1hJ@D&v^U6LWpg zHs)A>o>Sr>n;A+tWS9VQ0YmMMd@7C%2kmA7c175PMU`nGY`4Z*ufxP z${=RHjf@SQ$S*J5C!0?oG;GpDrYv=qrKR(T*W9{a{?oW#=ZIDlohoh(i8|W2wq60< z;y%5Z$&{`y=hHxhs?;M%1`7E`gqz*mMqHAPh6+a4K*tVbmas^i`2K$;+#-+>da{LD zGfJq~yiT2K=Dzt0>p(Q9fD+RDBCV;a;ikwDXiz(P*!#Ug(za0q{}`S?fB)5Ki8qTP z`Bbj~-7p_u;*>PMdVVwbP2)F}Umd?m{A%g7=e`m3+IHOTI&B(Xv&#OgTw#Cm9sHS- zZEv+d`K5}?Sx&brf=LJ~s<(Xsf541hX}2dA(J7UXS*LVdWWFp)w9HR6&2$I6!v^V; zFEL0pjF2D?^6j#FNP-yfVXD+6Q|;}=7i+C(@rx9FuP=I~ihhWq{%}j;4ynKI$>mDz z_XWg?x7)~Ww^l~p)rruG#Zn0J)88+6>rb?ou`cvY&>wBZ`a?tO6m+*7YdO?xaJHz^ zPtgle>x>fQHvh|^J5a)V` zRwTbhDIQ`|1;oK&5SJRnMl3(;Iy|^$fg9z)S^oSQrFd`$Re;+*6x=*UNn;(b7I;{P z2-cc;))kgHzeXt@)~|k%bZ`M6b~z30jt_d ztgGdZyW%{n-AAoalrQlyD`A|6XkpaPo14z(yC8>q^*H~C8a8@Mcdr~XIgAR4_F|5I z((>7U=e^O5=UDK;|a_@Za1=$XFgb9}o8DLQOqp08mX z@L3q+Ln&578n4;*&FYO@)rmJmV$fc0tI7Fk-JX1!Y0n=(RJ52{>x9ikZ<>y-J-!XZd81)=^l){-iB8NqBtO1t(M@Ko_f?`boNOcp|aUt&()8? zqT{b@>Vl=dy@YP~3E1lt_p~G)RgIC} zBK?KCrhGn~2J<|yY3kZKH7%4m(wA8cdUZQ5Q(aMJN59n*m$4@4oK9_egRAD+Cg68G zPPiKpySigSHJ{2n%2zw*G&Cskd7!A-84oevGF( zvkkB6nu4~C8egctrth*frQI{h_>5axbM2R{4+!PQ>%zTwH-}v_;a0qeNWOIjwD@uV zJwe|e_TLlr-Qd5~0mWne_kQ|5+<#Bix6UC02QjguC_h!c|4Z@OFy{MEed|I{zNOz5 z|Kh(7*Y_X%x0KhS4jho@efs{1|CU55Zt&kn=vyL}Jnz@{J^uShec$T8kJq>QpFF4P zyWM}E#-GwMBIoL32_NU`Hd6m+IpLJ}%P-Z(Y2x zL?4Ipah5&~8~m!NX9B-EelpN%0-ViH6LVB*o;lUxZ5T{!L84^3s@2E3vVR?B9X$NcaZ-s{eRD{a4>LeE;43 z^zyY+crMZbPyJ*_2TYGTAUvv$-)Muw(^!W)%tO(7$KSJspD}U)`G_#rZM8!h82lZ) zzX-+Du``&;5arWP7J+{9^Zjk2jeA!!_2ByRNYf00#J}ZY=9atn(d-lM9;)c_z)z?h z^tbt!P>1g-%^-9Y@%ibS=@RCjHYecKm5}%c*nTBuPRQME6{r+K` zJNMcA`3Fps*$I6^VtQxyjinwT?1JLuN?+5RW;^fjNM5{EfBcnRr9V#mGT_x87d*Yc z_s<*JDb~O0TN5_8E1M%d!TNfQK=XWOpf9Z}Cr~$@v)KD3qVV-h4p<1Alt$kFZBZ6# zw+t@IHoOc`3!%-0K-8roYC6znu@SYgFau+D&BOJRYaVWV89Saf&gj(EWHR+`FHI_m ze1$;1Lg_nHusu{Dx#;C3_b(-JUWw!HBOWGsQY>w2Cdn6=pDY~SR-w|>Ld?-X2W(}GYJdl zs}3V-Q4UOK!JD>MB+7cVf3VcEsJG!w2HC?6Z_1l18n4mV*NvIJ*Q=oo9Vq(P1LV1S z%+lDWdFlssjdT4ov`4D%(W$1>qVF-O=5wu?QZ;w|_y?eHH9#CoN=9d@cq9K1R_ZqJ zET?L8maYs*Pb(?2Vf2vXa}6EDg!I(rg9(9P$0`6@Ijc!AD|`$SOtrniN)tL%rkqPL z9X`f#X(OV-U-w_p~zCI=(sLX=m9a76O3)b{}UfW@Aw~4=MBVhV9iI4Zqcww>C69XGQ5) z!~$DqgbMVo_fsw$@mkHpODDUfI*0g{c>AtzxvGzvz91 zk**gGcm5*w)@v=;ts-;@w?WFX(VtKWo)nAbPtfTP*Q;+apJac`K;KbpbpO9@;O6$! zn#?9aq%oR8uiD$L%&=1^F!9WWSGhi;BhD}-b=3r^)ZCUw0sL1G+%2O^pM9)WS@P3g z_#}GFQ?Q9U_z^Qa^%w$G#l2OtW)vNJmY`!Z*go~#roR-}>FNZ~y;}R>Jpj8&zjL*ybR5@x3LRMGDSeYw>k4b|4YS941w8eSkHnG+c)Hd4ky46&Y$QvdCeo;j-;Uuhe2_HJH)WEl)hMTP;+ zox^5LyD?4yUf&)#v|($kCd5-mxjj*Plm6oGzAkEad9o?re^6`szv%Pp>!WPn2hU>Ep zH-;XZME48;Bo|#yB^R&;a-t)2M5WLXI(TP~r?)aKD|R56&dIdgm};V|KgX6^OoMN9 zcU7A@uxvkarJBsgNVQn%3U{qfy=ru6U#Cw4<5f`>16cSJuU`-?oBy#dxUD|2jH{>2IrcuD^x#i!JA+LMGQ_GaKBJ!#%+o z3pEdqO@|eWrfqsSRodHRZ6P3DC_PC6@v=|E_=Wcl%lkQAeCjwzxCgQzw`P1NmXE zOwxi{<%@cvi+-Gxe)^Ayfp1WL?FT9E27XX6n{J}CU0_9~OO>fnnf}LT>JC%x?aEXQ zR5Hy`rZbf3D?Sr55sX_^Tt+5Zx7x7R_R7qLNi~_rRLUGl8dv9z?{LRr7o^9pK?}OZ zv>;>r`pc?{$5TFz&EnGFr?j6##)b|hoWN2m)iOSvXC!6KC5C4>^1N~q0@M>Z%5*Nu zv|QuwTkF)^^ltpEHC}PgFnk(2z^T*UkH084?;1iqjQ7=xvJ=vLuMQo)x_G3i0unc`{0zmPulQYke810Mr}zbm|LX(F-$*6EGNpw<#%!n0hVDgL zCy?B2AT4fyWg^X0ta5ghHJyH62#&H05v!g`XZL{1ee>}rv6}d!_XA)WFYzClMFwz&=w)Geu!68VdMX3in;qTz&7;(290zA=u^d;lsT54Q> zf~+3-iP!P%e)w|4#fc}N7Qyln7eC0%mCmn|QJq_s7l4TS?}ymyW7LQ`5xe!;4tO0g zco}I&+J825*k7Z0@RnaUUp;DL;>%~#{ttkS+jzgmg!d}XtdrGU3_WNg$Zv3a+uB@} zXjF+CtOO2YnU+@N-Dr6UhZSG0rNdY9E*1H(ik$C@_*sA=U!#bLmq|72G1F=R(|!h3 zOZ+l&9-85DYy8?|Wsgs}&eAzmHo7FGc~aogNu{+`V!fs$055_v8u{zBXJl7VU}9*a zwmEqtf~%VU4r~|Zt4a1kxR}a&}s~xIi6=eN0+otBekKYSuKfY2Kn2DjJXMY z;TtXgr`%b?UTrg<6Z(v3h$h>;?JnJ90K5#KJ64Rne75`jpR6IB^Js`nZlL>4HROZa zMrg=?kus~BaiHcDX=>5zusCUn5iWfVPFTNN$?Q zpMva%T2a};s@9fG=JZ*-#S_MP`H%v?wKt17o)L58@?t%jE`Z$9%;dUHpW_2%p9%@%suv!t$C33K37x;T;^_6Dn{gR%to zaVglWx@PerF}ia@e;3!mTXpFTFJe5O_ywwXWSp9E`+X7#;!L*u%gf$fY;37qnsOWJ zI3ZmJxo4y|a*VYK&g6|qYmeFuY8K9H_25TSMxD*M)Q9ehS6z*ln@^@&7-m!hu=ppsi&(#Q!g|mExNWB(6%atdx zKTNB%kI3L5$rRfTrgDqd6!xL4WSM2CHuPAQ-P4@l+j^2fi+ zM(Rr>hgt^Lj`Q08%kH;a)u499MjtzVZ!4%+p`1}s&tzc24+Fl8k#_H)_0BL~iLhHW zEjgMJ>&2vgoatVSHk@iY7~*ZmxT}!S(WHoCF7z>yGNpP;%8$R~)W`%)j$sQs+qDaZ zYdzqLgzB{}DvdP085KcEP-hN<*332}aK;`v0_lc5XOZ*{^V7bYI^4D$X zE^99~p&l)nW5i@(JY-pAYq(&*c+h8R)y^5y)Bb=eq%Y=XG{)t`GZ>fGp+mdVzLO9H zHbHc2)_$4^i1rq|+VJ9s$o>^&pX9R#K~z<|M+)1!HIGHRAo;2ruRKe5_e*T5 z08}3vc7tg)>|o>mwP_;V+21p%(w|v6A!U~s(%Fsu>4m2=$vxV)n09)T6-C)VVOy%V zUd}10(&vEJP4oJ5izmA^J?1WI#;svFb-fx;XHcmM@M%udZrXudY%7C+J&JC}x`tFj z6|3E`Q|$g*n$nZDCYe02seZ6HSu++pmHUHI+$SVRIX~R56YyH&ek3m($rmGim6X}r5i?Zq3MUe-lEgzgMAMj=; zr(GXsUvAtD?2wvYU};w-DgTwq<-H4Gx%O;&f=3417^KfFo!~x(x3cZv#wgm8#HJ6s z`@aTUZSN)$+3}YA?Ac{#LLD=^v}m_iFf20H8c`v9#&ayTBy(krOuJ8R>(bXu=q}_1+GmRU37tD#QCuMfi;<*N7!b~ zIhGZ`H0tyq?bF+)Z?IAaswB;rr zNR$}d7+ti$?78IpKr|beELWx~Q_lVv!rZnN0w9b9%mRyYb7`uvCrVdtk zqcKxx#NsR<3FZ%oDLB^$X``iH=z{|xIA6gbq7(`0>10aDqz@p?UY0cb)3>FR*g|!T zBLA$&U--ywci0n?5!qcVKnoDL@_zYv(W&{mJjZ?%B-n14;J35~D3&TQ^O^n1EeoXk^@#wlnDg0< zwz>=0>`$Pk5vtbiv}iX7Wp$x!P`=|@%SPf*e|^xGWiqR2|A?1wW}2;8F4sbcUr?if zSpc@2HzpCi6XL*pOm9f!N*VKUW4iBJ7Z5g}l=#bh<&!TtNp}=lQU;N}$9oWk(txh#n zoAS7=G~U$6Ob=7~meR&jBe1KQ0oCt8^;eAqs(&b`e&K1L`VCY+prqCXvz}=(wmSh? za#@em>2>Kt`W}&#OW&M+{qKSxyS8nTZrf#Z-UvuDMU^7PkkAivf-5F0sQeMw-{R zez#N==f@8=i*o`9oCak1g)s2Zla!4m%)l4V;(gpVE1oI1L<}>$$*iyM1BAN1LJm}G$X*epgga|LQx2PR(Ak-m`2LwV(fkj zR*dVk0?SW)o^SW?uZY(GHgnx&kQs@fW5>7sd0cGCsD7Ko>wV*zS=rpT0#R+P2BF|~ za05CLH+!+p0a7U z&ni6G?d<_>nFYYRJ-~Ye@amlbT;u_&AB+8d={9oD9aHWpskh5wXJPNFs@=VYPIQZU zTPk(7EuHXfBw5q`ypYPk=$tuga??CzVeF_&nz2{iH?HYqcfqqp>H~%G10Lho`F1~1 zOGYBWgD;gyupbz=wOAj^HVOkS+9C$*D2=0DZP;O2HeNIxq|4nj-Om2o-N>DqaB+x0 zn?2e6_7{f6x9UM-tw&?A&^UExXdIqE<0cdn(2z{1X+K2s7>LUr;$8NA=q7T z5&NO!q4$tvA7W?Jci2?O(!0gTviu~l-t4hHhZeZ^Rbc(a@;KZpfpu$Q=#3x?w2(4h z3wUcm7sA53rakuO&C1LTu2&kzx3rptqvqj3*S*ba0w=ruJfgoo5k!CP5$ytLca6v% zlQ)6rC8aWXe`#GdB9YFOVJ=pEzxMUjtG>OW`lKu0FX6fc=qN9vlB-G@B<-30%655K^-dr0k6dxpZlH346TgCz6FriqBH{sGtc zx(U4=gm*V_q&C=|!ji+)EP9+-WEb(lF9YSsF+=qZR33ye~m&r z7Jr@Wvd3>mIvLcd4f1G8ZtgS>hQ09)@Z;%l5BpEY z1N$!?_G8rJR#w1XT;|MW3D_?}05uyYv*2C!Qw78K&yv-;+4Oz3;g(FxEvY8oU;a*k zT*EEd_GQRTggKiRxNhN?bj*X?zG0^xz4_vEq@(byw0s<0Cz#7C63?`st{*RD^{8q7 zI+ByzxlbFp_EwX0riw{#8{h76HFYF%-Q!|%m9$XmG{lE3l-f3S(%wo1Ha;JaSg$p( zHbilVjlPG(JurOqHgUyAG+Ol{O|uzOa;=ZHuz0`|Hh{;V_vhRh4V{`%irk*dTh6@JQRb?d8mEAVm+Ln{`2jP zDOdM1Zxj@%A#$o{m$2%x#b;mC{Ix~*ke53`TWne{HjmrX@W)i?>WEg!WtOQ|heatt zq#6~ah=oZyuJ2AD(lF=l{-f&aXCFZK-dF{rO7A3iQxqIsiradr2`viJ^O^2eSTtdb zKNHDfCIyn|V_R7-CCd`bL0-s-r6p$`8e3iSP~#sFHnFMS`;JJ?$c!~m`eB8tEK7dm zufHIjtGe=|iCZ>w`3JvzbI)3x>C^1#x}Gum;x4IY-ydkf_J^}CUG*qAu$nw-I%?Gs z0gmqY7B%I8>aE|X>%rIs-td(tZwRg!W?VfAd=Dyr-ZX0hR zQr`3y^&$83V$5h}Q=p+BY~nWxO=aLrz`TN+7M`SvhhmA0$eBW_=@YcJ;C}Xf-KGSY z`Ob9ho7zwq&EOIfUmcgxV=%CNy{NpkoxY)kJXz<92EpO&V6}VAO?G8}*l6hi_dGzs(cb|V^$fm1*Rf;*KKPokiZ)^tfM23uQ9DH}1 z`cs+-^RViHK8iIapuw@=eId{|(><92UdF=@@#T8r2V=W~QuX4BKtbpJ`SCY*RPETd zgGY}>Uon=U8iUkf4TP&C?Fc;vReAyum62tI(_O93X!@@JMgv4_VlSuq%F+5gREsw+Ce0_xRBGILR&9WNPj-E_GP{ZRmxX z`z~nbe%%|?+__|3n|OWo@!yoy+%t`;Jm#bRGYPEGQ#!%D%R~L&X+XW#L+zyo*B(Kg zDyU1z9oE;MD?{~Cw89`4>l@Re`38P9LYO&`>Hm24+SQe% zxS;Ka%<&zm<}g>wNZ-80os8&FOKYM$VgwpHq}xv{cl!w2GnM02`cLH06nOzgZ_ow$ z47M#zOJeEF3*=tMfiWQ=Az@s23D`i5R`F!IYEYEYu0E`sS&A1~oUei6{q93P-J~1& z`YiHF(@5EM%Wi`0NrSwZ4bud84qi~)8(47DDHzKgu}FnH(_E_!0?gbauCLm*nJ~{) zZAvFq*40eVoe*FZUe7D$V5h?Cxi#F`r{?#zYu58$XYwT;Ct3T$isVx}ul6YiT!D&~+N_ZC6Nw1@_x+Te2`Md!5~Hq0IA}a$m>?_Wf!}teO&!! z&5W?OOlKKD-%>6H6)VWMB8r%=h??d1X)NX%pt0SW+S@)Ecq(7cX+>+6`;(=Ca;=J_ z%ywCbJss-_>N*Pw)(NLXWMn@1x;2n-DzraZk-3P#+O{_v*(rX z^lT4+RUNlb?dZ=Mp2fQ>5DiWGY9cb%sz_??x4Nvug=m)rBSgCsA&;o;@SwhcXrF~V zqW7;bL_L5tzT`@uJ+FKoQB{{fl%2qJM%b3n<>J%ggRn!0k9y7+Qv#hGaycQ+nqS4Us1`{I<{E!=Zo26!~Ai|q``C@D=+ zGysPUO=%}#D4GQxEh!4y-bsR{lFYtek7l_BW0*fqW}W`TW6p^GHeb6q!kv4Kj8_Zz z4DP%Y-TE6fPN!nb)s`;N(rt|Q^f|WgisYbwz_Lb8K&#k5M&zyvD48uUH*b~uzd%m5 ztPEF{@Li(VBlXbSHG(+AzBXz|^}3 z>l$2hT+jJdDy2_tiZQeszrQgRO)kTt%ne*EP0n8w8o4U5SswNNVn|hXL|%oWn$EBM zv`Bfo{h7kfaho1%pLS?W}OP9n($w@Xm@)XjrBLy zk{oEGwv;YrM(HrmTg%Bx-UMH+c?A=8N9_N*TpntT9W+AK$O(tu&#bdal(m=9nt3Bt zVvK0uVZ+D#;j(w){%jGdEcAg}SgS$khtDxK+h~}Dr?|VPDQnI0&p_nNI-66Q_V*uS zoA&Y_RZZjl$GDpIldN;?5KgsF%dFF%+RJrAuYFm?Evx6`zUp5OU1KfC&Fh4*lwo$x z5IjBCrkWdb*%|!NOfipY=W=HRsMbkw zH(7SDgZ`1maa<(yhKWZxH_=b=8?L96!zLb&^n}c|-wCZUJ^$3R!uDc-h26MjzpPoE zd>oZN@ZG@%RJJ+-&?#c)s$MzKt8~G7$W@w_(6&)3A2!5$+Vrw`>N;}Y%!}-MxI_}Z=A=hTWxLWbtLchk?A&V zq6sw)U)vUxtEs^f2Zp~zn3(%(4ClI9j05=Yp|3$*1Trmmz&$nP1}{jA+Ktz_~x z=M3Ad+Fcdqs%9QPly5DeZKFsB-~Qz)HXLLr)k8W`R?7IudAz=^i|lt{J?QJ%$Mc@(;GjdneF7TDoqcM#I&mMEg$yTH zi{D7T+7&U+a=N2@-lC$u=vorBO-mc##dX5d1Mc9rs`qa|7h+I4;YB|!_Gc3PwliE% zPo%(Y*BBV}aT^2MT{VSi#di4VfI7y2(-?T=N==wUA25sTopXhMbRNh?;jVx!RPNk; z&nrK)W(2bU>Z{rr3(Cl0D%vE1u7WqYschQ#cz~DD33qlNeEDG_c(zj7x@9{w4OKfo z2B`@hPhXQp*+b#_N;L(%C+%9UN0%{p=)nzZ;o>^?#2oLl5gS^5=5rNrCHXn(s|QYC zivqerLn((6sA-=Y01EM@Q$6SrNb;7JlF+%uGZXM?+Rf+?6Vp2_Y=zZSPn#KdMTVN| z`{KBmG;w2ONU?FV>=$N7?}JzRylCZo{uv}@dtL1Zj)ckB!9p?PkKe)SFF)LY`M!nu zk6Spt;Y;K&+w4Xm24YVbCOvpfjKZMmo^WPK!G)W3Gq>enC9b7^r9h949ZflgzNK^* z-lu>zTZ)EIX}&gzJQZzIzTgi2gEqkih%3l~Sl&?oZ4_0$zQy(d%+A8qE$In%Im^-S zNSJjo?3X1((x2D%%fcbr@pMFHFF6L9b&S zz3ppINvgPwe=Ox`sS)7Z((e!FoDOrTdlM=lK1ia$o>}Cz}=OcXYSRaCUPWIyp4Y> z7u)kJpcB?(PmF^5`A`;`s|0|FHz`UZuZy|CS{m4h1{Xp z6Tj2m0MaFHe9<5-FRzmu7}B;(nH|7M^E=K zOVazg;5J&`NH#Fyjdj0!(H(-?-Kb#u1wmg5_a{V0A`$u7#;q)srB)kAPBC#R!hJjT6+)wcn{^Y-O?O?ckB7s9jjc5uy4{25JmXMInbP>qF( z)B8Ur1sVE}`{UEnr6Z7r;b@HpUJ2Q*rHtwSoRJ1YGfm|hx4Ms3#XAUX8+*vCAs+m% zqWe&)?w*!huk>V_A4MM)^}6Wh)ljsPf-KpW1wtgPB~4}G^w@~sth~iLP{RPwQ=_{M zPHNu2w_O>9tzv_m?73YYK8VTsoB@jEh7*ME_-M?w2YKa=)RhB zCrag1j@;X8GJjIQ7WS2NRknC6Ri4lL5KZH_LUqCvS+%)(JJ+SAPM?dj~#(wSbI8%|u5Ju_Whya|bDnp9`# zhtA?ZuniPftGN+L@>T9cJA|?d^gB7L>M0;gYSe5#M{eML!y34IXrLUoSG@&#+v%%H z^i&8`CFoWaFM*Frsba71(G{DF5cIRnyer7M!gwyhi+j;tV6Y+DydsMSrolI?s;|hk_*!Lsy`kN14PU|49_D~Ss70`RKG>f zmJX<_xOAhrePJ(_Y~WVP(idVRVq)%+&J;)CAh%==6~N7no!nTf3j{S>=kePko%z$K znuq6nxEe1y9Rwh*nvD=a}FO~L!{XH7dq3~F*q&((wxzUMPD_#*WbnWG}3Ybdf`Ws&+s5eRO| zTY1wwsgEy6+AFMmS`7?UzgHUPspWt6jen+wn%|+CCwyk4#(!D`qHDIK(R*b=*Sc{v z~}bCY){&sQCLoQW$`hL-OAmq3<=E)A-N`jymbkt&8hqw)oXh8-!B>}t`A=c zCdyAgUj^TN^~U=@v~4q+K|;ULy=SvoY==oVS_wr&HM}B)xXYtC zR3XMSct_3hT_q=5w!CTnhvd{0A$^OV)UaXaIJcBEQc1yAEphDB7aBzCG;bHBY(SzePr6Ab#_k=NKhq{MZSeFRbEdOu5dK)y5 zpa-lUJkacdDTTD4Ft5cG%2L$7dLK4;nDE&06<1)}o(5<($KMNH_Adr>e~Uk|osvhQtZC04mwZ79r~m0oh8=KvXsER$SazqCn9Ha{0d zo4s(RMaWhYzZt0+x8ZtrO%60E)EX2Yp!*6VjlkjYYg#l6F%&lGkvw1$=Rs(IZ&|NiLkVI zJmMuIZX&bBRHm;Xwu4g(g4=5zYW)cAj+yPFb-i)p zcCLfGaw!+uztViZPwtpYvMz}nt;i2365jRKS)@^Rc=qgKHg-ob?WQwVR;#EWC32Zc zM6PfX2fM?%^8S_U8eXy6tCHsr<|g%XbV543I{`)uxFBb|S7nj1=$V`#Ff~ zGe$nXq>q)lC0z>tTy_bx3>k=a3AA5F^yDTzuIC+i}lNAbbzHc?H{Ew$uQC24*TLUo*k=--;QATjXdz} zitb(rw1$ehyk#M(XP~6l7rQ{ai~K#lRsJr8!`Ri>(Y!kq_PBREWdhQ-ZYuXf!bAea z?FwvB9d1`kKn{P9T!#hJMxb%5?^NFahRZk!F?%(sKTOd5#jCNg05#bGiF*=I2Fw}@ zx4;W_&ZN8@75Oj6{f#|79Nn_hhP9yKxTkI9M~>EbEuZ*kw*JN2;@2~dVH6eoc|;~{ z4k8}W^9ZS_WB*z+djq4SczVnWBWMKi_GNI*P3+^^_LASn4Vs*t02zesx0_UK=mA$% zRgx38;>CQ{2T8u4qMb`h;k z?t_z%Wt<$+HkMtHF~zn*44aRUOV?@WN&vd{D4W=@edgzNyNl-^79`)hSWk{?=8g@F zl)7VMLK%R+;J@6%)8XQZrI+8LnO*5W!nRG+pY_rBwfz;k>4i6@i!cM=J&>>#9BEzC zGQg}^`xvw4$5-0CYvu$srMQRB04bUWoL+X5)Q(pkuaX508E|WQ?Qr1l2n=$4A%7bO zCBJG`ZfO0>j@IXS%HwGrZU4>phCq10y5$9w+}jP75nVz}tF08PE$XXT-cB0l4u6-~ zzPE_9<(&|=^e!JW$zt|ZOl%WBpV=Z>b80#6=WsE{lB1;YD~w6j%=bK1n%n*9nX?l8 zSEtEFeH=F3qH~+(4k5Dm^>2N&{tf;+3Hncq=&$kPUjM5RzYs>2od!exp)=mD|n6^-|{(fY#7#(iMW0}265)#bYmkmSs0ZjXj0m0isshRtrg6I z+s4rSyjt)>Aha;eWH&T0V{k86_9^$?K}ixHJF8o8L&C(01Zi6#;SHU;i%ZZ6QNr&l z5>RQPgr_PJ&@G~bA5ZA)j%<48=owUt`LGgh5B zi)j@)ASxxC+P+Tq09Hxb=y&rjlw;6Vuk>h|OJ|>T3kLrwuLQc8^Gz+>1u{SuPRR8D zZ&?kwdfoV2$3p{7p3f(KRXP5yTSEMa#J85?Pl)2DAR8A4AOqhDna3Ns9(0+og zDh6X36q*6@{E0m3ayKGJ);wj7R7f!0BA~M_{qE8qNw$naATD(mtTgkT7o$=HIIbdN zWq$e%Kb^z_)SYJgCAILXqMUiF@khf$&S)eT+#|1l?EoQTr8uz8E$X=z03 z!zJAo6cr?S&PobG>+#*cfZ7+E|am0)8jFMjQNim|8{tET6 zJP(_Q^^lGX0dlC(o z%8HQnZpH|;*z^(EDZXC8J4|zBg)!;hAb-8`aevQ0h|AtqlW^8Z3-(LkMZpoQLN)D@ zRE#%?UHtXDdznUWInH#!CQ&Vth9B`yssv)6X%`lV)PN>r0cfccV~Pgvv>{=ii6Bs9tV@{Nc@BDrHqDTT-7u( zDvy?O&1kdg*Lc#9S=lQaexWwhUcJfvA5~PqE5vnHYRhtosagIPn<0Q7teKI~bLh&f zCxJvll`1yhq0hWjobS^Nf5~mP#?m{Pc!Ygy{Vk9-YIzACp9PQKvwGADl(2#J0T6bvmWYsNz>mP@_6HER{0tBNo76|emp6<6)7 z;%%MfinTpnJkc13!DcNz{NA0n^pE6phxrPNuTbHYzQWU0;ff$e> zecoz!IO`24+nH#;{3<)`hC%b~gymNIJECm95F;6z&8>6O7;E$hT;@0M;{GPXYWiNA zbgN7E87Ba9C;|0Kojb3?2)K{h)8X55CB$?a)y}v*mys2@CK+@uPcbvK!)b}-C-!7`}%&0zTzDb!kvs_>4LbH&zY~6wR zARcObl}D%tAjQJRfo`ZNxX&R`QSmOP|;9tmmq82UN!(TfI z!0aRlb8O$Tc)@ui*c&xqt(4pG9^XNSRp4mDds{TT<-?DQWw@XHjnce|yw)D_#)h+F zv7422y+@+aBLXDbbq%EmtXCWAV*mKEeuFk?BI||p!j>02SgseD?sWVtEXSK9o;dbC zHi$n-i+9he6YH@bf{AQ~3<-8Gr+UH*lgYtcDJ4=vt8}I4g7wAS%vB018!Rc&F5e5e zu^k7QYD!u)@94=Fde?51)fcNrJ?IctDY;~+P?ImijUk~-zin*6U~;5iDRDS@XJ(3>f){U?P1=xDSW>Zbvt{tHoe=4$^{V!GOWYl`NWa8m~z zQdV7({s-m$L7zii3r=r_#^QhmN++hbFWu#-srNAl63AkJ#qRN&&-fFJaT~l!cemq9j2m}=~s!L$daG_{%aY>k7oSF2wMOc2d+BDmWf(< zTxCZD*z?|+-cTHaUrYHSpAX6#*gzciJwRL;K)sZ)I+TE9AB%GzdXoP2*Mp6&3ET72+gLz6eUQS#Rs7U7AOZ+yVcHc@ql zH6*iPSIYV}85SN4&AT|O=INPlsM8m^W5vsK$Ddg15*Lan3EZZ5+-9isM@Pc#O-NH*TCV3pV@NqiT9PHDN1aKIt%4>_|@w4NR%xf;S3FxHHB$%xxo0?K#Rl!)uZ}Bl%U;bBeELf0aINqD?1tIvaXSOZ=SM!-oZDt?Vb#py}$(7vxPkG+TwXU++$mX^ce8zKI zr?MKAGTq9fxvf^RGC%zP|KKW;NO~iumDvC1@q+y3SVZk~BT|LyBc#Q7>EfFkm)>{s{lL3%<59 zM8EY#Lv%h+*Wc?A?No^|BO!V}W32elE)k+)=>3Jx{X*w2>d`WuF4xn!4K48AB;<@y2`L*vNZ+1%y2K4)DE8 zd{-Zp$B|nY@g5`EX8SoZ#S$`wgnWVq?IWZTvTA0GN=W$#LRKNKz~Tjqxc`v&J|e!s z>3M_%88OI+ZSx3$O&|>wR~QAeKglO#JtWI?rAFgO(B6Wgq|xmH91Cgmm<*+iIdC2>G5zNEC#`iEn4(o0Ct-WsI1} zh|BW`iCRLUB;*BjS;`Tt!w7SM8s?Aq$`yN@N*V-;V^PUwTR(aATvg^MkNM_g#Hqn` zNK91LKi`7#_&#t$WgWrXzg|3w@|cOe_Sq_L@bVsbYVJw;*pP>(*1U^2#j~+q@Z3l| zdnuk5nEQ~?@Vt2y@VuwiJN7o$2I@~^A@Md`kL7^eXb!bhot{2p{`Js*3VJF*@28*_ z5%jAl+DQFJ&|y@*o=wkn(%;{g1x_^fU#1C_%T620Bd8Q5W>=K>b0AWcDymVd4(-*_=zd9t@*g&htccw(}Zq z07W(%D6-k+FmqU5c7O^P#?UI9 zW#Frt&(mHN^SKK~QWs`;=nF=+F0<}6g!2gFmNO+t^hYU+g3G-06t*4rK2Z2do5=iT zPgz;S=~+oyVs1qU76mNW1*x>^p8uJM$kI2#-=8RdUqm&U3h;eI)n&l+tU<8^AkM)K z)bj)rpl{I50ypP!yl-yW%aReta&L6S2RV&qOIE`k|L7?4yZ&$&pONsU|btOC&uI zCQID$R^6!Mt>(>T!t&taEoY#d?8=5P09%oW-GwbwZ6Ku$L9Lhcwp@XBixws;(n&zC zoYaQQcw?K^Fs`!Jw<`OFb=_R1tbvE)jag9Lt$}*pG`&J@n!bxSO+S2vw2%dVK@0g> z24$0eh1Ozru5((*eG(*`Z(dUKr~+M8vxZA2+%0fk*vM5r8{3^y_*~O0Ed? zpn8rz`G05O#)N6yOuP=~H&Hir;PeSz0sjNMb8p$vuYFpJXuYo`WRB+Gj zv9E94+v8-%b*1^kky;l?O*5@8)UrMEY2q#0`4dBhufR_6yUc_$wK7^VAV`me!yLhg z0^caMxnOvtnz8qTht^$YQoJpgc0|LmEZ_aInxpG%;IDR zBwubYzU~z;o@X1F;||76_L2$LYGl`o)s5!cWM#Z5dk>b;^tMQ2XI+fNG#r~cjR6(& zHnp}}VPlNp*|0vjZN*BL5>!|#?xQc3TZa(Rz|I}dx?;JHe$)G~fHN<{x3iG+d`AUg z3V9aq=0j1D{_H*$RWylVdwg9P{2j%pYDr9(a%V7MhrKgpyF$3LMDF;-*(aIQ8_MdygmKht=!y$9>Um8&Jl@}pzLE%tT|s7gs!E5Y#~v0tDGF#Io?ib$x;Ip z39(Iev_cljVSStm!r4;0hn`5WQ^OW>>~&gzH;QI%7tX#p`|i+8b>H1R@ouIF6i~DW zD6%Riv}7)Hme)VJY@*<*xRoqAQhChfMb%BAC&oobr$JAS^jPww#U5JnPtXV$O_nZ) zQYrSV5@%oibPtV`_>$!8=-9$A+>z{L*Bw&iW$sZ;2A`d5x5u+rHY^I0N9Q+oQ7k&& zLNA995{@j|FVek_&USqLnjUFd%#-m@FJUkBL^vv+hPs;Ax0MRG1+>-?F!Emo|Jzpc ze`^hd-5NmI|8Hub{tBQTo%`WJ?gPaL?z>^%&V9h*VF%GLPQ_SF@pgJuzc7J&!i7!=t2a1f0D6VDZgR*cgQ;u=K$>`BWwuWb0uAl*S^g?vOPRszItV zGLtN0NvsF078U2NTFFnt-N4ul_->WzL3?70KpkwvfT|`-~OA}13LRN;+t#1U(J)4V{kY@2G#*5-9s4CFZ!`U0^sVju0FGecgc>Em4J(N*6=^boDBqn$4Q`& zD4~0tM2D@V4uDGIU5<>%-7Pf;UxEPYA{ralm$lXap!4VkYzdi}cOIL^A1pG4DfEMj zG3@ju?b3KQqE84H%05PLW@olS7x!~h7-81 zKXUrHMz0f1k(uT~vEjQyYNC;qH#_KOkFf2)%@Qxs!@NGW9 zJqgIY+!u6D8-n8943hg5-sB7ZWp6~~N1MAz$`|-vd`7$x4!T3l73YZa-Bi2S@t#z^5YnQlAYI|VyVOq-}{)GY_g|7n^n0VwFzREGcgYuk$R|&x> z*^Ee49JaO^NZQF%^W`=4<#kJ19F&KkHB&%?`Dh;*=~__Sa^VM+Y!}w!=xl}f;f89m zWu4jmJ^?4`af-GJZbcrr@Ca~}5mMo<5Lw!JpnEppb#ZXs*^EF;3;_!qXiIC z-Tew9`aH`zX%!AaTutq7UcXl;lnkj(rc!v{O!gPJrT|{Dy+bLa%tTY&D;4_3e+GrE z3Q@A8IvJx7A0fneV+jtL@hW9XA>cV^Mb+@Hb~h==Uz`Py6$(-kr#cyHoWrEe?U{cAsPsoO&O8H0j@1?FrUW|k1XjZ*aEBBuC0I;-u$a=&TgLWK z9eBsDQXd`cf54Os>Vq4@a5!gmUzKcOKc}QBc}{6na!y&iaSD~@;lomfs>I=wqlx*G zi>vUbq$)9ca%p1bIaZ<3%^$*n=F64KEz2)DkP2hS8y zn*snmYe-3IQZ0dn=26t7>m4C&pZ*m4HoP9}Tsa&7Y(vy}Z-u zN!t{jWJq-~mBM@c`+j(3Bj7bCyiSF87~x?aAYj4@Pcq;rQWxGudGMr9RI5fRF4bLw zl;-%n9+N>z%zlztcjZvaN+n4 zy=Onb4w@%9uGB36edfO_pc(97?O0QOy0Gf8XTU1j*-$&fcsI+*LgXExb8f)uC})f` z6^xI0DqRlA8J48lc!v;S}2%o!~3@zYlw6^`D&TP9x; zb{407khPyk84&`BGn>;aj=epwJA)YW&|#uq2bii?^fk(YA!G}cp}eMa-Z9al?O3OH zWYDX3{lx`PAV#-uFlM^JJot5TSy4TCb+g=yyL z{)1jJ8q6*h_S%WFl<+k<3xmMK0FzIjQ69tE3gtv_EvE_e8pLcfqiuw}8IrewXi5y{ zX(w)Zq#jQ_L2Z|(&V*5p5OO-Vd zKMboWrtTZ|${=dGnRKc&jbEV)={bU&OikKh9hydCjc5^;Yeeff|B`J2IUf3e`eS?; zfX!F;^OhnZ0HvdF;Y%KgmME!C20wnu(If`jsA4-Kfy6YgXA==q(%iQTwTWj>N_*$g z4S47+kt=z7Mb_uJpDZpv=MC*`9GD954Nr%Lw;F?UqHJOUMS(U2pKO~KFS**DU z#?U~+eBA1U3EZe!buzfismn2*wW+@($&D|w{eFTqBAy{ zVK|L|U)aJVY2h9vI2?43&pcl&b%($FC8AH&eumE6a1yPe_lr@#>?Hp0Cg>l%8u@<@xl?m^Zn;b3J4=p$Z!ANxSnzLvMzSe|ZjhfOXXO-Wmny$BHJuV2v@@M>v5C?GDtqXfy4?W8UK&X_K8@sN%2e+NR5b*dAS zEfSY0K|{ikWA;n#*O=^lm9hU`vLkrpgzzN1(2}pv%{d`q30VWR3&hlcqz_Glyn(<` zfX(kG;~jnz3DTIL^q%&z*;MeBM`ob~sLt*cO(OD<3eM?M~2IGwwxpiA_mV)&v#gdsYyQoNHf1m6a=YM1yKc<^t8Yg6uw}a zK=v*WV2cs&8U(Jfp_a{F(c)cU_yYr>8%0e!lu1jDcg-Yip%xx328)q6c=q1vV(wJ`QmF#zLDvQX?*uA~Vig&Zl0l zHUNVVutn$*Fl~Pv4e-Cu1KWlbsBpztbG{o!w|A*JGKE z6Gw55;zkWT%uE}-hZCLZl+HTUeiWnICra+vNoIQ`|K`;o|0E^9g5)n^#retiiNIX2 z#KJYn;@tw-2ho|}3}xcCw`?j==BJ3YP+;v#p_1(bNLQ5-n*|;EN`58Vhwzxy{Pa